![]() |
Routines |
| Prev: 81D4 | Up: Map | Next: 835F |
|
Used by the routines at Handler_Ticker, ChooseLocationOrTakeJob, Handler_LocationChoice and Handler_SubGame.
|
||||||||||||||||||||
|
These examples are generated with the location being "London" so obviously aren't possible to see in the actual game (given London isn't a playable level - that's the first game!)
Note, this isn't a complete list - as some vary with the bonus points messaging:
|
||||||||||||||||||||
| Messaging_GenerateTicker | 823B | CALL InitialiseTickerBuffer | Call InitialiseTickerBuffer. | |||||||||||||||||
|
Test if the player has been deported from Russia.
|
||||||||||||||||||||
| 823E | LD HL,$EFFA | Jump to Ticker_CheckKilledInSpain if the player hasn't been "deported from Russia". | ||||||||||||||||||
| 8241 | BIT 2,(HL) | |||||||||||||||||||
| 8243 | JR Z,Ticker_CheckKilledInSpain | |||||||||||||||||||
|
Player has been deported from Russia, so handle displaying the messaging in the ticker.
|
||||||||||||||||||||
| 8245 | RES 2,(HL) | Reset bit 2 ("Deported From Russia") in *GameState_1. | ||||||||||||||||||
| 8247 | RES 0,(HL) | Reset bit 0 of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 8249 | LD HL,$8CF0 | Adds ... " deported from Russia, FO says rubbish." to the ticker buffer. | ||||||||||||||||||
| 824C | CALL AddStringToBuffer | |||||||||||||||||||
| 824F | LD A,$5A | Set the spacing to 5A in A. | ||||||||||||||||||
| 8251 | LD HL,$EFFA | Jump to AddSpacingFillTickerBuffer if the player has no bonus points. | ||||||||||||||||||
| 8254 | BIT 1,(HL) | |||||||||||||||||||
| 8256 | JP Z,AddSpacingFillTickerBuffer | |||||||||||||||||||
| 8259 | RES 1,(HL) | Reset bit 1 ("Has Bonus Points?") of *GameState_1. | ||||||||||||||||||
| 825B | LD HL,$8D17 | Adds ... " He denies smuggling out " to the ticker buffer. | ||||||||||||||||||
| 825E | CALL AddStringToBuffer | |||||||||||||||||||
| 8261 | CALL AddBonusPointsToTicker | Adds the players bonus points to the ticker buffer. | ||||||||||||||||||
| 8264 | LD HL,$8DB1 | Adds ... " bonus pts." to the ticker buffer. | ||||||||||||||||||
| 8267 | CALL AddStringToBuffer | |||||||||||||||||||
| 826A | LD A,$78 | Set the spacing to 78 and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 826C | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Test if the player has been hit by the bull in Madrid.
|
||||||||||||||||||||
| Ticker_CheckKilledInSpain | 826F | BIT 3,(HL) | Jump to Ticker_CheckSubGameWasSuccess if the player has not been hit by the bull. | |||||||||||||||||
| 8271 | JR Z,Ticker_CheckSubGameWasSuccess | |||||||||||||||||||
|
Player has been hit by the bull, so handle displaying the messaging in the ticker.
|
||||||||||||||||||||
| 8273 | RES 3,(HL) | Reset bit 3 ("Hit By The Bull") of *GameState_1. | ||||||||||||||||||
| 8275 | RES 0,(HL) | Reset bit 0 of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 8277 | LD HL,$8D30 | Adds ... " killed in Spain, while crowd cheers." to the ticker buffer. | ||||||||||||||||||
| 827A | CALL AddStringToBuffer | |||||||||||||||||||
| 827D | LD A,$55 | Set the spacing to 55 in A. | ||||||||||||||||||
| 827F | LD HL,$EFFA | Jump to AddSpacingFillTickerBuffer if the player has no bonus points. | ||||||||||||||||||
| 8282 | BIT 1,(HL) | |||||||||||||||||||
| 8284 | JP Z,AddSpacingFillTickerBuffer | |||||||||||||||||||
| 8287 | RES 1,(HL) | Reset bit 1 ("Has Bonus Points?") of *GameState_1. | ||||||||||||||||||
| 8289 | LD HL,$8D55 | Adds ... " His " to the ticker buffer. | ||||||||||||||||||
| 828C | CALL AddStringToBuffer | |||||||||||||||||||
| 828F | CALL AddBonusPointsToTicker | Adds the players bonus points to the ticker buffer. | ||||||||||||||||||
| 8292 | LD HL,$8D5A | Adds ... " Bonus pts. will be flown back to the U.K. today." to the ticker buffer. | ||||||||||||||||||
| 8295 | CALL AddStringToBuffer | |||||||||||||||||||
| 8298 | LD A,$8E | Set the spacing to 8E and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 829A | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Did the player manage to complete the sub-game?
|
||||||||||||||||||||
| Ticker_CheckSubGameWasSuccess | 829D | BIT 0,(HL) | Jump to Ticker_CheckSubGameWasSuccess_WithBonusPoints if bit 0 of *GameState_1 is not set. | |||||||||||||||||
| 829F | JR Z,Ticker_CheckSubGameWasSuccess_WithBonusPoints | |||||||||||||||||||
| 82A1 | RES 0,(HL) | Reset bit 0 of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 82A3 | LD HL,$8D8B | Adds ... " successfully cleans up " to the ticker buffer. | ||||||||||||||||||
| 82A6 | CALL AddStringToBuffer | |||||||||||||||||||
| 82A9 | CALL AddLocationTickerBuffer | Add the current location name to the ticker buffer. | ||||||||||||||||||
| 82AC | LD HL,$8DA3 | Adds ... " ." to the ticker buffer. | ||||||||||||||||||
| 82AF | CALL AddStringToBuffer | |||||||||||||||||||
| 82B2 | LD A,$5A | Set the spacing to 5A and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 82B4 | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
As above, but also with bonus points.
|
||||||||||||||||||||
| Ticker_CheckSubGameWasSuccess_WithBonusPoints | 82B7 | BIT 1,(HL) | Jump to Ticker_CheckStranded if the player has no bonus points. | |||||||||||||||||
| 82B9 | JR Z,Ticker_CheckStranded | |||||||||||||||||||
|
Player has completed the sub-game and has bonus points, so handle displaying the messaging in the ticker.
|
||||||||||||||||||||
| 82BB | RES 1,(HL) | Reset bit 1 ("Has Bonus Points?") of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 82BD | LD HL,$8D8B | Adds ... " successfully cleans up " to the ticker buffer. | ||||||||||||||||||
| 82C0 | CALL AddStringToBuffer | |||||||||||||||||||
| 82C3 | CALL AddLocationTickerBuffer | Add the current location name to the ticker buffer. | ||||||||||||||||||
| 82C6 | LD HL,$8DA5 | Adds ... " and gains " to the ticker buffer. | ||||||||||||||||||
| 82C9 | CALL AddStringToBuffer | |||||||||||||||||||
| 82CC | CALL AddBonusPointsToTicker | Add the players bonus points to the ticker buffer. | ||||||||||||||||||
| 82CF | LD HL,$8DB1 | Adds ... " bonus pts." to the ticker buffer. | ||||||||||||||||||
| 82D2 | CALL AddStringToBuffer | |||||||||||||||||||
| 82D5 | LD A,$6E | Set the spacing to 6E and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 82D7 | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Is the player out of money and stranded in their current location?
|
||||||||||||||||||||
| Ticker_CheckStranded | 82DA | BIT 4,(HL) | Jump to Ticker_CheckAffordToFly if the player is not "stranded" (doesn't have enough money to fly). | |||||||||||||||||
| 82DC | JR Z,Ticker_CheckAffordToFly | |||||||||||||||||||
|
Player is stranded in their current location, so handle displaying the messaging in the ticker.
|
||||||||||||||||||||
| 82DE | RES 4,(HL) | Reset bit 4 ("Stranded") of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 82E0 | LD HL,$8CC3 | Adds ... " stranded in " to the ticker buffer. | ||||||||||||||||||
| 82E3 | CALL AddStringToBuffer | |||||||||||||||||||
| 82E6 | CALL AddLocationTickerBuffer | Add the current location name to the ticker buffer. | ||||||||||||||||||
| 82E9 | LD HL,$8CD0 | Adds ... ", penniless." to the ticker buffer. | ||||||||||||||||||
| 82EC | CALL AddStringToBuffer | |||||||||||||||||||
| 82EF | LD A,$50 | Set the spacing to 50 and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 82F1 | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Can the player not afford to fly?
|
||||||||||||||||||||
| Ticker_CheckAffordToFly | 82F4 | BIT 5,(HL) | Jump to Ticker_CheckGameWasCompleted if the player can afford to fly to someplace else. | |||||||||||||||||
| 82F6 | JR Z,Ticker_CheckGameWasCompleted | |||||||||||||||||||
|
The player is broke and can't afford to fly to a new destination, so handle displaying this in the ticker.
|
||||||||||||||||||||
| 82F8 | RES 5,(HL) | Reset bit 5 ("Can't Afford To Fly") of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 82FA | LD HL,$8CC3 | Adds ... " stranded in " to the ticker buffer. | ||||||||||||||||||
| 82FD | CALL AddStringToBuffer | |||||||||||||||||||
| 8300 | CALL AddLocationTickerBuffer | Add the current location name to the ticker buffer. | ||||||||||||||||||
| 8303 | LD HL,$8CDC | Adds ... ", without fare home." to the ticker buffer. | ||||||||||||||||||
| 8306 | CALL AddStringToBuffer | |||||||||||||||||||
| 8309 | LD A,$5A | Set the spacing to 5A and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 830B | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Has the player completed ALL the sub-games?
|
||||||||||||||||||||
| Ticker_CheckGameWasCompleted | 830E | BIT 6,(HL) | Jump to Ticker_CheckFlyingToNewDestination if the player hasn't yet completed all the sub-games. | |||||||||||||||||
| 8310 | JR Z,Ticker_CheckFlyingToNewDestination | |||||||||||||||||||
|
Player has completed all the sub-games, so handle displaying the messaging in the ticker.
|
||||||||||||||||||||
| 8312 | RES 6,(HL) | Reset bit 6 ("Completed All Locations") of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 8314 | LD HL,$8DBC | Adds ... " completes round world trip........... time machine found in " to the ticker buffer. | ||||||||||||||||||
| 8317 | CALL AddStringToBuffer | |||||||||||||||||||
| 831A | CALL AddLocationTickerBuffer | Add the current location name to the ticker buffer. | ||||||||||||||||||
| 831D | LD A,$78 | Set the spacing to 78 and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 831F | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Is the player flying somewhere new?
|
||||||||||||||||||||
| Ticker_CheckFlyingToNewDestination | 8322 | BIT 7,(HL) | Just return if the player is not flying somewhere new, there are no more conditions covered. | |||||||||||||||||
| 8324 | RET Z | |||||||||||||||||||
|
Player is flying to a new destination, so handle displaying the messaging in the ticker.
|
||||||||||||||||||||
| 8325 | RES 7,(HL) | Reset bit 7 ("Flying To New Destination") of *GameState_1. | ||||||||||||||||||
|
Build the string in the ticker buffer.
|
||||||||||||||||||||
| 8327 | LD HL,$8CBA | Adds ... " flies to" to the ticker buffer. | ||||||||||||||||||
| 832A | CALL AddStringToBuffer | |||||||||||||||||||
| 832D | CALL AddLocationTickerBuffer | Add the current location name to the ticker buffer. | ||||||||||||||||||
| 8330 | LD A,$46 | Set the spacing to 46 and jump to AddSpacingFillTickerBuffer. | ||||||||||||||||||
| 8332 | JP AddSpacingFillTickerBuffer | |||||||||||||||||||
|
Adds the players bonus points count to the ticker.
|
||||||||||||||||||||
| AddBonusPointsToTicker | 8335 | LD HL,$EFF8 | HL=ActivePlayerCash_02. | |||||||||||||||||
| 8338 | LD IX,$EFFB | IX=GameState_2. | ||||||||||||||||||
| 833C | SET 4,(IX+$00) | Set bit 4 ("Used for printing scores/ stripping off leading zeroes") of *IX+00. | ||||||||||||||||||
| 8340 | LD C,$02 | Set a counter in C for the number of digits (02). | ||||||||||||||||||
| ProcessBonusPointsDigit_Loop | 8342 | LD B,$02 | Set a counter in B for the count of how many score digits are to be processed in each score byte (02). | |||||||||||||||||
| ProcessBonusPoints_Loop | 8344 | LD A,$30 | Load A with ASCII "0" (30). | |||||||||||||||||
| 8346 | RLD | Extract the score digit into the accumulator. | ||||||||||||||||||
|
Don't print any zeros while bit 4 is set, it's only unset when a printable digit is "found" (i.e. not a zero). Once it is, then the zero characters are set freely (e.g. we won't print 001, but we will print 100).
|
||||||||||||||||||||
| 8348 | BIT 4,(IX+$00) | Jump to WriteDigitToTickerBuffer if bit 4 of *IX+00 is not set. | ||||||||||||||||||
| 834C | JR Z,WriteDigitToTickerBuffer | |||||||||||||||||||
|
Strip off leading zeros.
|
||||||||||||||||||||
| 834E | CP $30 | Jump to BonusPointsProcessNextNumber if the current digit is "0". | ||||||||||||||||||
| 8350 | JR Z,BonusPointsProcessNextNumber | |||||||||||||||||||
|
The digit is not a zero, so flag and process.
|
||||||||||||||||||||
| 8352 | RES 4,(IX+$00) | Reset bit 4 ("Used for printing scores/ stripping off leading zeroes") of *IX+00. | ||||||||||||||||||
| WriteDigitToTickerBuffer | 8356 | LD (DE),A | Write the digit to the ticker buffer. | |||||||||||||||||
| 8357 | INC DE | Increment the ticker buffer pointer by one. | ||||||||||||||||||
| BonusPointsProcessNextNumber | 8358 | DJNZ ProcessBonusPoints_Loop | Decrease counter by one and loop back to ProcessBonusPoints_Loop until counter is zero. | |||||||||||||||||
|
The score is evaluated backwards.
|
||||||||||||||||||||
| 835A | DEC HL | Decrease the score pointer by one. | ||||||||||||||||||
| 835B | DEC C | Decrease the score digit counter by one. | ||||||||||||||||||
| 835C | JR NZ,ProcessBonusPointsDigit_Loop | Jump to ProcessBonusPointsDigit_Loop until both digits of the score have been processed. | ||||||||||||||||||
| 835E | RET | Return. | ||||||||||||||||||
| Prev: 81D4 | Up: Map | Next: 835F |