Prev: 47355 Up: Map Next: 47431
47363: Update eyes of a randomly selected timer figure, increase timer tick counter and process timer figure blinking
Used by the routine at 34438.
47363 CALL 47431 Select a remaining timer figure at random and update its eyes to a random (open-eyed) frame
47366 CALL 47468 Increase timer tick counter and reduce remaining time if counter > 767
47369 LD A,(34227) If blink duration counter is zero...
47372 OR A ...
47373 JR Z,47388 ...then skip ahead to 47388
47375 DEC A Decrease blink duration counter by one...
47376 LD (34227),A ...
47379 OR A If decreased blink duration counter is not zero...
47380 RET NZ ...then return
47381 LD IX,(34264) Restore attribute file address of eyes of currently blinking timer figure into IX
47385 JP 47315 If show-score flag reset then draw pair of timer figure eyes (open, random frame) at attribute file address IX, advance IX by two bytes then return
Make a randomly chosen timer figure blink
47388 LD A,10 Load A with a random number, 0-9...
47390 CALL 54222 ...
47393 OR A If A is not zero (9 in 10 chance)...
47394 RET NZ ...then return
47395 LD A,(34210) Load remaining time / lives into A
47398 CP 2 If less than two time / lives remain...
47400 RET C ...then return
47401 CALL 54222 Load A with a random number, 0-(x-1) (where x is remaining time / lives)
47404 ADD A,A Double A...
47405 LD C,A ...and load into BC...
47406 LD B,0 ...
47408 LD IX,23232 Point IX to start of second-last row of attribute file
47412 ADD IX,BC Add BC as offset to IX (i.e. point to a random "awake" timer figure)
47414 LD (34264),IX Store attribute file address of eyes of currently blinking timer figure at 34264
47418 CALL 47302 If show-score flag reset then draw pair of timer figure eyes (closed) at attribute file address IX and advance IX by two bytes
47421 LD A,10 Set blink duration counter to a random number, 1-9...
47423 CALL 54222 ...
47426 INC A ...
47427 LD (34227),A ...
47430 RET Return
Prev: 47355 Up: Map Next: 47431