From 89fbe0e28e7a356b10896e2739491c7c68742cfc Mon Sep 17 00:00:00 2001 From: vulcandth Date: Mon, 21 Aug 2023 22:24:37 -0500 Subject: [PATCH 1/2] Map/object/event renaming --- constants/map_object_constants.asm | 114 ++++++++++---------- constants/script_constants.asm | 4 +- docs/bugs_and_glitches.md | 10 +- engine/events/battle_tower/battle_tower.asm | 2 +- engine/events/overworld.asm | 4 +- engine/overworld/cmd_queue.asm | 4 +- engine/overworld/events.asm | 10 +- engine/overworld/map_objects.asm | 62 +++++------ engine/overworld/map_objects_2.asm | 12 +-- engine/overworld/overworld.asm | 8 +- engine/overworld/player_object.asm | 90 ++++++++-------- engine/overworld/scripting.asm | 2 +- home/map.asm | 14 +-- home/map_objects.asm | 24 ++--- home/stone_queue.asm | 2 +- home/trainers.asm | 24 ++--- macros/ram.asm | 30 +++--- ram/wram.asm | 16 +-- 18 files changed, 216 insertions(+), 216 deletions(-) diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm index e44c2825b4d..61f5e263cd5 100644 --- a/constants/map_object_constants.asm +++ b/constants/map_object_constants.asm @@ -1,39 +1,39 @@ ; object_struct members (see macros/ram.asm) rsreset -DEF OBJECT_SPRITE rb ; 00 -DEF OBJECT_MAP_OBJECT_INDEX rb ; 01 -DEF OBJECT_SPRITE_TILE rb ; 02 -DEF OBJECT_MOVEMENT_TYPE rb ; 03 -DEF OBJECT_FLAGS1 rb ; 04 -DEF OBJECT_FLAGS2 rb ; 05 -DEF OBJECT_PALETTE rb ; 06 -DEF OBJECT_WALKING rb ; 07 -DEF OBJECT_DIRECTION rb ; 08 -DEF OBJECT_STEP_TYPE rb ; 09 -DEF OBJECT_STEP_DURATION rb ; 0a -DEF OBJECT_ACTION rb ; 0b -DEF OBJECT_STEP_FRAME rb ; 0c -DEF OBJECT_FACING rb ; 0d -DEF OBJECT_TILE rb ; 0e -DEF OBJECT_LAST_TILE rb ; 0f -DEF OBJECT_MAP_X rb ; 10 -DEF OBJECT_MAP_Y rb ; 11 -DEF OBJECT_LAST_MAP_X rb ; 12 -DEF OBJECT_LAST_MAP_Y rb ; 13 -DEF OBJECT_INIT_X rb ; 14 -DEF OBJECT_INIT_Y rb ; 15 -DEF OBJECT_RADIUS rb ; 16 -DEF OBJECT_SPRITE_X rb ; 17 -DEF OBJECT_SPRITE_Y rb ; 18 -DEF OBJECT_SPRITE_X_OFFSET rb ; 19 -DEF OBJECT_SPRITE_Y_OFFSET rb ; 1a -DEF OBJECT_MOVEMENT_INDEX rb ; 1b -DEF OBJECT_STEP_INDEX rb ; 1c -DEF OBJECT_1D rb ; 1d -DEF OBJECT_1E rb ; 1e -DEF OBJECT_JUMP_HEIGHT rb ; 1f -DEF OBJECT_RANGE rb ; 20 - rb_skip 7 +DEF OBJECT_SPRITE rb ; 00 +DEF OBJECT_OBJECT_EVENT_INDEX rb ; 01 +DEF OBJECT_SPRITE_TILE rb ; 02 +DEF OBJECT_MOVEMENT_TYPE rb ; 03 +DEF OBJECT_FLAGS1 rb ; 04 +DEF OBJECT_FLAGS2 rb ; 05 +DEF OBJECT_PALETTE rb ; 06 +DEF OBJECT_WALKING rb ; 07 +DEF OBJECT_DIRECTION rb ; 08 +DEF OBJECT_STEP_TYPE rb ; 09 +DEF OBJECT_STEP_DURATION rb ; 0a +DEF OBJECT_ACTION rb ; 0b +DEF OBJECT_STEP_FRAME rb ; 0c +DEF OBJECT_FACING rb ; 0d +DEF OBJECT_TILE rb ; 0e +DEF OBJECT_LAST_TILE rb ; 0f +DEF OBJECT_MAP_X rb ; 10 +DEF OBJECT_MAP_Y rb ; 11 +DEF OBJECT_LAST_MAP_X rb ; 12 +DEF OBJECT_LAST_MAP_Y rb ; 13 +DEF OBJECT_INIT_X rb ; 14 +DEF OBJECT_INIT_Y rb ; 15 +DEF OBJECT_RADIUS rb ; 16 +DEF OBJECT_SPRITE_X rb ; 17 +DEF OBJECT_SPRITE_Y rb ; 18 +DEF OBJECT_SPRITE_X_OFFSET rb ; 19 +DEF OBJECT_SPRITE_Y_OFFSET rb ; 1a +DEF OBJECT_MOVEMENT_INDEX rb ; 1b +DEF OBJECT_STEP_INDEX rb ; 1c +DEF OBJECT_1D rb ; 1d +DEF OBJECT_1E rb ; 1e +DEF OBJECT_JUMP_HEIGHT rb ; 1f +DEF OBJECT_RANGE rb ; 20 + rb_skip 7 DEF OBJECT_LENGTH EQU _RS DEF NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs @@ -96,32 +96,32 @@ DEF ABSOLUTE_TILE_ID_F EQU 2 DEF RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F DEF ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F -; map_object struct members (see macros/ram.asm) +; object_event_struct members (see macros/ram.asm) ; struct initialized by object_event macro (see macros/scripts/maps.asm) rsreset -DEF MAPOBJECT_OBJECT_STRUCT_ID rb ; 0 -DEF MAPOBJECT_SPRITE rb ; 1 -DEF MAPOBJECT_Y_COORD rb ; 2 -DEF MAPOBJECT_X_COORD rb ; 3 -DEF MAPOBJECT_MOVEMENT rb ; 4 -DEF MAPOBJECT_RADIUS rb ; 5 -DEF MAPOBJECT_HOUR_1 rb ; 6 -DEF MAPOBJECT_HOUR_2 rb ; 7 -rsset MAPOBJECT_HOUR_2 -DEF MAPOBJECT_TIMEOFDAY rb ; 7 -DEF MAPOBJECT_PALETTE rb ; 8 -rsset MAPOBJECT_PALETTE -DEF MAPOBJECT_TYPE rb ; 8 -DEF MAPOBJECT_SIGHT_RANGE rb ; 9 -DEF MAPOBJECT_SCRIPT_POINTER rw ; a -DEF MAPOBJECT_EVENT_FLAG rw ; c +DEF OBJECT_EVENT_OBJECT_STRUCT_ID rb ; 0 +DEF OBJECT_EVENT_SPRITE rb ; 1 +DEF OBJECT_EVENT_Y_COORD rb ; 2 +DEF OBJECT_EVENT_X_COORD rb ; 3 +DEF OBJECT_EVENT_MOVEMENT rb ; 4 +DEF OBJECT_EVENT_RADIUS rb ; 5 +DEF OBJECT_EVENT_HOUR_1 rb ; 6 +DEF OBJECT_EVENT_HOUR_2 rb ; 7 +rsset OBJECT_EVENT_HOUR_2 +DEF OBJECT_EVENT_TIMEOFDAY rb ; 7 +DEF OBJECT_EVENT_PALETTE rb ; 8 +rsset OBJECT_EVENT_PALETTE +DEF OBJECT_EVENT_TYPE rb ; 8 +DEF OBJECT_EVENT_SIGHT_RANGE rb ; 9 +DEF OBJECT_EVENT_SCRIPT_POINTER rw ; a +DEF OBJECT_EVENT_EVENT_FLAG rw ; c rb_skip 2 -DEF MAPOBJECT_LENGTH EQU _RS -DEF NUM_OBJECTS EQU 16 +DEF OBJECT_EVENT_LENGTH EQU _RS +DEF NUM_OBJECT_EVENT_STRUCTS EQU 16 DEF PLAYER_OBJECT EQU 0 -DEF MAPOBJECT_PALETTE_MASK EQU %11110000 -DEF MAPOBJECT_TYPE_MASK EQU %00001111 +DEF OBJECT_EVENT_PALETTE_MASK EQU %11110000 +DEF OBJECT_EVENT_TYPE_MASK EQU %00001111 ; SpriteMovementData struct members (see data/sprites/map_objects.asm) rsreset @@ -133,8 +133,8 @@ DEF SPRITEMOVEATTR_FLAGS2 rb ; 4 DEF SPRITEMOVEATTR_PALFLAGS rb ; 5 DEF NUM_SPRITEMOVEDATA_FIELDS EQU _RS -DEF MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2 -DEF MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2 +DEF OBJECT_EVENT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2 +DEF OBJECT_EVENT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2 ; SpriteMovementData indexes (see data/sprites/map_objects.asm) const_def diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 29f9de8bf54..d1b16fda072 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -112,8 +112,8 @@ DEF CALLBACK_SIZE EQU 3 ; callback DEF WARP_EVENT_SIZE EQU 5 ; warp_event DEF COORD_EVENT_SIZE EQU 8 ; coord_event DEF BG_EVENT_SIZE EQU 5 ; bg_event -; An object_event is a map_object without its initial MAPOBJECT_OBJECT_STRUCT_ID or final padding -DEF OBJECT_EVENT_SIZE EQU MAPOBJECT_LENGTH - 3 ; 13 +; An object_event is a map_object without its initial OBJECT_EVENT_OBJECT_STRUCT_ID or final padding +DEF OBJECT_EVENT_SIZE EQU OBJECT_EVENT_LENGTH - 3 ; 13 ; A coord_event for scene -1 will always activate, ; regardless of the map's scene variable value. diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index b14568bdba8..72a69f86fe6 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -2638,13 +2638,13 @@ If `IsInArray` returns `nc`, data at `bc` will be executed as code. **Fix:** Edit `ReadObjectEvents` in [home/map.asm](https://github.com/pret/pokecrystal/blob/master/home/map.asm): ```diff --; get NUM_OBJECTS - [wCurMapObjectEventCount] -+; get NUM_OBJECTS - [wCurMapObjectEventCount] - 1 +-; get NUM_OBJECT_EVENT_STRUCTS - [wCurMapObjectEventCount] ++; get NUM_OBJECT_EVENT_STRUCTS - [wCurMapObjectEventCount] - 1 -; BUG: ReadObjectEvents overflows into wObjectMasks (see docs/bugs_and_glitches.md) ld a, [wCurMapObjectEventCount] ld c, a -- ld a, NUM_OBJECTS -+ ld a, NUM_OBJECTS - 1 +- ld a, NUM_OBJECT_EVENT_STRUCTS ++ ld a, NUM_OBJECT_EVENT_STRUCTS - 1 sub c jr z, .skip + jr c, .skip @@ -2652,7 +2652,7 @@ If `IsInArray` returns `nc`, data at `bc` will be executed as code. ; could have done "inc hl" instead ld bc, 1 add hl, bc - ld bc, MAPOBJECT_LENGTH + ld bc, OBJECT_EVENT_LENGTH .loop ld [hl], 0 inc hl diff --git a/engine/events/battle_tower/battle_tower.asm b/engine/events/battle_tower/battle_tower.asm index a1a8eeeefc1..05274bd7e64 100644 --- a/engine/events/battle_tower/battle_tower.asm +++ b/engine/events/battle_tower/battle_tower.asm @@ -1559,7 +1559,7 @@ LoadOpponentTrainerAndPokemonWithOTSprite: ld c, a ld b, 0 ld d, 0 - ld hl, wMapObjects + ld hl, wObjectEventStructs add hl, bc inc hl ld a, [wBTTempOTSprite] diff --git a/engine/events/overworld.asm b/engine/events/overworld.asm index 8fa37c572a6..6545975bfef 100644 --- a/engine/events/overworld.asm +++ b/engine/events/overworld.asm @@ -1338,12 +1338,12 @@ GetFacingObject: ldh a, [hObjectStructIndex] call GetObjectStruct - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] ldh [hLastTalked], a call GetMapObject - ld hl, MAPOBJECT_MOVEMENT + ld hl, OBJECT_EVENT_MOVEMENT add hl, bc ld a, [hl] ld d, a diff --git a/engine/overworld/cmd_queue.asm b/engine/overworld/cmd_queue.asm index cd8c5e4aa02..dd5e01d0e7f 100644 --- a/engine/overworld/cmd_queue.asm +++ b/engine/overworld/cmd_queue.asm @@ -248,14 +248,14 @@ CmdQueue_Type3: .IsPlayerFacingDown: push bc - ld bc, wPlayerStruct + ld bc, wPlayerObjectStruct call GetSpriteDirection and a pop bc ret CmdQueue_StoneTable: - ld de, wPlayerStruct + ld de, wPlayerObjectStruct ld a, NUM_OBJECT_STRUCTS .loop push af diff --git a/engine/overworld/events.asm b/engine/overworld/events.asm index 7b669e660bf..17d18a2c7df 100644 --- a/engine/overworld/events.asm +++ b/engine/overworld/events.asm @@ -539,17 +539,17 @@ TryObjectEvent: call PlayTalkObject ldh a, [hObjectStructIndex] call GetObjectStruct - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] ldh [hLastTalked], a ldh a, [hLastTalked] call GetMapObject - ld hl, MAPOBJECT_TYPE + ld hl, OBJECT_EVENT_TYPE add hl, bc ld a, [hl] - and MAPOBJECT_TYPE_MASK + and OBJECT_EVENT_TYPE_MASK ; BUG: TryObjectEvent arbitrary code execution (see docs/bugs_and_glitches.md) push bc @@ -583,7 +583,7 @@ ObjectEventTypeArray: db -1 ; end .script - ld hl, MAPOBJECT_SCRIPT_POINTER + ld hl, OBJECT_EVENT_SCRIPT_POINTER add hl, bc ld a, [hli] ld h, [hl] @@ -593,7 +593,7 @@ ObjectEventTypeArray: ret .itemball - ld hl, MAPOBJECT_SCRIPT_POINTER + ld hl, OBJECT_EVENT_SCRIPT_POINTER add hl, bc ld a, [hli] ld h, [hl] diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm index 44e547db788..5ac7df543d2 100644 --- a/engine/overworld/map_objects.asm +++ b/engine/overworld/map_objects.asm @@ -4,7 +4,7 @@ INCLUDE "data/sprites/map_objects.asm" DeleteMapObject:: push bc - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] push af @@ -45,7 +45,7 @@ CheckObjectStillVisible: add 1 sub e jr c, .ok - cp MAPOBJECT_SCREEN_WIDTH + cp OBJECT_EVENT_SCREEN_WIDTH jr nc, .ok ld a, [wYCoord] ld e, a @@ -55,7 +55,7 @@ CheckObjectStillVisible: add 1 sub e jr c, .ok - cp MAPOBJECT_SCREEN_HEIGHT + cp OBJECT_EVENT_SCREEN_HEIGHT jr nc, .ok jr .yes @@ -71,7 +71,7 @@ CheckObjectStillVisible: add 1 sub e jr c, .ok2 - cp MAPOBJECT_SCREEN_WIDTH + cp OBJECT_EVENT_SCREEN_WIDTH jr nc, .ok2 ld a, [wYCoord] ld e, a @@ -81,7 +81,7 @@ CheckObjectStillVisible: add 1 sub e jr c, .ok2 - cp MAPOBJECT_SCREEN_HEIGHT + cp OBJECT_EVENT_SCREEN_HEIGHT jr nc, .ok2 .yes and a @@ -409,7 +409,7 @@ GetMapObjectField: ; unreferenced push bc ld e, a ld d, 0 - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] call GetMapObject @@ -419,14 +419,14 @@ GetMapObjectField: ; unreferenced ret RestoreDefaultMovement: - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] cp -1 jr z, .ok push bc call GetMapObject - ld hl, MAPOBJECT_MOVEMENT + ld hl, OBJECT_EVENT_MOVEMENT add hl, bc ld a, [hl] pop bc @@ -1659,7 +1659,7 @@ StepFunction_StrengthBoulder: ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] ld b, a @@ -2212,10 +2212,10 @@ RespawnPlayer: ret RespawnObject: - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS ret nc call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 @@ -2299,7 +2299,7 @@ CheckObjectOnScreen: cp d jr z, .equal_x jr nc, .nope - add MAPOBJECT_SCREEN_WIDTH - 1 + add OBJECT_EVENT_SCREEN_WIDTH - 1 cp d jr c, .nope .equal_x @@ -2307,7 +2307,7 @@ CheckObjectOnScreen: cp e jr z, .equal_y jr nc, .nope - add MAPOBJECT_SCREEN_HEIGHT - 1 + add OBJECT_EVENT_SCREEN_HEIGHT - 1 cp e jr c, .nope .equal_y @@ -2508,7 +2508,7 @@ SpawnInCustomFacing: SpawnInFacingDown: ld a, DOWN _ContinueSpawnFacing: - ld bc, wPlayerStruct + ld bc, wPlayerObjectStruct call SetSpriteDirection ret @@ -2526,7 +2526,7 @@ _SetPlayerPalette: swap a and PALETTE_MASK ld d, a - ld bc, wPlayerStruct + ld bc, wPlayerObjectStruct ld hl, OBJECT_PALETTE add hl, bc ld a, [hl] @@ -2638,7 +2638,7 @@ _UnfreezeFollowerObject:: ret z push bc call GetObjectStruct - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] pop bc @@ -2685,14 +2685,14 @@ UnfreezeObject: ; unreferenced ret ResetObject: - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] cp -1 jp z, .set_standing push bc call GetMapObject - ld hl, MAPOBJECT_MOVEMENT + ld hl, OBJECT_EVENT_MOVEMENT add hl, bc ld a, [hl] pop bc @@ -3029,16 +3029,16 @@ InitSprites: ret .Addresses: - dw wPlayerStruct - dw wObject1Struct - dw wObject2Struct - dw wObject3Struct - dw wObject4Struct - dw wObject5Struct - dw wObject6Struct - dw wObject7Struct - dw wObject8Struct - dw wObject9Struct - dw wObject10Struct - dw wObject11Struct - dw wObject12Struct + dw wPlayerObjectStruct + dw wObjectStruct1 + dw wObjectStruct2 + dw wObjectStruct3 + dw wObjectStruct4 + dw wObjectStruct5 + dw wObjectStruct6 + dw wObjectStruct7 + dw wObjectStruct8 + dw wObjectStruct9 + dw wObjectStruct10 + dw wObjectStruct11 + dw wObjectStruct12 diff --git a/engine/overworld/map_objects_2.asm b/engine/overworld/map_objects_2.asm index d89d95fc05a..33ee4880cc8 100644 --- a/engine/overworld/map_objects_2.asm +++ b/engine/overworld/map_objects_2.asm @@ -1,10 +1,10 @@ LoadObjectMasks: ld hl, wObjectMasks xor a - ld bc, NUM_OBJECTS + ld bc, NUM_OBJECT_EVENT_STRUCTS call ByteFill nop - ld bc, wMapObjects + ld bc, wObjectEventStructs ld de, wObjectMasks xor a .loop @@ -19,23 +19,23 @@ LoadObjectMasks: ld [de], a inc de pop bc - ld hl, MAPOBJECT_LENGTH + ld hl, OBJECT_EVENT_LENGTH add hl, bc ld b, h ld c, l pop af inc a - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS jr nz, .loop ret CheckObjectFlag: - ld hl, MAPOBJECT_SPRITE + ld hl, OBJECT_EVENT_SPRITE add hl, bc ld a, [hl] and a jr z, .masked - ld hl, MAPOBJECT_EVENT_FLAG + ld hl, OBJECT_EVENT_EVENT_FLAG add hl, bc ld a, [hli] ld e, a diff --git a/engine/overworld/overworld.asm b/engine/overworld/overworld.asm index d8b9f7d4cc1..f966f2a424e 100644 --- a/engine/overworld/overworld.asm +++ b/engine/overworld/overworld.asm @@ -86,7 +86,7 @@ GetPlayerSprite: .finish ld [wUsedSprites + 0], a ld [wPlayerSprite], a - ld [wPlayerObjectSprite], a + ld [wPlayerObjectEventSprite], a ret INCLUDE "data/sprites/player_sprites.asm" @@ -103,17 +103,17 @@ AddMapSprites: ret AddIndoorSprites: - ld hl, wMap1ObjectSprite + ld hl, wObjectEvent1Sprite ld a, 1 .loop push af ld a, [hl] call AddSpriteGFX - ld de, MAPOBJECT_LENGTH + ld de, OBJECT_EVENT_LENGTH add hl, de pop af inc a - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS jr nz, .loop ret diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm index dec66f6adae..cb3c67b983c 100644 --- a/engine/overworld/player_object.asm +++ b/engine/overworld/player_object.asm @@ -27,7 +27,7 @@ SpawnPlayer: call PlayerSpawn_ConvertCoords ld a, PLAYER_OBJECT call GetMapObject - ld hl, MAPOBJECT_PALETTE + ld hl, OBJECT_EVENT_PALETTE add hl, bc ln e, PAL_NPC_RED, OBJECTTYPE_SCRIPT ld a, [wPlayerSpriteSetupFlags] @@ -42,7 +42,7 @@ SpawnPlayer: ld [hl], e ld a, PLAYER_OBJECT ldh [hMapObjectIndex], a - ld bc, wMapObjects + ld bc, wObjectEventStructs ld a, PLAYER_OBJECT ldh [hObjectStructIndex], a ld de, wObjectStructs @@ -62,10 +62,10 @@ CopyDECoordsToMapObject:: ld a, b call GetMapObject pop de - ld hl, MAPOBJECT_X_COORD + ld hl, OBJECT_EVENT_X_COORD add hl, bc ld [hl], d - ld hl, MAPOBJECT_Y_COORD + ld hl, OBJECT_EVENT_Y_COORD add hl, bc ld [hl], e ret @@ -106,7 +106,7 @@ RefreshPlayerCoords: ld hl, wPlayerMapX sub [hl] ld [hl], d - ld hl, wMapObjects + MAPOBJECT_X_COORD + ld hl, wObjectEventStructs + OBJECT_EVENT_X_COORD ld [hl], d ld hl, wPlayerLastMapX ld [hl], d @@ -117,7 +117,7 @@ RefreshPlayerCoords: ld hl, wPlayerMapY sub [hl] ld [hl], e - ld hl, wMapObjects + MAPOBJECT_Y_COORD + ld hl, wObjectEventStructs + OBJECT_EVENT_Y_COORD ld [hl], e ld hl, wPlayerLastMapY ld [hl], e @@ -169,14 +169,14 @@ CopyMapObjectToObjectStruct: .CopyMapObjectToTempObject: ldh a, [hObjectStructIndex] - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld [hl], a ldh a, [hMapObjectIndex] ld [wTempObjectCopyMapObjectIndex], a - ld hl, MAPOBJECT_SPRITE + ld hl, OBJECT_EVENT_SPRITE add hl, bc ld a, [hl] ld [wTempObjectCopySprite], a @@ -188,54 +188,54 @@ CopyMapObjectToObjectStruct: call GetSpritePalette ld [wTempObjectCopyPalette], a - ld hl, MAPOBJECT_PALETTE + ld hl, OBJECT_EVENT_PALETTE add hl, bc ld a, [hl] - and MAPOBJECT_PALETTE_MASK + and OBJECT_EVENT_PALETTE_MASK jr z, .skip_color_override swap a and PALETTE_MASK ld [wTempObjectCopyPalette], a .skip_color_override - ld hl, MAPOBJECT_MOVEMENT + ld hl, OBJECT_EVENT_MOVEMENT add hl, bc ld a, [hl] ld [wTempObjectCopyMovement], a - ld hl, MAPOBJECT_SIGHT_RANGE + ld hl, OBJECT_EVENT_SIGHT_RANGE add hl, bc ld a, [hl] ld [wTempObjectCopyRange], a - ld hl, MAPOBJECT_X_COORD + ld hl, OBJECT_EVENT_X_COORD add hl, bc ld a, [hl] ld [wTempObjectCopyX], a - ld hl, MAPOBJECT_Y_COORD + ld hl, OBJECT_EVENT_Y_COORD add hl, bc ld a, [hl] ld [wTempObjectCopyY], a - ld hl, MAPOBJECT_RADIUS + ld hl, OBJECT_EVENT_RADIUS add hl, bc ld a, [hl] ld [wTempObjectCopyRadius], a ret InitializeVisibleSprites: - ld bc, wMap1Object + ld bc, wObjectEventStruct1 ld a, 1 .loop ldh [hMapObjectIndex], a - ld hl, MAPOBJECT_SPRITE + ld hl, OBJECT_EVENT_SPRITE add hl, bc ld a, [hl] and a jr z, .next - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 @@ -246,24 +246,24 @@ InitializeVisibleSprites: ld a, [wYCoord] ld e, a - ld hl, MAPOBJECT_X_COORD + ld hl, OBJECT_EVENT_X_COORD add hl, bc ld a, [hl] add 1 sub d jr c, .next - cp MAPOBJECT_SCREEN_WIDTH + cp OBJECT_EVENT_SCREEN_WIDTH jr nc, .next - ld hl, MAPOBJECT_Y_COORD + ld hl, OBJECT_EVENT_Y_COORD add hl, bc ld a, [hl] add 1 sub e jr c, .next - cp MAPOBJECT_SCREEN_HEIGHT + cp OBJECT_EVENT_SCREEN_HEIGHT jr nc, .next push bc @@ -272,13 +272,13 @@ InitializeVisibleSprites: jp c, .ret .next - ld hl, MAPOBJECT_LENGTH + ld hl, OBJECT_EVENT_LENGTH add hl, bc ld b, h ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS jr nz, .loop ret @@ -312,32 +312,32 @@ CheckObjectEnteringVisibleRange:: ld d, a ld a, [wXCoord] ld e, a - ld bc, wMap1Object + ld bc, wObjectEventStruct1 ld a, 1 .loop_v ldh [hMapObjectIndex], a - ld hl, MAPOBJECT_SPRITE + ld hl, OBJECT_EVENT_SPRITE add hl, bc ld a, [hl] and a jr z, .next_v - ld hl, MAPOBJECT_Y_COORD + ld hl, OBJECT_EVENT_Y_COORD add hl, bc ld a, d cp [hl] jr nz, .next_v - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 jr nz, .next_v - ld hl, MAPOBJECT_X_COORD + ld hl, OBJECT_EVENT_X_COORD add hl, bc ld a, [hl] add 1 sub e jr c, .next_v - cp MAPOBJECT_SCREEN_WIDTH + cp OBJECT_EVENT_SCREEN_WIDTH jr nc, .next_v push de push bc @@ -346,13 +346,13 @@ CheckObjectEnteringVisibleRange:: pop de .next_v - ld hl, MAPOBJECT_LENGTH + ld hl, OBJECT_EVENT_LENGTH add hl, bc ld b, h ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS jr nz, .loop_v ret @@ -368,32 +368,32 @@ CheckObjectEnteringVisibleRange:: ld e, a ld a, [wYCoord] ld d, a - ld bc, wMap1Object + ld bc, wObjectEventStruct1 ld a, 1 .loop_h ldh [hMapObjectIndex], a - ld hl, MAPOBJECT_SPRITE + ld hl, OBJECT_EVENT_SPRITE add hl, bc ld a, [hl] and a jr z, .next_h - ld hl, MAPOBJECT_X_COORD + ld hl, OBJECT_EVENT_X_COORD add hl, bc ld a, e cp [hl] jr nz, .next_h - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 jr nz, .next_h - ld hl, MAPOBJECT_Y_COORD + ld hl, OBJECT_EVENT_Y_COORD add hl, bc ld a, [hl] add 1 sub d jr c, .next_h - cp MAPOBJECT_SCREEN_HEIGHT + cp OBJECT_EVENT_SCREEN_HEIGHT jr nc, .next_h push de push bc @@ -402,19 +402,19 @@ CheckObjectEnteringVisibleRange:: pop de .next_h - ld hl, MAPOBJECT_LENGTH + ld hl, OBJECT_EVENT_LENGTH add hl, bc ld b, h ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS jr nz, .loop_h ret CopyTempObjectToObjectStruct: ld a, [wTempObjectCopyMapObjectIndex] - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, de ld [hl], a @@ -540,7 +540,7 @@ TrainerWalkToPlayer: ; get player object struct, load to de ld a, c call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] call GetObjectStruct @@ -551,7 +551,7 @@ TrainerWalkToPlayer: pop bc ld a, b call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] call GetObjectStruct @@ -695,7 +695,7 @@ GetRelativeFacing:: ; Determines which way map object e would have to turn to face map object d. Returns carry if it's impossible for whatever reason. ld a, d call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp NUM_OBJECT_STRUCTS @@ -703,7 +703,7 @@ GetRelativeFacing:: ld d, a ld a, e call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp NUM_OBJECT_STRUCTS diff --git a/engine/overworld/scripting.asm b/engine/overworld/scripting.asm index 9f1ebbaf1bf..694528dfa7c 100644 --- a/engine/overworld/scripting.asm +++ b/engine/overworld/scripting.asm @@ -987,7 +987,7 @@ Script_disappear: ApplyEventActionAppearDisappear: push bc call GetMapObject - ld hl, MAPOBJECT_EVENT_FLAG + ld hl, OBJECT_EVENT_EVENT_FLAG add hl, bc pop bc ld e, [hl] diff --git a/home/map.asm b/home/map.asm index 14786eece72..5e7853ed0a7 100644 --- a/home/map.asm +++ b/home/map.asm @@ -569,7 +569,7 @@ ReadObjectEvents:: push hl call ClearObjectStructs pop de - ld hl, wMap1Object + ld hl, wObjectEventStruct1 ld a, [de] inc de ld [wCurMapObjectEventCount], a @@ -581,18 +581,18 @@ ReadObjectEvents:: ld a, [wCurMapObjectEventCount] call CopyMapObjectEvents -; get NUM_OBJECTS - [wCurMapObjectEventCount] +; get NUM_OBJECT_EVENT_STRUCTS - [wCurMapObjectEventCount] ; BUG: ReadObjectEvents overflows into wObjectMasks (see docs/bugs_and_glitches.md) ld a, [wCurMapObjectEventCount] ld c, a - ld a, NUM_OBJECTS + ld a, NUM_OBJECT_EVENT_STRUCTS sub c jr z, .skip ; could have done "inc hl" instead ld bc, 1 add hl, bc - ld bc, MAPOBJECT_LENGTH + ld bc, OBJECT_EVENT_LENGTH .loop ld [hl], 0 inc hl @@ -626,7 +626,7 @@ CopyMapObjectEvents:: jr nz, .loop2 pop hl - ld bc, MAPOBJECT_LENGTH + ld bc, OBJECT_EVENT_LENGTH add hl, bc pop bc dec c @@ -634,13 +634,13 @@ CopyMapObjectEvents:: ret ClearObjectStructs:: - ld hl, wObject1Struct + ld hl, wObjectStruct1 ld bc, OBJECT_LENGTH * (NUM_OBJECT_STRUCTS - 1) xor a call ByteFill ; Just to make sure (this is rather pointless) - ld hl, wObject1Struct + ld hl, wObjectStruct1 ld de, OBJECT_LENGTH ld c, NUM_OBJECT_STRUCTS - 1 xor a diff --git a/home/map_objects.asm b/home/map_objects.asm index 328556596e2..52907bf9136 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -201,8 +201,8 @@ CheckStandingOnEntrance:: GetMapObject:: ; Return the location of map object a in bc. - ld hl, wMapObjects - ld bc, MAPOBJECT_LENGTH + ld hl, wObjectEventStructs + ld bc, OBJECT_EVENT_LENGTH call AddNTimes ld b, h ld c, l @@ -212,7 +212,7 @@ CheckObjectVisibility:: ; Sets carry if the object is not visible on the screen. ldh [hMapObjectIndex], a call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 @@ -227,12 +227,12 @@ CheckObjectVisibility:: ret CheckObjectTime:: - ld hl, MAPOBJECT_HOUR_1 + ld hl, OBJECT_EVENT_HOUR_1 add hl, bc ld a, [hl] cp -1 jr nz, .check_hour - ld hl, MAPOBJECT_TIMEOFDAY + ld hl, OBJECT_EVENT_TIMEOFDAY add hl, bc ld a, [hl] cp -1 @@ -246,7 +246,7 @@ CheckObjectTime:: .ok ld a, [hl] - ld hl, MAPOBJECT_TIMEOFDAY + ld hl, OBJECT_EVENT_TIMEOFDAY add hl, bc and [hl] jr nz, .timeofday_always @@ -264,10 +264,10 @@ CheckObjectTime:: db NITE .check_hour - ld hl, MAPOBJECT_HOUR_1 + ld hl, OBJECT_EVENT_HOUR_1 add hl, bc ld d, [hl] - ld hl, MAPOBJECT_HOUR_2 + ld hl, OBJECT_EVENT_HOUR_2 add hl, bc ld e, [hl] ld hl, hHours @@ -317,7 +317,7 @@ UnmaskCopyMapObjectStruct:: ApplyDeletionToMapObject:: ldh [hMapObjectIndex], a call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 @@ -358,19 +358,19 @@ CopyPlayerObjectTemplate:: ld [de], a inc de pop hl - ld bc, MAPOBJECT_LENGTH - 1 + ld bc, OBJECT_EVENT_LENGTH - 1 call CopyBytes ret DeleteFollowerMapObject: ; unreferenced call GetMapObject - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] push af ld [hl], -1 inc hl - ld bc, MAPOBJECT_LENGTH - 1 + ld bc, OBJECT_EVENT_LENGTH - 1 xor a call ByteFill pop af diff --git a/home/stone_queue.asm b/home/stone_queue.asm index cb4c652c624..5a9ed6d193f 100644 --- a/home/stone_queue.asm +++ b/home/stone_queue.asm @@ -11,7 +11,7 @@ HandleStoneQueue:: ret .WarpAction: - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, de ld a, [hl] cp $ff diff --git a/home/trainers.asm b/home/trainers.asm index f271ef14e0a..065aa669547 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -15,7 +15,7 @@ _CheckTrainerBattle:: ; Skip the player object. ld a, 1 - ld de, wMap1Object + ld de, wObjectEventStruct1 .loop @@ -24,22 +24,22 @@ _CheckTrainerBattle:: push de ; Has a sprite - ld hl, MAPOBJECT_SPRITE + ld hl, OBJECT_EVENT_SPRITE add hl, de ld a, [hl] and a jr z, .next ; Is a trainer - ld hl, MAPOBJECT_TYPE + ld hl, OBJECT_EVENT_TYPE add hl, de ld a, [hl] - and MAPOBJECT_TYPE_MASK + and OBJECT_EVENT_TYPE_MASK cp OBJECTTYPE_TRAINER jr nz, .next ; Is visible on the map - ld hl, MAPOBJECT_OBJECT_STRUCT_ID + ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, de ld a, [hl] cp -1 @@ -51,7 +51,7 @@ _CheckTrainerBattle:: jr nc, .next ; ...within their sight range - ld hl, MAPOBJECT_SIGHT_RANGE + ld hl, OBJECT_EVENT_SIGHT_RANGE add hl, de ld a, [hl] cp b @@ -60,7 +60,7 @@ _CheckTrainerBattle:: ; And hasn't already been beaten push bc push de - ld hl, MAPOBJECT_SCRIPT_POINTER + ld hl, OBJECT_EVENT_SCRIPT_POINTER add hl, de ld a, [hli] ld h, [hl] @@ -78,14 +78,14 @@ _CheckTrainerBattle:: .next pop de - ld hl, MAPOBJECT_LENGTH + ld hl, OBJECT_EVENT_LENGTH add hl, de ld d, h ld e, l pop af inc a - cp NUM_OBJECTS + cp NUM_OBJECT_EVENT_STRUCTS jr nz, .loop xor a ret @@ -113,7 +113,7 @@ LoadTrainer_continue:: ldh a, [hLastTalked] call GetMapObject - ld hl, MAPOBJECT_SCRIPT_POINTER + ld hl, OBJECT_EVENT_SCRIPT_POINTER add hl, bc ld a, [wSeenTrainerBank] call GetFarWord @@ -205,11 +205,11 @@ FacingPlayerDistance:: CheckTrainerFlag:: ; unreferenced push bc - ld hl, OBJECT_MAP_OBJECT_INDEX + ld hl, OBJECT_OBJECT_EVENT_INDEX add hl, bc ld a, [hl] call GetMapObject - ld hl, MAPOBJECT_SCRIPT_POINTER + ld hl, OBJECT_EVENT_SCRIPT_POINTER add hl, bc ld a, [hli] ld h, [hl] diff --git a/macros/ram.asm b/macros/ram.asm index aa05d8325a4..eacf327a710 100644 --- a/macros/ram.asm +++ b/macros/ram.asm @@ -329,21 +329,21 @@ MACRO object_struct \1StructEnd:: ENDM -MACRO map_object -\1ObjectStructID:: db -\1ObjectSprite:: db -\1ObjectYCoord:: db -\1ObjectXCoord:: db -\1ObjectMovement:: db -\1ObjectRadius:: db -\1ObjectHour1:: db -\1ObjectHour2:: -\1ObjectTimeOfDay:: db -\1ObjectPalette:: -\1ObjectType:: db -\1ObjectSightRange:: db -\1ObjectScript:: dw -\1ObjectEventFlag:: dw +MACRO object_event_struct +\1ID:: db +\1Sprite:: db +\1YCoord:: db +\1XCoord:: db +\1Movement:: db +\1Radius:: db +\1Hour1:: db +\1Hour2:: +\1TimeOfDay:: db +\1Palette:: +\1Type:: db +\1SightRange:: db +\1Script:: dw +\1EventFlag:: dw ds 2 ENDM diff --git a/ram/wram.asm b/ram/wram.asm index dca2dae61f5..970267a6f14 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -2931,24 +2931,24 @@ wFollowerMovementQueueLength:: db wFollowMovementQueue:: ds 5 wObjectStructs:: -wPlayerStruct:: object_struct wPlayer ; player is object struct 0 +wPlayerObjectStruct:: object_struct wPlayer ; player is object struct 0 ; wObjectStruct1 - wObjectStruct12 for n, 1, NUM_OBJECT_STRUCTS -wObject{d:n}Struct:: object_struct wObject{d:n} +wObjectStruct{d:n}:: object_struct wObject{d:n} endr wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE ds 40 -wMapObjects:: -wPlayerObject:: map_object wPlayer ; player is map object 0 -; wMap1Object - wMap15Object -for n, 1, NUM_OBJECTS -wMap{d:n}Object:: map_object wMap{d:n} +wObjectEventStructs:: +wPlayerObjectEventStruct:: object_event_struct wPlayerObjectEvent ; player is object event 0 +; wObjectEventStruct1 - wObjectEventStruct15 +for n, 1, NUM_OBJECT_EVENT_STRUCTS +wObjectEventStruct{d:n}:: object_event_struct wObjectEvent{d:n} endr -wObjectMasks:: ds NUM_OBJECTS +wObjectMasks:: ds NUM_OBJECT_EVENT_STRUCTS wVariableSprites:: ds $100 - SPRITE_VARS From d1d694836f6250733825d44868eed2fe888e4f5e Mon Sep 17 00:00:00 2001 From: vulcandth Date: Thu, 24 Aug 2023 19:45:25 -0500 Subject: [PATCH 2/2] Use `wObjects` and `wObjectEvents` --- constants/map_object_constants.asm | 4 +- docs/bugs_and_glitches.md | 8 +-- engine/events/battle_tower/battle_tower.asm | 2 +- engine/overworld/cmd_queue.asm | 6 +- engine/overworld/map_objects.asm | 68 ++++++++++----------- engine/overworld/map_objects_2.asm | 6 +- engine/overworld/npc_movement.asm | 10 +-- engine/overworld/overworld.asm | 2 +- engine/overworld/player_movement.asm | 2 +- engine/overworld/player_object.asm | 28 ++++----- home/map.asm | 14 ++--- home/map_objects.asm | 12 ++-- home/trainers.asm | 4 +- ram/wram.asm | 24 ++++---- 14 files changed, 95 insertions(+), 95 deletions(-) diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm index 61f5e263cd5..864d6c208f2 100644 --- a/constants/map_object_constants.asm +++ b/constants/map_object_constants.asm @@ -35,7 +35,7 @@ DEF OBJECT_JUMP_HEIGHT rb ; 1f DEF OBJECT_RANGE rb ; 20 rb_skip 7 DEF OBJECT_LENGTH EQU _RS -DEF NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs +DEF NUM_OBJECTS EQU 13 ; see wObjects ; object_struct OBJECT_DIRECTION values DEF OW_DOWN EQU DOWN << 2 @@ -117,7 +117,7 @@ DEF OBJECT_EVENT_SCRIPT_POINTER rw ; a DEF OBJECT_EVENT_EVENT_FLAG rw ; c rb_skip 2 DEF OBJECT_EVENT_LENGTH EQU _RS -DEF NUM_OBJECT_EVENT_STRUCTS EQU 16 +DEF NUM_OBJECT_EVENTS EQU 16 DEF PLAYER_OBJECT EQU 0 DEF OBJECT_EVENT_PALETTE_MASK EQU %11110000 diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 72a69f86fe6..dbac146e6db 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -2638,13 +2638,13 @@ If `IsInArray` returns `nc`, data at `bc` will be executed as code. **Fix:** Edit `ReadObjectEvents` in [home/map.asm](https://github.com/pret/pokecrystal/blob/master/home/map.asm): ```diff --; get NUM_OBJECT_EVENT_STRUCTS - [wCurMapObjectEventCount] -+; get NUM_OBJECT_EVENT_STRUCTS - [wCurMapObjectEventCount] - 1 +-; get NUM_OBJECT_EVENTS - [wCurMapObjectEventCount] ++; get NUM_OBJECT_EVENTS - [wCurMapObjectEventCount] - 1 -; BUG: ReadObjectEvents overflows into wObjectMasks (see docs/bugs_and_glitches.md) ld a, [wCurMapObjectEventCount] ld c, a -- ld a, NUM_OBJECT_EVENT_STRUCTS -+ ld a, NUM_OBJECT_EVENT_STRUCTS - 1 +- ld a, NUM_OBJECT_EVENTS ++ ld a, NUM_OBJECT_EVENTS - 1 sub c jr z, .skip + jr c, .skip diff --git a/engine/events/battle_tower/battle_tower.asm b/engine/events/battle_tower/battle_tower.asm index 05274bd7e64..bfb7c94bb00 100644 --- a/engine/events/battle_tower/battle_tower.asm +++ b/engine/events/battle_tower/battle_tower.asm @@ -1559,7 +1559,7 @@ LoadOpponentTrainerAndPokemonWithOTSprite: ld c, a ld b, 0 ld d, 0 - ld hl, wObjectEventStructs + ld hl, wObjectEvents add hl, bc inc hl ld a, [wBTTempOTSprite] diff --git a/engine/overworld/cmd_queue.asm b/engine/overworld/cmd_queue.asm index dd5e01d0e7f..f190753de49 100644 --- a/engine/overworld/cmd_queue.asm +++ b/engine/overworld/cmd_queue.asm @@ -248,15 +248,15 @@ CmdQueue_Type3: .IsPlayerFacingDown: push bc - ld bc, wPlayerObjectStruct + ld bc, wPlayerObject call GetSpriteDirection and a pop bc ret CmdQueue_StoneTable: - ld de, wPlayerObjectStruct - ld a, NUM_OBJECT_STRUCTS + ld de, wPlayerObject + ld a, NUM_OBJECTS .loop push af diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm index 5ac7df543d2..860d4e447ed 100644 --- a/engine/overworld/map_objects.asm +++ b/engine/overworld/map_objects.asm @@ -2096,8 +2096,8 @@ DespawnEmote: ret .DeleteEmote: - ld de, wObjectStructs - ld a, NUM_OBJECT_STRUCTS + ld de, wObjects + ld a, NUM_OBJECTS .loop push af ld hl, OBJECT_FLAGS1 @@ -2170,7 +2170,7 @@ UpdateAllObjectsFrozen:: ld a, [wVramState] bit 0, a ret z - ld bc, wObjectStructs + ld bc, wObjects xor a .loop ldh [hMapObjectIndex], a @@ -2184,7 +2184,7 @@ UpdateAllObjectsFrozen:: ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop ret @@ -2212,7 +2212,7 @@ RespawnPlayer: ret RespawnObject: - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS ret nc call GetMapObject ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID @@ -2220,7 +2220,7 @@ RespawnObject: ld a, [hl] cp -1 ret z - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS ret nc call GetObjectStruct call DoesObjectHaveASprite @@ -2230,7 +2230,7 @@ RespawnObject: HideAllObjects: xor a - ld bc, wObjectStructs + ld bc, wObjects .loop ldh [hMapObjectIndex], a call SetFacing_Standing @@ -2240,7 +2240,7 @@ HideAllObjects: ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop ret @@ -2453,7 +2453,7 @@ ResetStepVector: ret DoStepsForAllObjects: - ld bc, wObjectStructs + ld bc, wObjects xor a .loop ldh [hMapObjectIndex], a @@ -2467,7 +2467,7 @@ DoStepsForAllObjects: ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop ret @@ -2508,7 +2508,7 @@ SpawnInCustomFacing: SpawnInFacingDown: ld a, DOWN _ContinueSpawnFacing: - ld bc, wPlayerObjectStruct + ld bc, wPlayerObject call SetSpriteDirection ret @@ -2526,7 +2526,7 @@ _SetPlayerPalette: swap a and PALETTE_MASK ld d, a - ld bc, wPlayerObjectStruct + ld bc, wPlayerObject ld hl, OBJECT_PALETTE add hl, bc ld a, [hl] @@ -2612,7 +2612,7 @@ FreezeObject: ; unreferenced ret FreezeAllObjects: - ld bc, wObjectStructs + ld bc, wObjects xor a .loop push af @@ -2628,7 +2628,7 @@ FreezeAllObjects: ld c, l pop af inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop ret @@ -2655,7 +2655,7 @@ _UnfreezeFollowerObject:: UnfreezeAllObjects:: push bc - ld bc, wObjectStructs + ld bc, wObjects xor a .loop push af @@ -2671,7 +2671,7 @@ UnfreezeAllObjects:: ld c, l pop af inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop pop bc ret @@ -2773,8 +2773,8 @@ ApplyBGMapAnchorToObjects: ld d, a ld a, [wPlayerBGMapOffsetY] ld e, a - ld bc, wObjectStructs - ld a, NUM_OBJECT_STRUCTS + ld bc, wObjects + ld a, NUM_OBJECTS .loop push af call DoesObjectHaveASprite @@ -2822,10 +2822,10 @@ InitSprites: .DeterminePriorities: xor a ld hl, wObjectPriorities - ld bc, NUM_OBJECT_STRUCTS + ld bc, NUM_OBJECTS call ByteFill ld d, 0 - ld bc, wObjectStructs + ld bc, wObjects ld hl, wObjectPriorities .loop push hl @@ -2868,7 +2868,7 @@ InitSprites: .next inc d ld a, d - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop ret @@ -3029,16 +3029,16 @@ InitSprites: ret .Addresses: - dw wPlayerObjectStruct - dw wObjectStruct1 - dw wObjectStruct2 - dw wObjectStruct3 - dw wObjectStruct4 - dw wObjectStruct5 - dw wObjectStruct6 - dw wObjectStruct7 - dw wObjectStruct8 - dw wObjectStruct9 - dw wObjectStruct10 - dw wObjectStruct11 - dw wObjectStruct12 + dw wPlayerObject + dw wObject1 + dw wObject2 + dw wObject3 + dw wObject4 + dw wObject5 + dw wObject6 + dw wObject7 + dw wObject8 + dw wObject9 + dw wObject10 + dw wObject11 + dw wObject12 diff --git a/engine/overworld/map_objects_2.asm b/engine/overworld/map_objects_2.asm index 33ee4880cc8..1b40c0aaec6 100644 --- a/engine/overworld/map_objects_2.asm +++ b/engine/overworld/map_objects_2.asm @@ -1,10 +1,10 @@ LoadObjectMasks: ld hl, wObjectMasks xor a - ld bc, NUM_OBJECT_EVENT_STRUCTS + ld bc, NUM_OBJECT_EVENTS call ByteFill nop - ld bc, wObjectEventStructs + ld bc, wObjectEvents ld de, wObjectMasks xor a .loop @@ -25,7 +25,7 @@ LoadObjectMasks: ld c, l pop af inc a - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS jr nz, .loop ret diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index a47bdc44d3f..75cf35cc890 100644 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -248,7 +248,7 @@ CheckFacingObject:: ld e, a .not_counter - ld bc, wObjectStructs ; redundant + ld bc, wObjects ; redundant ld a, 0 ldh [hMapObjectIndex], a call IsNPCAtCoord @@ -312,7 +312,7 @@ IsObjectFacingSomeoneElse: ; unreferenced ret IsNPCAtCoord: - ld bc, wObjectStructs + ld bc, wObjects xor a .loop ldh [hObjectStructIndex], a @@ -375,7 +375,7 @@ IsNPCAtCoord: ld c, l ldh a, [hObjectStructIndex] inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop and a ret @@ -478,7 +478,7 @@ IsNPCAtPlayerCoord: ; unreferenced ld d, a ld a, [wPlayerMapY] ld e, a - ld bc, wObjectStructs + ld bc, wObjects xor a .loop ldh [hObjectStructIndex], a @@ -530,7 +530,7 @@ IsNPCAtPlayerCoord: ; unreferenced ld c, l ldh a, [hObjectStructIndex] inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop xor a ret diff --git a/engine/overworld/overworld.asm b/engine/overworld/overworld.asm index f966f2a424e..77bca9be8ff 100644 --- a/engine/overworld/overworld.asm +++ b/engine/overworld/overworld.asm @@ -113,7 +113,7 @@ AddIndoorSprites: add hl, de pop af inc a - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS jr nz, .loop ret diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm index 0c392484400..90a10e9df66 100644 --- a/engine/overworld/player_movement.asm +++ b/engine/overworld/player_movement.asm @@ -630,7 +630,7 @@ ENDM add e ld e, a ; Find an object struct with coordinates equal to d,e - ld bc, wObjectStructs ; redundant + ld bc, wObjects ; redundant farcall IsNPCAtCoord jr nc, .no_npc call .CheckStrengthBoulder diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm index cb3c67b983c..62a6078268c 100644 --- a/engine/overworld/player_object.asm +++ b/engine/overworld/player_object.asm @@ -42,10 +42,10 @@ SpawnPlayer: ld [hl], e ld a, PLAYER_OBJECT ldh [hMapObjectIndex], a - ld bc, wObjectEventStructs + ld bc, wObjectEvents ld a, PLAYER_OBJECT ldh [hObjectStructIndex], a - ld de, wObjectStructs + ld de, wObjects call CopyMapObjectToObjectStruct ld a, PLAYER ld [wCenteredObject], a @@ -106,7 +106,7 @@ RefreshPlayerCoords: ld hl, wPlayerMapX sub [hl] ld [hl], d - ld hl, wObjectEventStructs + OBJECT_EVENT_X_COORD + ld hl, wObjectEvents + OBJECT_EVENT_X_COORD ld [hl], d ld hl, wPlayerLastMapX ld [hl], d @@ -117,7 +117,7 @@ RefreshPlayerCoords: ld hl, wPlayerMapY sub [hl] ld [hl], e - ld hl, wObjectEventStructs + OBJECT_EVENT_Y_COORD + ld hl, wObjectEvents + OBJECT_EVENT_Y_COORD ld [hl], e ld hl, wPlayerLastMapY ld [hl], e @@ -133,7 +133,7 @@ CopyObjectStruct:: and a ret nz ; masked - ld hl, wObjectStructs + OBJECT_LENGTH * 1 + ld hl, wObjects + OBJECT_LENGTH * 1 ld a, 1 ld de, OBJECT_LENGTH .loop @@ -144,7 +144,7 @@ CopyObjectStruct:: add hl, de ldh a, [hObjectStructIndex] inc a - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nz, .loop scf ret ; overflow @@ -225,7 +225,7 @@ CopyMapObjectToObjectStruct: ret InitializeVisibleSprites: - ld bc, wObjectEventStruct1 + ld bc, wObjectEvent1 ld a, 1 .loop ldh [hMapObjectIndex], a @@ -278,7 +278,7 @@ InitializeVisibleSprites: ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS jr nz, .loop ret @@ -312,7 +312,7 @@ CheckObjectEnteringVisibleRange:: ld d, a ld a, [wXCoord] ld e, a - ld bc, wObjectEventStruct1 + ld bc, wObjectEvent1 ld a, 1 .loop_v ldh [hMapObjectIndex], a @@ -352,7 +352,7 @@ CheckObjectEnteringVisibleRange:: ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS jr nz, .loop_v ret @@ -368,7 +368,7 @@ CheckObjectEnteringVisibleRange:: ld e, a ld a, [wYCoord] ld d, a - ld bc, wObjectEventStruct1 + ld bc, wObjectEvent1 ld a, 1 .loop_h ldh [hMapObjectIndex], a @@ -408,7 +408,7 @@ CheckObjectEnteringVisibleRange:: ld c, l ldh a, [hMapObjectIndex] inc a - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS jr nz, .loop_h ret @@ -698,7 +698,7 @@ GetRelativeFacing:: ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nc, .carry ld d, a ld a, e @@ -706,7 +706,7 @@ GetRelativeFacing:: ld hl, OBJECT_EVENT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS jr nc, .carry ld e, a call .GetFacing_e_relativeto_d diff --git a/home/map.asm b/home/map.asm index 5e7853ed0a7..37497f17bcb 100644 --- a/home/map.asm +++ b/home/map.asm @@ -569,7 +569,7 @@ ReadObjectEvents:: push hl call ClearObjectStructs pop de - ld hl, wObjectEventStruct1 + ld hl, wObjectEvent1 ld a, [de] inc de ld [wCurMapObjectEventCount], a @@ -581,11 +581,11 @@ ReadObjectEvents:: ld a, [wCurMapObjectEventCount] call CopyMapObjectEvents -; get NUM_OBJECT_EVENT_STRUCTS - [wCurMapObjectEventCount] +; get NUM_OBJECT_EVENTS - [wCurMapObjectEventCount] ; BUG: ReadObjectEvents overflows into wObjectMasks (see docs/bugs_and_glitches.md) ld a, [wCurMapObjectEventCount] ld c, a - ld a, NUM_OBJECT_EVENT_STRUCTS + ld a, NUM_OBJECT_EVENTS sub c jr z, .skip @@ -634,15 +634,15 @@ CopyMapObjectEvents:: ret ClearObjectStructs:: - ld hl, wObjectStruct1 - ld bc, OBJECT_LENGTH * (NUM_OBJECT_STRUCTS - 1) + ld hl, wObject1 + ld bc, OBJECT_LENGTH * (NUM_OBJECTS - 1) xor a call ByteFill ; Just to make sure (this is rather pointless) - ld hl, wObjectStruct1 + ld hl, wObject1 ld de, OBJECT_LENGTH - ld c, NUM_OBJECT_STRUCTS - 1 + ld c, NUM_OBJECTS - 1 xor a .loop ld [hl], a diff --git a/home/map_objects.asm b/home/map_objects.asm index 52907bf9136..53c3391855c 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -201,7 +201,7 @@ CheckStandingOnEntrance:: GetMapObject:: ; Return the location of map object a in bc. - ld hl, wObjectEventStructs + ld hl, wObjectEvents ld bc, OBJECT_EVENT_LENGTH call AddNTimes ld b, h @@ -376,7 +376,7 @@ DeleteFollowerMapObject: ; unreferenced pop af cp -1 ret z - cp NUM_OBJECT_STRUCTS + cp NUM_OBJECTS ret nc ld b, a ld a, [wObjectFollow_Leader] @@ -423,9 +423,9 @@ FindFirstEmptyObjectStruct:: ; Preserves BC and DE. push bc push de - ld hl, wObjectStructs + ld hl, wObjects ld de, OBJECT_LENGTH - ld c, NUM_OBJECT_STRUCTS + ld c, NUM_OBJECTS .loop ld a, [hl] and a @@ -437,7 +437,7 @@ FindFirstEmptyObjectStruct:: jr .done .break - ld a, NUM_OBJECT_STRUCTS + ld a, NUM_OBJECTS sub c scf @@ -595,7 +595,7 @@ UpdateSprites:: GetObjectStruct:: ld bc, OBJECT_LENGTH - ld hl, wObjectStructs + ld hl, wObjects call AddNTimes ld b, h ld c, l diff --git a/home/trainers.asm b/home/trainers.asm index 065aa669547..216c2856c11 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -15,7 +15,7 @@ _CheckTrainerBattle:: ; Skip the player object. ld a, 1 - ld de, wObjectEventStruct1 + ld de, wObjectEvent1 .loop @@ -85,7 +85,7 @@ _CheckTrainerBattle:: pop af inc a - cp NUM_OBJECT_EVENT_STRUCTS + cp NUM_OBJECT_EVENTS jr nz, .loop xor a ret diff --git a/ram/wram.asm b/ram/wram.asm index 970267a6f14..681c0203a6f 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -163,7 +163,7 @@ wIndexedMovement2Pointer:: dw wContinueReadingMovement:: db UNION -wObjectPriorities:: ds NUM_OBJECT_STRUCTS +wObjectPriorities:: ds NUM_OBJECTS NEXTU wMovementPointer:: dw @@ -2930,25 +2930,25 @@ wCenteredObject:: db wFollowerMovementQueueLength:: db wFollowMovementQueue:: ds 5 -wObjectStructs:: -wPlayerObjectStruct:: object_struct wPlayer ; player is object struct 0 -; wObjectStruct1 - wObjectStruct12 -for n, 1, NUM_OBJECT_STRUCTS -wObjectStruct{d:n}:: object_struct wObject{d:n} +wObjects:: +wPlayerObject:: object_struct wPlayer ; player is object 0 +; wObject1 - wObject12 +for n, 1, NUM_OBJECTS +wObject{d:n}:: object_struct wObject{d:n} endr wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE ds 40 -wObjectEventStructs:: -wPlayerObjectEventStruct:: object_event_struct wPlayerObjectEvent ; player is object event 0 -; wObjectEventStruct1 - wObjectEventStruct15 -for n, 1, NUM_OBJECT_EVENT_STRUCTS -wObjectEventStruct{d:n}:: object_event_struct wObjectEvent{d:n} +wObjectEvents:: +wPlayerObjectEvent:: object_event_struct wPlayerObjectEvent ; player is object event 0 +; wObjectEvent1 - wObjectEvent15 +for n, 1, NUM_OBJECT_EVENTS +wObjectEvent{d:n}:: object_event_struct wObjectEvent{d:n} endr -wObjectMasks:: ds NUM_OBJECT_EVENT_STRUCTS +wObjectMasks:: ds NUM_OBJECT_EVENTS wVariableSprites:: ds $100 - SPRITE_VARS