diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-06-17 22:12:04 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-06-17 22:12:04 -0400 |
commit | 50e182e83180dc6bfd012ddc26e7dc07052a89a5 (patch) | |
tree | c2dd3204ff15479469b89b537c52bf7d7f013d5d /engine/overworld/events.asm | |
parent | cc460a17b0b99208592ca31de99f526fce2bf5ad (diff) |
Harmonize engine/overworld with pokegold
Diffstat (limited to 'engine/overworld/events.asm')
-rw-r--r-- | engine/overworld/events.asm | 303 |
1 files changed, 1 insertions, 302 deletions
diff --git a/engine/overworld/events.asm b/engine/overworld/events.asm index 7c79d41df..f78635cb7 100644 --- a/engine/overworld/events.asm +++ b/engine/overworld/events.asm @@ -1338,305 +1338,4 @@ DoBikeStep:: xor a ret -ClearCmdQueue:: - ld hl, wCmdQueue - ld de, CMDQUEUE_ENTRY_SIZE - ld c, CMDQUEUE_CAPACITY - xor a -.loop - ld [hl], a - add hl, de - dec c - jr nz, .loop - ret - -HandleCmdQueue:: - ld hl, wCmdQueue - xor a -.loop - ldh [hMapObjectIndexBuffer], a - ld a, [hl] - and a - jr z, .skip - push hl - ld b, h - ld c, l - call HandleQueuedCommand - pop hl - -.skip - ld de, CMDQUEUE_ENTRY_SIZE - add hl, de - ldh a, [hMapObjectIndexBuffer] - inc a - cp CMDQUEUE_CAPACITY - jr nz, .loop - ret - -Unreferenced_GetNthCmdQueueEntry: - ld hl, wCmdQueue - ld bc, CMDQUEUE_ENTRY_SIZE - call AddNTimes - ld b, h - ld c, l - ret - -WriteCmdQueue:: - push bc - push de - call .GetNextEmptyEntry - ld d, h - ld e, l - pop hl - pop bc - ret c - ld a, b - ld bc, CMDQUEUE_ENTRY_SIZE - 1 - call FarCopyBytes - xor a - ld [hl], a - ret - -.GetNextEmptyEntry: - ld hl, wCmdQueue - ld de, CMDQUEUE_ENTRY_SIZE - ld c, CMDQUEUE_CAPACITY -.loop - ld a, [hl] - and a - jr z, .done - add hl, de - dec c - jr nz, .loop - scf - ret - -.done - ld a, CMDQUEUE_CAPACITY - sub c - and a - ret - -DelCmdQueue:: - ld hl, wCmdQueue - ld de, CMDQUEUE_ENTRY_SIZE - ld c, CMDQUEUE_CAPACITY -.loop - ld a, [hl] - cp b - jr z, .done - add hl, de - dec c - jr nz, .loop - and a - ret - -.done - xor a - ld [hl], a - scf - ret - -_DelCmdQueue: - ld hl, CMDQUEUE_TYPE - add hl, bc - ld [hl], 0 - ret - -HandleQueuedCommand: - ld hl, CMDQUEUE_TYPE - add hl, bc - ld a, [hl] - cp NUM_CMDQUEUE_TYPES - jr c, .okay - xor a - -.okay - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - add hl, de - ld a, [hli] - push af - ld a, [hli] - ld h, [hl] - ld l, a - pop af - rst FarCall - ret - -.Jumptable: - dba CmdQueue_Null - dba CmdQueue_Null2 - dba CmdQueue_StoneTable - dba CmdQueue_Type3 - dba CmdQueue_Type4 - -CmdQueueAnonymousJumptable: - ld hl, CMDQUEUE_05 - add hl, bc - ld a, [hl] - pop hl - rst JumpTable - ret - -CmdQueueAnonJT_Increment: - ld hl, CMDQUEUE_05 - add hl, bc - inc [hl] - ret - -CmdQueueAnonJT_Decrement: - ld hl, CMDQUEUE_05 - add hl, bc - dec [hl] - ret - -CmdQueue_Null: - ret - -CmdQueue_Null2: - call ret_2f3e - ret - -CmdQueue_Type4: - call CmdQueueAnonymousJumptable - ; anonymous dw - dw .zero - dw .one - -.zero - ldh a, [hSCY] - ld hl, CMDQUEUE_04 - add hl, bc - ld [hl], a - call CmdQueueAnonJT_Increment -.one - ld hl, CMDQUEUE_ADDR - add hl, bc - ld a, [hl] - dec a - ld [hl], a - jr z, .finish - and 1 - jr z, .add - ld hl, CMDQUEUE_02 - add hl, bc - ldh a, [hSCY] - sub [hl] - ldh [hSCY], a - ret - -.add - ld hl, CMDQUEUE_02 - add hl, bc - ldh a, [hSCY] - add [hl] - ldh [hSCY], a - ret - -.finish - ld hl, CMDQUEUE_04 - add hl, bc - ld a, [hl] - ldh [hSCY], a - call _DelCmdQueue - ret - -CmdQueue_Type3: - call CmdQueueAnonymousJumptable - ; anonymous dw - dw .zero - dw .one - dw .two - -.zero - call .IsPlayerFacingDown - jr z, .PlayerNotFacingDown - call CmdQueueAnonJT_Increment -.one - call .IsPlayerFacingDown - jr z, .PlayerNotFacingDown - call CmdQueueAnonJT_Increment - - ld hl, CMDQUEUE_02 - add hl, bc - ld a, [hl] - ld [wd173], a - ret - -.two - call .IsPlayerFacingDown - jr z, .PlayerNotFacingDown - call CmdQueueAnonJT_Decrement - - ld hl, CMDQUEUE_03 - add hl, bc - ld a, [hl] - ld [wd173], a - ret - -.PlayerNotFacingDown: - ld a, $7f - ld [wd173], a - ld hl, CMDQUEUE_05 - add hl, bc - ld [hl], 0 - ret - -.IsPlayerFacingDown: - push bc - ld bc, wPlayerStruct - call GetSpriteDirection - and a - pop bc - ret - -CmdQueue_StoneTable: - ld de, wPlayerStruct - ld a, NUM_OBJECT_STRUCTS -.loop - push af - - ld hl, OBJECT_SPRITE - add hl, de - ld a, [hl] - and a - jr z, .next - - ld hl, OBJECT_MOVEMENTTYPE - add hl, de - ld a, [hl] - cp SPRITEMOVEDATA_STRENGTH_BOULDER - jr nz, .next - - ld hl, OBJECT_NEXT_TILE - add hl, de - ld a, [hl] - call CheckPitTile - jr nz, .next - - ld hl, OBJECT_DIRECTION_WALKING - add hl, de - ld a, [hl] - cp STANDING - jr nz, .next - call HandleStoneQueue - jr c, .fall_down_hole - -.next - ld hl, OBJECT_LENGTH - add hl, de - ld d, h - ld e, l - - pop af - dec a - jr nz, .loop - ret - -.fall_down_hole - pop af - ret +INCLUDE "engine/overworld/cmd_queue.asm" |