Prev: 36549 Up: Map Next: 36705
36660: Apply Upward Thrust
Strengthen the upward thrust in *IX+6 while UP is held, then continue the movement handler.
Input
IX Actor slot
Strengthen the upward thrust while fuel remains.
ApplyJetmanUpwardThrust 36660 LD A,(IX+6) Fetch the vertical thrust.
36663 AND A
36664 LD B,A Jump to ApplyJetmanUpwardThrust_Normal if it is already positive.
36665 JP P,ApplyJetmanUpwardThrust_Normal
36668 NEG Store the absolute thrust in B.
36670 LD B,A
36671 NEG
Bit 0 of the actor flags is set while Jetman is carrying an item.
36673 BIT 0,(IX+8) Jump to ApplyJetmanUpwardThrust_Carrying if Jetman is carrying an item.
36677 JR NZ,ApplyJetmanUpwardThrust_Carrying
36679 CP 192 Jump to Handler_JetmanMovement_Loop if the thrust is already below 192.
36681 JP C,Handler_JetmanMovement_Loop
The normal upward step is 248 (signed -8). Gravity uses the opposite step of 8.
ApplyJetmanUpwardThrust_Normal 36684 LD C,248 Set the normal upward step to 248.
36686 JP Handler_JetmanMovement_AddThrust Jump to Handler_JetmanMovement_AddThrust.
While Jetman is carrying an item, use a weaker upward step of 252 (signed -4).
ApplyJetmanUpwardThrust_Carrying 36689 CP 224 Compare the thrust with 224.
36691 LD C,252 Set the upward step to 252.
36693 JP NC,Handler_JetmanMovement_AddThrust Jump to Handler_JetmanMovement_AddThrust if the thrust is at least 224.
Cap Jetman's upward thrust at 224 and spend extra fuel: B=64 is the base added at Handler_JetmanMovement_FuelFromSpeed.
36696 LD (IX+6),224 Write 224 to the vertical thrust.
36700 LD B,64 Set the fuel-spend base to 64.
36702 JP Handler_JetmanMovement_Loop Jump to Handler_JetmanMovement_Loop.
Prev: 36549 Up: Map Next: 36705