![]() |
Routines |
| Prev: 46333 | Up: Map | Next: 46409 |
|
Used by the routine at CheckFlagAndSetDisplay_ProcessPointer.
|
||||
| CheckFlagAndSetDisplay_CheckObjects | 46359 | LD A,(40988) | Check if objects need processing and return if none. | |
| 46362 | AND A | |||
| 46363 | RET Z | |||
| 46364 | PUSH IY | Stash IY, DE and IX on the stack. | ||
| 46366 | PUSH DE | |||
| 46367 | PUSH IX | |||
| CheckFlagAndSetDisplay_ObjectLoop | 46369 | CALL 44713 | Call 44713 (get next object). | |
| 46372 | BIT 6,(IY+%00000001) | Check bit 6 of object attribute and jump to CheckFlagAndSetDisplay_RestoreAndReturn if object doesn't need special handling. | ||
| 46376 | JR Z,CheckFlagAndSetDisplay_RestoreAndReturn | |||
| 46378 | CALL AdjustObjectTableForSum | Call AdjustObjectTableForSum (adjust object table for sum). | ||
| CheckFlagAndSetDisplay_ProcessObject | 46381 | PUSH IY | Stash IY on the stack and restore into HL. | |
| 46383 | POP HL | |||
| 46384 | LD DE,8 | HL+=0008 (move to next object). | ||
| 46387 | ADD HL,DE | |||
| 46388 | CALL ProcessObjectEntry | Call ProcessObjectEntry (process object entry). | ||
| 46391 | CP 255 | Compare with 255 and jump to CheckFlagAndSetDisplay_ObjectLoop if end of objects. | ||
| 46393 | JR Z,CheckFlagAndSetDisplay_ObjectLoop | |||
| 46395 | LD HL,41012 | HL=RoomDisplayParameter and compare with room parameter. | ||
| 46398 | CP (HL) | |||
| 46399 | JR NZ,CheckFlagAndSetDisplay_ProcessObject | Jump to CheckFlagAndSetDisplay_ProcessObject if object doesn't match room, otherwise set bit 0. | ||
| 46401 | OR 1 | |||
| CheckFlagAndSetDisplay_RestoreAndReturn | 46403 | POP IX | Restore IX, DE and IY from the stack. | |
| 46405 | POP DE | |||
| 46406 | POP IY | |||
| 46408 | RET | Return. | ||
| Prev: 46333 | Up: Map | Next: 46409 |