Prev: 36254 Up: Map Next: 36321
36273: Reset star to point of origin and generate a new direction and movement data
Used by the routines at 36321 and 36415.
Input
IX Points to an entry in table of stars' movement data at 24832
36273 CALL 55740 Set new random seed and load LSB of this (random value) into A and E
36276 AND 31 Discard bits five to seven
36278 SUB 15 Subtract 15
36280 LD B,A Load result into B (random number -15 to 16) (y-component of star's direction)
36281 CALL 55740 Set new random seed and load LSB of this (random value) into A and E
36284 AND 31 Discard bits five to seven
36286 SUB 15 Subtract 15
36288 LD C,A Load result into C (random number -15 to 16) (x-component of star's direction)
36289 LD A,128 Add to 128 (set bit 7) in C...
36291 ADD A,C ...
36292 LD C,A ...(random number 113 to 144)
36293 LD A,B Add 70 to B...
36294 ADD A,70 ...
36296 LD B,A ...(random number 55 to 86)
36297 CP 70 If A is not 70 (i.e. y-direction component is not zero)...
36299 JR NZ,36306 ...skip ahead to 36306
36301 LD C,A If A (loaded into C) is 128... [bug]
36302 CP 128 ...
36304 JR Z,36273 ...then restart this routine to generate two new random numbers/seeds
36306 LD DE,18048 Load D (initial y-coordinate) with 70 and E (initial x-coordinate) with 128
36309 PUSH DE Store DE
36310 CALL 36434 Set up star's movement data based upon starting position and direction
36313 POP DE Restore DE
36314 LD (IX+0),E Set star's initial coordinates as (128, 70)...
36317 LD (IX+1),D ...
36320 RET Return
Prev: 36254 Up: Map Next: 36321