From dd5f6ccd3b14281952c4183a988e10968faaeed1 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 5 Feb 2022 13:42:46 -0500 Subject: [PATCH 001/105] Add union for clone objects --- include/global.fieldmap.h | 40 +++++++++++++++++++---------- src/event_object_movement.c | 50 ++++++++++++++++++------------------- src/field_player_avatar.c | 12 ++++----- src/overworld.c | 18 ++++++------- src/quest_log.c | 8 +++--- src/quest_log_objects.c | 4 +-- src/vs_seeker.c | 18 +++++++------ 7 files changed, 83 insertions(+), 67 deletions(-) diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 7ab2c12e4..520f06738 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -83,21 +83,35 @@ struct BackupMapLayout u16 *map; }; +#define OBJ_KIND_NORMAL 0 +#define OBJ_KIND_CLONE 255 + struct ObjectEventTemplate { - /*0x00*/ u8 localId; - /*0x01*/ u8 graphicsId; - /*0x02*/ u8 inConnection; - /*0x04*/ s16 x; - /*0x06*/ s16 y; - /*0x08*/ u8 elevation; - /*0x09*/ u8 movementType; - /*0x0A*/ u16 movementRangeX:4; - u16 movementRangeY:4; - /*0x0C*/ u16 trainerType; - /*0x0E*/ u16 trainerRange_berryTreeId; - /*0x10*/ const u8 *script; - /*0x14*/ u16 flagId; + u8 localId; + u8 graphicsId; + u8 kind; // The "kind" field determines how to access objUnion union below. + s16 x, y; + union { + struct { + u8 elevation; + u8 movementType; + u16 movementRangeX:4; + u16 movementRangeY:4; + u16 trainerType; + u16 trainerRange_berryTreeId; + } normal; + struct { + u8 targetLocalId; + u8 padding1; + u16 padding2:4; + u16 padding3:4; + u16 targetMapNum; + u16 targetMapGroup; + } clone; + } objUnion; + const u8 *script; + u16 flagId; }; /*size = 0x18*/ struct WarpEvent diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 52fb0c078..2da251912 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1322,7 +1322,7 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, const struct MapHeader *mapHeader; u8 objectEventId; u8 var0; - u8 elevation; + u8 localId; s16 x; s16 y; s16 x2; @@ -1331,24 +1331,24 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, s16 y3; var0 = 0; - elevation = 0; + localId = 0; x2 = 0; y2 = 0; x3 = 0; y3 = 0; - if (template->inConnection == 0xFF) + if (template->kind == OBJ_KIND_CLONE) { var0 = 1; - elevation = template->elevation; - mapNum = template->trainerType; - mapGroup = template->trainerRange_berryTreeId & 0xFF; + localId = template->objUnion.clone.targetLocalId; + mapNum = template->objUnion.clone.targetMapNum; + mapGroup = template->objUnion.clone.targetMapGroup & 0xFF; x2 = template->x; y2 = template->y; x3 = template->x; y3 = template->y; mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); - template = &(mapHeader->events->objectEvents[elevation - 1]); + template = &(mapHeader->events->objectEvents[localId - 1]); } if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId) || !sub_805E238(template, var0, x3, y3)) @@ -1368,7 +1368,7 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->active = TRUE; objectEvent->triggerGroundEffectsOnMove = TRUE; objectEvent->graphicsId = template->graphicsId; - objectEvent->movementType = template->movementType; + objectEvent->movementType = template->objUnion.normal.movementType; objectEvent->localId = template->localId; objectEvent->mapNum = mapNum; objectEvent->mapGroup = mapGroup; @@ -1378,14 +1378,14 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->currentCoords.y = y; objectEvent->previousCoords.x = x; objectEvent->previousCoords.y = y; - objectEvent->currentElevation = template->elevation; - objectEvent->previousElevation = template->elevation; - objectEvent->rangeX = template->movementRangeX; - objectEvent->rangeY = template->movementRangeY; - objectEvent->trainerType = template->trainerType; - objectEvent->trainerRange_berryTreeId = template->trainerRange_berryTreeId; + objectEvent->currentElevation = template->objUnion.normal.elevation; + objectEvent->previousElevation = template->objUnion.normal.elevation; + objectEvent->rangeX = template->objUnion.normal.movementRangeX; + objectEvent->rangeY = template->objUnion.normal.movementRangeY; + objectEvent->trainerType = template->objUnion.normal.trainerType; + objectEvent->trainerRange_berryTreeId = template->objUnion.normal.trainerRange_berryTreeId; objectEvent->mapNum = mapNum; // oops (yes this is required for matching) - objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType]; + objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->objUnion.normal.movementType]; SetObjectEventDirection(objectEvent, objectEvent->previousMovementDirection); SetObjectEventDynamicGraphicsId(objectEvent); if (gRangedMovementTypes[objectEvent->movementType]) @@ -1675,15 +1675,15 @@ int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 y -= 7; objectEventTemplate.localId = localId; objectEventTemplate.graphicsId = graphicsId; - objectEventTemplate.inConnection = 0; + objectEventTemplate.kind = OBJ_KIND_NORMAL; objectEventTemplate.x = x; objectEventTemplate.y = y; - objectEventTemplate.elevation = z; - objectEventTemplate.movementType = movementBehavior; - objectEventTemplate.movementRangeX = 0; - objectEventTemplate.movementRangeY = 0; - objectEventTemplate.trainerType = 0; - objectEventTemplate.trainerRange_berryTreeId = 0; + objectEventTemplate.objUnion.normal.elevation = z; + objectEventTemplate.objUnion.normal.movementType = movementBehavior; + objectEventTemplate.objUnion.normal.movementRangeX = 0; + objectEventTemplate.objUnion.normal.movementRangeY = 0; + objectEventTemplate.objUnion.normal.trainerType = 0; + objectEventTemplate.objUnion.normal.trainerRange_berryTreeId = 0; return SpawnSpecialObjectEvent(&objectEventTemplate); } @@ -1729,7 +1729,7 @@ static void MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(u16 g static void MakeObjectTemplateFromObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEventTemplate->graphicsId, objectEventTemplate->movementType, spriteTemplate, subspriteTables); + MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEventTemplate->graphicsId, objectEventTemplate->objUnion.normal.movementType, spriteTemplate, subspriteTables); } u8 AddPseudoObjectEvent(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority) @@ -2588,7 +2588,7 @@ u8 sub_805FC9C(u8 localId, u8 mapNum, u8 mapGroup) u16 GetObjectEventFlagByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { - return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->trainerType; + return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->objUnion.normal.trainerType; } u8 sub_808F0BC(u8 objectEventId) @@ -2683,7 +2683,7 @@ void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *objectEvent, u objectEventTemplate = GetBaseTemplateForObjectEvent(objectEvent); if (objectEventTemplate != NULL) { - objectEventTemplate->movementType = movementType; + objectEventTemplate->objUnion.normal.movementType = movementType; } } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 16426cdc4..059ec1094 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1291,12 +1291,12 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) playerObjEventTemplate.graphicsId = GetPlayerAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_GFX_NORMAL, gender); playerObjEventTemplate.x = x - 7; playerObjEventTemplate.y = y - 7; - playerObjEventTemplate.elevation = 0; - playerObjEventTemplate.movementType = MOVEMENT_TYPE_PLAYER; - playerObjEventTemplate.movementRangeX = 0; - playerObjEventTemplate.movementRangeY = 0; - playerObjEventTemplate.trainerType = 0; - playerObjEventTemplate.trainerRange_berryTreeId = 0; + playerObjEventTemplate.objUnion.normal.elevation = 0; + playerObjEventTemplate.objUnion.normal.movementType = MOVEMENT_TYPE_PLAYER; + playerObjEventTemplate.objUnion.normal.movementRangeX = 0; + playerObjEventTemplate.objUnion.normal.movementRangeY = 0; + playerObjEventTemplate.objUnion.normal.trainerType = 0; + playerObjEventTemplate.objUnion.normal.trainerRange_berryTreeId = 0; playerObjEventTemplate.script = NULL; playerObjEventTemplate.flagId = 0; objectEventId = SpawnSpecialObjectEvent(&playerObjEventTemplate); diff --git a/src/overworld.c b/src/overworld.c index cb5507b4c..89bf5d785 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -403,22 +403,22 @@ static void LoadObjEventTemplatesFromHeader(void) u8 i, j; for (i = 0, j = 0; i < gMapHeader.events->objectEventCount; i++) { - if (gMapHeader.events->objectEvents[i].inConnection == 0xFF) + if (gMapHeader.events->objectEvents[i].kind == OBJ_KIND_CLONE) { // load "in_connection" object from the connecting map - u8 localId = gMapHeader.events->objectEvents[i].elevation; - u8 mapNum = gMapHeader.events->objectEvents[i].trainerType; - u8 mapGroup = gMapHeader.events->objectEvents[i].trainerRange_berryTreeId; + u8 localId = gMapHeader.events->objectEvents[i].objUnion.clone.targetLocalId; + u8 mapNum = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapNum; + u8 mapGroup = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapGroup; const struct MapHeader * connectionMap = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); gSaveBlock1Ptr->objectEventTemplates[j] = connectionMap->events->objectEvents[localId - 1]; gSaveBlock1Ptr->objectEventTemplates[j].localId = gMapHeader.events->objectEvents[i].localId; gSaveBlock1Ptr->objectEventTemplates[j].x = gMapHeader.events->objectEvents[i].x; gSaveBlock1Ptr->objectEventTemplates[j].y = gMapHeader.events->objectEvents[i].y; - gSaveBlock1Ptr->objectEventTemplates[j].elevation = localId; - gSaveBlock1Ptr->objectEventTemplates[j].trainerType = mapNum; - gSaveBlock1Ptr->objectEventTemplates[j].trainerRange_berryTreeId = mapGroup; - gSaveBlock1Ptr->objectEventTemplates[j].inConnection = 0xFF; + gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetLocalId = localId; + gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetMapNum = mapNum; + gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetMapGroup = mapGroup; + gSaveBlock1Ptr->objectEventTemplates[j].kind = OBJ_KIND_CLONE; j++; } else @@ -466,7 +466,7 @@ void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType) struct ObjectEventTemplate *objectEventTemplate = &savObjTemplates[i]; if (objectEventTemplate->localId == localId) { - objectEventTemplate->movementType = movementType; + objectEventTemplate->objUnion.normal.movementType = movementType; return; } } diff --git a/src/quest_log.c b/src/quest_log.c index 0032872fd..4f7c5866f 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -335,8 +335,8 @@ static void SetNPCInitialCoordsAtScene(u8 sceneNum) questLog->npcData[i].y = (u8)gSaveBlock1Ptr->objectEventTemplates[i].y; questLog->npcData[i].negy = FALSE; } - questLog->npcData[i].elevation = gSaveBlock1Ptr->objectEventTemplates[i].elevation; - questLog->npcData[i].movementType = gSaveBlock1Ptr->objectEventTemplates[i].movementType; + questLog->npcData[i].elevation = gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.elevation; + questLog->npcData[i].movementType = gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.movementType; } } @@ -525,8 +525,8 @@ static void QuestLogPlaybackSetObjectEventTemplates(u8 sceneNum) gSaveBlock1Ptr->objectEventTemplates[i].y = -(u8)questLog->npcData[i].y; else gSaveBlock1Ptr->objectEventTemplates[i].y = questLog->npcData[i].y; - gSaveBlock1Ptr->objectEventTemplates[i].elevation = questLog->npcData[i].elevation; - gSaveBlock1Ptr->objectEventTemplates[i].movementType = questLog->npcData[i].movementType; + gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.elevation = questLog->npcData[i].elevation; + gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.movementType = questLog->npcData[i].movementType; } SetSav1ObjectEventsFromQuestLog(questLog, gSaveBlock1Ptr->objectEventTemplates); diff --git a/src/quest_log_objects.c b/src/quest_log_objects.c index 47d328405..27f32b450 100644 --- a/src/quest_log_objects.c +++ b/src/quest_log_objects.c @@ -93,8 +93,8 @@ void SetSav1ObjectEventsFromQuestLog(const struct QuestLog * questLog, const str { gObjectEvents[i].initialCoords.x = templates[j].x + 7; gObjectEvents[i].initialCoords.y = templates[j].y + 7; - gObjectEvents[i].rangeX = templates[j].movementRangeX; - gObjectEvents[i].rangeY = templates[j].movementRangeY; + gObjectEvents[i].rangeX = templates[j].objUnion.normal.movementRangeX; + gObjectEvents[i].rangeY = templates[j].objUnion.normal.movementRangeY; } } diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 295976dd8..91db509f3 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -639,12 +639,12 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { if (( - templates[i].trainerType == TRAINER_TYPE_NORMAL - || templates[i].trainerType == TRAINER_TYPE_BURIED + templates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL + || templates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED ) && ( - templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4D - || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4E - || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4F + templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4D + || templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4E + || templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4F )) { movementType = GetRandomFaceDirectionMovementType(); @@ -654,7 +654,7 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) { SetTrainerMovementType(objectEvent, movementType); } - templates[i].movementType = movementType; + templates[i].objUnion.normal.movementType = movementType; } } } @@ -808,7 +808,7 @@ static void GatherNearbyTrainerInfo(void) for (objectEventIdx = 0; objectEventIdx < gMapHeader.events->objectEventCount; objectEventIdx++) { - if (templates[objectEventIdx].trainerType == 1 || templates[objectEventIdx].trainerType == 3) + if (templates[objectEventIdx].objUnion.normal.trainerType == 1 || templates[objectEventIdx].objUnion.normal.trainerType == 3) { sVsSeeker->trainerInfo[vsSeekerObjectIdx].script = templates[objectEventIdx].script; sVsSeeker->trainerInfo[vsSeekerObjectIdx].trainerIdx = GetTrainerFlagFromScript(templates[objectEventIdx].script); @@ -942,7 +942,9 @@ void ClearRematchStateByTrainerId(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { - if ((objectEventTemplates[i].trainerType == TRAINER_TYPE_NORMAL || objectEventTemplates[i].trainerType == TRAINER_TYPE_BURIED) && vsSeekerDataIdx == LookupVsSeekerOpponentInArray(sVsSeekerData, GetTrainerFlagFromScript(objectEventTemplates[i].script))) + if ((objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL + || objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) + && vsSeekerDataIdx == LookupVsSeekerOpponentInArray(sVsSeekerData, GetTrainerFlagFromScript(objectEventTemplates[i].script))) { struct ObjectEvent *objectEvent; From 38601cf09b77d1be4f1178d9ae5daf5f64034170 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 5 Feb 2022 14:02:35 -0500 Subject: [PATCH 002/105] Reformat clone objects in JSON --- asm/macros/map.inc | 20 +++++++++-- data/maps/BattleColosseum_2P/map.json | 1 + data/maps/BirthIsland_Exterior/map.json | 2 ++ data/maps/BirthIsland_Harbor/map.json | 2 ++ data/maps/CeladonCity/map.json | 26 +++++++++----- .../maps/CeladonCity_Condominiums_1F/map.json | 4 +++ .../maps/CeladonCity_Condominiums_2F/map.json | 2 ++ .../maps/CeladonCity_Condominiums_3F/map.json | 4 +++ .../map.json | 2 ++ .../CeladonCity_DepartmentStore_1F/map.json | 1 + .../CeladonCity_DepartmentStore_2F/map.json | 4 +++ .../CeladonCity_DepartmentStore_3F/map.json | 5 +++ .../CeladonCity_DepartmentStore_4F/map.json | 3 ++ .../CeladonCity_DepartmentStore_5F/map.json | 4 +++ .../CeladonCity_DepartmentStore_Roof/map.json | 2 ++ data/maps/CeladonCity_GameCorner/map.json | 11 ++++++ .../CeladonCity_GameCorner_PrizeRoom/map.json | 5 +++ data/maps/CeladonCity_Gym/map.json | 11 ++++++ data/maps/CeladonCity_Hotel/map.json | 4 +++ data/maps/CeladonCity_House1/map.json | 3 ++ .../CeladonCity_PokemonCenter_1F/map.json | 4 +++ .../CeladonCity_PokemonCenter_2F/map.json | 4 +++ data/maps/CeladonCity_Restaurant/map.json | 5 +++ data/maps/CeruleanCave_1F/map.json | 9 +++++ data/maps/CeruleanCave_2F/map.json | 13 +++++++ data/maps/CeruleanCave_B1F/map.json | 12 +++++++ data/maps/CeruleanCity/map.json | 23 +++++++----- data/maps/CeruleanCity_BikeShop/map.json | 3 ++ data/maps/CeruleanCity_Gym/map.json | 4 +++ data/maps/CeruleanCity_House1/map.json | 1 + data/maps/CeruleanCity_House2/map.json | 2 ++ data/maps/CeruleanCity_House3/map.json | 2 ++ data/maps/CeruleanCity_House4/map.json | 1 + data/maps/CeruleanCity_House5/map.json | 1 + data/maps/CeruleanCity_Mart/map.json | 3 ++ .../CeruleanCity_PokemonCenter_1F/map.json | 7 ++++ .../CeruleanCity_PokemonCenter_2F/map.json | 4 +++ data/maps/CinnabarIsland/map.json | 4 +++ data/maps/CinnabarIsland_Gym/map.json | 9 +++++ data/maps/CinnabarIsland_Mart/map.json | 3 ++ .../CinnabarIsland_PokemonCenter_1F/map.json | 7 ++++ .../CinnabarIsland_PokemonCenter_2F/map.json | 4 +++ .../map.json | 1 + .../map.json | 2 ++ .../CinnabarIsland_PokemonLab_Lounge/map.json | 3 ++ .../map.json | 2 ++ data/maps/DiglettsCave_NorthEntrance/map.json | 1 + data/maps/DiglettsCave_SouthEntrance/map.json | 1 + data/maps/FiveIsland/map.json | 14 +++----- data/maps/FiveIsland_Harbor/map.json | 2 ++ data/maps/FiveIsland_House1/map.json | 1 + data/maps/FiveIsland_House2/map.json | 1 + data/maps/FiveIsland_LostCave_Room1/map.json | 1 + data/maps/FiveIsland_LostCave_Room10/map.json | 2 ++ data/maps/FiveIsland_LostCave_Room11/map.json | 1 + data/maps/FiveIsland_LostCave_Room12/map.json | 1 + data/maps/FiveIsland_LostCave_Room13/map.json | 1 + data/maps/FiveIsland_LostCave_Room14/map.json | 1 + data/maps/FiveIsland_LostCave_Room4/map.json | 1 + data/maps/FiveIsland_Meadow/map.json | 7 ++++ data/maps/FiveIsland_MemorialPillar/map.json | 5 +++ .../maps/FiveIsland_PokemonCenter_1F/map.json | 5 +++ .../maps/FiveIsland_PokemonCenter_2F/map.json | 4 +++ data/maps/FiveIsland_ResortGorgeous/map.json | 8 +++++ .../FiveIsland_ResortGorgeous_House/map.json | 2 ++ data/maps/FiveIsland_RocketWarehouse/map.json | 10 ++++++ data/maps/FiveIsland_WaterLabyrinth/map.json | 2 ++ data/maps/FourIsland/map.json | 12 +++++++ data/maps/FourIsland_Harbor/map.json | 2 ++ data/maps/FourIsland_House1/map.json | 2 ++ data/maps/FourIsland_House2/map.json | 1 + data/maps/FourIsland_IcefallCave_1F/map.json | 2 ++ data/maps/FourIsland_IcefallCave_B1F/map.json | 2 ++ .../maps/FourIsland_IcefallCave_Back/map.json | 4 +++ data/maps/FourIsland_LoreleisHouse/map.json | 15 ++++++++ data/maps/FourIsland_Mart/map.json | 3 ++ .../maps/FourIsland_PokemonCenter_1F/map.json | 4 +++ .../maps/FourIsland_PokemonCenter_2F/map.json | 4 +++ data/maps/FourIsland_PokemonDayCare/map.json | 1 + data/maps/FuchsiaCity/map.json | 16 +++++++++ data/maps/FuchsiaCity_Gym/map.json | 8 +++++ data/maps/FuchsiaCity_House1/map.json | 3 ++ data/maps/FuchsiaCity_House2/map.json | 1 + data/maps/FuchsiaCity_House3/map.json | 1 + data/maps/FuchsiaCity_Mart/map.json | 3 ++ .../FuchsiaCity_PokemonCenter_1F/map.json | 4 +++ .../FuchsiaCity_PokemonCenter_2F/map.json | 4 +++ .../FuchsiaCity_SafariZone_Entrance/map.json | 2 ++ .../FuchsiaCity_SafariZone_Office/map.json | 4 +++ data/maps/FuchsiaCity_WardensHouse/map.json | 4 +++ data/maps/IndigoPlateau_Exterior/map.json | 2 ++ .../IndigoPlateau_PokemonCenter_1F/map.json | 8 +++++ .../IndigoPlateau_PokemonCenter_2F/map.json | 4 +++ data/maps/LavenderTown/map.json | 3 ++ data/maps/LavenderTown_House1/map.json | 2 ++ data/maps/LavenderTown_House2/map.json | 1 + data/maps/LavenderTown_Mart/map.json | 4 +++ .../LavenderTown_PokemonCenter_1F/map.json | 5 +++ .../LavenderTown_PokemonCenter_2F/map.json | 4 +++ .../map.json | 6 ++++ data/maps/MtEmber_Exterior/map.json | 20 +++++++++++ data/maps/MtEmber_RubyPath_1F/map.json | 5 +++ data/maps/MtEmber_RubyPath_B1F/map.json | 4 +++ .../maps/MtEmber_RubyPath_B1F_Stairs/map.json | 1 + data/maps/MtEmber_RubyPath_B2F/map.json | 7 ++++ .../maps/MtEmber_RubyPath_B2F_Stairs/map.json | 2 ++ data/maps/MtEmber_RubyPath_B3F/map.json | 10 ++++++ data/maps/MtEmber_RubyPath_B5F/map.json | 1 + data/maps/MtEmber_Summit/map.json | 5 +++ data/maps/MtEmber_SummitPath_2F/map.json | 9 +++++ data/maps/MtMoon_1F/map.json | 14 ++++++++ data/maps/MtMoon_B2F/map.json | 11 ++++++ data/maps/NavelRock_Base/map.json | 1 + data/maps/NavelRock_Harbor/map.json | 2 ++ data/maps/NavelRock_Summit/map.json | 1 + data/maps/OneIsland/map.json | 3 ++ data/maps/OneIsland_Harbor/map.json | 2 ++ data/maps/OneIsland_House1/map.json | 2 ++ data/maps/OneIsland_House2/map.json | 1 + data/maps/OneIsland_KindleRoad/map.json | 29 +++++++++++++++ .../OneIsland_KindleRoad_EmberSpa/map.json | 6 ++++ data/maps/OneIsland_PokemonCenter_1F/map.json | 6 ++++ data/maps/OneIsland_PokemonCenter_2F/map.json | 4 +++ data/maps/OneIsland_TreasureBeach/map.json | 2 ++ data/maps/PalletTown/map.json | 3 ++ data/maps/PalletTown_PlayersHouse_1F/map.json | 1 + .../maps/PalletTown_ProfessorOaksLab/map.json | 10 ++++++ data/maps/PalletTown_RivalsHouse/map.json | 2 ++ data/maps/PewterCity/map.json | 7 ++++ data/maps/PewterCity_Gym/map.json | 3 ++ data/maps/PewterCity_House1/map.json | 3 ++ data/maps/PewterCity_House2/map.json | 2 ++ data/maps/PewterCity_Mart/map.json | 3 ++ data/maps/PewterCity_Museum_1F/map.json | 6 ++++ data/maps/PewterCity_Museum_2F/map.json | 5 +++ .../maps/PewterCity_PokemonCenter_1F/map.json | 7 ++++ .../maps/PewterCity_PokemonCenter_2F/map.json | 4 +++ data/maps/PokemonLeague_AgathasRoom/map.json | 1 + data/maps/PokemonLeague_BrunosRoom/map.json | 1 + .../maps/PokemonLeague_ChampionsRoom/map.json | 2 ++ data/maps/PokemonLeague_HallOfFame/map.json | 1 + data/maps/PokemonLeague_LancesRoom/map.json | 1 + data/maps/PokemonLeague_LoreleisRoom/map.json | 1 + data/maps/PokemonMansion_1F/map.json | 5 +++ data/maps/PokemonMansion_2F/map.json | 4 +++ data/maps/PokemonMansion_3F/map.json | 4 +++ data/maps/PokemonMansion_B1F/map.json | 6 ++++ data/maps/PokemonTower_1F/map.json | 5 +++ data/maps/PokemonTower_2F/map.json | 2 ++ data/maps/PokemonTower_3F/map.json | 4 +++ data/maps/PokemonTower_4F/map.json | 6 ++++ data/maps/PokemonTower_5F/map.json | 7 ++++ data/maps/PokemonTower_6F/map.json | 5 +++ data/maps/PokemonTower_7F/map.json | 4 +++ data/maps/PowerPlant/map.json | 8 +++++ data/maps/RecordCorner/map.json | 1 + data/maps/RockTunnel_1F/map.json | 10 ++++++ data/maps/RockTunnel_B1F/map.json | 26 ++++++++++++++ data/maps/RocketHideout_B1F/map.json | 7 ++++ data/maps/RocketHideout_B2F/map.json | 5 +++ data/maps/RocketHideout_B3F/map.json | 5 +++ data/maps/RocketHideout_B4F/map.json | 9 +++++ data/maps/Route1/map.json | 2 ++ data/maps/Route10/map.json | 10 ++++++ data/maps/Route10_PokemonCenter_1F/map.json | 5 +++ data/maps/Route10_PokemonCenter_2F/map.json | 4 +++ data/maps/Route11/map.json | 13 +++++++ data/maps/Route11_EastEntrance_1F/map.json | 2 ++ data/maps/Route11_EastEntrance_2F/map.json | 2 ++ data/maps/Route12/map.json | 14 ++++++++ data/maps/Route12_FishingHouse/map.json | 1 + data/maps/Route12_NorthEntrance_1F/map.json | 1 + data/maps/Route12_NorthEntrance_2F/map.json | 1 + data/maps/Route13/map.json | 11 ++++++ data/maps/Route14/map.json | 15 ++++++++ data/maps/Route15/map.json | 25 ++++++++----- data/maps/Route15_WestEntrance_1F/map.json | 1 + data/maps/Route15_WestEntrance_2F/map.json | 1 + data/maps/Route16/map.json | 10 ++++++ data/maps/Route16_House/map.json | 2 ++ data/maps/Route16_NorthEntrance_1F/map.json | 2 ++ data/maps/Route16_NorthEntrance_2F/map.json | 3 ++ data/maps/Route17/map.json | 10 ++++++ data/maps/Route18/map.json | 3 ++ data/maps/Route18_EastEntrance_1F/map.json | 1 + data/maps/Route18_EastEntrance_2F/map.json | 1 + data/maps/Route19/map.json | 12 +++++++ data/maps/Route2/map.json | 18 +++++----- data/maps/Route20/map.json | 11 ++++++ data/maps/Route21_North/map.json | 17 +++++---- data/maps/Route21_South/map.json | 5 +++ data/maps/Route22/map.json | 1 + data/maps/Route22_NorthEntrance/map.json | 1 + data/maps/Route23/map.json | 7 ++++ data/maps/Route24/map.json | 8 +++++ data/maps/Route25/map.json | 13 +++++++ data/maps/Route25_SeaCottage/map.json | 2 ++ data/maps/Route2_EastBuilding/map.json | 2 ++ data/maps/Route2_House/map.json | 2 ++ .../map.json | 3 ++ .../map.json | 2 ++ data/maps/Route3/map.json | 9 +++++ data/maps/Route4/map.json | 18 +++++----- data/maps/Route4_PokemonCenter_1F/map.json | 6 ++++ data/maps/Route4_PokemonCenter_2F/map.json | 4 +++ data/maps/Route5_PokemonDayCare/map.json | 1 + data/maps/Route5_SouthEntrance/map.json | 1 + data/maps/Route6/map.json | 6 ++++ data/maps/Route6_NorthEntrance/map.json | 1 + data/maps/Route7/map.json | 12 ++----- data/maps/Route7_EastEntrance/map.json | 1 + data/maps/Route8/map.json | 15 ++++++++ data/maps/Route8_WestEntrance/map.json | 1 + data/maps/Route9/map.json | 12 +++++++ data/maps/SSAnne_1F_Corridor/map.json | 2 ++ data/maps/SSAnne_1F_Room1/map.json | 1 + data/maps/SSAnne_1F_Room2/map.json | 4 +++ data/maps/SSAnne_1F_Room3/map.json | 3 ++ data/maps/SSAnne_1F_Room4/map.json | 1 + data/maps/SSAnne_1F_Room5/map.json | 1 + data/maps/SSAnne_1F_Room6/map.json | 1 + data/maps/SSAnne_1F_Room7/map.json | 1 + data/maps/SSAnne_2F_Corridor/map.json | 2 ++ data/maps/SSAnne_2F_Room1/map.json | 1 + data/maps/SSAnne_2F_Room2/map.json | 3 ++ data/maps/SSAnne_2F_Room3/map.json | 2 ++ data/maps/SSAnne_2F_Room4/map.json | 3 ++ data/maps/SSAnne_2F_Room5/map.json | 2 ++ data/maps/SSAnne_2F_Room6/map.json | 2 ++ data/maps/SSAnne_3F_Corridor/map.json | 1 + data/maps/SSAnne_B1F_Room1/map.json | 2 ++ data/maps/SSAnne_B1F_Room2/map.json | 2 ++ data/maps/SSAnne_B1F_Room3/map.json | 2 ++ data/maps/SSAnne_B1F_Room4/map.json | 2 ++ data/maps/SSAnne_B1F_Room5/map.json | 3 ++ data/maps/SSAnne_CaptainsOffice/map.json | 1 + data/maps/SSAnne_Deck/map.json | 5 +++ data/maps/SSAnne_Exterior/map.json | 1 + data/maps/SSAnne_Kitchen/map.json | 8 +++++ data/maps/SafariZone_Center/map.json | 1 + .../maps/SafariZone_Center_RestHouse/map.json | 2 ++ data/maps/SafariZone_East/map.json | 4 +++ data/maps/SafariZone_East_RestHouse/map.json | 3 ++ data/maps/SafariZone_North/map.json | 3 ++ data/maps/SafariZone_North_RestHouse/map.json | 4 +++ data/maps/SafariZone_SecretHouse/map.json | 1 + data/maps/SafariZone_West/map.json | 4 +++ data/maps/SafariZone_West_RestHouse/map.json | 3 ++ data/maps/SaffronCity/map.json | 15 ++++++++ .../SaffronCity_CopycatsHouse_1F/map.json | 3 ++ .../SaffronCity_CopycatsHouse_2F/map.json | 4 +++ data/maps/SaffronCity_Dojo/map.json | 7 ++++ data/maps/SaffronCity_Gym/map.json | 9 +++++ data/maps/SaffronCity_House/map.json | 4 +++ data/maps/SaffronCity_Mart/map.json | 3 ++ .../maps/SaffronCity_MrPsychicsHouse/map.json | 1 + .../SaffronCity_PokemonCenter_1F/map.json | 6 ++++ .../SaffronCity_PokemonCenter_2F/map.json | 4 +++ .../map.json | 10 ++++++ data/maps/SeafoamIslands_1F/map.json | 3 ++ data/maps/SeafoamIslands_B1F/map.json | 4 +++ data/maps/SeafoamIslands_B2F/map.json | 3 ++ data/maps/SeafoamIslands_B3F/map.json | 6 ++++ data/maps/SeafoamIslands_B4F/map.json | 4 +++ data/maps/SevenIsland/map.json | 3 ++ data/maps/SevenIsland_Harbor/map.json | 2 ++ data/maps/SevenIsland_House_Room1/map.json | 1 + data/maps/SevenIsland_House_Room2/map.json | 1 + data/maps/SevenIsland_Mart/map.json | 4 +++ .../SevenIsland_PokemonCenter_1F/map.json | 6 ++++ .../SevenIsland_PokemonCenter_2F/map.json | 4 +++ data/maps/SevenIsland_SevaultCanyon/map.json | 20 +++++++++++ .../map.json | 18 +++++----- .../SevenIsland_SevaultCanyon_House/map.json | 3 ++ .../map.json | 7 ++++ data/maps/SevenIsland_TanobyRuins/map.json | 4 +++ data/maps/SevenIsland_TrainerTower/map.json | 2 ++ data/maps/SilphCo_10F/map.json | 6 ++++ data/maps/SilphCo_11F/map.json | 6 ++++ data/maps/SilphCo_1F/map.json | 1 + data/maps/SilphCo_2F/map.json | 5 +++ data/maps/SilphCo_3F/map.json | 4 +++ data/maps/SilphCo_4F/map.json | 8 +++++ data/maps/SilphCo_5F/map.json | 9 +++++ data/maps/SilphCo_6F/map.json | 10 ++++++ data/maps/SilphCo_7F/map.json | 11 ++++++ data/maps/SilphCo_8F/map.json | 6 ++++ data/maps/SilphCo_9F/map.json | 4 +++ data/maps/SixIsland/map.json | 2 ++ .../map.json | 2 ++ data/maps/SixIsland_GreenPath/map.json | 1 + data/maps/SixIsland_Harbor/map.json | 2 ++ data/maps/SixIsland_House/map.json | 1 + data/maps/SixIsland_Mart/map.json | 3 ++ data/maps/SixIsland_OutcastIsland/map.json | 7 ++++ data/maps/SixIsland_PatternBush/map.json | 12 +++++++ data/maps/SixIsland_PokemonCenter_1F/map.json | 4 +++ data/maps/SixIsland_PokemonCenter_2F/map.json | 4 +++ data/maps/SixIsland_RuinValley/map.json | 17 +++++++++ data/maps/SixIsland_WaterPath/map.json | 9 +++++ data/maps/SixIsland_WaterPath_House1/map.json | 1 + data/maps/SixIsland_WaterPath_House2/map.json | 1 + data/maps/ThreeIsland/map.json | 14 ++++++++ data/maps/ThreeIsland_BerryForest/map.json | 14 ++++++++ data/maps/ThreeIsland_BondBridge/map.json | 9 +++++ .../maps/ThreeIsland_DunsparceTunnel/map.json | 1 + data/maps/ThreeIsland_Harbor/map.json | 2 ++ data/maps/ThreeIsland_House1/map.json | 1 + data/maps/ThreeIsland_House2/map.json | 2 ++ data/maps/ThreeIsland_House3/map.json | 1 + data/maps/ThreeIsland_House4/map.json | 2 ++ data/maps/ThreeIsland_House5/map.json | 1 + data/maps/ThreeIsland_Mart/map.json | 4 +++ .../ThreeIsland_PokemonCenter_1F/map.json | 4 +++ .../ThreeIsland_PokemonCenter_2F/map.json | 4 +++ data/maps/ThreeIsland_Port/map.json | 3 ++ data/maps/TradeCenter/map.json | 1 + data/maps/TrainerTower_1F/map.json | 5 +++ data/maps/TrainerTower_2F/map.json | 5 +++ data/maps/TrainerTower_3F/map.json | 5 +++ data/maps/TrainerTower_4F/map.json | 5 +++ data/maps/TrainerTower_5F/map.json | 5 +++ data/maps/TrainerTower_6F/map.json | 5 +++ data/maps/TrainerTower_7F/map.json | 5 +++ data/maps/TrainerTower_8F/map.json | 5 +++ data/maps/TrainerTower_Lobby/map.json | 5 +++ data/maps/TrainerTower_Roof/map.json | 1 + data/maps/TwoIsland/map.json | 9 +++++ data/maps/TwoIsland_CapeBrink_House/map.json | 1 + data/maps/TwoIsland_Harbor/map.json | 2 ++ data/maps/TwoIsland_House/map.json | 1 + data/maps/TwoIsland_JoyfulGameCorner/map.json | 4 +++ data/maps/TwoIsland_PokemonCenter_1F/map.json | 3 ++ data/maps/TwoIsland_PokemonCenter_2F/map.json | 4 +++ .../UndergroundPath_EastEntrance/map.json | 1 + .../UndergroundPath_NorthEntrance/map.json | 1 + .../UndergroundPath_SouthEntrance/map.json | 1 + .../UndergroundPath_WestEntrance/map.json | 1 + data/maps/UnionRoom/map.json | 9 +++++ data/maps/VermilionCity/map.json | 8 +++++ data/maps/VermilionCity_Gym/map.json | 5 +++ data/maps/VermilionCity_House1/map.json | 1 + data/maps/VermilionCity_House2/map.json | 1 + data/maps/VermilionCity_House3/map.json | 4 +++ data/maps/VermilionCity_Mart/map.json | 3 ++ .../VermilionCity_PokemonCenter_1F/map.json | 7 ++++ .../VermilionCity_PokemonCenter_2F/map.json | 4 +++ .../VermilionCity_PokemonFanClub/map.json | 6 ++++ data/maps/VictoryRoad_1F/map.json | 7 ++++ data/maps/VictoryRoad_2F/map.json | 13 +++++++ data/maps/VictoryRoad_3F/map.json | 12 +++++++ data/maps/ViridianCity/map.json | 9 +++++ data/maps/ViridianCity_Gym/map.json | 10 ++++++ data/maps/ViridianCity_House1/map.json | 3 ++ data/maps/ViridianCity_House2/map.json | 2 ++ data/maps/ViridianCity_Mart/map.json | 3 ++ .../ViridianCity_PokemonCenter_1F/map.json | 4 +++ .../ViridianCity_PokemonCenter_2F/map.json | 4 +++ data/maps/ViridianForest/map.json | 11 ++++++ include/constants/event_objects.h | 3 ++ include/global.fieldmap.h | 7 +--- src/overworld.c | 3 +- tools/mapjson/mapjson.cpp | 35 ++++++++++++------- 363 files changed, 1711 insertions(+), 104 deletions(-) diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 881ffdbb4..1a0e3a3ec 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -14,11 +14,11 @@ .4byte \address .endm - .macro object_event index:req, gfx:req, in_connection:req x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req + .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req .byte \index .byte \gfx - .byte \in_connection - .byte 0 + .byte OBJ_KIND_NORMAL + .space 1 @ Padding .2byte \x, \y .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 .2byte \trainer_type, \sight_radius_tree_etc @@ -27,6 +27,20 @@ inc _num_npcs .endm + .macro clone_event index:req, gfx:req, x:req, y:req, target_local_id:req, target_map_id:req + .byte \index + .byte \gfx + .byte OBJ_KIND_CLONE + .space 1 @ Padding + .2byte \x, \y + .byte \target_local_id + .space 3 @ Padding + .2byte \target_map_id & 0xFF @ map num + .2byte \target_map_id >> 8 @ map group + .space 8 @ Padding + inc _num_npcs + .endm + .macro warp_def x, y, byte, warp, map_id .2byte \x, \y .byte \byte, \warp diff --git a/data/maps/BattleColosseum_2P/map.json b/data/maps/BattleColosseum_2P/map.json index 84c7b2a8c..04b0103f4 100644 --- a/data/maps/BattleColosseum_2P/map.json +++ b/data/maps/BattleColosseum_2P/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 9, "y": 3, diff --git a/data/maps/BirthIsland_Exterior/map.json b/data/maps/BirthIsland_Exterior/map.json index a0522d51a..dc240a5a6 100644 --- a/data/maps/BirthIsland_Exterior/map.json +++ b/data/maps/BirthIsland_Exterior/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_METEORITE", "x": 15, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_BIRTH_ISLAND_METEORITE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 15, "y": 3, diff --git a/data/maps/BirthIsland_Harbor/map.json b/data/maps/BirthIsland_Harbor/map.json index 91769a123..c40a0a509 100644 --- a/data/maps/BirthIsland_Harbor/map.json +++ b/data/maps/BirthIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/CeladonCity/map.json b/data/maps/CeladonCity/map.json index 6aa1807d3..fcc532d77 100644 --- a/data/maps/CeladonCity/map.json +++ b/data/maps/CeladonCity/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 48, "y": 15, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_CELADON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 38, "y": 14, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLIWRATH", "x": 36, "y": 14, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 11, "y": 18, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 18, "y": 22, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 30, "y": 24, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 26, "y": 19, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 38, "y": 31, @@ -131,6 +139,7 @@ "flag": "FLAG_HIDE_CELADON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 9, "y": 30, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 52, "y": 22, @@ -157,6 +167,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 40, "y": 35, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 25, "y": 10, @@ -183,20 +195,15 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": -7, "y": 21, - "elevation": 7, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "34", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 7, + "target_map": "MAP_ROUTE16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 3, @@ -210,6 +217,7 @@ "flag": "FLAG_HIDE_CELADON_CITY_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 47, "y": 24, diff --git a/data/maps/CeladonCity_Condominiums_1F/map.json b/data/maps/CeladonCity_Condominiums_1F/map.json index aeac5b626..0ce266087 100644 --- a/data/maps/CeladonCity_Condominiums_1F/map.json +++ b/data/maps/CeladonCity_Condominiums_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MEOWTH", "x": 1, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLEFAIRY", "x": 5, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", "x": 5, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 2, "y": 9, diff --git a/data/maps/CeladonCity_Condominiums_2F/map.json b/data/maps/CeladonCity_Condominiums_2F/map.json index 756f74fb3..ba3c67dd8 100644 --- a/data/maps/CeladonCity_Condominiums_2F/map.json +++ b/data/maps/CeladonCity_Condominiums_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "0", "x": 6, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS" }, { + "type": "object", "graphics_id": "0", "x": 5, "y": 6, diff --git a/data/maps/CeladonCity_Condominiums_3F/map.json b/data/maps/CeladonCity_Condominiums_3F/map.json index cf2d74454..7d39a62cc 100644 --- a/data/maps/CeladonCity_Condominiums_3F/map.json +++ b/data/maps/CeladonCity_Condominiums_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 0, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 3, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 4, "y": 10, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 0, "y": 13, diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json index 999f32e1f..3efe6a4d6 100644 --- a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 3, diff --git a/data/maps/CeladonCity_DepartmentStore_1F/map.json b/data/maps/CeladonCity_DepartmentStore_1F/map.json index 0a33592cc..970ff3e58 100644 --- a/data/maps/CeladonCity_DepartmentStore_1F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 6, "y": 10, diff --git a/data/maps/CeladonCity_DepartmentStore_2F/map.json b/data/maps/CeladonCity_DepartmentStore_2F/map.json index 0ebc6977e..a087c291c 100644 --- a/data/maps/CeladonCity_DepartmentStore_2F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 5, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 11, "y": 6, diff --git a/data/maps/CeladonCity_DepartmentStore_3F/map.json b/data/maps/CeladonCity_DepartmentStore_3F/map.json index d59f34f42..b5d458946 100644 --- a/data/maps/CeladonCity_DepartmentStore_3F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 10, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 11, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 4, "y": 9, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 1, "y": 9, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 9, "y": 14, diff --git a/data/maps/CeladonCity_DepartmentStore_4F/map.json b/data/maps/CeladonCity_DepartmentStore_4F/map.json index 225a88043..bc8b5737a 100644 --- a/data/maps/CeladonCity_DepartmentStore_4F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 6, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 10, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 3, "y": 13, diff --git a/data/maps/CeladonCity_DepartmentStore_5F/map.json b/data/maps/CeladonCity_DepartmentStore_5F/map.json index 09c967ec2..14248d0ec 100644 --- a/data/maps/CeladonCity_DepartmentStore_5F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 11, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 6, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 6, diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/map.json b/data/maps/CeladonCity_DepartmentStore_Roof/map.json index e13de4ef8..a0b948294 100644 --- a/data/maps/CeladonCity_DepartmentStore_Roof/map.json +++ b/data/maps/CeladonCity_DepartmentStore_Roof/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 9, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 5, "y": 4, diff --git a/data/maps/CeladonCity_GameCorner/map.json b/data/maps/CeladonCity_GameCorner/map.json index b352a3967..58baa4145 100644 --- a/data/maps/CeladonCity_GameCorner/map.json +++ b/data/maps/CeladonCity_GameCorner/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 4, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 1, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 4, "y": 7, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 10, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 7, "y": 8, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 10, "y": 9, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 13, "y": 7, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 16, "y": 10, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 11, "y": 2, diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json index 60063cd08..3c39900ed 100644 --- a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 6, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 4, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 2, "y": 2, diff --git a/data/maps/CeladonCity_Gym/map.json b/data/maps/CeladonCity_Gym/map.json index 9978fa9de..e73b79f7b 100644 --- a/data/maps/CeladonCity_Gym/map.json +++ b/data/maps/CeladonCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 11, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 9, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 10, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 2, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 5, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 7, "y": 4, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ERIKA", "x": 6, "y": 4, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 8, "y": 7, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 6, "y": 8, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 3, "y": 5, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 9, "y": 6, diff --git a/data/maps/CeladonCity_Hotel/map.json b/data/maps/CeladonCity_Hotel/map.json index 02d7c416b..9ec22dbab 100644 --- a/data/maps/CeladonCity_Hotel/map.json +++ b/data/maps/CeladonCity_Hotel/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 3, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 9, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 2, "y": 6, diff --git a/data/maps/CeladonCity_House1/map.json b/data/maps/CeladonCity_House1/map.json index acf95fde5..4c0b51f05 100644 --- a/data/maps/CeladonCity_House1/map.json +++ b/data/maps/CeladonCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 2, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 8, "y": 4, diff --git a/data/maps/CeladonCity_PokemonCenter_1F/map.json b/data/maps/CeladonCity_PokemonCenter_1F/map.json index 5c2ca4f02..9283cbe47 100644 --- a/data/maps/CeladonCity_PokemonCenter_1F/map.json +++ b/data/maps/CeladonCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 10, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 12, "y": 5, diff --git a/data/maps/CeladonCity_PokemonCenter_2F/map.json b/data/maps/CeladonCity_PokemonCenter_2F/map.json index 9431c273d..84d0405bc 100644 --- a/data/maps/CeladonCity_PokemonCenter_2F/map.json +++ b/data/maps/CeladonCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/CeladonCity_Restaurant/map.json b/data/maps/CeladonCity_Restaurant/map.json index 71f2e4f30..ef5f6e4ed 100644 --- a/data/maps/CeladonCity_Restaurant/map.json +++ b/data/maps/CeladonCity_Restaurant/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 12, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 11, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 9, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 3, "y": 7, diff --git a/data/maps/CeruleanCave_1F/map.json b/data/maps/CeruleanCave_1F/map.json index abc495f92..41aa39ad7 100644 --- a/data/maps/CeruleanCave_1F/map.json +++ b/data/maps/CeruleanCave_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 3, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_NUGGET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 16, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 25, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_MAX_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 21, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 21, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 20, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 14, "y": 20, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 11, "y": 21, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 18, diff --git a/data/maps/CeruleanCave_2F/map.json b/data/maps/CeruleanCave_2F/map.json index 45e4fc963..db465862c 100644 --- a/data/maps/CeruleanCave_2F/map.json +++ b/data/maps/CeruleanCave_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 18, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_PP_UP" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 29, "y": 16, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 33, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 33, "y": 10, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 33, "y": 9, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 25, "y": 11, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 28, "y": 20, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 30, "y": 20, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 13, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 23, "y": 16, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 6, @@ -159,6 +170,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 12, @@ -172,6 +184,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 10, "y": 20, diff --git a/data/maps/CeruleanCave_B1F/map.json b/data/maps/CeruleanCave_B1F/map.json index 478ddf111..498c360c8 100644 --- a/data/maps/CeruleanCave_B1F/map.json +++ b/data/maps/CeruleanCave_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 31, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 32, "y": 2, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MEWTWO", "x": 7, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MEWTWO" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 37, "y": 1, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 38, "y": 2, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 35, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 37, "y": 4, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 35, "y": 5, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 2, "y": 2, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 1, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 6, "y": 1, @@ -159,6 +170,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 3, "y": 4, diff --git a/data/maps/CeruleanCity/map.json b/data/maps/CeruleanCity/map.json index 282eaf4cc..1618eacea 100644 --- a/data/maps/CeruleanCity/map.json +++ b/data/maps/CeruleanCity/map.json @@ -37,6 +37,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 31, "y": 12, @@ -50,6 +51,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 33, "y": 6, @@ -63,6 +65,7 @@ "flag": "FLAG_HIDE_CERULEAN_ROCKET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 16, "y": 21, @@ -76,6 +79,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 9, "y": 23, @@ -89,6 +93,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWBRO", "x": 32, "y": 29, @@ -102,6 +107,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 33, "y": 29, @@ -115,6 +121,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 34, "y": 22, @@ -128,6 +135,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 22, "y": 0, @@ -141,6 +149,7 @@ "flag": "FLAG_HIDE_CERULEAN_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 26, "y": 32, @@ -154,20 +163,15 @@ "flag": "FLAG_TEMP_13" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 50, "y": 18, - "elevation": 10, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "27", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 10, + "target_map": "MAP_ROUTE9" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 12, "y": 30, @@ -181,6 +185,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 1, "y": 13, diff --git a/data/maps/CeruleanCity_BikeShop/map.json b/data/maps/CeruleanCity_BikeShop/map.json index d7c0ea6d2..b614cbd6b 100644 --- a/data/maps/CeruleanCity_BikeShop/map.json +++ b/data/maps/CeruleanCity_BikeShop/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 9, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 9, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 5, diff --git a/data/maps/CeruleanCity_Gym/map.json b/data/maps/CeruleanCity_Gym/map.json index 78f866633..e1f673ced 100644 --- a/data/maps/CeruleanCity_Gym/map.json +++ b/data/maps/CeruleanCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 10, "y": 12, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 4, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MISTY", "x": 8, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 16, diff --git a/data/maps/CeruleanCity_House1/map.json b/data/maps/CeruleanCity_House1/map.json index 006be49fa..e8a336444 100644 --- a/data/maps/CeruleanCity_House1/map.json +++ b/data/maps/CeruleanCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 6, "y": 5, diff --git a/data/maps/CeruleanCity_House2/map.json b/data/maps/CeruleanCity_House2/map.json index 4cc6cd713..4aaf6d44a 100644 --- a/data/maps/CeruleanCity_House2/map.json +++ b/data/maps/CeruleanCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 1, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 7, "y": 6, diff --git a/data/maps/CeruleanCity_House3/map.json b/data/maps/CeruleanCity_House3/map.json index 0c0bb10c4..f26980765 100644 --- a/data/maps/CeruleanCity_House3/map.json +++ b/data/maps/CeruleanCity_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 2, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 7, "y": 5, diff --git a/data/maps/CeruleanCity_House4/map.json b/data/maps/CeruleanCity_House4/map.json index a2b792ede..63c7b16e0 100644 --- a/data/maps/CeruleanCity_House4/map.json +++ b/data/maps/CeruleanCity_House4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 5, "y": 3, diff --git a/data/maps/CeruleanCity_House5/map.json b/data/maps/CeruleanCity_House5/map.json index a54a593b6..314a11123 100644 --- a/data/maps/CeruleanCity_House5/map.json +++ b/data/maps/CeruleanCity_House5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 7, "y": 4, diff --git a/data/maps/CeruleanCity_Mart/map.json b/data/maps/CeruleanCity_Mart/map.json index 69dfbd2c0..fde948c8a 100644 --- a/data/maps/CeruleanCity_Mart/map.json +++ b/data/maps/CeruleanCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 9, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 1, "y": 7, diff --git a/data/maps/CeruleanCity_PokemonCenter_1F/map.json b/data/maps/CeruleanCity_PokemonCenter_1F/map.json index 7c797a653..bf92db5b5 100644 --- a/data/maps/CeruleanCity_PokemonCenter_1F/map.json +++ b/data/maps/CeruleanCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 5, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 4, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 3, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, diff --git a/data/maps/CeruleanCity_PokemonCenter_2F/map.json b/data/maps/CeruleanCity_PokemonCenter_2F/map.json index a706e5b4d..142d3b21c 100644 --- a/data/maps/CeruleanCity_PokemonCenter_2F/map.json +++ b/data/maps/CeruleanCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/CinnabarIsland/map.json b/data/maps/CinnabarIsland/map.json index 9798a6be3..de15e8e78 100644 --- a/data/maps/CinnabarIsland/map.json +++ b/data/maps/CinnabarIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 14, "y": 6, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 11, "y": 11, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 20, "y": 7, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_CINNABAR_BILL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 23, "y": 7, diff --git a/data/maps/CinnabarIsland_Gym/map.json b/data/maps/CinnabarIsland_Gym/map.json index ae40512d5..77973ab9f 100644 --- a/data/maps/CinnabarIsland_Gym/map.json +++ b/data/maps/CinnabarIsland_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 25, "y": 11, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 25, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 17, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 16, "y": 11, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 16, "y": 18, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 4, "y": 19, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 11, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLAINE", "x": 5, "y": 4, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 24, "y": 20, diff --git a/data/maps/CinnabarIsland_Mart/map.json b/data/maps/CinnabarIsland_Mart/map.json index 0d5c16415..f6d0106eb 100644 --- a/data/maps/CinnabarIsland_Mart/map.json +++ b/data/maps/CinnabarIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 8, "y": 2, diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json index 83b962c02..69fe81200 100644 --- a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json +++ b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 2, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 9, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 11, "y": 5, diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json index 32fcb549f..7c7647dbf 100644 --- a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json +++ b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json index 8d3b7c92b..ca87e241b 100644 --- a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 4, diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json index d6856c1f1..f266abb85 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 11, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 12, "y": 3, diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json index f51aa1fa8..0eb411782 100644 --- a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 4, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 5, diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json index a615b6830..4ed0d75ca 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 10, "y": 3, diff --git a/data/maps/DiglettsCave_NorthEntrance/map.json b/data/maps/DiglettsCave_NorthEntrance/map.json index 5135b3e28..b330b8eac 100644 --- a/data/maps/DiglettsCave_NorthEntrance/map.json +++ b/data/maps/DiglettsCave_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 4, "y": 4, diff --git a/data/maps/DiglettsCave_SouthEntrance/map.json b/data/maps/DiglettsCave_SouthEntrance/map.json index 493f30be7..daa426fc2 100644 --- a/data/maps/DiglettsCave_SouthEntrance/map.json +++ b/data/maps/DiglettsCave_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 4, "y": 4, diff --git a/data/maps/FiveIsland/map.json b/data/maps/FiveIsland/map.json index 29e667d27..088394782 100644 --- a/data/maps/FiveIsland/map.json +++ b/data/maps/FiveIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 8, "y": 5, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 16, "y": 10, @@ -53,18 +55,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 32, "y": 9, - "elevation": 4, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "56", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 4, + "target_map": "MAP_FIVE_ISLAND_MEADOW" } ], "warp_events": [ diff --git a/data/maps/FiveIsland_Harbor/map.json b/data/maps/FiveIsland_Harbor/map.json index e86f2333a..4ff5f5249 100644 --- a/data/maps/FiveIsland_Harbor/map.json +++ b/data/maps/FiveIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/FiveIsland_House1/map.json b/data/maps/FiveIsland_House1/map.json index c4a14839d..ad10095dd 100644 --- a/data/maps/FiveIsland_House1/map.json +++ b/data/maps/FiveIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 10, "y": 2, diff --git a/data/maps/FiveIsland_House2/map.json b/data/maps/FiveIsland_House2/map.json index bd75ab0c3..6003998f6 100644 --- a/data/maps/FiveIsland_House2/map.json +++ b/data/maps/FiveIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 2, "y": 3, diff --git a/data/maps/FiveIsland_LostCave_Room1/map.json b/data/maps/FiveIsland_LostCave_Room1/map.json index 9d6e27c73..7f7d06cee 100644 --- a/data/maps/FiveIsland_LostCave_Room1/map.json +++ b/data/maps/FiveIsland_LostCave_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 4, diff --git a/data/maps/FiveIsland_LostCave_Room10/map.json b/data/maps/FiveIsland_LostCave_Room10/map.json index 20835f0bc..f5eaeed87 100644 --- a/data/maps/FiveIsland_LostCave_Room10/map.json +++ b/data/maps/FiveIsland_LostCave_Room10/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_LOST_CAVE_SELPHY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 2, diff --git a/data/maps/FiveIsland_LostCave_Room11/map.json b/data/maps/FiveIsland_LostCave_Room11/map.json index ab63d2ea3..0c018195f 100644 --- a/data/maps/FiveIsland_LostCave_Room11/map.json +++ b/data/maps/FiveIsland_LostCave_Room11/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, diff --git a/data/maps/FiveIsland_LostCave_Room12/map.json b/data/maps/FiveIsland_LostCave_Room12/map.json index c14996b6f..67adcdd17 100644 --- a/data/maps/FiveIsland_LostCave_Room12/map.json +++ b/data/maps/FiveIsland_LostCave_Room12/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, diff --git a/data/maps/FiveIsland_LostCave_Room13/map.json b/data/maps/FiveIsland_LostCave_Room13/map.json index 84a0f34ea..f21ac95fc 100644 --- a/data/maps/FiveIsland_LostCave_Room13/map.json +++ b/data/maps/FiveIsland_LostCave_Room13/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, diff --git a/data/maps/FiveIsland_LostCave_Room14/map.json b/data/maps/FiveIsland_LostCave_Room14/map.json index 2d24d97c8..5607e08e8 100644 --- a/data/maps/FiveIsland_LostCave_Room14/map.json +++ b/data/maps/FiveIsland_LostCave_Room14/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, diff --git a/data/maps/FiveIsland_LostCave_Room4/map.json b/data/maps/FiveIsland_LostCave_Room4/map.json index 93de2af9a..0489a8b11 100644 --- a/data/maps/FiveIsland_LostCave_Room4/map.json +++ b/data/maps/FiveIsland_LostCave_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 6, "y": 4, diff --git a/data/maps/FiveIsland_Meadow/map.json b/data/maps/FiveIsland_Meadow/map.json index 16c52f2af..d9f9de9b8 100644 --- a/data/maps/FiveIsland_Meadow/map.json +++ b/data/maps/FiveIsland_Meadow/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", "x": 18, "y": 18, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 17, "y": 5, @@ -53,6 +55,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 11, "y": 27, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 8, "y": 9, @@ -79,6 +83,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 19, "y": 12, @@ -92,6 +97,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 11, @@ -105,6 +111,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_MEADOW_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 22, diff --git a/data/maps/FiveIsland_MemorialPillar/map.json b/data/maps/FiveIsland_MemorialPillar/map.json index 489f63372..184aec2ca 100644 --- a/data/maps/FiveIsland_MemorialPillar/map.json +++ b/data/maps/FiveIsland_MemorialPillar/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 8, "y": 44, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 12, "y": 6, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 14, "y": 17, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 17, "y": 31, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 47, diff --git a/data/maps/FiveIsland_PokemonCenter_1F/map.json b/data/maps/FiveIsland_PokemonCenter_1F/map.json index 24c72dd7e..b97c5f124 100644 --- a/data/maps/FiveIsland_PokemonCenter_1F/map.json +++ b/data/maps/FiveIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 9, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 4, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, diff --git a/data/maps/FiveIsland_PokemonCenter_2F/map.json b/data/maps/FiveIsland_PokemonCenter_2F/map.json index bb3bdd1eb..415be644e 100644 --- a/data/maps/FiveIsland_PokemonCenter_2F/map.json +++ b/data/maps/FiveIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/FiveIsland_ResortGorgeous/map.json b/data/maps/FiveIsland_ResortGorgeous/map.json index 5c596b3bc..c86041b08 100644 --- a/data/maps/FiveIsland_ResortGorgeous/map.json +++ b/data/maps/FiveIsland_ResortGorgeous/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 44, "y": 10, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 33, "y": 12, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 12, "y": 10, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 23, "y": 9, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 33, "y": 8, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 33, "y": 3, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 56, "y": 7, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 39, "y": 9, diff --git a/data/maps/FiveIsland_ResortGorgeous_House/map.json b/data/maps/FiveIsland_ResortGorgeous_House/map.json index d361589b7..59f076913 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/map.json +++ b/data/maps/FiveIsland_ResortGorgeous_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 6, "y": 2, diff --git a/data/maps/FiveIsland_RocketWarehouse/map.json b/data/maps/FiveIsland_RocketWarehouse/map.json index e14361861..08f53138b 100644 --- a/data/maps/FiveIsland_RocketWarehouse/map.json +++ b/data/maps/FiveIsland_RocketWarehouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 15, "y": 11, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 17, "y": 15, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", "x": 27, "y": 16, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 25, "y": 11, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", "x": 6, "y": 6, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 27, "y": 4, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 25, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_BIG_PEARL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 3, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_TM36" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 16, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_PEARL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 5, diff --git a/data/maps/FiveIsland_WaterLabyrinth/map.json b/data/maps/FiveIsland_WaterLabyrinth/map.json index 002a02f36..a0ff618d3 100644 --- a/data/maps/FiveIsland_WaterLabyrinth/map.json +++ b/data/maps/FiveIsland_WaterLabyrinth/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 14, "y": 11, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 9, "y": 7, diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json index 33abf1091..13eab3339 100644 --- a/data/maps/FourIsland/map.json +++ b/data/maps/FourIsland/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 16, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DODUO", "x": 12, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", "x": 13, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", "x": 14, "y": 7, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", "x": 17, "y": 9, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 26, "y": 19, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 11, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 6, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_STAR_PIECE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 32, "y": 19, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_STARDUST" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 8, "y": 25, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 36, "y": 13, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 31, "y": 21, diff --git a/data/maps/FourIsland_Harbor/map.json b/data/maps/FourIsland_Harbor/map.json index afa0aca6c..ad551aef5 100644 --- a/data/maps/FourIsland_Harbor/map.json +++ b/data/maps/FourIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/FourIsland_House1/map.json b/data/maps/FourIsland_House1/map.json index 44bf35f30..fe8f822d3 100644 --- a/data/maps/FourIsland_House1/map.json +++ b/data/maps/FourIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 8, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 9, "y": 3, diff --git a/data/maps/FourIsland_House2/map.json b/data/maps/FourIsland_House2/map.json index d31d74e77..084eec236 100644 --- a/data/maps/FourIsland_House2/map.json +++ b/data/maps/FourIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 4, diff --git a/data/maps/FourIsland_IcefallCave_1F/map.json b/data/maps/FourIsland_IcefallCave_1F/map.json index d8ddd44d1..7358bea0f 100644 --- a/data/maps/FourIsland_IcefallCave_1F/map.json +++ b/data/maps/FourIsland_IcefallCave_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 16, diff --git a/data/maps/FourIsland_IcefallCave_B1F/map.json b/data/maps/FourIsland_IcefallCave_B1F/map.json index 8e5bdb8bf..addbe2579 100644 --- a/data/maps/FourIsland_IcefallCave_B1F/map.json +++ b/data/maps/FourIsland_IcefallCave_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 10, "y": 14, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 21, "y": 7, diff --git a/data/maps/FourIsland_IcefallCave_Back/map.json b/data/maps/FourIsland_IcefallCave_Back/map.json index bbb4afb7c..99cc4c00f 100644 --- a/data/maps/FourIsland_IcefallCave_Back/map.json +++ b/data/maps/FourIsland_IcefallCave_Back/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 11, "y": 14, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 13, "y": 14, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LORELEI", "x": 12, "y": 16, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ICEFALL_CAVE_LORELEI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 15, diff --git a/data/maps/FourIsland_LoreleisHouse/map.json b/data/maps/FourIsland_LoreleisHouse/map.json index 72070ccbf..743db1a81 100644 --- a/data/maps/FourIsland_LoreleisHouse/map.json +++ b/data/maps/FourIsland_LoreleisHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LORELEI", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_LORELEI_IN_HER_HOUSE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WIGGLYTUFF", "x": 0, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEEL", "x": 10, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIKACHU", "x": 9, "y": 3, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWPOKE", "x": 7, "y": 2, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWBRO", "x": 6, "y": 2, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", "x": 6, "y": 4, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MEOWTH", "x": 9, "y": 4, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 10, "y": 4, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", "x": 0, "y": 3, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", "x": 0, "y": 5, @@ -159,6 +170,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", "x": 1, "y": 5, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEOT", "x": 9, "y": 0, @@ -185,6 +198,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FEAROW", "x": 10, "y": 0, @@ -198,6 +212,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LAPRAS_DOLL", "x": 9, "y": 6, diff --git a/data/maps/FourIsland_Mart/map.json b/data/maps/FourIsland_Mart/map.json index ab36dfb24..36ddc0271 100644 --- a/data/maps/FourIsland_Mart/map.json +++ b/data/maps/FourIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 6, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 8, "y": 3, diff --git a/data/maps/FourIsland_PokemonCenter_1F/map.json b/data/maps/FourIsland_PokemonCenter_1F/map.json index 89ddda178..a8abb5e39 100644 --- a/data/maps/FourIsland_PokemonCenter_1F/map.json +++ b/data/maps/FourIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 10, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 5, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 2, diff --git a/data/maps/FourIsland_PokemonCenter_2F/map.json b/data/maps/FourIsland_PokemonCenter_2F/map.json index 7d6092bea..43c798013 100644 --- a/data/maps/FourIsland_PokemonCenter_2F/map.json +++ b/data/maps/FourIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/FourIsland_PokemonDayCare/map.json b/data/maps/FourIsland_PokemonDayCare/map.json index 81c7c0d9d..726acdcb4 100644 --- a/data/maps/FourIsland_PokemonDayCare/map.json +++ b/data/maps/FourIsland_PokemonDayCare/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 2, "y": 2, diff --git a/data/maps/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json index 7363a4b82..1ce04d84f 100644 --- a/data/maps/FuchsiaCity/map.json +++ b/data/maps/FuchsiaCity/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 37, "y": 17, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWPOKE", "x": 36, "y": 15, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VOLTORB", "x": 33, "y": 8, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 33, "y": 11, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 39, "y": 8, @@ -97,6 +102,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 14, "y": 15, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LAPRAS", "x": 12, "y": 20, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 36, "y": 20, @@ -136,6 +144,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 8, "y": 8, @@ -149,6 +158,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_KANGASKHAN", "x": 16, "y": 9, @@ -162,6 +172,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 10, @@ -175,6 +186,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 21, "y": 13, @@ -188,6 +200,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 32, "y": 16, @@ -201,6 +214,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 24, "y": 22, @@ -214,6 +228,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 15, "y": 11, @@ -227,6 +242,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 40, "y": 6, diff --git a/data/maps/FuchsiaCity_Gym/map.json b/data/maps/FuchsiaCity_Gym/map.json index 031e69071..5deac5214 100644 --- a/data/maps/FuchsiaCity_Gym/map.json +++ b/data/maps/FuchsiaCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 12, "y": 16, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 2, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 11, "y": 11, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 13, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 6, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 2, "y": 16, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_KOGA", "x": 7, "y": 13, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 11, "y": 19, diff --git a/data/maps/FuchsiaCity_House1/map.json b/data/maps/FuchsiaCity_House1/map.json index ac9fbd673..8823e1c20 100644 --- a/data/maps/FuchsiaCity_House1/map.json +++ b/data/maps/FuchsiaCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 1, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 2, "y": 5, diff --git a/data/maps/FuchsiaCity_House2/map.json b/data/maps/FuchsiaCity_House2/map.json index 9d66853a4..d133581c1 100644 --- a/data/maps/FuchsiaCity_House2/map.json +++ b/data/maps/FuchsiaCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 6, "y": 5, diff --git a/data/maps/FuchsiaCity_House3/map.json b/data/maps/FuchsiaCity_House3/map.json index b6916bec8..73d65c047 100644 --- a/data/maps/FuchsiaCity_House3/map.json +++ b/data/maps/FuchsiaCity_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 4, "y": 4, diff --git a/data/maps/FuchsiaCity_Mart/map.json b/data/maps/FuchsiaCity_Mart/map.json index 10e7deb5a..a09a2e10f 100644 --- a/data/maps/FuchsiaCity_Mart/map.json +++ b/data/maps/FuchsiaCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 6, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 9, "y": 5, diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json index 04e1112cd..73b1270bc 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 13, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 4, "y": 8, diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json index 16e7f5606..8b3526aa7 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json index 62161f69f..02a4768ed 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 7, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 1, "y": 6, diff --git a/data/maps/FuchsiaCity_SafariZone_Office/map.json b/data/maps/FuchsiaCity_SafariZone_Office/map.json index 89bf9cffc..1a4032edf 100644 --- a/data/maps/FuchsiaCity_SafariZone_Office/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Office/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 2, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 12, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 10, "y": 8, diff --git a/data/maps/FuchsiaCity_WardensHouse/map.json b/data/maps/FuchsiaCity_WardensHouse/map.json index 73a8ee885..7b402867f 100644 --- a/data/maps/FuchsiaCity_WardensHouse/map.json +++ b/data/maps/FuchsiaCity_WardensHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 11, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY" }, { + "type": "object", "graphics_id": "0", "x": 4, "y": 1, diff --git a/data/maps/IndigoPlateau_Exterior/map.json b/data/maps/IndigoPlateau_Exterior/map.json index 31461c51f..89a1dd9b4 100644 --- a/data/maps/IndigoPlateau_Exterior/map.json +++ b/data/maps/IndigoPlateau_Exterior/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 11, "y": 6, @@ -35,6 +36,7 @@ "flag": "FLAG_HIDE_CREDITS_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 11, "y": 6, diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json index 485be4c63..4c0c97759 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 0, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 13, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 14, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 5, "y": 3, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 23, "y": 13, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 22, "y": 9, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 16, "y": 15, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 23, "y": 9, diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json index bdb442d7a..f717a09ea 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/LavenderTown/map.json b/data/maps/LavenderTown/map.json index 07fe80598..8d9fe4be8 100644 --- a/data/maps/LavenderTown/map.json +++ b/data/maps/LavenderTown/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 19, "y": 10, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 12, "y": 12, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 10, "y": 7, diff --git a/data/maps/LavenderTown_House1/map.json b/data/maps/LavenderTown_House1/map.json index 2920d0f11..94a07604b 100644 --- a/data/maps/LavenderTown_House1/map.json +++ b/data/maps/LavenderTown_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUBONE", "x": 8, "y": 6, diff --git a/data/maps/LavenderTown_House2/map.json b/data/maps/LavenderTown_House2/map.json index 51f227c93..94383a699 100644 --- a/data/maps/LavenderTown_House2/map.json +++ b/data/maps/LavenderTown_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 4, diff --git a/data/maps/LavenderTown_Mart/map.json b/data/maps/LavenderTown_Mart/map.json index c855026dc..b6f7c5055 100644 --- a/data/maps/LavenderTown_Mart/map.json +++ b/data/maps/LavenderTown_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 9, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 9, "y": 5, diff --git a/data/maps/LavenderTown_PokemonCenter_1F/map.json b/data/maps/LavenderTown_PokemonCenter_1F/map.json index f418ed011..14433de2a 100644 --- a/data/maps/LavenderTown_PokemonCenter_1F/map.json +++ b/data/maps/LavenderTown_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 9, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 5, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 2, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 14, "y": 6, diff --git a/data/maps/LavenderTown_PokemonCenter_2F/map.json b/data/maps/LavenderTown_PokemonCenter_2F/map.json index 108d34364..232f6ecce 100644 --- a/data/maps/LavenderTown_PokemonCenter_2F/map.json +++ b/data/maps/LavenderTown_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json index 02b70d9ef..7f241ad23 100644 --- a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json +++ b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MR_FUJI", "x": 3, "y": 3, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_POKEHOUSE_FUJI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORINO", "x": 1, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", "x": 9, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 9, "y": 5, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 3, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 7, "y": 2, diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json index 42e1ea87f..6f300b9d6 100644 --- a/data/maps/MtEmber_Exterior/map.json +++ b/data/maps/MtEmber_Exterior/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 29, "y": 45, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 41, "y": 40, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 42, "y": 40, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 22, "y": 35, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 15, "y": 28, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 14, "y": 42, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 29, "y": 41, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 30, "y": 42, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 45, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 46, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 36, "y": 14, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 34, "y": 14, @@ -172,6 +184,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 36, "y": 15, @@ -185,6 +198,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 35, "y": 14, @@ -198,6 +212,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 35, "y": 17, @@ -211,6 +226,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 39, @@ -224,6 +240,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 19, "y": 40, @@ -237,6 +254,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 6, @@ -250,6 +268,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 38, "y": 10, @@ -263,6 +282,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_FIRE_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 48, "y": 20, diff --git a/data/maps/MtEmber_RubyPath_1F/map.json b/data/maps/MtEmber_RubyPath_1F/map.json index 3a3d01a84..32108cf47 100644 --- a/data/maps/MtEmber_RubyPath_1F/map.json +++ b/data/maps/MtEmber_RubyPath_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 11, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 23, "y": 16, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 20, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 19, "y": 7, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 21, "y": 15, diff --git a/data/maps/MtEmber_RubyPath_B1F/map.json b/data/maps/MtEmber_RubyPath_B1F/map.json index 131ba8fd6..b2e84cd47 100644 --- a/data/maps/MtEmber_RubyPath_B1F/map.json +++ b/data/maps/MtEmber_RubyPath_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 11, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 3, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 14, diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json index ea9fa2586..e55831c9d 100644 --- a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 2, diff --git a/data/maps/MtEmber_RubyPath_B2F/map.json b/data/maps/MtEmber_RubyPath_B2F/map.json index aaf1b8dc3..99d15f9bd 100644 --- a/data/maps/MtEmber_RubyPath_B2F/map.json +++ b/data/maps/MtEmber_RubyPath_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 12, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 8, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 8, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 5, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 5, diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json index b9c4074f9..2935f1bf9 100644 --- a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 3, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 6, "y": 2, diff --git a/data/maps/MtEmber_RubyPath_B3F/map.json b/data/maps/MtEmber_RubyPath_B3F/map.json index 7ee35c5ef..df674ff77 100644 --- a/data/maps/MtEmber_RubyPath_B3F/map.json +++ b/data/maps/MtEmber_RubyPath_B3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 10, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 26, "y": 12, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 28, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 2, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 3, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 6, "y": 6, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 6, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 5, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 2, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 15, "y": 13, diff --git a/data/maps/MtEmber_RubyPath_B5F/map.json b/data/maps/MtEmber_RubyPath_B5F/map.json index 267cedd37..9b032993f 100644 --- a/data/maps/MtEmber_RubyPath_B5F/map.json +++ b/data/maps/MtEmber_RubyPath_B5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_RUBY", "x": 7, "y": 7, diff --git a/data/maps/MtEmber_Summit/map.json b/data/maps/MtEmber_Summit/map.json index e750d9d65..0a697576a 100644 --- a/data/maps/MtEmber_Summit/map.json +++ b/data/maps/MtEmber_Summit/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MOLTRES", "x": 9, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MOLTRES" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 10, "y": 12, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 12, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 11, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 10, diff --git a/data/maps/MtEmber_SummitPath_2F/map.json b/data/maps/MtEmber_SummitPath_2F/map.json index 0cc16016d..07c8acf42 100644 --- a/data/maps/MtEmber_SummitPath_2F/map.json +++ b/data/maps/MtEmber_SummitPath_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 40, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 33, "y": 5, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 19, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 23, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 21, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 38, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 35, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 34, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 26, diff --git a/data/maps/MtMoon_1F/map.json b/data/maps/MtMoon_1F/map.json index 4e91905de..91415dca0 100644 --- a/data/maps/MtMoon_1F/map.json +++ b/data/maps/MtMoon_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 20, "y": 26, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 36, "y": 30, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 30, "y": 35, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 33, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 7, "y": 26, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 13, "y": 17, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 7, "y": 10, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 22, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_PARALYZE_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 35, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_TM09" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 26, "y": 32, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 42, "y": 35, @@ -159,6 +170,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 44, "y": 21, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 2, @@ -185,6 +198,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_MOON_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 42, "y": 7, diff --git a/data/maps/MtMoon_B2F/map.json b/data/maps/MtMoon_B2F/map.json index 358d791b8..3b8d645ed 100644 --- a/data/maps/MtMoon_B2F/map.json +++ b/data/maps/MtMoon_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FOSSIL", "x": 13, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_DOME_FOSSIL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FOSSIL", "x": 14, "y": 7, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_HELIX_FOSSIL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 13, "y": 11, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 37, "y": 21, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 12, "y": 20, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 35, "y": 12, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 18, "y": 27, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 26, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_MT_MOON_B2F_STAR_PIECE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 35, "y": 5, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_MT_MOON_B2F_TM46" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 6, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_MT_MOON_B2F_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 11, diff --git a/data/maps/NavelRock_Base/map.json b/data/maps/NavelRock_Base/map.json index 6350185f9..3d3791a51 100644 --- a/data/maps/NavelRock_Base/map.json +++ b/data/maps/NavelRock_Base/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LUGIA", "x": 10, "y": 15, diff --git a/data/maps/NavelRock_Harbor/map.json b/data/maps/NavelRock_Harbor/map.json index a94603087..e65348867 100644 --- a/data/maps/NavelRock_Harbor/map.json +++ b/data/maps/NavelRock_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/NavelRock_Summit/map.json b/data/maps/NavelRock_Summit/map.json index 2718158b2..cd1e58794 100644 --- a/data/maps/NavelRock_Summit/map.json +++ b/data/maps/NavelRock_Summit/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HO_OH", "x": 9, "y": 6, diff --git a/data/maps/OneIsland/map.json b/data/maps/OneIsland/map.json index e49ef37ef..43cff9bfd 100644 --- a/data/maps/OneIsland/map.json +++ b/data/maps/OneIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 12, "y": 16, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_BILL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 16, "y": 12, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 13, "y": 9, diff --git a/data/maps/OneIsland_Harbor/map.json b/data/maps/OneIsland_Harbor/map.json index 0ca6c7b3f..b56d7746d 100644 --- a/data/maps/OneIsland_Harbor/map.json +++ b/data/maps/OneIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/OneIsland_House1/map.json b/data/maps/OneIsland_House1/map.json index 5823a4c3c..a3f225e6a 100644 --- a/data/maps/OneIsland_House1/map.json +++ b/data/maps/OneIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 4, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 7, "y": 5, diff --git a/data/maps/OneIsland_House2/map.json b/data/maps/OneIsland_House2/map.json index 3f51fb461..9600e847e 100644 --- a/data/maps/OneIsland_House2/map.json +++ b/data/maps/OneIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 9, "y": 4, diff --git a/data/maps/OneIsland_KindleRoad/map.json b/data/maps/OneIsland_KindleRoad/map.json index 963d70acc..c7f3793c7 100644 --- a/data/maps/OneIsland_KindleRoad/map.json +++ b/data/maps/OneIsland_KindleRoad/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 11, "y": 32, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_LAND", "x": 17, "y": 132, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 7, "y": 39, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", "x": 19, "y": 79, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 15, "y": 25, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 9, "y": 53, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 18, "y": 105, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 16, "y": 64, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 64, @@ -139,6 +148,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 11, "y": 89, @@ -152,6 +162,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 9, "y": 108, @@ -165,6 +176,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 8, "y": 68, @@ -178,6 +190,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 9, "y": 68, @@ -191,6 +204,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 8, "y": 104, @@ -204,6 +218,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 11, "y": 95, @@ -217,6 +232,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 12, "y": 96, @@ -230,6 +246,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 10, "y": 95, @@ -243,6 +260,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 105, @@ -256,6 +274,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 75, @@ -269,6 +288,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 84, @@ -282,6 +302,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 74, @@ -295,6 +316,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 73, @@ -308,6 +330,7 @@ "flag": "FLAG_TEMP_1C" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 111, @@ -321,6 +344,7 @@ "flag": "FLAG_TEMP_1D" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 10, "y": 86, @@ -334,6 +358,7 @@ "flag": "FLAG_TEMP_1E" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 110, @@ -347,6 +372,7 @@ "flag": "FLAG_TEMP_1F" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 112, @@ -360,6 +386,7 @@ "flag": "FLAG_TEMP_11" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 15, "y": 70, @@ -373,6 +400,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 103, @@ -386,6 +414,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_MAX_REPEL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 114, diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json index f31b4b26f..2bc4bec54 100644 --- a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 11, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 15, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 6, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 20, "y": 7, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 10, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 11, "y": 20, diff --git a/data/maps/OneIsland_PokemonCenter_1F/map.json b/data/maps/OneIsland_PokemonCenter_1F/map.json index 1223e5a2d..473d8a751 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/map.json +++ b/data/maps/OneIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 14, "y": 6, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CELIO", "x": 15, "y": 6, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_POKECENTER_CELIO" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 6, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 3, "y": 7, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 7, "y": 4, diff --git a/data/maps/OneIsland_PokemonCenter_2F/map.json b/data/maps/OneIsland_PokemonCenter_2F/map.json index f7fd1a1bb..00ac518fe 100644 --- a/data/maps/OneIsland_PokemonCenter_2F/map.json +++ b/data/maps/OneIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/OneIsland_TreasureBeach/map.json b/data/maps/OneIsland_TreasureBeach/map.json index 1eaf448bc..d940dbe08 100644 --- a/data/maps/OneIsland_TreasureBeach/map.json +++ b/data/maps/OneIsland_TreasureBeach/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 8, "y": 11, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 13, "y": 20, diff --git a/data/maps/PalletTown/map.json b/data/maps/PalletTown/map.json index 9296719e0..8926beb48 100644 --- a/data/maps/PalletTown/map.json +++ b/data/maps/PalletTown/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 3, "y": 10, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 13, "y": 17, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 10, "y": 8, diff --git a/data/maps/PalletTown_PlayersHouse_1F/map.json b/data/maps/PalletTown_PlayersHouse_1F/map.json index f40f63125..6622fca15 100644 --- a/data/maps/PalletTown_PlayersHouse_1F/map.json +++ b/data/maps/PalletTown_PlayersHouse_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MOM", "x": 8, "y": 4, diff --git a/data/maps/PalletTown_ProfessorOaksLab/map.json b/data/maps/PalletTown_ProfessorOaksLab/map.json index 4ba6d636b..7ae7434e7 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/map.json +++ b/data/maps/PalletTown_ProfessorOaksLab/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 11, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 2, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 11, "y": 10, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 6, "y": 3, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_OAK_IN_HIS_LAB" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 4, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_BULBASAUR_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 4, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SQUIRTLE_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 10, "y": 4, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_CHARMANDER_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 5, "y": 4, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_RIVAL_IN_LAB" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POKEDEX", "x": 4, "y": 1, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_POKEDEX" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POKEDEX", "x": 5, "y": 1, diff --git a/data/maps/PalletTown_RivalsHouse/map.json b/data/maps/PalletTown_RivalsHouse/map.json index d6eafde70..6c354f2f6 100644 --- a/data/maps/PalletTown_RivalsHouse/map.json +++ b/data/maps/PalletTown_RivalsHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DAISY", "x": 10, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TOWN_MAP", "x": 6, "y": 4, diff --git a/data/maps/PewterCity/map.json b/data/maps/PewterCity/map.json index eca9af0b8..25d8be29f 100644 --- a/data/maps/PewterCity/map.json +++ b/data/maps/PewterCity/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 6, "y": 15, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 33, "y": 17, @@ -53,6 +55,7 @@ "flag": "FLAG_HIDE_PEWTER_MUSEUM_GUIDE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 21, "y": 28, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 33, "y": 27, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 42, "y": 20, @@ -92,6 +97,7 @@ "flag": "FLAG_HIDE_PEWTER_CITY_GYM_GUIDE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 5, @@ -105,6 +111,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 46, "y": 20, diff --git a/data/maps/PewterCity_Gym/map.json b/data/maps/PewterCity_Gym/map.json index 7c160945a..7c11199d4 100644 --- a/data/maps/PewterCity_Gym/map.json +++ b/data/maps/PewterCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BROCK", "x": 6, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 3, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 12, diff --git a/data/maps/PewterCity_House1/map.json b/data/maps/PewterCity_House1/map.json index 70b274917..44ca8f0d9 100644 --- a/data/maps/PewterCity_House1/map.json +++ b/data/maps/PewterCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 5, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", "x": 6, "y": 3, diff --git a/data/maps/PewterCity_House2/map.json b/data/maps/PewterCity_House2/map.json index 224bf438e..7ecc4596e 100644 --- a/data/maps/PewterCity_House2/map.json +++ b/data/maps/PewterCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 3, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 5, "y": 3, diff --git a/data/maps/PewterCity_Mart/map.json b/data/maps/PewterCity_Mart/map.json index df4620ff7..1cbef2d6a 100644 --- a/data/maps/PewterCity_Mart/map.json +++ b/data/maps/PewterCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 8, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 6, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, diff --git a/data/maps/PewterCity_Museum_1F/map.json b/data/maps/PewterCity_Museum_1F/map.json index a96ec184e..2959ccf25 100644 --- a/data/maps/PewterCity_Museum_1F/map.json +++ b/data/maps/PewterCity_Museum_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 16, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 2, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 21, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_AMBER", "x": 22, "y": 3, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_OLD_AMBER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 26, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 26, "y": 7, diff --git a/data/maps/PewterCity_Museum_2F/map.json b/data/maps/PewterCity_Museum_2F/map.json index 95c1b6aa4..b57a75607 100644 --- a/data/maps/PewterCity_Museum_2F/map.json +++ b/data/maps/PewterCity_Museum_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 10, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 0, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 15, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 16, "y": 8, diff --git a/data/maps/PewterCity_PokemonCenter_1F/map.json b/data/maps/PewterCity_PokemonCenter_1F/map.json index ebc6c532b..7d6fafb6c 100644 --- a/data/maps/PewterCity_PokemonCenter_1F/map.json +++ b/data/maps/PewterCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", "x": 2, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 1, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 13, "y": 2, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 10, "y": 7, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 14, "y": 6, diff --git a/data/maps/PewterCity_PokemonCenter_2F/map.json b/data/maps/PewterCity_PokemonCenter_2F/map.json index 45d753045..e91aeba2a 100644 --- a/data/maps/PewterCity_PokemonCenter_2F/map.json +++ b/data/maps/PewterCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/PokemonLeague_AgathasRoom/map.json b/data/maps/PokemonLeague_AgathasRoom/map.json index 86fda6a3e..791f4fc2f 100644 --- a/data/maps/PokemonLeague_AgathasRoom/map.json +++ b/data/maps/PokemonLeague_AgathasRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_AGATHA", "x": 6, "y": 5, diff --git a/data/maps/PokemonLeague_BrunosRoom/map.json b/data/maps/PokemonLeague_BrunosRoom/map.json index cf1448886..a10f99c0a 100644 --- a/data/maps/PokemonLeague_BrunosRoom/map.json +++ b/data/maps/PokemonLeague_BrunosRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BRUNO", "x": 6, "y": 5, diff --git a/data/maps/PokemonLeague_ChampionsRoom/map.json b/data/maps/PokemonLeague_ChampionsRoom/map.json index a4c1da00f..89988b5fb 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/map.json +++ b/data/maps/PokemonLeague_ChampionsRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 6, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 6, "y": 15, diff --git a/data/maps/PokemonLeague_HallOfFame/map.json b/data/maps/PokemonLeague_HallOfFame/map.json index bbe302813..baa87e865 100644 --- a/data/maps/PokemonLeague_HallOfFame/map.json +++ b/data/maps/PokemonLeague_HallOfFame/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 6, "y": 4, diff --git a/data/maps/PokemonLeague_LancesRoom/map.json b/data/maps/PokemonLeague_LancesRoom/map.json index 05c1daa01..8ef0a06bb 100644 --- a/data/maps/PokemonLeague_LancesRoom/map.json +++ b/data/maps/PokemonLeague_LancesRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LANCE", "x": 6, "y": 8, diff --git a/data/maps/PokemonLeague_LoreleisRoom/map.json b/data/maps/PokemonLeague_LoreleisRoom/map.json index d34bcabc7..4b03e865c 100644 --- a/data/maps/PokemonLeague_LoreleisRoom/map.json +++ b/data/maps/PokemonLeague_LoreleisRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LORELEI", "x": 6, "y": 5, diff --git a/data/maps/PokemonMansion_1F/map.json b/data/maps/PokemonMansion_1F/map.json index d8ff775b8..32073b70a 100644 --- a/data/maps/PokemonMansion_1F/map.json +++ b/data/maps/PokemonMansion_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 22, "y": 24, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 29, "y": 32, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_1F_CARBOS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 6, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_1F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 27, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_1F_PROTEIN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 8, "y": 8, diff --git a/data/maps/PokemonMansion_2F/map.json b/data/maps/PokemonMansion_2F/map.json index 6fb09a8e7..d600cf6cb 100644 --- a/data/maps/PokemonMansion_2F/map.json +++ b/data/maps/PokemonMansion_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 5, "y": 23, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 36, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_2F_CALCIUM" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 23, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_2F_ZINC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 35, "y": 17, diff --git a/data/maps/PokemonMansion_3F/map.json b/data/maps/PokemonMansion_3F/map.json index 6ca394a7d..a567098a8 100644 --- a/data/maps/PokemonMansion_3F/map.json +++ b/data/maps/PokemonMansion_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 7, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 22, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 19, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_3F_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 32, "y": 6, diff --git a/data/maps/PokemonMansion_B1F/map.json b/data/maps/PokemonMansion_B1F/map.json index 4f4ad6ea1..3f2b04726 100644 --- a/data/maps/PokemonMansion_B1F/map.json +++ b/data/maps/PokemonMansion_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 21, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_TM22" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 20, "y": 25, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 34, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 23, "y": 4, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_TM14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 29, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 7, diff --git a/data/maps/PokemonTower_1F/map.json b/data/maps/PokemonTower_1F/map.json index b0d8cafa2..e67ce4974 100644 --- a/data/maps/PokemonTower_1F/map.json +++ b/data/maps/PokemonTower_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 18, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 18, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 15, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 7, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 8, "y": 12, diff --git a/data/maps/PokemonTower_2F/map.json b/data/maps/PokemonTower_2F/map.json index 36281aa79..86f397409 100644 --- a/data/maps/PokemonTower_2F/map.json +++ b/data/maps/PokemonTower_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 16, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_TOWER_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 3, "y": 7, diff --git a/data/maps/PokemonTower_3F/map.json b/data/maps/PokemonTower_3F/map.json index ee15b4a68..8e5d2599e 100644 --- a/data/maps/PokemonTower_3F/map.json +++ b/data/maps/PokemonTower_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 10, "y": 14, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 9, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 12, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 2, diff --git a/data/maps/PokemonTower_4F/map.json b/data/maps/PokemonTower_4F/map.json index 7924b4f3c..286e7b07f 100644 --- a/data/maps/PokemonTower_4F/map.json +++ b/data/maps/PokemonTower_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 17, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 15, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 12, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 11, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_4F_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 11, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_4F_AWAKENING" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 16, diff --git a/data/maps/PokemonTower_5F/map.json b/data/maps/PokemonTower_5F/map.json index 9f74a6aab..cd58f14a4 100644 --- a/data/maps/PokemonTower_5F/map.json +++ b/data/maps/PokemonTower_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 11, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 19, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 7, "y": 12, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 11, "y": 16, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 12, "y": 8, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 16, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_5F_NUGGET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 9, diff --git a/data/maps/PokemonTower_6F/map.json b/data/maps/PokemonTower_6F/map.json index ae72e35e6..b54a5d499 100644 --- a/data/maps/PokemonTower_6F/map.json +++ b/data/maps/PokemonTower_6F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 13, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 18, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 9, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_6F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 15, "y": 15, diff --git a/data/maps/PokemonTower_7F/map.json b/data/maps/PokemonTower_7F/map.json index 327b9311b..a0f23bd76 100644 --- a/data/maps/PokemonTower_7F/map.json +++ b/data/maps/PokemonTower_7F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MR_FUJI", "x": 11, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_TOWER_FUJI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_TOWER_ROCKET_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 13, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_TOWER_ROCKET_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 6, diff --git a/data/maps/PowerPlant/map.json b/data/maps/PowerPlant/map.json index f019d6320..fc61ef633 100644 --- a/data/maps/PowerPlant/map.json +++ b/data/maps/PowerPlant/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 27, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 40, "y": 22, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_TM17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 46, "y": 37, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_TM25" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 45, "y": 4, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_THUNDER_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 26, "y": 22, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ZAPDOS", "x": 5, "y": 11, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_ZAPDOS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 36, "y": 5, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_ELECTRODE_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 38, diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index 67d6be4a5..b12044673 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 10, "y": 5, diff --git a/data/maps/RockTunnel_1F/map.json b/data/maps/RockTunnel_1F/map.json index 2c0ae4315..185bdab33 100644 --- a/data/maps/RockTunnel_1F/map.json +++ b/data/maps/RockTunnel_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 26, "y": 28, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 39, "y": 27, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 45, "y": 24, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 20, "y": 17, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 20, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 7, "y": 5, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 27, "y": 10, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 37, "y": 5, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_REPEL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 33, "y": 22, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_PEARL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 22, diff --git a/data/maps/RockTunnel_B1F/map.json b/data/maps/RockTunnel_B1F/map.json index 186cd6336..9c2fcb6ae 100644 --- a/data/maps/RockTunnel_B1F/map.json +++ b/data/maps/RockTunnel_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 2, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 11, "y": 15, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 36, "y": 11, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 41, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 23, "y": 23, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 15, "y": 33, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 29, "y": 35, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 2, "y": 29, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 37, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_B1F_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 2, @@ -159,6 +170,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_B1F_MAX_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 20, @@ -172,6 +184,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 22, @@ -185,6 +198,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 23, @@ -198,6 +212,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 2, "y": 23, @@ -211,6 +226,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 39, "y": 26, @@ -224,6 +240,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 42, "y": 26, @@ -237,6 +254,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 43, "y": 28, @@ -250,6 +268,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 45, "y": 30, @@ -263,6 +282,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 45, "y": 33, @@ -276,6 +296,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 25, "y": 1, @@ -289,6 +310,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 27, "y": 4, @@ -302,6 +324,7 @@ "flag": "FLAG_TEMP_1C" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 23, "y": 2, @@ -315,6 +338,7 @@ "flag": "FLAG_TEMP_1D" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 26, "y": 2, @@ -328,6 +352,7 @@ "flag": "FLAG_TEMP_1E" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 24, "y": 7, @@ -341,6 +366,7 @@ "flag": "FLAG_TEMP_1F" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 27, "y": 6, diff --git a/data/maps/RocketHideout_B1F/map.json b/data/maps/RocketHideout_B1F/map.json index 54cf4bdef..9380f0fdf 100644 --- a/data/maps/RocketHideout_B1F/map.json +++ b/data/maps/RocketHideout_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 4, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 24, "y": 12, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 6, "y": 32, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 22, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 21, "y": 27, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 16, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B1F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 22, diff --git a/data/maps/RocketHideout_B2F/map.json b/data/maps/RocketHideout_B2F/map.json index 9cdb75e2a..c5e9b5e55 100644 --- a/data/maps/RocketHideout_B2F/map.json +++ b/data/maps/RocketHideout_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 20, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 15, "y": 3, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_X_SPEED" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_MOON_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 7, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_TM12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 0, "y": 14, diff --git a/data/maps/RocketHideout_B3F/map.json b/data/maps/RocketHideout_B3F/map.json index 5ab261edf..5b54baeb8 100644 --- a/data/maps/RocketHideout_B3F/map.json +++ b/data/maps/RocketHideout_B3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 19, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 2, "y": 20, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 19, "y": 14, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_TM21" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 14, "y": 24, diff --git a/data/maps/RocketHideout_B4F/map.json b/data/maps/RocketHideout_B4F/map.json index 0e55fb111..da0f43378 100644 --- a/data/maps/RocketHideout_B4F/map.json +++ b/data/maps/RocketHideout_B4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", "x": 19, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_HIDEOUT_GIOVANNI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 20, "y": 5, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_SCOPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 4, "y": 2, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 2, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_LIFT_KEY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 19, "y": 14, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 16, "y": 14, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 6, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_TM49" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 14, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_MAX_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 23, diff --git a/data/maps/Route1/map.json b/data/maps/Route1/map.json index 96878b73b..b2145ee92 100644 --- a/data/maps/Route1/map.json +++ b/data/maps/Route1/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 6, "y": 28, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 19, "y": 16, diff --git a/data/maps/Route10/map.json b/data/maps/Route10/map.json index 9c82434fb..7b14e946d 100644 --- a/data/maps/Route10/map.json +++ b/data/maps/Route10/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 7, "y": 60, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 4, "y": 62, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 15, "y": 70, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 4, "y": 68, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 13, "y": 44, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 9, "y": 27, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 20, @@ -118,6 +125,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 22, @@ -131,6 +139,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 24, @@ -144,6 +153,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 26, diff --git a/data/maps/Route10_PokemonCenter_1F/map.json b/data/maps/Route10_PokemonCenter_1F/map.json index b8c0aa7ed..ce0147d0e 100644 --- a/data/maps/Route10_PokemonCenter_1F/map.json +++ b/data/maps/Route10_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 9, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 2, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 12, "y": 5, diff --git a/data/maps/Route10_PokemonCenter_2F/map.json b/data/maps/Route10_PokemonCenter_2F/map.json index 665f25678..5c653874f 100644 --- a/data/maps/Route10_PokemonCenter_2F/map.json +++ b/data/maps/Route10_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/Route11/map.json b/data/maps/Route11/map.json index c948dcfc4..0c0f76b57 100644 --- a/data/maps/Route11/map.json +++ b/data/maps/Route11/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 19, "y": 8, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 16, "y": 17, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 31, "y": 8, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 28, "y": 10, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 38, "y": 15, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 50, "y": 4, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 42, "y": 8, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 50, "y": 14, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 57, "y": 16, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 32, "y": 18, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 42, "y": 12, @@ -170,6 +181,7 @@ "flag": "FLAG_HIDE_ROUTE11_X_DEFEND" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 63, "y": 13, @@ -183,6 +195,7 @@ "flag": "FLAG_HIDE_ROUTE11_GREAT_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 3, diff --git a/data/maps/Route11_EastEntrance_1F/map.json b/data/maps/Route11_EastEntrance_1F/map.json index 4063642d2..a09cc6f74 100644 --- a/data/maps/Route11_EastEntrance_1F/map.json +++ b/data/maps/Route11_EastEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 4, "y": 10, diff --git a/data/maps/Route11_EastEntrance_2F/map.json b/data/maps/Route11_EastEntrance_2F/map.json index ae37f03ea..9c5a0986e 100644 --- a/data/maps/Route11_EastEntrance_2F/map.json +++ b/data/maps/Route11_EastEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 7, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 6, diff --git a/data/maps/Route12/map.json b/data/maps/Route12/map.json index 49f08179c..0d6f31a05 100644 --- a/data/maps/Route12/map.json +++ b/data/maps/Route12/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 17, "y": 32, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 9, "y": 40, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 16, "y": 47, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 13, "y": 59, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SNORLAX", "x": 14, "y": 70, @@ -97,6 +102,7 @@ "flag": "FLAG_HIDE_ROUTE_12_SNORLAX" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 13, "y": 92, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 10, "y": 99, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 18, "y": 108, @@ -136,6 +144,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 100, @@ -149,6 +158,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 36, @@ -162,6 +172,7 @@ "flag": "FLAG_HIDE_ROUTE12_TM48" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 101, @@ -175,6 +186,7 @@ "flag": "FLAG_HIDE_ROUTE12_IRON" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 19, "y": 64, @@ -188,6 +200,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 19, "y": 63, @@ -201,6 +214,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 12, "y": 111, diff --git a/data/maps/Route12_FishingHouse/map.json b/data/maps/Route12_FishingHouse/map.json index 1ae854e05..1cedae260 100644 --- a/data/maps/Route12_FishingHouse/map.json +++ b/data/maps/Route12_FishingHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 4, "y": 4, diff --git a/data/maps/Route12_NorthEntrance_1F/map.json b/data/maps/Route12_NorthEntrance_1F/map.json index 552880a86..436bc8e47 100644 --- a/data/maps/Route12_NorthEntrance_1F/map.json +++ b/data/maps/Route12_NorthEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 1, "y": 5, diff --git a/data/maps/Route12_NorthEntrance_2F/map.json b/data/maps/Route12_NorthEntrance_2F/map.json index 192b2f407..81267ac70 100644 --- a/data/maps/Route12_NorthEntrance_2F/map.json +++ b/data/maps/Route12_NorthEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 7, "y": 5, diff --git a/data/maps/Route13/map.json b/data/maps/Route13/map.json index d22b8fe8b..b2c0fd745 100644 --- a/data/maps/Route13/map.json +++ b/data/maps/Route13/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 62, "y": 6, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 63, "y": 12, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 54, "y": 11, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 42, "y": 7, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 43, "y": 7, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 35, "y": 10, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 29, "y": 11, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 9, "y": 14, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 16, "y": 5, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 14, "y": 8, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 44, "y": 5, diff --git a/data/maps/Route14/map.json b/data/maps/Route14/map.json index 212b190b0..2aea43623 100644 --- a/data/maps/Route14/map.json +++ b/data/maps/Route14/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 37, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 18, "y": 35, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 10, "y": 14, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 16, "y": 16, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 31, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 34, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 8, "y": 9, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 7, "y": 6, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 37, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 18, "y": 47, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 7, "y": 26, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 12, "y": 35, @@ -183,6 +195,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 1, "y": 47, @@ -196,6 +209,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 13, "y": 51, @@ -209,6 +223,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 12, "y": 51, diff --git a/data/maps/Route15/map.json b/data/maps/Route15/map.json index df6d62329..a698de29c 100644 --- a/data/maps/Route15/map.json +++ b/data/maps/Route15/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 22, "y": 13, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 31, "y": 12, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 37, "y": 14, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 44, "y": 13, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 50, "y": 12, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 59, "y": 12, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 63, "y": 13, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 52, "y": 8, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 54, "y": 12, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 28, "y": 6, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 20, "y": 6, @@ -170,6 +181,7 @@ "flag": "FLAG_HIDE_ROUTE15_TM18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 39, "y": 7, @@ -183,6 +195,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 40, "y": 7, @@ -196,18 +209,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 73, "y": 7, - "elevation": 13, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "32", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 13, + "target_map": "MAP_ROUTE14" } ], "warp_events": [ diff --git a/data/maps/Route15_WestEntrance_1F/map.json b/data/maps/Route15_WestEntrance_1F/map.json index 1317b92f8..9ac95b3ef 100644 --- a/data/maps/Route15_WestEntrance_1F/map.json +++ b/data/maps/Route15_WestEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, diff --git a/data/maps/Route15_WestEntrance_2F/map.json b/data/maps/Route15_WestEntrance_2F/map.json index 1bba0494e..ca878b2ba 100644 --- a/data/maps/Route15_WestEntrance_2F/map.json +++ b/data/maps/Route15_WestEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 5, diff --git a/data/maps/Route16/map.json b/data/maps/Route16/map.json index 3b63483b2..d0e7f771a 100644 --- a/data/maps/Route16/map.json +++ b/data/maps/Route16/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 16, "y": 12, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 14, "y": 14, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 12, "y": 12, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 8, "y": 12, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 14, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 6, "y": 14, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 41, "y": 11, @@ -118,6 +125,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 30, "y": 5, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 31, "y": 5, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SNORLAX", "x": 31, "y": 13, diff --git a/data/maps/Route16_House/map.json b/data/maps/Route16_House/map.json index f8bd335b3..c9e7f326a 100644 --- a/data/maps/Route16_House/map.json +++ b/data/maps/Route16_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FEAROW", "x": 9, "y": 3, diff --git a/data/maps/Route16_NorthEntrance_1F/map.json b/data/maps/Route16_NorthEntrance_1F/map.json index d79f1d50b..2d289ca2e 100644 --- a/data/maps/Route16_NorthEntrance_1F/map.json +++ b/data/maps/Route16_NorthEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 7, "y": 4, diff --git a/data/maps/Route16_NorthEntrance_2F/map.json b/data/maps/Route16_NorthEntrance_2F/map.json index bf37d4ab4..256220887 100644 --- a/data/maps/Route16_NorthEntrance_2F/map.json +++ b/data/maps/Route16_NorthEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 6, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 4, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 10, "y": 6, diff --git a/data/maps/Route17/map.json b/data/maps/Route17/map.json index 7218a151b..22a4c7ba1 100644 --- a/data/maps/Route17/map.json +++ b/data/maps/Route17/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 4, "y": 18, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 11, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 15, "y": 24, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 18, "y": 41, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 38, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 2, "y": 61, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 21, "y": 61, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 18, "y": 94, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 16, "y": 134, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 4, "y": 116, diff --git a/data/maps/Route18/map.json b/data/maps/Route18/map.json index 28e35b7a3..fb6c538fc 100644 --- a/data/maps/Route18/map.json +++ b/data/maps/Route18/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 46, "y": 14, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 41, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 39, "y": 12, diff --git a/data/maps/Route18_EastEntrance_1F/map.json b/data/maps/Route18_EastEntrance_1F/map.json index 0cd6eaa19..032fdeb9f 100644 --- a/data/maps/Route18_EastEntrance_1F/map.json +++ b/data/maps/Route18_EastEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, diff --git a/data/maps/Route18_EastEntrance_2F/map.json b/data/maps/Route18_EastEntrance_2F/map.json index 80b9973f6..427e0deb1 100644 --- a/data/maps/Route18_EastEntrance_2F/map.json +++ b/data/maps/Route18_EastEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 5, "y": 3, diff --git a/data/maps/Route19/map.json b/data/maps/Route19/map.json index 5fc1f6821..fe9fe5c29 100644 --- a/data/maps/Route19/map.json +++ b/data/maps/Route19/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", "x": 15, "y": 10, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", "x": 10, "y": 9, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 12, "y": 17, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 18, "y": 33, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 8, "y": 27, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 16, "y": 22, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 11, "y": 47, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 14, "y": 48, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 12, "y": 49, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 9, "y": 48, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 8, "y": 41, @@ -170,6 +181,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", "x": 9, "y": 41, diff --git a/data/maps/Route2/map.json b/data/maps/Route2/map.json index 6ad6a8e57..8bdcf3f51 100644 --- a/data/maps/Route2/map.json +++ b/data/maps/Route2/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 16, "y": 62, @@ -40,6 +41,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 15, "y": 69, @@ -53,6 +55,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 13, @@ -66,6 +69,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 18, "y": 26, @@ -79,6 +83,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 54, @@ -92,6 +97,7 @@ "flag": "FLAG_HIDE_ROUTE2_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 64, @@ -105,18 +111,12 @@ "flag": "FLAG_HIDE_ROUTE2_PARALYZE_HEAL" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 6, "y": 85, - "elevation": 8, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "TRAINER_TYPE_NORMAL", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 8, + "target_map": "MAP_VIRIDIAN_CITY" } ], "warp_events": [ diff --git a/data/maps/Route20/map.json b/data/maps/Route20/map.json index 0f606647d..c53ce065f 100644 --- a/data/maps/Route20/map.json +++ b/data/maps/Route20/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 8, "y": 11, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 16, "y": 14, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 34, "y": 7, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 43, "y": 9, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 23, "y": 10, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 73, "y": 16, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 111, "y": 9, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 106, "y": 11, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 93, "y": 10, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 54, "y": 11, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 69, "y": 3, diff --git a/data/maps/Route21_North/map.json b/data/maps/Route21_North/map.json index 33d256f6e..0126f8d90 100644 --- a/data/maps/Route21_North/map.json +++ b/data/maps/Route21_North/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 7, "y": 27, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 16, "y": 26, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 12, "y": 44, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 14, "y": 35, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", "x": 15, "y": 35, @@ -92,18 +97,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", - "in_connection": true, "x": 13, "y": -3, - "elevation": 2, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 2, + "target_map": "MAP_PALLET_TOWN" } ], "warp_events": [], diff --git a/data/maps/Route21_South/map.json b/data/maps/Route21_South/map.json index f5e648729..72b604725 100644 --- a/data/maps/Route21_South/map.json +++ b/data/maps/Route21_South/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 11, "y": 8, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 14, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 15, "y": 24, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 15, "y": 38, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 10, "y": 29, diff --git a/data/maps/Route22/map.json b/data/maps/Route22/map.json index a00677beb..1317ff4e3 100644 --- a/data/maps/Route22/map.json +++ b/data/maps/Route22/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 25, "y": 4, diff --git a/data/maps/Route22_NorthEntrance/map.json b/data/maps/Route22_NorthEntrance/map.json index 7367db717..01ab2de00 100644 --- a/data/maps/Route22_NorthEntrance/map.json +++ b/data/maps/Route22_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 8, "y": 2, diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json index 01889aff9..ddb4eeef9 100644 --- a/data/maps/Route23/map.json +++ b/data/maps/Route23/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 15, "y": 149, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 8, "y": 140, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 14, "y": 123, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 16, "y": 112, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 10, "y": 94, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 14, "y": 61, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 35, diff --git a/data/maps/Route24/map.json b/data/maps/Route24/map.json index d3e00bab0..9335104bc 100644 --- a/data/maps/Route24/map.json +++ b/data/maps/Route24/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 12, "y": 15, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_NUGGET_BRIDGE_ROCKET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 12, "y": 19, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 10, "y": 22, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 12, "y": 25, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 10, "y": 28, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 12, "y": 31, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 5, "y": 21, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 4, diff --git a/data/maps/Route25/map.json b/data/maps/Route25/map.json index 8f93b33a7..7b45398b3 100644 --- a/data/maps/Route25/map.json +++ b/data/maps/Route25/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 11, "y": 4, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 18, "y": 2, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 17, "y": 7, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 22, "y": 4, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 22, "y": 8, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 27, "y": 9, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 28, "y": 4, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 36, "y": 4, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 42, "y": 5, @@ -139,6 +148,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 26, "y": 2, @@ -152,6 +162,7 @@ "flag": "FLAG_HIDE_ROUTE25_TM43" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 3, @@ -165,6 +176,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 49, "y": 10, @@ -178,6 +190,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 49, "y": 11, diff --git a/data/maps/Route25_SeaCottage/map.json b/data/maps/Route25_SeaCottage/map.json index 60a490867..d1550e65d 100644 --- a/data/maps/Route25_SeaCottage/map.json +++ b/data/maps/Route25_SeaCottage/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 7, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLEFAIRY", "x": 10, "y": 6, diff --git a/data/maps/Route2_EastBuilding/map.json b/data/maps/Route2_EastBuilding/map.json index f7997cb0b..1ba0e9df0 100644 --- a/data/maps/Route2_EastBuilding/map.json +++ b/data/maps/Route2_EastBuilding/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 10, "y": 3, diff --git a/data/maps/Route2_House/map.json b/data/maps/Route2_House/map.json index 39c841dd3..4531b0c79 100644 --- a/data/maps/Route2_House/map.json +++ b/data/maps/Route2_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 7, "y": 2, diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/map.json b/data/maps/Route2_ViridianForest_NorthEntrance/map.json index c6cc23713..652f096ff 100644 --- a/data/maps/Route2_ViridianForest_NorthEntrance/map.json +++ b/data/maps/Route2_ViridianForest_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 4, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 10, "y": 5, diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/map.json b/data/maps/Route2_ViridianForest_SouthEntrance/map.json index fbe4c75e0..7930c462d 100644 --- a/data/maps/Route2_ViridianForest_SouthEntrance/map.json +++ b/data/maps/Route2_ViridianForest_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 7, diff --git a/data/maps/Route3/map.json b/data/maps/Route3/map.json index f310180b7..9fbd3634c 100644 --- a/data/maps/Route3/map.json +++ b/data/maps/Route3/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 70, "y": 13, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 40, "y": 11, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 32, "y": 6, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 30, "y": 3, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 25, "y": 4, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 29, "y": 10, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 19, "y": 9, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 12, "y": 6, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 17, "y": 4, diff --git a/data/maps/Route4/map.json b/data/maps/Route4/map.json index a588a2cd1..4692d24dc 100644 --- a/data/maps/Route4/map.json +++ b/data/maps/Route4/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 9, "y": 8, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 75, "y": 3, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 67, "y": 5, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_ROUTE4_TM05" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 15, "y": 14, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 47, "y": 3, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 50, "y": 3, @@ -105,18 +111,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", - "in_connection": true, "x": 109, "y": 3, - "elevation": 12, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "3", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 12, + "target_map": "MAP_CERULEAN_CITY" } ], "warp_events": [ diff --git a/data/maps/Route4_PokemonCenter_1F/map.json b/data/maps/Route4_PokemonCenter_1F/map.json index b62ee3fbe..071aabffd 100644 --- a/data/maps/Route4_PokemonCenter_1F/map.json +++ b/data/maps/Route4_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 12, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 5, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", "x": 12, "y": 6, diff --git a/data/maps/Route4_PokemonCenter_2F/map.json b/data/maps/Route4_PokemonCenter_2F/map.json index b70232abd..e3deac4ae 100644 --- a/data/maps/Route4_PokemonCenter_2F/map.json +++ b/data/maps/Route4_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/Route5_PokemonDayCare/map.json b/data/maps/Route5_PokemonDayCare/map.json index fa866f235..9f8624c7a 100644 --- a/data/maps/Route5_PokemonDayCare/map.json +++ b/data/maps/Route5_PokemonDayCare/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 4, diff --git a/data/maps/Route5_SouthEntrance/map.json b/data/maps/Route5_SouthEntrance/map.json index 9d40775e8..fc8b66ac8 100644 --- a/data/maps/Route5_SouthEntrance/map.json +++ b/data/maps/Route5_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 1, "y": 5, diff --git a/data/maps/Route6/map.json b/data/maps/Route6/map.json index 47c69f5c5..8f9f1821e 100644 --- a/data/maps/Route6/map.json +++ b/data/maps/Route6/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 3, "y": 16, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 12, "y": 21, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 13, "y": 21, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 20, "y": 25, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 13, "y": 32, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 13, "y": 33, diff --git a/data/maps/Route6_NorthEntrance/map.json b/data/maps/Route6_NorthEntrance/map.json index 287d13d1c..04867359f 100644 --- a/data/maps/Route6_NorthEntrance/map.json +++ b/data/maps/Route6_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 7, "y": 5, diff --git a/data/maps/Route7/map.json b/data/maps/Route7/map.json index 922a44476..80de4df63 100644 --- a/data/maps/Route7/map.json +++ b/data/maps/Route7/map.json @@ -27,18 +27,12 @@ ], "object_events": [ { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": -8, "y": 12, - "elevation": 10, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "6", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 10, + "target_map": "MAP_CELADON_CITY" } ], "warp_events": [ diff --git a/data/maps/Route7_EastEntrance/map.json b/data/maps/Route7_EastEntrance/map.json index b05ab81e7..0dd963003 100644 --- a/data/maps/Route7_EastEntrance/map.json +++ b/data/maps/Route7_EastEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, diff --git a/data/maps/Route8/map.json b/data/maps/Route8/map.json index 7f0b2e8c4..e1304aa90 100644 --- a/data/maps/Route8/map.json +++ b/data/maps/Route8/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 62, "y": 14, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 55, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 51, "y": 6, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 29, "y": 3, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 29, "y": 4, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 29, "y": 5, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 29, "y": 6, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 21, "y": 3, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 9, "y": 6, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 33, "y": 15, @@ -157,6 +167,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 47, "y": 12, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 40, "y": 3, @@ -183,6 +195,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 41, "y": 3, @@ -196,6 +209,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 14, "y": 16, @@ -209,6 +223,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 24, "y": 17, diff --git a/data/maps/Route8_WestEntrance/map.json b/data/maps/Route8_WestEntrance/map.json index d759be75e..f1583f862 100644 --- a/data/maps/Route8_WestEntrance/map.json +++ b/data/maps/Route8_WestEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, diff --git a/data/maps/Route9/map.json b/data/maps/Route9/map.json index b733f7a21..1523fc0c4 100644 --- a/data/maps/Route9/map.json +++ b/data/maps/Route9/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 14, "y": 10, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 20, "y": 17, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 61, "y": 16, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 26, "y": 7, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 26, "y": 1, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 49, "y": 7, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 53, "y": 2, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 60, "y": 9, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 36, "y": 6, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 2, "y": 8, @@ -157,6 +167,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 17, @@ -170,6 +181,7 @@ "flag": "FLAG_HIDE_ROUTE9_TM40" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 65, "y": 17, diff --git a/data/maps/SSAnne_1F_Corridor/map.json b/data/maps/SSAnne_1F_Corridor/map.json index fe30bc49f..c7737b75b 100644 --- a/data/maps/SSAnne_1F_Corridor/map.json +++ b/data/maps/SSAnne_1F_Corridor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 18, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 12, "y": 9, diff --git a/data/maps/SSAnne_1F_Room1/map.json b/data/maps/SSAnne_1F_Room1/map.json index 47fa01a0c..89cb5ca70 100644 --- a/data/maps/SSAnne_1F_Room1/map.json +++ b/data/maps/SSAnne_1F_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 5, diff --git a/data/maps/SSAnne_1F_Room2/map.json b/data/maps/SSAnne_1F_Room2/map.json index 0f93495b2..f96591fc9 100644 --- a/data/maps/SSAnne_1F_Room2/map.json +++ b/data/maps/SSAnne_1F_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 5, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 0, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 2, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 7, diff --git a/data/maps/SSAnne_1F_Room3/map.json b/data/maps/SSAnne_1F_Room3/map.json index 7eec1735f..68c4d8dc8 100644 --- a/data/maps/SSAnne_1F_Room3/map.json +++ b/data/maps/SSAnne_1F_Room3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WIGGLYTUFF", "x": 4, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 0, "y": 4, diff --git a/data/maps/SSAnne_1F_Room4/map.json b/data/maps/SSAnne_1F_Room4/map.json index 8a932c9c9..5598fb79f 100644 --- a/data/maps/SSAnne_1F_Room4/map.json +++ b/data/maps/SSAnne_1F_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 2, "y": 4, diff --git a/data/maps/SSAnne_1F_Room5/map.json b/data/maps/SSAnne_1F_Room5/map.json index 6a3a6e6b0..38456ea10 100644 --- a/data/maps/SSAnne_1F_Room5/map.json +++ b/data/maps/SSAnne_1F_Room5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 6, diff --git a/data/maps/SSAnne_1F_Room6/map.json b/data/maps/SSAnne_1F_Room6/map.json index 2a504adce..83d01462c 100644 --- a/data/maps/SSAnne_1F_Room6/map.json +++ b/data/maps/SSAnne_1F_Room6/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 3, "y": 5, diff --git a/data/maps/SSAnne_1F_Room7/map.json b/data/maps/SSAnne_1F_Room7/map.json index 91746ee78..2435e864c 100644 --- a/data/maps/SSAnne_1F_Room7/map.json +++ b/data/maps/SSAnne_1F_Room7/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 3, diff --git a/data/maps/SSAnne_2F_Corridor/map.json b/data/maps/SSAnne_2F_Corridor/map.json index f23f839ee..59678eb49 100644 --- a/data/maps/SSAnne_2F_Corridor/map.json +++ b/data/maps/SSAnne_2F_Corridor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 30, "y": 2, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SS_ANNE_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 2, "y": 7, diff --git a/data/maps/SSAnne_2F_Room1/map.json b/data/maps/SSAnne_2F_Room1/map.json index cfd1b60be..cd85d395e 100644 --- a/data/maps/SSAnne_2F_Room1/map.json +++ b/data/maps/SSAnne_2F_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 1, "y": 4, diff --git a/data/maps/SSAnne_2F_Room2/map.json b/data/maps/SSAnne_2F_Room2/map.json index 2e12441b4..27ffa8b66 100644 --- a/data/maps/SSAnne_2F_Room2/map.json +++ b/data/maps/SSAnne_2F_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 5, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 1, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 3, diff --git a/data/maps/SSAnne_2F_Room3/map.json b/data/maps/SSAnne_2F_Room3/map.json index 5d8ff0753..f4ca52f39 100644 --- a/data/maps/SSAnne_2F_Room3/map.json +++ b/data/maps/SSAnne_2F_Room3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 3, "y": 2, diff --git a/data/maps/SSAnne_2F_Room4/map.json b/data/maps/SSAnne_2F_Room4/map.json index 157f29bf3..3a3e4d107 100644 --- a/data/maps/SSAnne_2F_Room4/map.json +++ b/data/maps/SSAnne_2F_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 0, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 4, diff --git a/data/maps/SSAnne_2F_Room5/map.json b/data/maps/SSAnne_2F_Room5/map.json index 7c3e77e1e..c75da955a 100644 --- a/data/maps/SSAnne_2F_Room5/map.json +++ b/data/maps/SSAnne_2F_Room5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 3, "y": 5, diff --git a/data/maps/SSAnne_2F_Room6/map.json b/data/maps/SSAnne_2F_Room6/map.json index a57b2e30d..6c87a8ec0 100644 --- a/data/maps/SSAnne_2F_Room6/map.json +++ b/data/maps/SSAnne_2F_Room6/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 1, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 4, diff --git a/data/maps/SSAnne_3F_Corridor/map.json b/data/maps/SSAnne_3F_Corridor/map.json index 9c2079431..9337e19f3 100644 --- a/data/maps/SSAnne_3F_Corridor/map.json +++ b/data/maps/SSAnne_3F_Corridor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 10, "y": 4, diff --git a/data/maps/SSAnne_B1F_Room1/map.json b/data/maps/SSAnne_B1F_Room1/map.json index cf7bf15ec..e0b41fc12 100644 --- a/data/maps/SSAnne_B1F_Room1/map.json +++ b/data/maps/SSAnne_B1F_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 3, "y": 2, diff --git a/data/maps/SSAnne_B1F_Room2/map.json b/data/maps/SSAnne_B1F_Room2/map.json index cd01d82b8..af0e08af2 100644 --- a/data/maps/SSAnne_B1F_Room2/map.json +++ b/data/maps/SSAnne_B1F_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 2, diff --git a/data/maps/SSAnne_B1F_Room3/map.json b/data/maps/SSAnne_B1F_Room3/map.json index 2dbef096c..703525282 100644 --- a/data/maps/SSAnne_B1F_Room3/map.json +++ b/data/maps/SSAnne_B1F_Room3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 5, diff --git a/data/maps/SSAnne_B1F_Room4/map.json b/data/maps/SSAnne_B1F_Room4/map.json index 68a1ecf65..2da162618 100644 --- a/data/maps/SSAnne_B1F_Room4/map.json +++ b/data/maps/SSAnne_B1F_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 3, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 2, "y": 6, diff --git a/data/maps/SSAnne_B1F_Room5/map.json b/data/maps/SSAnne_B1F_Room5/map.json index ee81b03b4..35487ba46 100644 --- a/data/maps/SSAnne_B1F_Room5/map.json +++ b/data/maps/SSAnne_B1F_Room5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MACHOKE", "x": 2, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 2, diff --git a/data/maps/SSAnne_CaptainsOffice/map.json b/data/maps/SSAnne_CaptainsOffice/map.json index ffd6cc1ec..bba9fdf25 100644 --- a/data/maps/SSAnne_CaptainsOffice/map.json +++ b/data/maps/SSAnne_CaptainsOffice/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAPTAIN", "x": 5, "y": 4, diff --git a/data/maps/SSAnne_Deck/map.json b/data/maps/SSAnne_Deck/map.json index 2f74b00ec..4d3dde7f3 100644 --- a/data/maps/SSAnne_Deck/map.json +++ b/data/maps/SSAnne_Deck/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 12, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 14, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 13, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 6, "y": 9, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 11, "y": 5, diff --git a/data/maps/SSAnne_Exterior/map.json b/data/maps/SSAnne_Exterior/map.json index 000138ce8..bc9a9f9c2 100644 --- a/data/maps/SSAnne_Exterior/map.json +++ b/data/maps/SSAnne_Exterior/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SS_ANNE", "x": 30, "y": 16, diff --git a/data/maps/SSAnne_Kitchen/map.json b/data/maps/SSAnne_Kitchen/map.json index 2470b482a..163b88d12 100644 --- a/data/maps/SSAnne_Kitchen/map.json +++ b/data/maps/SSAnne_Kitchen/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 1, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 6, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 10, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 8, "y": 9, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 14, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 14, "y": 7, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 14, "y": 9, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 10, diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json index 19231b544..bf49fb4b8 100644 --- a/data/maps/SafariZone_Center/map.json +++ b/data/maps/SafariZone_Center/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 15, diff --git a/data/maps/SafariZone_Center_RestHouse/map.json b/data/maps/SafariZone_Center_RestHouse/map.json index 9a6211cd5..b5b111f7a 100644 --- a/data/maps/SafariZone_Center_RestHouse/map.json +++ b/data/maps/SafariZone_Center_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 7, "y": 3, diff --git a/data/maps/SafariZone_East/map.json b/data/maps/SafariZone_East/map.json index aabf6edc8..3e2151f8c 100644 --- a/data/maps/SafariZone_East/map.json +++ b/data/maps/SafariZone_East/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 37, "y": 15, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 31, "y": 18, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_TM11" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 36, "y": 17, diff --git a/data/maps/SafariZone_East_RestHouse/map.json b/data/maps/SafariZone_East_RestHouse/map.json index 136eeb85d..5c0b460ac 100644 --- a/data/maps/SafariZone_East_RestHouse/map.json +++ b/data/maps/SafariZone_East_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 6, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 3, diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json index 9611e34fa..e90b9aa0d 100644 --- a/data/maps/SafariZone_North/map.json +++ b/data/maps/SafariZone_North/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 33, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_PROTEIN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 28, "y": 9, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_TM47" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 29, "y": 17, diff --git a/data/maps/SafariZone_North_RestHouse/map.json b/data/maps/SafariZone_North_RestHouse/map.json index 7e2f211cd..cecf86a54 100644 --- a/data/maps/SafariZone_North_RestHouse/map.json +++ b/data/maps/SafariZone_North_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 7, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 6, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 11, "y": 2, diff --git a/data/maps/SafariZone_SecretHouse/map.json b/data/maps/SafariZone_SecretHouse/map.json index 87cd7742d..49061ae7c 100644 --- a/data/maps/SafariZone_SecretHouse/map.json +++ b/data/maps/SafariZone_SecretHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 5, diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json index 239f7caef..ed9cef50c 100644 --- a/data/maps/SafariZone_West/map.json +++ b/data/maps/SafariZone_West/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 28, "y": 14, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 13, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_TM32" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 16, "y": 27, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 27, "y": 24, diff --git a/data/maps/SafariZone_West_RestHouse/map.json b/data/maps/SafariZone_West_RestHouse/map.json index 0716b11b6..ea046b849 100644 --- a/data/maps/SafariZone_West_RestHouse/map.json +++ b/data/maps/SafariZone_West_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 7, "y": 3, diff --git a/data/maps/SaffronCity/map.json b/data/maps/SaffronCity/map.json index d2a1b424e..8da2e4099 100644 --- a/data/maps/SaffronCity/map.json +++ b/data/maps/SaffronCity/map.json @@ -38,6 +38,7 @@ "connections_no_include": true, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 22, "y": 15, @@ -51,6 +52,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 26, "y": 16, @@ -64,6 +66,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 46, "y": 13, @@ -77,6 +80,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 27, "y": 22, @@ -90,6 +94,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 25, "y": 33, @@ -103,6 +108,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 34, "y": 31, @@ -116,6 +122,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 30, "y": 39, @@ -129,6 +136,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 48, "y": 24, @@ -142,6 +150,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 37, "y": 32, @@ -155,6 +164,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 21, "y": 23, @@ -168,6 +178,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 39, "y": 16, @@ -181,6 +192,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 44, "y": 22, @@ -194,6 +206,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEOT", "x": 45, "y": 22, @@ -207,6 +220,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 32, "y": 39, @@ -220,6 +234,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 47, "y": 24, diff --git a/data/maps/SaffronCity_CopycatsHouse_1F/map.json b/data/maps/SaffronCity_CopycatsHouse_1F/map.json index a53910775..c7abb00d7 100644 --- a/data/maps/SaffronCity_CopycatsHouse_1F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 8, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 3, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 4, "y": 4, diff --git a/data/maps/SaffronCity_CopycatsHouse_2F/map.json b/data/maps/SaffronCity_CopycatsHouse_2F/map.json index d281922d1..919c12a0b 100644 --- a/data/maps/SaffronCity_CopycatsHouse_2F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DODUO", "x": 6, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIKACHU", "x": 4, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", "x": 7, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 9, "y": 6, diff --git a/data/maps/SaffronCity_Dojo/map.json b/data/maps/SaffronCity_Dojo/map.json index 34a64c7c4..01f94fc0d 100644 --- a/data/maps/SaffronCity_Dojo/map.json +++ b/data/maps/SaffronCity_Dojo/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 1, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 1, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 6, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 3, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_DOJO_HITMONLEE_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 3, diff --git a/data/maps/SaffronCity_Gym/map.json b/data/maps/SaffronCity_Gym/map.json index 26a6736b6..4fc950d9b 100644 --- a/data/maps/SaffronCity_Gym/map.json +++ b/data/maps/SaffronCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 24, "y": 18, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 24, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 4, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 14, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 10, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 18, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SABRINA", "x": 14, "y": 11, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 24, "y": 10, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 15, "y": 20, diff --git a/data/maps/SaffronCity_House/map.json b/data/maps/SaffronCity_House/map.json index d1232cadb..70e9b3fe9 100644 --- a/data/maps/SaffronCity_House/map.json +++ b/data/maps/SaffronCity_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEY", "x": 0, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 4, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 6, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", "x": 5, "y": 4, diff --git a/data/maps/SaffronCity_Mart/map.json b/data/maps/SaffronCity_Mart/map.json index 451ee31d9..b72d0e84e 100644 --- a/data/maps/SaffronCity_Mart/map.json +++ b/data/maps/SaffronCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 1, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 9, "y": 5, diff --git a/data/maps/SaffronCity_MrPsychicsHouse/map.json b/data/maps/SaffronCity_MrPsychicsHouse/map.json index 6e9a5508d..9e01e083f 100644 --- a/data/maps/SaffronCity_MrPsychicsHouse/map.json +++ b/data/maps/SaffronCity_MrPsychicsHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 4, diff --git a/data/maps/SaffronCity_PokemonCenter_1F/map.json b/data/maps/SaffronCity_PokemonCenter_1F/map.json index 3bf36c736..5a87f8862 100644 --- a/data/maps/SaffronCity_PokemonCenter_1F/map.json +++ b/data/maps/SaffronCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 14, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 4, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 9, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, diff --git a/data/maps/SaffronCity_PokemonCenter_2F/map.json b/data/maps/SaffronCity_PokemonCenter_2F/map.json index 71c05de46..24e3e4730 100644 --- a/data/maps/SaffronCity_PokemonCenter_2F/map.json +++ b/data/maps/SaffronCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json index dc9f24d6d..538df731e 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 7, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 6, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 3, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 3, "y": 12, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 9, "y": 11, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 7, "y": 12, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 9, "y": 12, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 5, "y": 11, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, diff --git a/data/maps/SeafoamIslands_1F/map.json b/data/maps/SeafoamIslands_1F/map.json index b85000671..2f9568cac 100644 --- a/data/maps/SeafoamIslands_1F/map.json +++ b/data/maps/SeafoamIslands_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 32, "y": 9, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 8, diff --git a/data/maps/SeafoamIslands_B1F/map.json b/data/maps/SeafoamIslands_B1F/map.json index 014da39a1..f77547a32 100644 --- a/data/maps/SeafoamIslands_B1F/map.json +++ b/data/maps/SeafoamIslands_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 30, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 19, "y": 18, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_B1F_WATER_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 14, diff --git a/data/maps/SeafoamIslands_B2F/map.json b/data/maps/SeafoamIslands_B2F/map.json index 5d770655f..2c538969c 100644 --- a/data/maps/SeafoamIslands_B2F/map.json +++ b/data/maps/SeafoamIslands_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 30, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 15, diff --git a/data/maps/SeafoamIslands_B3F/map.json b/data/maps/SeafoamIslands_B3F/map.json index 21f25cfba..9c0d910c4 100644 --- a/data/maps/SeafoamIslands_B3F/map.json +++ b/data/maps/SeafoamIslands_B3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 23, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 24, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 12, "y": 16, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_5" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 13, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 16, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 17, diff --git a/data/maps/SeafoamIslands_B4F/map.json b/data/maps/SeafoamIslands_B4F/map.json index 44c4268c8..f7cf6a0a0 100644 --- a/data/maps/SeafoamIslands_B4F/map.json +++ b/data/maps/SeafoamIslands_B4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 18, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 18, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ARTICUNO", "x": 9, "y": 2, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ARTICUNO" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 19, diff --git a/data/maps/SevenIsland/map.json b/data/maps/SevenIsland/map.json index 08494194a..6f0157a1c 100644 --- a/data/maps/SevenIsland/map.json +++ b/data/maps/SevenIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 7, "y": 18, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 9, "y": 7, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 15, "y": 5, diff --git a/data/maps/SevenIsland_Harbor/map.json b/data/maps/SevenIsland_Harbor/map.json index 3e11a65ca..4c0a1879e 100644 --- a/data/maps/SevenIsland_Harbor/map.json +++ b/data/maps/SevenIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/SevenIsland_House_Room1/map.json b/data/maps/SevenIsland_House_Room1/map.json index d1dc104c8..1315c5430 100644 --- a/data/maps/SevenIsland_House_Room1/map.json +++ b/data/maps/SevenIsland_House_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 4, "y": 4, diff --git a/data/maps/SevenIsland_House_Room2/map.json b/data/maps/SevenIsland_House_Room2/map.json index 93b0a3a6e..04375b39e 100644 --- a/data/maps/SevenIsland_House_Room2/map.json +++ b/data/maps/SevenIsland_House_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 6, "y": 5, diff --git a/data/maps/SevenIsland_Mart/map.json b/data/maps/SevenIsland_Mart/map.json index a74ef6c45..0dac386df 100644 --- a/data/maps/SevenIsland_Mart/map.json +++ b/data/maps/SevenIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 9, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 4, diff --git a/data/maps/SevenIsland_PokemonCenter_1F/map.json b/data/maps/SevenIsland_PokemonCenter_1F/map.json index a73cb405b..ab0e7158c 100644 --- a/data/maps/SevenIsland_PokemonCenter_1F/map.json +++ b/data/maps/SevenIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 11, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 14, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 4, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, diff --git a/data/maps/SevenIsland_PokemonCenter_2F/map.json b/data/maps/SevenIsland_PokemonCenter_2F/map.json index f7d97b3ca..ef43a8fa1 100644 --- a/data/maps/SevenIsland_PokemonCenter_2F/map.json +++ b/data/maps/SevenIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/SevenIsland_SevaultCanyon/map.json b/data/maps/SevenIsland_SevaultCanyon/map.json index 824d75723..ce1002299 100644 --- a/data/maps/SevenIsland_SevaultCanyon/map.json +++ b/data/maps/SevenIsland_SevaultCanyon/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 13, "y": 43, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 13, "y": 36, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 3, "y": 35, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 3, "y": 36, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 7, "y": 56, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 11, "y": 63, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 14, "y": 13, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 14, "y": 14, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 3, "y": 41, @@ -144,6 +153,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 13, "y": 47, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 44, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 12, "y": 47, @@ -183,6 +195,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 46, @@ -196,6 +209,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 16, "y": 47, @@ -209,6 +223,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 47, @@ -222,6 +237,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 11, "y": 31, @@ -235,6 +251,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 45, @@ -248,6 +265,7 @@ "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_KINGS_ROCK" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 38, @@ -261,6 +279,7 @@ "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_MAX_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 23, @@ -274,6 +293,7 @@ "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_NUGGET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 8, "y": 26, diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json index 58c07698e..b86e59a1d 100644 --- a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 12, "y": 6, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 3, "y": 34, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 34, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 11, "y": 26, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 10, "y": 26, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 11, "y": 17, @@ -105,18 +111,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", - "in_connection": true, "x": 7, "y": -2, - "elevation": 1, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "17", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 1, + "target_map": "MAP_SEVEN_ISLAND" } ], "warp_events": [], diff --git a/data/maps/SevenIsland_SevaultCanyon_House/map.json b/data/maps/SevenIsland_SevaultCanyon_House/map.json index f697cb790..e1a5d7460 100644 --- a/data/maps/SevenIsland_SevaultCanyon_House/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 4, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 4, diff --git a/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json index e8f0d9181..d59f38bd2 100644 --- a/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 7, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 9, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 10, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 10, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 9, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 6, diff --git a/data/maps/SevenIsland_TanobyRuins/map.json b/data/maps/SevenIsland_TanobyRuins/map.json index 31455ac19..e589e8362 100644 --- a/data/maps/SevenIsland_TanobyRuins/map.json +++ b/data/maps/SevenIsland_TanobyRuins/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 35, "y": 7, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 121, "y": 11, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 85, "y": 8, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 85, "y": 5, diff --git a/data/maps/SevenIsland_TrainerTower/map.json b/data/maps/SevenIsland_TrainerTower/map.json index d6be87d75..365be8499 100644 --- a/data/maps/SevenIsland_TrainerTower/map.json +++ b/data/maps/SevenIsland_TrainerTower/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 56, "y": 26, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 56, "y": 29, diff --git a/data/maps/SilphCo_10F/map.json b/data/maps/SilphCo_10F/map.json index b867283ab..f3ca6b9ed 100644 --- a/data/maps/SilphCo_10F/map.json +++ b/data/maps/SilphCo_10F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 10, "y": 17, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 0, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_CO_10F_CARBOS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 15, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_10F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 17, diff --git a/data/maps/SilphCo_11F/map.json b/data/maps/SilphCo_11F/map.json index 07479d1d8..0a40ff336 100644 --- a/data/maps/SilphCo_11F/map.json +++ b/data/maps/SilphCo_11F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 9, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 11, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", "x": 6, "y": 11, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 16, "y": 12, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 16, "y": 18, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_11F_ZINC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 2, "y": 19, diff --git a/data/maps/SilphCo_1F/map.json b/data/maps/SilphCo_1F/map.json index aba93eb0a..fe60d23e3 100644 --- a/data/maps/SilphCo_1F/map.json +++ b/data/maps/SilphCo_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 3, "y": 7, diff --git a/data/maps/SilphCo_2F/map.json b/data/maps/SilphCo_2F/map.json index 55b2da754..3b7940b21 100644 --- a/data/maps/SilphCo_2F/map.json +++ b/data/maps/SilphCo_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 29, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 28, "y": 18, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 20, "y": 14, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 19, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 4, diff --git a/data/maps/SilphCo_3F/map.json b/data/maps/SilphCo_3F/map.json index b8617c70b..75c82254c 100644 --- a/data/maps/SilphCo_3F/map.json +++ b/data/maps/SilphCo_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 25, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 31, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 10, diff --git a/data/maps/SilphCo_4F/map.json b/data/maps/SilphCo_4F/map.json index e02b30912..978582eac 100644 --- a/data/maps/SilphCo_4F/map.json +++ b/data/maps/SilphCo_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 33, "y": 16, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 19, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 14, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 5, "y": 5, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 11, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_4F_MAX_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 12, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SILPH_CO_4F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 13, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SILPH_CO_4F_FULL_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 18, diff --git a/data/maps/SilphCo_5F/map.json b/data/maps/SilphCo_5F/map.json index 6fcc56f08..5f76346bf 100644 --- a/data/maps/SilphCo_5F/map.json +++ b/data/maps/SilphCo_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 35, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 23, "y": 13, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 16, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 11, "y": 6, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 21, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 9, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SILPH_CO_5F_PROTEIN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 18, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SILPH_CO_5F_TM01" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 21, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_SILPH_CO_5F_CARD_KEY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 7, diff --git a/data/maps/SilphCo_6F/map.json b/data/maps/SilphCo_6F/map.json index ca17ad516..081752b34 100644 --- a/data/maps/SilphCo_6F/map.json +++ b/data/maps/SilphCo_6F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 21, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 23, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 24, "y": 9, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 22, "y": 13, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 14, "y": 9, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 16, "y": 12, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 9, "y": 11, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 14, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_SILPH_CO_6F_HP_UP" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 17, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_SILPH_CO_6F_X_SPECIAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 18, "y": 17, diff --git a/data/maps/SilphCo_7F/map.json b/data/maps/SilphCo_7F/map.json index 2257544b7..21e3dc0ad 100644 --- a/data/maps/SilphCo_7F/map.json +++ b/data/maps/SilphCo_7F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 2, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 0, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 24, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 24, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 13, "y": 4, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 10, "y": 10, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 13, "y": 14, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 9, "y": 14, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 13, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 0, "y": 12, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_SILPH_CO_7F_CALCIUM" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 11, diff --git a/data/maps/SilphCo_8F/map.json b/data/maps/SilphCo_8F/map.json index ed2d8dd32..a901ec1b8 100644 --- a/data/maps/SilphCo_8F/map.json +++ b/data/maps/SilphCo_8F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 28, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 17, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 9, "y": 4, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 2, "y": 5, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 8, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_8F_IRON" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 29, "y": 9, diff --git a/data/maps/SilphCo_9F/map.json b/data/maps/SilphCo_9F/map.json index a5cb18329..cbd76fef4 100644 --- a/data/maps/SilphCo_9F/map.json +++ b/data/maps/SilphCo_9F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 26, "y": 16, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 15, "y": 18, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 2, "y": 16, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 1, "y": 6, diff --git a/data/maps/SixIsland/map.json b/data/maps/SixIsland/map.json index 89d0c6eff..daa46f76c 100644 --- a/data/maps/SixIsland/map.json +++ b/data/maps/SixIsland/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 10, "y": 15, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 15, "y": 13, diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json index 9909f8a4a..1df78033e 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAPPHIRE", "x": 7, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAPPHIRE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 9, diff --git a/data/maps/SixIsland_GreenPath/map.json b/data/maps/SixIsland_GreenPath/map.json index 30ca97e51..0b9dde9b6 100644 --- a/data/maps/SixIsland_GreenPath/map.json +++ b/data/maps/SixIsland_GreenPath/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 11, "y": 8, diff --git a/data/maps/SixIsland_Harbor/map.json b/data/maps/SixIsland_Harbor/map.json index ce3ba9b04..18524878a 100644 --- a/data/maps/SixIsland_Harbor/map.json +++ b/data/maps/SixIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/SixIsland_House/map.json b/data/maps/SixIsland_House/map.json index 682351b4c..acca8851e 100644 --- a/data/maps/SixIsland_House/map.json +++ b/data/maps/SixIsland_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 7, "y": 5, diff --git a/data/maps/SixIsland_Mart/map.json b/data/maps/SixIsland_Mart/map.json index 7201f0851..90774c5ec 100644 --- a/data/maps/SixIsland_Mart/map.json +++ b/data/maps/SixIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 8, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 7, "y": 7, diff --git a/data/maps/SixIsland_OutcastIsland/map.json b/data/maps/SixIsland_OutcastIsland/map.json index 1c353c29b..c5a4b7c8e 100644 --- a/data/maps/SixIsland_OutcastIsland/map.json +++ b/data/maps/SixIsland_OutcastIsland/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 24, @@ -35,6 +36,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 12, "y": 15, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 13, "y": 34, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 14, "y": 61, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 10, "y": 44, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", "x": 11, "y": 44, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 16, diff --git a/data/maps/SixIsland_PatternBush/map.json b/data/maps/SixIsland_PatternBush/map.json index 37c0cca48..8231109bd 100644 --- a/data/maps/SixIsland_PatternBush/map.json +++ b/data/maps/SixIsland_PatternBush/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 48, "y": 15, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 51, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 12, "y": 13, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 37, "y": 23, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 32, "y": 5, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 52, "y": 20, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 8, "y": 21, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 39, "y": 6, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 3, "y": 9, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 19, "y": 24, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 30, "y": 19, diff --git a/data/maps/SixIsland_PokemonCenter_1F/map.json b/data/maps/SixIsland_PokemonCenter_1F/map.json index 4ddf8f3b5..34fadf276 100644 --- a/data/maps/SixIsland_PokemonCenter_1F/map.json +++ b/data/maps/SixIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 5, "y": 5, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 13, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 12, "y": 5, diff --git a/data/maps/SixIsland_PokemonCenter_2F/map.json b/data/maps/SixIsland_PokemonCenter_2F/map.json index 6fa988e71..941989e3d 100644 --- a/data/maps/SixIsland_PokemonCenter_2F/map.json +++ b/data/maps/SixIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/SixIsland_RuinValley/map.json b/data/maps/SixIsland_RuinValley/map.json index 1233ea32a..9e2851451 100644 --- a/data/maps/SixIsland_RuinValley/map.json +++ b/data/maps/SixIsland_RuinValley/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 24, "y": 25, @@ -35,6 +36,7 @@ "flag": "FLAG_HIDE_RUIN_VALLEY_SCIENTIST" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 32, "y": 11, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 33, "y": 16, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 31, "y": 24, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 14, "y": 10, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 21, "y": 29, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 10, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 12, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 18, "y": 11, @@ -139,6 +148,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 33, @@ -152,6 +162,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 34, @@ -165,6 +176,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 41, "y": 32, @@ -178,6 +190,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 41, "y": 33, @@ -191,6 +204,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 42, "y": 33, @@ -204,6 +218,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 33, @@ -217,6 +232,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_HP_UP" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 19, "y": 11, @@ -230,6 +246,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 43, "y": 32, diff --git a/data/maps/SixIsland_WaterPath/map.json b/data/maps/SixIsland_WaterPath/map.json index 952fd541e..080a0749d 100644 --- a/data/maps/SixIsland_WaterPath/map.json +++ b/data/maps/SixIsland_WaterPath/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 12, "y": 13, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 11, "y": 52, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 13, "y": 35, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 15, "y": 45, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 6, "y": 21, @@ -97,6 +102,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 7, "y": 21, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 11, "y": 76, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 19, @@ -136,6 +144,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_WATER_PATH_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 87, diff --git a/data/maps/SixIsland_WaterPath_House1/map.json b/data/maps/SixIsland_WaterPath_House1/map.json index 88e50542f..266c79a8a 100644 --- a/data/maps/SixIsland_WaterPath_House1/map.json +++ b/data/maps/SixIsland_WaterPath_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 3, "y": 4, diff --git a/data/maps/SixIsland_WaterPath_House2/map.json b/data/maps/SixIsland_WaterPath_House2/map.json index fe1e53c65..0964b2399 100644 --- a/data/maps/SixIsland_WaterPath_House2/map.json +++ b/data/maps/SixIsland_WaterPath_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 7, "y": 4, diff --git a/data/maps/ThreeIsland/map.json b/data/maps/ThreeIsland/map.json index b760e50b2..7b593a7be 100644 --- a/data/maps/ThreeIsland/map.json +++ b/data/maps/ThreeIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 7, "y": 24, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_ANTIBIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 8, "y": 23, @@ -53,6 +55,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_ANTIBIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 8, "y": 24, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_LONE_BIKER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 9, "y": 23, @@ -79,6 +83,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 9, "y": 24, @@ -92,6 +97,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 22, @@ -105,6 +111,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 24, @@ -118,6 +125,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 11, "y": 23, @@ -131,6 +139,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 20, "y": 7, @@ -144,6 +153,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 17, @@ -157,6 +167,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_ZINC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 15, "y": 7, @@ -170,6 +181,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 14, "y": 14, @@ -183,6 +195,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DODUO", "x": 15, "y": 14, @@ -196,6 +209,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 15, "y": 31, diff --git a/data/maps/ThreeIsland_BerryForest/map.json b/data/maps/ThreeIsland_BerryForest/map.json index 874b9f089..7c03e0d7c 100644 --- a/data/maps/ThreeIsland_BerryForest/map.json +++ b/data/maps/ThreeIsland_BerryForest/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 4, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 12, "y": 11, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 19, "y": 7, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 23, "y": 17, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 38, "y": 23, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 44, "y": 23, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 44, "y": 29, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 16, "y": 43, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 17, "y": 39, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 14, "y": 39, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 39, @@ -159,6 +170,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 5, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 27, "y": 11, @@ -185,6 +198,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_FULL_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 43, diff --git a/data/maps/ThreeIsland_BondBridge/map.json b/data/maps/ThreeIsland_BondBridge/map.json index 80f8c79ed..69cd2ab45 100644 --- a/data/maps/ThreeIsland_BondBridge/map.json +++ b/data/maps/ThreeIsland_BondBridge/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 27, "y": 10, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 68, "y": 10, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_F", "x": 33, "y": 13, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_F", "x": 50, "y": 11, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 36, "y": 4, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 77, "y": 5, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 78, "y": 5, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 72, "y": 8, @@ -126,6 +134,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 86, "y": 13, diff --git a/data/maps/ThreeIsland_DunsparceTunnel/map.json b/data/maps/ThreeIsland_DunsparceTunnel/map.json index f5c957505..c4b7b5a6a 100644 --- a/data/maps/ThreeIsland_DunsparceTunnel/map.json +++ b/data/maps/ThreeIsland_DunsparceTunnel/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 23, "y": 2, diff --git a/data/maps/ThreeIsland_Harbor/map.json b/data/maps/ThreeIsland_Harbor/map.json index f9219d5c2..17d8caccd 100644 --- a/data/maps/ThreeIsland_Harbor/map.json +++ b/data/maps/ThreeIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/ThreeIsland_House1/map.json b/data/maps/ThreeIsland_House1/map.json index aa356997b..0922488e0 100644 --- a/data/maps/ThreeIsland_House1/map.json +++ b/data/maps/ThreeIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 3, "y": 4, diff --git a/data/maps/ThreeIsland_House2/map.json b/data/maps/ThreeIsland_House2/map.json index 01fd8fe58..a079b8482 100644 --- a/data/maps/ThreeIsland_House2/map.json +++ b/data/maps/ThreeIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 7, "y": 4, diff --git a/data/maps/ThreeIsland_House3/map.json b/data/maps/ThreeIsland_House3/map.json index e3c4c467c..608bae55e 100644 --- a/data/maps/ThreeIsland_House3/map.json +++ b/data/maps/ThreeIsland_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 8, "y": 2, diff --git a/data/maps/ThreeIsland_House4/map.json b/data/maps/ThreeIsland_House4/map.json index 25e2193a0..93c3d4c12 100644 --- a/data/maps/ThreeIsland_House4/map.json +++ b/data/maps/ThreeIsland_House4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 6, "y": 3, diff --git a/data/maps/ThreeIsland_House5/map.json b/data/maps/ThreeIsland_House5/map.json index 19f808a4a..7f2f8becf 100644 --- a/data/maps/ThreeIsland_House5/map.json +++ b/data/maps/ThreeIsland_House5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 2, "y": 5, diff --git a/data/maps/ThreeIsland_Mart/map.json b/data/maps/ThreeIsland_Mart/map.json index c1e596005..682126052 100644 --- a/data/maps/ThreeIsland_Mart/map.json +++ b/data/maps/ThreeIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 2, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 7, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 6, "y": 5, diff --git a/data/maps/ThreeIsland_PokemonCenter_1F/map.json b/data/maps/ThreeIsland_PokemonCenter_1F/map.json index 532c0766c..1f61598aa 100644 --- a/data/maps/ThreeIsland_PokemonCenter_1F/map.json +++ b/data/maps/ThreeIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 12, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 11, "y": 5, diff --git a/data/maps/ThreeIsland_PokemonCenter_2F/map.json b/data/maps/ThreeIsland_PokemonCenter_2F/map.json index 265d66974..a6ba54a41 100644 --- a/data/maps/ThreeIsland_PokemonCenter_2F/map.json +++ b/data/maps/ThreeIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/ThreeIsland_Port/map.json b/data/maps/ThreeIsland_Port/map.json index 794b27b4e..e5cd31db8 100644 --- a/data/maps/ThreeIsland_Port/map.json +++ b/data/maps/ThreeIsland_Port/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 14, "y": 9, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 8, "y": 8, @@ -48,6 +50,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 13, "y": 10, diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index 4c35a5942..098772ac9 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 9, "y": 6, diff --git a/data/maps/TrainerTower_1F/map.json b/data/maps/TrainerTower_1F/map.json index 4b12dc8a0..58b696f35 100644 --- a/data/maps/TrainerTower_1F/map.json +++ b/data/maps/TrainerTower_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 11, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 10, "y": 10, diff --git a/data/maps/TrainerTower_2F/map.json b/data/maps/TrainerTower_2F/map.json index 5972e45b4..c40c83b34 100644 --- a/data/maps/TrainerTower_2F/map.json +++ b/data/maps/TrainerTower_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_3F/map.json b/data/maps/TrainerTower_3F/map.json index 10becb1c8..6c1bc8950 100644 --- a/data/maps/TrainerTower_3F/map.json +++ b/data/maps/TrainerTower_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_4F/map.json b/data/maps/TrainerTower_4F/map.json index 07c1183f3..40abcc338 100644 --- a/data/maps/TrainerTower_4F/map.json +++ b/data/maps/TrainerTower_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_5F/map.json b/data/maps/TrainerTower_5F/map.json index 5f7d41602..0e4e358fd 100644 --- a/data/maps/TrainerTower_5F/map.json +++ b/data/maps/TrainerTower_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_6F/map.json b/data/maps/TrainerTower_6F/map.json index 8a30e713c..37fc68129 100644 --- a/data/maps/TrainerTower_6F/map.json +++ b/data/maps/TrainerTower_6F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_7F/map.json b/data/maps/TrainerTower_7F/map.json index bfdd31391..83b8b8a8f 100644 --- a/data/maps/TrainerTower_7F/map.json +++ b/data/maps/TrainerTower_7F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_8F/map.json b/data/maps/TrainerTower_8F/map.json index 2b3358855..3ae1211bb 100644 --- a/data/maps/TrainerTower_8F/map.json +++ b/data/maps/TrainerTower_8F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, diff --git a/data/maps/TrainerTower_Lobby/map.json b/data/maps/TrainerTower_Lobby/map.json index 1fa9f1869..3bd89a4c9 100644 --- a/data/maps/TrainerTower_Lobby/map.json +++ b/data/maps/TrainerTower_Lobby/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 4, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 14, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 11, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 12, "y": 13, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 12, diff --git a/data/maps/TrainerTower_Roof/map.json b/data/maps/TrainerTower_Roof/map.json index ee528571e..cc42f893c 100644 --- a/data/maps/TrainerTower_Roof/map.json +++ b/data/maps/TrainerTower_Roof/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, diff --git a/data/maps/TwoIsland/map.json b/data/maps/TwoIsland/map.json index bb680ce77..8263f2953 100644 --- a/data/maps/TwoIsland/map.json +++ b/data/maps/TwoIsland/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 28, "y": 4, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 31, "y": 6, @@ -48,6 +50,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_WOMAN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 30, "y": 11, @@ -61,6 +64,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_BEAUTY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 26, "y": 5, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 27, "y": 6, @@ -87,6 +92,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_SUPER_NERD" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 16, @@ -100,6 +106,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 39, "y": 16, @@ -113,6 +120,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 37, "y": 12, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 24, "y": 12, diff --git a/data/maps/TwoIsland_CapeBrink_House/map.json b/data/maps/TwoIsland_CapeBrink_House/map.json index 5ffda9b54..6d6456e21 100644 --- a/data/maps/TwoIsland_CapeBrink_House/map.json +++ b/data/maps/TwoIsland_CapeBrink_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 4, diff --git a/data/maps/TwoIsland_Harbor/map.json b/data/maps/TwoIsland_Harbor/map.json index be3073e86..07c78ebf4 100644 --- a/data/maps/TwoIsland_Harbor/map.json +++ b/data/maps/TwoIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, diff --git a/data/maps/TwoIsland_House/map.json b/data/maps/TwoIsland_House/map.json index acb50d880..28286b198 100644 --- a/data/maps/TwoIsland_House/map.json +++ b/data/maps/TwoIsland_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 7, "y": 5, diff --git a/data/maps/TwoIsland_JoyfulGameCorner/map.json b/data/maps/TwoIsland_JoyfulGameCorner/map.json index 213e7ea20..efaeecdc9 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/map.json +++ b/data/maps/TwoIsland_JoyfulGameCorner/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 5, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 5, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 6, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 2, diff --git a/data/maps/TwoIsland_PokemonCenter_1F/map.json b/data/maps/TwoIsland_PokemonCenter_1F/map.json index ad6c90d96..b241134ff 100644 --- a/data/maps/TwoIsland_PokemonCenter_1F/map.json +++ b/data/maps/TwoIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 11, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 4, "y": 4, diff --git a/data/maps/TwoIsland_PokemonCenter_2F/map.json b/data/maps/TwoIsland_PokemonCenter_2F/map.json index d6c52f551..9d57d7a33 100644 --- a/data/maps/TwoIsland_PokemonCenter_2F/map.json +++ b/data/maps/TwoIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/UndergroundPath_EastEntrance/map.json b/data/maps/UndergroundPath_EastEntrance/map.json index fdd6613a0..91fe1143e 100644 --- a/data/maps/UndergroundPath_EastEntrance/map.json +++ b/data/maps/UndergroundPath_EastEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 6, diff --git a/data/maps/UndergroundPath_NorthEntrance/map.json b/data/maps/UndergroundPath_NorthEntrance/map.json index 9dda62055..ee360615b 100644 --- a/data/maps/UndergroundPath_NorthEntrance/map.json +++ b/data/maps/UndergroundPath_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 5, "y": 6, diff --git a/data/maps/UndergroundPath_SouthEntrance/map.json b/data/maps/UndergroundPath_SouthEntrance/map.json index 9109d7035..e6b3ea257 100644 --- a/data/maps/UndergroundPath_SouthEntrance/map.json +++ b/data/maps/UndergroundPath_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 6, diff --git a/data/maps/UndergroundPath_WestEntrance/map.json b/data/maps/UndergroundPath_WestEntrance/map.json index 9fbfb4cd6..e987e2e7f 100644 --- a/data/maps/UndergroundPath_WestEntrance/map.json +++ b/data/maps/UndergroundPath_WestEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 5, "y": 6, diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json index ec4ea7e21..057ee2fc3 100644 --- a/data/maps/UnionRoom/map.json +++ b/data/maps/UnionRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 3, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 1, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_7", "x": 7, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_8" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_6", "x": 1, "y": 4, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_7" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_5", "x": 7, "y": 4, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_4", "x": 13, "y": 4, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_5" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 6, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 13, "y": 8, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 4, "y": 6, diff --git a/data/maps/VermilionCity/map.json b/data/maps/VermilionCity/map.json index 9c3a5e558..f37f90399 100644 --- a/data/maps/VermilionCity/map.json +++ b/data/maps/VermilionCity/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 22, "y": 11, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 17, "y": 9, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 36, "y": 10, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MACHOP", "x": 35, "y": 11, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 31, "y": 30, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 24, "y": 33, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 19, "y": 24, @@ -118,6 +125,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 25, "y": 7, diff --git a/data/maps/VermilionCity_Gym/map.json b/data/maps/VermilionCity_Gym/map.json index 66c27c611..936866d6c 100644 --- a/data/maps/VermilionCity_Gym/map.json +++ b/data/maps/VermilionCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LT_SURGE", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 4, "y": 17, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 7, "y": 8, diff --git a/data/maps/VermilionCity_House1/map.json b/data/maps/VermilionCity_House1/map.json index 5ddb668e4..9c8bdec89 100644 --- a/data/maps/VermilionCity_House1/map.json +++ b/data/maps/VermilionCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 4, "y": 5, diff --git a/data/maps/VermilionCity_House2/map.json b/data/maps/VermilionCity_House2/map.json index c91403a4e..ce9ed5ee3 100644 --- a/data/maps/VermilionCity_House2/map.json +++ b/data/maps/VermilionCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 4, "y": 4, diff --git a/data/maps/VermilionCity_House3/map.json b/data/maps/VermilionCity_House3/map.json index 00228071a..1283bfdb7 100644 --- a/data/maps/VermilionCity_House3/map.json +++ b/data/maps/VermilionCity_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEY", "x": 2, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", "x": 6, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 2, "y": 4, diff --git a/data/maps/VermilionCity_Mart/map.json b/data/maps/VermilionCity_Mart/map.json index 472cfd606..5eca5f366 100644 --- a/data/maps/VermilionCity_Mart/map.json +++ b/data/maps/VermilionCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 4, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 9, "y": 4, diff --git a/data/maps/VermilionCity_PokemonCenter_1F/map.json b/data/maps/VermilionCity_PokemonCenter_1F/map.json index d08b85b28..42b53dd2b 100644 --- a/data/maps/VermilionCity_PokemonCenter_1F/map.json +++ b/data/maps/VermilionCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 12, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 6, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, diff --git a/data/maps/VermilionCity_PokemonCenter_2F/map.json b/data/maps/VermilionCity_PokemonCenter_2F/map.json index 8866e68b4..49f8af57e 100644 --- a/data/maps/VermilionCity_PokemonCenter_2F/map.json +++ b/data/maps/VermilionCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/VermilionCity_PokemonFanClub/map.json b/data/maps/VermilionCity_PokemonFanClub/map.json index b5df8639c..9d7e914f0 100644 --- a/data/maps/VermilionCity_PokemonFanClub/map.json +++ b/data/maps/VermilionCity_PokemonFanClub/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 6, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIKACHU", "x": 7, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEEL", "x": 4, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 7, "y": 5, diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json index 45801a27c..3fdf718bd 100644 --- a/data/maps/VictoryRoad_1F/map.json +++ b/data/maps/VictoryRoad_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 14, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 3, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_1F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 14, "y": 1, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_1F_TM02" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 7, "y": 18, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 4, "y": 12, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 16, "y": 3, diff --git a/data/maps/VictoryRoad_2F/map.json b/data/maps/VictoryRoad_2F/map.json index 0c389ff08..9bdf82001 100644 --- a/data/maps/VictoryRoad_2F/map.json +++ b/data/maps/VictoryRoad_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 20, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 31, "y": 16, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 26, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 36, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 6, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_GUARD_SPEC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 40, "y": 7, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM07" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 25, "y": 13, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_FULL_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 14, "y": 13, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM37" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 7, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 17, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 33, "y": 19, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_BOULDER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 40, "y": 9, diff --git a/data/maps/VictoryRoad_3F/map.json b/data/maps/VictoryRoad_3F/map.json index c53d1d2cc..98d26f392 100644 --- a/data/maps/VictoryRoad_3F/map.json +++ b/data/maps/VictoryRoad_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 40, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 21, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 10, "y": 17, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 11, "y": 16, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 38, "y": 7, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_3F_MAX_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 9, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_3F_TM50" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 19, "y": 15, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 33, "y": 18, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_3F_BOULDER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 35, "y": 13, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 32, "y": 5, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 38, "y": 13, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 39, "y": 13, diff --git a/data/maps/ViridianCity/map.json b/data/maps/ViridianCity/map.json index ea6a6794a..c20f232af 100644 --- a/data/maps/ViridianCity/map.json +++ b/data/maps/ViridianCity/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 8, "y": 26, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 24, @@ -58,6 +60,7 @@ "flag": "FLAG_TEMP_11" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 34, "y": 11, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 21, "y": 6, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 20, "y": 12, @@ -97,6 +102,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 33, "y": 26, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 16, "y": 22, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 18, "y": 5, @@ -136,6 +144,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 5, diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json index b0e1599f5..0c7278947 100644 --- a/data/maps/ViridianCity_Gym/map.json +++ b/data/maps/ViridianCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 10, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 12, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 14, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 10, "y": 10, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 2, "y": 21, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 3, "y": 11, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 6, "y": 8, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", "x": 2, "y": 2, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_GIOVANNI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 13, "y": 7, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 16, "y": 20, diff --git a/data/maps/ViridianCity_House1/map.json b/data/maps/ViridianCity_House1/map.json index eb5780daa..35fe859f1 100644 --- a/data/maps/ViridianCity_House1/map.json +++ b/data/maps/ViridianCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 2, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SPEAROW", "x": 6, "y": 6, diff --git a/data/maps/ViridianCity_House2/map.json b/data/maps/ViridianCity_House2/map.json index 3b2b1cbbf..3524669b8 100644 --- a/data/maps/ViridianCity_House2/map.json +++ b/data/maps/ViridianCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 4, "y": 5, diff --git a/data/maps/ViridianCity_Mart/map.json b/data/maps/ViridianCity_Mart/map.json index 0428205d0..91bb7aead 100644 --- a/data/maps/ViridianCity_Mart/map.json +++ b/data/maps/ViridianCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 9, "y": 5, diff --git a/data/maps/ViridianCity_PokemonCenter_1F/map.json b/data/maps/ViridianCity_PokemonCenter_1F/map.json index 935bcd10b..2b8733bc3 100644 --- a/data/maps/ViridianCity_PokemonCenter_1F/map.json +++ b/data/maps/ViridianCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 4, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 2, "y": 3, diff --git a/data/maps/ViridianCity_PokemonCenter_2F/map.json b/data/maps/ViridianCity_PokemonCenter_2F/map.json index d34ec1462..5453270bb 100644 --- a/data/maps/ViridianCity_PokemonCenter_2F/map.json +++ b/data/maps/ViridianCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, diff --git a/data/maps/ViridianForest/map.json b/data/maps/ViridianForest/map.json index f8d799501..494dbd394 100644 --- a/data/maps/ViridianForest/map.json +++ b/data/maps/ViridianForest/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 29, "y": 58, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 45, "y": 58, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 47, "y": 45, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 47, "y": 29, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 7, "y": 22, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 41, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POKE_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 40, "y": 21, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_FOREST_ANTIDOTE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 21, "y": 34, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 43, "y": 6, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 16, "y": 5, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 49, "y": 60, diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index f1291b1ea..99d3e4209 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -192,4 +192,7 @@ #define OBJ_EVENT_ID_PLAYER 0xFF #define OBJ_EVENT_ID_CAMERA 0x7F +#define OBJ_KIND_NORMAL 0 +#define OBJ_KIND_CLONE 255 + #endif // GUARD_CONSTANTS_EVENT_OBJECTS_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 520f06738..ad6789759 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -83,9 +83,6 @@ struct BackupMapLayout u16 *map; }; -#define OBJ_KIND_NORMAL 0 -#define OBJ_KIND_CLONE 255 - struct ObjectEventTemplate { u8 localId; @@ -103,9 +100,7 @@ struct ObjectEventTemplate } normal; struct { u8 targetLocalId; - u8 padding1; - u16 padding2:4; - u16 padding3:4; + u8 padding[3]; u16 targetMapNum; u16 targetMapGroup; } clone; diff --git a/src/overworld.c b/src/overworld.c index 89bf5d785..4c1aa54b1 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -47,6 +47,7 @@ #include "trainer_pokemon_sprites.h" #include "vs_seeker.h" #include "wild_encounter.h" +#include "constants/event_objects.h" #include "constants/maps.h" #include "constants/region_map_sections.h" #include "constants/songs.h" @@ -405,7 +406,7 @@ static void LoadObjEventTemplatesFromHeader(void) { if (gMapHeader.events->objectEvents[i].kind == OBJ_KIND_CLONE) { - // load "in_connection" object from the connecting map + // load target object from the connecting map u8 localId = gMapHeader.events->objectEvents[i].objUnion.clone.targetLocalId; u8 mapNum = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapNum; u8 mapGroup = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapGroup; diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 0b07f1208..79445e6cd 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -288,19 +288,28 @@ string generate_firered_map_events_text(Json map_data) { text << objects_label << "::\n"; for (unsigned int i = 0; i < map_data["object_events"].array_items().size(); i++) { auto obj_event = map_data["object_events"].array_items()[i]; - text << "\tobject_event " << i + 1 << ", " - << obj_event["graphics_id"].string_value() << ", " - << (obj_event["in_connection"].bool_value() ? 255 : 0) << ", " - << obj_event["x"].int_value() << ", " - << obj_event["y"].int_value() << ", " - << obj_event["elevation"].int_value() << ", " - << obj_event["movement_type"].string_value() << ", " - << obj_event["movement_range_x"].int_value() << ", " - << obj_event["movement_range_y"].int_value() << ", " - << obj_event["trainer_type"].string_value() << ", " - << obj_event["trainer_sight_or_berry_tree_id"].string_value() << ", " - << obj_event["script"].string_value() << ", " - << obj_event["flag"].string_value() << "\n"; + string type = obj_event["type"].string_value(); + if (type == "object") { + text << "\tobject_event " << i + 1 << ", " + << obj_event["graphics_id"].string_value() << ", " + << obj_event["x"].int_value() << ", " + << obj_event["y"].int_value() << ", " + << obj_event["elevation"].int_value() << ", " + << obj_event["movement_type"].string_value() << ", " + << obj_event["movement_range_x"].int_value() << ", " + << obj_event["movement_range_y"].int_value() << ", " + << obj_event["trainer_type"].string_value() << ", " + << obj_event["trainer_sight_or_berry_tree_id"].string_value() << ", " + << obj_event["script"].string_value() << ", " + << obj_event["flag"].string_value() << "\n"; + } else if (type == "clone") { + text << "\tclone_event " << i + 1 << ", " + << obj_event["graphics_id"].string_value() << ", " + << obj_event["x"].int_value() << ", " + << obj_event["y"].int_value() << ", " + << obj_event["target_local_id"].int_value() << ", " + << obj_event["target_map"].string_value() << "\n"; + } } text << "\n"; } else { From c518cba3ece912fcb88215f19151ed9f7fefcddf Mon Sep 17 00:00:00 2001 From: garakmon Date: Tue, 5 Apr 2022 14:34:14 -0400 Subject: [PATCH 003/105] use json for region map sections - also update wild encounters inja template to consider whitespace trimming --- graphics/region_map/region_map.png | Bin 3315 -> 3407 bytes json_data_rules.mk | 12 + src/data/region_map/region_map_layout_kanto.h | 38 + .../region_map/region_map_layout_sevii_123.h | 38 + .../region_map/region_map_layout_sevii_45.h | 38 + .../region_map/region_map_layout_sevii_67.h | 38 + .../region_map_sections.entries.json.txt | 27 + src/data/region_map/region_map_sections.json | 880 ++++++++++++++++++ .../region_map_sections.strings.json.txt | 18 + src/data/text/map_section_names.h | 109 --- src/data/wild_encounters.json.txt | 22 +- src/region_map.c | 498 +--------- tools/jsonproc/jsonproc.cpp | 14 + 13 files changed, 1145 insertions(+), 587 deletions(-) create mode 100644 src/data/region_map/region_map_layout_kanto.h create mode 100644 src/data/region_map/region_map_layout_sevii_123.h create mode 100644 src/data/region_map/region_map_layout_sevii_45.h create mode 100644 src/data/region_map/region_map_layout_sevii_67.h create mode 100644 src/data/region_map/region_map_sections.entries.json.txt create mode 100644 src/data/region_map/region_map_sections.json create mode 100644 src/data/region_map/region_map_sections.strings.json.txt delete mode 100644 src/data/text/map_section_names.h diff --git a/graphics/region_map/region_map.png b/graphics/region_map/region_map.png index 9413e86b1e6ac6e288c1864559d6d68ef60e683f..0fc27d0b9e4ddb7a07f4161f450f746cb5d9c2ec 100644 GIT binary patch literal 3407 zcmWlcc{r5&`^P`eJmayga$s}bhV;3Vc$WqcMbx1O@=17*b;q)+sY@=g45tERF z?^H(4DVebhl@N*)O`DWLk)_bj?~nKWx~}(izpv~5>wR5!I@8@*Rz^(*03hq?;<#^( z*qXR_cx_tTKijhgD$~t#Cn-`)#-yyOrI=k(kzz{qjFp%RCYr2f`j`{qNbxYYtBb?r z^m$c_i~1J1yu~fOTPbT<=|~sv7yyXv|1T)tfT#`t+TrTR@H{he<Ll>t)`v;Ff!yhT zb85;r*xvDF>@WAa?moJ(^;E&r#j|&RMLArnjN%$!^XQK>qh(zXrHe`s+oYGo*WV1s zL(cnI+IR*49$NEkDP6Wk=z@+IKqfYJMx5+So6ljJWk z&|>j|UGqgDBWPwec=nxv>Z_nRw<85gvX_lT{L62M^oiLD!xHt+HBCKJH)RY{>eK=E zKG6LIHu=gwhXHSWx<*r`^h|p?Hk8zH0zpC7alF=)A!JJ?H7d;_!aBx(CQe`p%Z_hKusTR7T6c z-82lf>q>;G`n0rNcKD&CqZC|TrT2LGvG}S>#TQ46Ao1+!`jZg2=<#?CRDW6GE)tLk zPT|f{93J_x4+=JQV1iYg#%(l>0d!$@_VUU61ApI=Crt)n#{f%-#>PL~1$iQ!AFlb8 zLTOX`v1Vd{`O{QRx6SE$b#{_P|4^Q7jhr-^UAjl7-qPC=Ez7lrizIoeP0##gg9)H`2z&IMoz+R;j4M2e_6r;5*P@Sq-5las@R@*M$7$?%mo3U z%YbP>I>~K!@$(yLd~@r_?=5;&LEv1x(@-w%eh3y7t1cdh1wr&rlcU{7+vZU59Vqfr zTrY5dt)7@oO8~w*az+z`jX=<{oZQ`72_UGL36xic3R)mA>-f!(WY8YNK>3Fw|&7??zZwyRH7}Z;6YenNW0z!|7_rzXohwD=7 zftB__gnnus0UtdQ*uskY>uIjeEY^b@N!^3B5O%XhUxOcOR_xqj4FA#q{JTe@ocX!i z!z`MKGm#KIkH0%Ahv2_S>5&q=#C5XK?U*zjv$2MC(Qozzel?*EOIJFAAQwbKHRs@W1j?$%G?riS&Sq^xFDZdV@ z{49D_(bZq&0uE1Y_X^$VeV96PsP1D0PiuEkwxVDwN;lY7+Wa~KQx-33y0Gu~>APbxFk$)_oD z<)JflHvlWycE@XLyu8>eN9HfhF>fnpyT7NRs8uy3|K@l9%Gwm!*9iOXwo|*6?LT^w zu1f&}`fq)Euh5h3WC39akPx9|!?R?|Xk(!<$v@&n4Qi!-n)yx#WWMKCO+sll>TKc$ zpZ_H%mc$1+lNCI!C_32cM{iUdHtur{rr0;JuzWH%aJ!9pN^Wc+SQMa+aw;eQ88^J7 zW-O!JPj#f9Y-*+VTym){M9HjuGoLw70Z!oP6Bs0RB$U2O(kYC!Meu#!^>61@&b`fq zpm2eir>-xKdvit;X7##}&jgF3O^oKtYBxu{bG{^WF}qTD>}U!LAZD02@05r@)-&kE9FO8x=7SBPGALKVacg>v z%?WU@vR&8LsLn!rbEI7*YL%cl*cNY3!J*q@;{I0ByBd}Pyfs zF|sOKy2ebLFnA|gfg!`xsf68){(RV#9W8ky7pb+pvo0a4AtUgw>Tc&6Xc1`YC;%U$ zUr7hcS_PJk=cm%&UbP742JgNKl?iR9)Z@@bkR}mv$cE`YH*TnXcex^Q6CqVv+c-Td z=%13*$LgqBUVb4f4f1{;U8IAav8&W3XI;Cj=h|!C_yxhSyi2Y{2XZSTt^13*ytF~4yOGIo6}tYb%{uPwwCU`( zKce)Ob0n^)zW)1}1IiYN=w)gZPsq#l}zF$Ku> zcB#1UzyrH?+<5E#L&8s*#h*MI@OVk{b~fs=G^it6$x!1Z zgz~s=JCPeWHk` z>;(+7#<8Nx1QGqQi{w%$ZShC%@Q~)1U{X1JPK1593bm3O6pV6?SjP_w&u{lue0^&u z%07KMH^~VHAJ?RCV=lrQCwg9K#s3EYo@X0fh4Tx%G+E!-!8A^ zeAQUzL$bAB)-N_f%AYIIBdO-s1IQ zjBh_X@d0@)0=9vBH1t|N#3>*e>Sb~1!sR++ddQ&@ku?N}43pO!hU+;+L|a7b$NntT$xRh`?9Cr@%m^_ zxlzhhk!HD{l*&MEJ<6$`pnAx^>$`=RVf>ImY>h7CI8;e zd4&JyQ*GzRqJP5@7~yg!mODt5Cc@>tV0d(1v@4#`N;+G9iG<|DQyhJoj-@Xx|Ibbr zP8h0J@uy2PfLFoH2P;By*GO;n!_Zi#I0`ViSd6ZEsj{!z%sM3F>v|eNXqV~(2BMbv zPqHauh_9%9Y0`IwlWf1rMQOwuPF9PW+@R&*pEiauLLJ}wl`tCf^#sIIUgT|?CtAJ} zZbeWkjkvZHVJw~%dDIr45Wy>d(Lyl&oW0=>av4J*0$ckwjgd*RK>2A}ybXIm6^>XJ bVZ3Muw~P~OWoc*Ez8v7X)7`P&o|W`}5Qx!* literal 3315 zcmVstSineu;Ypi9Y8Ez zKoiotEOC&1tC zs;^|=0M+8_7>rv5_(upod=-O{>EQd>?8mQU@KVSG!^#)e}BHwq-KE|W% ziqFksU4x~vjn4pR&H$P|z`=He_W%Ga59$Z8AOSAiIl$Hc9vvVWgP1WmlEKXhK%)R{ z2hb28o->GKaQjm1W1^k_8U@g6Q6=d>b^?Q_44y9m)E&Ss0e}V04SNhv0D#)>Pli8Z5TDy--{t^`!D49un~ftF0RMmusRLn<0Gh;LAaVLo z)Vn7qpx#S>Z33VPZa_kGWdNpw;c_09Cje^u9AIohT?>6E$)j^JnTAti7KmZ^mfDZsjHZWpht~X^_QSR=((GpV%+!#!}bK=tpl*g{X&4F0~8ypdkMh2lK{UYfQ6hu0RDiR zOIiT{a4FoG1Gsmu9iZ$0zF{c60YK>hMIRtJcCG>d1UbPSYr7ye`vVKb289QE5da>S z)~_=H&2T*CeSo&^^&MdUuHNXIW2T8-8!e#wiB*y|C zwzd6mRKOX=V@3b~HCmOX0~jfTO=mHj3;?yIpCW5%z?1+_IRF`SN`qz+fLu<^P>Jhx zy#j#6nVi5GbO2>(0Gd1Kibm@*%|c4?Fm464j_VT&y1wEo&!88z#BK& zWdLQ6QonE*Um`cOZpx1iTGJT6Vs2M7VRsh9|WX8@=ipQwd>0L_MIo4rqv^?@xc7+7;r z8vr}eu4nUVU;tL=(S&ylHpy%RAOi(Ri*3G6vBnT(FVGSpj^kA%GxESBnR`#2<48via0H)%aBJ z_C-DvDL`xklZADZ`!fc?y7g8Jwl6ZK2Lp&J2e6Kms~>o7FbLMI1E9$Ow1w#bn1Zn0 z&Mpk*D`hZjF+4Z`kA>n%rHTDhOKSk8`6vx~r3?n-S7eQMiJXVOBu6ZD{gVT{2ZLcO zhhm{h?;e7n>A=+L@h-beq7S4BK-lvbGW@`&fcaT_XO5KR$9 z2LLbN^BT&^vUA1&QFsRcWsqXSMomN`n+fJXq`75jI$%~Fz>Mzzz(dB)6V#Cj;0y+c z*u{e~&?jHT5RN2NcY7W(CRfnsTLgGd2C9TJ2H1%J4fPz&6%IaK0^lbyP&=G4002Cu zrVsIyk7M+a@op@HX{>$a4oWh^=<2 zm|bEt06F>~re`G%AjNo01_zD6=}H*@fQBm#04gZc!ycGcOS5eK9PH^Ga)8#w*eJkJ z8Q^U6#BP0aX8>~emtapYQI#Ji!ax-F9Y!7~0Xl$ofi|>6ypw+%K=vLX9~_yr!x9gm zk&w9t)B8XGzyQ7fpzXR-Nd(G31o^-$fC4oU6+8*|lHNNs2K0co>u&EVXD}iI)(yBJ z7zlt&uWvXzJA+6SJe>lBK7(q(7>G>`09vlpwC;IserIxTU5Xd3W!4*t5o+k91_M|D zSxfWWBshR~DP5LcEDIAc0_Q1X!16t^2n!j34&cbj9b8vpgt}A)C2J9qUeRYj1*GPK zQCJ158wY2wLn;T}dwW(cD#!sADLpa@(VY(2sSjaB5qK}p#O$h>c9pG9o%z8mfEa*c z;Rp0y#)5U9${ER+{(?qr3V=nCOJX1@wI=IWW|A1F1Qgf&_l^N8atQhE zJq9Y?Gh0lk9}KZ6o=%D*hFJFHgu&b=7u5rz(fk`32|FB$R~bxm1`$b7ftr2y?x_2m zFSY(*-Al85~;0vrs)q_-_1D-Je01O1+?Vq3zx!~?4-7!(Cm64b1yUyP)>OfIq+A#&-hIgi)O^;()AW0O3c$mp7mbiP?42Wmn|BX?{ zg5o)0(pe-iu#sW_Z?t^yZM$Btf8Br5_yT~wV0^YIp=0p*f{?+-y8aam&?Lc^u-h#& zM3*6P?IHjed<B0KZs*pxzSXRL^QfwC28FX@>|0@G@B$ZVrWS_8pFbM|d)ICs%0L=u1-QDu2U#lQ7h@3cpbFLax(+NK-~t>kzX6`P;*+je zUIfVVfnDeU&empty(); }); + env.add_callback("isEmptyString", 1, [](Arguments& args) { + return args.at(0)->get().empty(); + }); + + env.add_callback("cleanString", 1, [](Arguments& args) { + string badChars = ".'{} \n\t-_\u00e9"; + string str = args.at(0)->get(); + str.erase(remove_if(str.begin(), str.end(), [&badChars](const char &c) { + return badChars.find(c) != std::string::npos; + }), str.end()); + return str; + }); + try { env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath); From 1ff0849127f07491d8a076e0d11d5c6abcd33ff0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 2 Jul 2022 16:35:06 -0400 Subject: [PATCH 004/105] Reformat object event graphics info --- .../object_event_graphics_info.h | 3080 ++++++++++++++++- 1 file changed, 2926 insertions(+), 154 deletions(-) diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h index 3cf2686ab..f9877804e 100644 --- a/src/data/object_events/object_event_graphics_info.h +++ b/src/data/object_events/object_event_graphics_info.h @@ -1,154 +1,2926 @@ -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenNormal, sPicTable_RedNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_RedBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenSurf, sPicTable_RedSurf, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenFieldMove, sPicTable_RedItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Policeman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RSBrendan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RSMay, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_LittleBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_LittleGirl, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SittingBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Lass, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Youngster, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Woman1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Woman3, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Boy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_BattleGirl, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_BugCatcher, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_FatMan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaldingMan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_BaldingMan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Woman2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan1 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_OldMan1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_WorkerM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_WorkerF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Beauty, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chef = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Chef, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan2 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_OldMan2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_OldWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Camper, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Picnicker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_CooltrainerM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_CooltrainerF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SuperNerd, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Channeler = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Channeler, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RocketF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerMWater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerFWater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerMLand, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerFLand, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Blackbelt, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Scientist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Gentleman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Sailor, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Captain = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Captain, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Fisher, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TeachyTVHost = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_TeachyTVHost, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWoman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_UnusedWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_TuberF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_TuberMWater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_TuberMLand, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Hiker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Biker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymGuy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_GymGuy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Nurse, sPicTable_Nurse, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMaleReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_UnusedMaleReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_ItemBall, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfOak = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_ProfOak, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Man, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Rocker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrFuji = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_MrFuji, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bruno = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Bruno, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldManLyingDown = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_OldManLyingDown, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CutTree = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_CutTree, sPicTable_CutTree, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clerk = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Clerk, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MGDeliveryman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_MGDeliveryman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTowerDude = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_TrainerTowerDude, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableClubReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_CableClubReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_UnionRoomReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RockSmashRock = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_RockSmashRock, sPicTable_RockSmashRock, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_StrengthBoulder, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenNormal, sPicTable_GreenNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_GreenBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenSurf, sPicTable_GreenSurf, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenFieldMove, sPicTable_GreenItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBikeAlt = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_RedBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RocketM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Celio, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Agatha = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Agatha, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brock = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Brock, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Misty = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Misty, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LtSurge = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_LtSurge, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Erika = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Erika, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Koga = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Koga, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giovanni = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Giovanni, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blaine = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Blaine, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sabrina = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Sabrina, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bill = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Bill, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Daisy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Daisy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lorelei = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Lorelei, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lance = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Lance, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blue = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Blue, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenFish, sPicTable_RedFish, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenFish, sPicTable_GreenFish, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenVSSeeker, sPicTable_RedItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenVSSeekerBike, sPicTable_RedVSSeekerBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenVSSeeker, sPicTable_GreenItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenVSSeekerBike, sPicTable_GreenVSSeekerBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TownMap = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 32, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_TownMap, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pokedex = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Pokedex, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_GBAKid, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Snorlax = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Snorlax, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Fossil, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Ruby = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Ruby, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sapphire = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Sapphire, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldAmber = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_OldAmber, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymSign = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Inanimate, sPicTable_GymSign, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sign = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Sign, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTips = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_WoodenSign, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clipboard = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Clipboard, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meteorite = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_METEORITE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Inanimate, sPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LaprasDoll = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Inanimate, sPicTable_LaprasDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spearow = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Spearow, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Omanyte = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Omanyte, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kangaskhan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Kangaskhan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Psyduck = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Psyduck, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_NidoranF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_NidoranM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nidorino = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Nidorino, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meowth = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Meowth, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seel = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Seel, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Voltorb = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Voltorb, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowpoke = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Slowpoke, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowbro = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Slowbro, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machop = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Machop, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wigglytuff = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Wigglytuff, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Doduo = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Doduo, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fearow = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Fearow, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lapras = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Lapras, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zapdos = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Zapdos, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Moltres = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Moltres, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Articuno = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Articuno, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysD = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_DeoxysD, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysA = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_DeoxysA, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysN = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_DeoxysN, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mewtwo = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Mewtwo, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Mew, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Entei = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Entei, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Raikou = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Raikou, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Suicune = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Suicune, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Lugia, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_HoOh, sPicTable_HoOh, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celebi = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Celebi, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cubone = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Cubone, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machoke = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Machoke, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kabuto = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Kabuto, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poliwrath = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Poliwrath, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgeot = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Pidgeot, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chansey = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Chansey, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Pikachu, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Jigglypuff = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Jigglypuff, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgey = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Pidgey, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clefairy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Clefairy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Mom, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seagallop = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_SEAGALLOP, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, sAnimTable_Standard, sPicTable_Seagallop, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSAnne = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_SS_ANNE, OBJ_EVENT_PAL_TAG_NONE, 4096, 128, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_128x64, sAnimTable_Standard, sPicTable_SSAnne, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenNormal, + .images = sPicTable_RedNormal, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RedBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = TRUE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenSurf, + .images = sPicTable_RedSurf, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenFieldMove, + .images = sPicTable_RedItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Policeman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RSBrendan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RSMay, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_LittleBoy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_LittleGirl, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SittingBoy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lass, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Youngster, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Woman1, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Woman3, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Boy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_BattleGirl, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_BugCatcher, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_FatMan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaldingMan = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_BaldingMan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Woman2, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan1 = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldMan1, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerM = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_WorkerM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_WorkerF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Beauty, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chef = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Chef, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan2 = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldMan2, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldWoman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Camper, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Picnicker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerM = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_CooltrainerM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_CooltrainerF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SuperNerd, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Channeler = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Channeler, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RocketF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMWater = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerMWater, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFWater = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerFWater, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMLand = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerMLand, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerFLand, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Blackbelt, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Scientist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Gentleman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Sailor, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Captain = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Captain, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Fisher, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TeachyTVHost = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_TeachyTVHost, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWoman = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_UnusedWoman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_TuberF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMWater = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_TuberMWater, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMLand = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_TuberMLand, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Hiker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Biker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymGuy = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_GymGuy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Nurse, + .images = sPicTable_Nurse, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMaleReceptionist = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_UnusedMaleReceptionist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_ItemBall, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfOak = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_ProfOak, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Man, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Rocker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrFuji = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_MrFuji, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bruno = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Bruno, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldManLyingDown = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldManLyingDown, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CutTree = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_CutTree, + .images = sPicTable_CutTree, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clerk = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Clerk, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MGDeliveryman = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_MGDeliveryman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTowerDude = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_TrainerTowerDude, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableClubReceptionist = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_CableClubReceptionist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomReceptionist = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_UnionRoomReceptionist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RockSmashRock = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_RockSmashRock, + .images = sPicTable_RockSmashRock, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_StrengthBoulder, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenNormal, + .images = sPicTable_GreenNormal, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_GreenBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = TRUE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenSurf, + .images = sPicTable_GreenSurf, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenFieldMove, + .images = sPicTable_GreenItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBikeAlt = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RedBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RocketM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Celio, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Agatha = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Agatha, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brock = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Brock, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Misty = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Misty, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LtSurge = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_LtSurge, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Erika = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Erika, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Koga = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Koga, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giovanni = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Giovanni, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blaine = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Blaine, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sabrina = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Sabrina, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bill = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Bill, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Daisy = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Daisy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lorelei = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lorelei, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lance = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lance, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blue = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Blue, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenFish, + .images = sPicTable_RedFish, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenFish, + .images = sPicTable_GreenFish, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenVSSeeker, + .images = sPicTable_RedItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenVSSeekerBike, + .images = sPicTable_RedVSSeekerBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenVSSeeker, + .images = sPicTable_GreenItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenVSSeekerBike, + .images = sPicTable_GreenVSSeekerBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TownMap = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 32, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_32x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_TownMap, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pokedex = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Pokedex, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_GBAKid, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Snorlax = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Snorlax, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Fossil, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Ruby = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Ruby, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sapphire = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Sapphire, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldAmber = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_OldAmber, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymSign = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Inanimate, + .images = sPicTable_GymSign, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sign = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Sign, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTips = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_WoodenSign, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clipboard = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Clipboard, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meteorite = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_METEORITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Inanimate, + .images = sPicTable_BirthIslandStone, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LaprasDoll = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Inanimate, + .images = sPicTable_LaprasDoll, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spearow = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Spearow, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Omanyte = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Omanyte, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kangaskhan = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Kangaskhan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Psyduck = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Psyduck, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranF = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_NidoranF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranM = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_NidoranM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nidorino = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Nidorino, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meowth = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Meowth, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seel = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Seel, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Voltorb = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Voltorb, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowpoke = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Slowpoke, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowbro = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Slowbro, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machop = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Machop, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wigglytuff = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Wigglytuff, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Doduo = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Doduo, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fearow = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Fearow, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lapras = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Lapras, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zapdos = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Zapdos, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Moltres = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Moltres, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Articuno = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Articuno, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysD = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_DeoxysD, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysA = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_DeoxysA, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysN = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_DeoxysN, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mewtwo = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Mewtwo, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Mew, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Entei = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Entei, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Raikou = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Raikou, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Suicune = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Suicune, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lugia, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_HoOh, + .images = sPicTable_HoOh, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celebi = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Celebi, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cubone = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Cubone, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machoke = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Machoke, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kabuto = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Kabuto, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poliwrath = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Poliwrath, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgeot = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Pidgeot, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chansey = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Chansey, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Pikachu, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Jigglypuff = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Jigglypuff, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgey = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Pidgey, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clefairy = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Clefairy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Mom, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seagallop = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_SEAGALLOP, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 2048, + .width = 64, + .height = 64, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_64x64, + .subspriteTables = gObjectEventSpriteOamTables_64x64, + .anims = sAnimTable_Standard, + .images = sPicTable_Seagallop, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSAnne = { + .tileTag = SPRITE_INVALID_TAG, + .paletteTag = OBJ_EVENT_PAL_TAG_SS_ANNE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 4096, + .width = 128, + .height = 64, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_8x8, + .subspriteTables = gObjectEventSpriteOamTables_128x64, + .anims = sAnimTable_Standard, + .images = sPicTable_SSAnne, + .affineAnims = gDummySpriteAffineAnimTable, +}; + From a064849864d02833c045ee183edb7666e1f8b818 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 12 Aug 2022 13:08:40 -0400 Subject: [PATCH 005/105] Sync/document battle_message.c --- asm/macros/battle_script.inc | 12 +- data/battle_scripts_1.s | 6 +- .../{unk_8D2FBB4.pal => text_pp.pal} | 0 include/battle.h | 2 +- include/battle_ai_switch_items.h | 12 +- include/battle_message.h | 10 +- include/battle_string_ids.h | 12 +- include/constants/battle.h | 2 +- include/constants/battle_script_commands.h | 2 +- include/constants/pokemon.h | 39 +- include/constants/weather.h | 1 + include/graphics.h | 2 +- include/string_util.h | 4 +- include/strings.h | 4 +- src/battle_controller_link_opponent.c | 2 +- src/battle_controller_player.c | 4 +- src/battle_controller_safari.c | 2 +- src/battle_interface.c | 2 +- src/battle_message.c | 1035 +++++++++++------ src/battle_script_commands.c | 2 +- src/battle_tower.c | 16 +- src/field_poison.c | 2 +- src/field_specials.c | 2 +- src/graphics.c | 2 +- src/party_menu.c | 4 +- src/pokemon.c | 2 +- src/pokemon_storage_system_5.c | 4 +- src/pokemon_summary_screen.c | 2 +- src/quest_log_events.c | 6 +- src/scrcmd.c | 2 +- src/string_util.c | 8 +- src/union_room.c | 2 +- src/union_room_battle.c | 2 +- 33 files changed, 776 insertions(+), 433 deletions(-) rename graphics/interface/{unk_8D2FBB4.pal => text_pp.pal} (100%) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index d9a55bbcd..392a387e9 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1282,16 +1282,16 @@ various BS_ATTACKER, VARIOUS_RESET_PLAYER_FAINTED .endm - .macro various8 battler:req - various \battler, 8 + .macro getbattlersforrecall + various BS_ATTACKER, VARIOUS_GET_BATTLERS_FOR_RECALL .endm - .macro returnopponentmon1toball battler:req - various \battler, VARIOUS_RETURN_OPPONENT_MON1 + .macro returnopponentmon1toball + various BS_ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 .endm - .macro returnopponentmon2toball battler:req - various \battler, VARIOUS_RETURN_OPPONENT_MON2 + .macro returnopponentmon2toball + various BS_ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 .endm .macro checkpokeflute battler:req diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index d469bb95d..6cf321c02 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2964,13 +2964,13 @@ BattleScript_RivalBattleLostSkipMonRecall:: end2 BattleScript_BattleTowerLost:: - various8 BS_ATTACKER + getbattlersforrecall jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_BattleTowerLostLostSkipMonRecall printfromtable gDoubleBattleRecallStrings waitmessage B_WAIT_TIME_LONG - returnopponentmon1toball BS_ATTACKER + returnopponentmon1toball waitstate - returnopponentmon2toball BS_ATTACKER + returnopponentmon2toball waitstate BattleScript_BattleTowerLostLostSkipMonRecall:: trainerslidein BS_ATTACKER diff --git a/graphics/interface/unk_8D2FBB4.pal b/graphics/interface/text_pp.pal similarity index 100% rename from graphics/interface/unk_8D2FBB4.pal rename to graphics/interface/text_pp.pal diff --git a/include/battle.h b/include/battle.h index b581190d6..54ba4a776 100644 --- a/include/battle.h +++ b/include/battle.h @@ -30,7 +30,7 @@ && !(gDisableStructs[battler].mimickedMoves & gBitTable[moveSlot])) #define TRAINER_OPPONENT_3FE 0x3FE -#define TRAINER_OPPONENT_C00 0xC00 +#define TRAINER_UNION_ROOM 0xC00 #define TRAINER_LINK_OPPONENT 0x800 #define SECRET_BASE_OPPONENT 0x400 diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index d0461319d..461994d62 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -3,8 +3,7 @@ #include "global.h" -enum -{ +enum { AI_ITEM_FULL_RESTORE = 1, AI_ITEM_HEAL_HP, AI_ITEM_CURE_CONDITION, @@ -13,6 +12,15 @@ enum AI_ITEM_NOT_RECOGNIZABLE }; +enum { + AI_HEAL_CONFUSION, + AI_HEAL_PARALYSIS, + AI_HEAL_FREEZE, + AI_HEAL_BURN, + AI_HEAL_POISON, + AI_HEAL_SLEEP, +}; + void AI_TrySwitchOrUseItem(void); u8 GetMostSuitableMonToSwitchInto(void); diff --git a/include/battle_message.h b/include/battle_message.h index 49d05b07d..7e882e3a8 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -242,11 +242,11 @@ extern const u8 gText_Ice[]; extern const u8 gText_Confusion[]; extern const u8 gText_Love[]; -extern const u8 gUnknown_83FE859[]; -extern const u8 gUnknown_83FE85E[]; -extern const u8 gUnknown_83FE85C[]; -extern const u8 gUnknown_83FE860[]; -extern const u8 gUnknown_83FE864[]; +extern const u8 gText_BattleTowerBan_Space[]; +extern const u8 gText_BattleTowerBan_Newline1[]; +extern const u8 gText_BattleTowerBan_Newline2[]; +extern const u8 gText_BattleTowerBan_Is1[]; +extern const u8 gText_BattleTowerBan_Is2[]; extern const u8 gText_SafariBalls[]; extern const u8 gText_HighlightRed_Left[]; diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h index 69086a626..2a056e516 100644 --- a/include/battle_string_ids.h +++ b/include/battle_string_ids.h @@ -385,7 +385,7 @@ #define STRINGID_TRAINER1MON2COMEBACK 384 #define STRINGID_TRAINER1MON1AND2COMEBACK 385 -#define BATTLESTRINGS_COUNT 374 +#define BATTLESTRINGS_COUNT 386 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, @@ -545,19 +545,15 @@ #define B_MSG_WONT_OBEY 1 #define B_MSG_TURNED_AWAY 2 #define B_MSG_PRETEND_NOT_NOTICE 3 -#define B_MSG_INCAPABLE_OF_POWER 4 -// For randomly selecting a disobey string -// Skips the one used for Battle Palace -#define NUM_LOAF_STRINGS 4 // gSafariGetNearStringIds #define B_MSG_CREPT_CLOSER 0 #define B_MSG_CANT_GET_CLOSER 1 // gSafariPokeblockResultStringIds -#define B_MSG_MON_CURIOUS 0 -#define B_MSG_MON_ENTHRALLED 1 -#define B_MSG_MON_IGNORED 2 +#define B_MSG_MON_WATCHING 0 +#define B_MSG_MON_ANGRY 1 +#define B_MSG_MON_EATING 2 // gFlashFireStringIds #define B_MSG_FLASH_FIRE_BOOST 0 diff --git a/include/constants/battle.h b/include/constants/battle.h index 0b4c372a2..041c6e73e 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -321,7 +321,7 @@ #define BATTLE_RUN_FORBIDDEN 1 #define BATTLE_RUN_FAILURE 2 -// Window Ids for sStandardBattleWindowTemplates +// Window Ids for sTextOnWindowsInfo_Normal #define B_WIN_MSG 0 #define B_WIN_ACTION_PROMPT 1 // "What will {x} do?" #define B_WIN_ACTION_MENU 2 // "Fight/Pokémon/Bag/Run" menu diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 6856f4bf8..e08a9e400 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -87,7 +87,7 @@ #define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 #define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 #define VARIOUS_RESET_PLAYER_FAINTED 7 -#define VARIOUS_CASE_8 8 +#define VARIOUS_GET_BATTLERS_FOR_RECALL 8 #define VARIOUS_RETURN_OPPONENT_MON1 9 #define VARIOUS_RETURN_OPPONENT_MON2 10 #define VARIOUS_CHECK_POKEFLUTE 11 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index dbea7dff5..298a829c9 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -93,25 +93,26 @@ #define MON_DATA_SPDEF2 88 // Pokemon types -#define TYPE_NORMAL 0x00 -#define TYPE_FIGHTING 0x01 -#define TYPE_FLYING 0x02 -#define TYPE_POISON 0x03 -#define TYPE_GROUND 0x04 -#define TYPE_ROCK 0x05 -#define TYPE_BUG 0x06 -#define TYPE_GHOST 0x07 -#define TYPE_STEEL 0x08 -#define TYPE_MYSTERY 0x09 -#define TYPE_FIRE 0x0a -#define TYPE_WATER 0x0b -#define TYPE_GRASS 0x0c -#define TYPE_ELECTRIC 0x0d -#define TYPE_PSYCHIC 0x0e -#define TYPE_ICE 0x0f -#define TYPE_DRAGON 0x10 -#define TYPE_DARK 0x11 -#define NUMBER_OF_MON_TYPES 0x12 +#define TYPE_NONE 255 +#define TYPE_NORMAL 0 +#define TYPE_FIGHTING 1 +#define TYPE_FLYING 2 +#define TYPE_POISON 3 +#define TYPE_GROUND 4 +#define TYPE_ROCK 5 +#define TYPE_BUG 6 +#define TYPE_GHOST 7 +#define TYPE_STEEL 8 +#define TYPE_MYSTERY 9 +#define TYPE_FIRE 10 +#define TYPE_WATER 11 +#define TYPE_GRASS 12 +#define TYPE_ELECTRIC 13 +#define TYPE_PSYCHIC 14 +#define TYPE_ICE 15 +#define TYPE_DRAGON 16 +#define TYPE_DARK 17 +#define NUMBER_OF_MON_TYPES 18 // Pokemon egg groups #define EGG_GROUP_NONE 0 diff --git a/include/constants/weather.h b/include/constants/weather.h index 241dc5e2a..b02496bff 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -16,6 +16,7 @@ #define WEATHER_DROUGHT 12 // unused and broken in overworld #define WEATHER_DOWNPOUR 13 // unused #define WEATHER_UNDERWATER_BUBBLES 14 // unused +#define WEATHER_ABNORMAL 15 // unused #define WEATHER_ROUTE119_CYCLE 20 // unused #define WEATHER_ROUTE123_CYCLE 21 // unused diff --git a/include/graphics.h b/include/graphics.h index f26373307..70b85d41b 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4848,7 +4848,7 @@ extern const u32 gBuyMenuFrame_TmHmTilemap[]; extern const u32 gBuyMenuFrame_Pal[]; // battle_message -extern const u16 gUnknown_8D2FBB4[]; +extern const u16 gPPTextPalette[]; // trainer card extern const u16 gKantoTrainerCard_Pal[]; diff --git a/include/string_util.h b/include/string_util.h index 65511b5c4..5f052d9f9 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -11,8 +11,8 @@ enum StringConvertMode }; u8 *StringCopy_Nickname(u8 *dest, const u8 *src); -u8 *StringGetEnd10(u8 *str); -u8 *StringCopy7(u8 *dest, const u8 *src); +u8 *StringGet_Nickname(u8 *str); +u8 *StringCopy_PlayerName(u8 *dest, const u8 *src); u8 *StringCopy(u8 *dest, const u8 *src); u8 *StringAppend(u8 *dest, const u8 *src); u8 *StringCopyN(u8 *dest, const u8 *src, u8 n); diff --git a/include/strings.h b/include/strings.h index c7663fef9..63fed5e97 100644 --- a/include/strings.h +++ b/include/strings.h @@ -216,12 +216,12 @@ extern const u8 gString_SlotMachineControls[]; // battle_controller_safari extern const u8 gText_EmptyString3[]; -extern const u8 gUnknown_83FE747[]; +extern const u8 gText_SafariZoneMenu[]; extern const u8 gText_WhatWillPlayerThrow[]; // battle_controller_player extern const u8 gText_BattleSwitchWhich[]; -extern const u8 gUnknown_83FE770[]; +extern const u8 gText_MoveInterfaceDynamicColors[]; extern const u8 gText_MoveInterfacePP[]; extern const u8 gText_MoveInterfaceType[]; extern const u8 gText_LinkStandby[]; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 839a230ad..b9573611e 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1134,7 +1134,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) else { xPos = 176; - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { trainerPicId = GetUnionRoomTrainerPic(); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 16c812fb0..541276a78 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1369,7 +1369,7 @@ static void MoveSelectionDisplayMoveNames(void) for (i = 0; i < MAX_MON_MOVES; ++i) { MoveSelectionDestroyCursorAt(i); - StringCopy(gDisplayedStringBattle, gUnknown_83FE770); + StringCopy(gDisplayedStringBattle, gText_MoveInterfaceDynamicColors); StringAppend(gDisplayedStringBattle, gMoveNames[moveInfo->moves[i]]); BattlePutTextOnWindow(gDisplayedStringBattle, i + 3); if (moveInfo->moves[i] != MOVE_NONE) @@ -1407,7 +1407,7 @@ static void MoveSelectionDisplayMoveType(void) *txtPtr++ = EXT_CTRL_CODE_BEGIN; *txtPtr++ = 6; *txtPtr++ = 1; - txtPtr = StringCopy(txtPtr, gUnknown_83FE770); + txtPtr = StringCopy(txtPtr, gText_MoveInterfaceDynamicColors); StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE); } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 6e7b1ee9a..545572416 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -439,7 +439,7 @@ static void SafariHandleChooseAction(void) gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG); - BattlePutTextOnWindow(gUnknown_83FE747, B_WIN_ACTION_MENU); + BattlePutTextOnWindow(gText_SafariZoneMenu, B_WIN_ACTION_MENU); for (i = 0; i < 4; ++i) ActionSelectionDestroyCursorAt(i); ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); diff --git a/src/battle_interface.c b/src/battle_interface.c index d0713bda1..07f880acc 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1466,7 +1466,7 @@ void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) ptr = StringCopy(gDisplayedStringBattle, gUnknown_8260556); GetMonData(mon, MON_DATA_NICKNAME, nickname); - StringGetEnd10(nickname); + StringGet_Nickname(nickname); ptr = StringCopy(ptr, nickname); *ptr++ = EXT_CTRL_CODE_BEGIN; *ptr++ = EXT_CTRL_CODE_COLOR; diff --git a/src/battle_message.c b/src/battle_message.c index 12369f063..ffe2bd764 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -16,9 +16,11 @@ #include "new_menu_helpers.h" #include "battle_controllers.h" #include "graphics.h" +#include "battle_ai_switch_items.h" #include "constants/moves.h" #include "constants/items.h" #include "constants/trainers.h" +#include "constants/weather.h" struct BattleWindowText { @@ -330,7 +332,7 @@ static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} f static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); static const u8 sText_CantEscape[] = _("Can't escape!\p"); -static const u8 sText_EmptyString5[] = _(""); //sText_DontLeaveBirch in pokeem +static const u8 sText_DontLeaveBirch[] = _(""); // Dummied static const u8 sText_ButNothingHappened[] = _("But nothing happened!"); static const u8 sText_ButItFailed[] = _("But it failed!"); static const u8 sText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); @@ -470,7 +472,7 @@ static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); -const u8 gUnknown_83FD78A[] = _("よã‘られãŸ!\nã“ã„ã¤ã¯ ã¤ã‹ã¾ã‚Šãã†ã«ãªã„ãž!"); +static const u8 sText_ItDodgedBall2[] = _("よã‘られãŸ!\nã“ã„ã¤ã¯ ã¤ã‹ã¾ã‚Šãã†ã«ãªã„ãž!"); // Unused version of the Marowak ghost dodging text static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p"); static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}"); static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); @@ -483,7 +485,7 @@ static const u8 sText_SandstormIsRaging[] = _("A sandstorm is raging."); static const u8 sText_BoxIsFull[] = _("The BOX is full!\nYou can't catch any more!\p"); static const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); static const u8 sText_BerrySuffix[] = _(" BERRY"); -static const u8 gUnknown_83FD8B6[] = _("ナゾ"); +static const u8 sText_Enigma[] = _("ナゾ"); static const u8 sText_PkmnsItemCuredParalysis[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured paralysis!"); static const u8 sText_PkmnsItemCuredPoison[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured poison!"); static const u8 sText_PkmnsItemHealedBurn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nhealed its burn!"); @@ -513,7 +515,7 @@ const u8 gText_OakNoRunningFromATrainer[] = _("OAK: No! There's no running away\ const u8 gText_WinEarnsPrizeMoney[] = _("OAK: Hm! Excellent!\pIf you win, you earn prize money,\nand your POKéMON will grow!\pBattle other TRAINERS and make\nyour POKéMON strong!\p"); const u8 gText_HowDissapointing[] = _("OAK: Hm…\nHow disappointing…\pIf you win, you earn prize money,\nand your POKéMON grow.\pBut if you lose, {B_PLAYER_NAME}, you end\nup paying prize money…\pHowever, since you had no warning\nthis time, I'll pay for you.\pBut things won't be this way once\nyou step outside these doors.\pThat's why you must strengthen your\nPOKéMON by battling wild POKéMON.\p"); -const u8 *const gBattleStringsTable[] = { +const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_START] = { [STRINGID_TRAINER1LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer1LoseText, [STRINGID_PKMNGAINEDEXP - BATTLESTRINGS_TABLE_START] = sText_PkmnGainedEXP, [STRINGID_PKMNGREWTOLV - BATTLESTRINGS_TABLE_START] = sText_PkmnGrewToLv, @@ -625,7 +627,7 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_PKMNSTORINGENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnStoringEnergy, [STRINGID_PKMNUNLEASHEDENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnUnleashedEnergy, [STRINGID_PKMNFATIGUECONFUSION - BATTLESTRINGS_TABLE_START] = sText_PkmnFatigueConfusion, - [STRINGID_PLAYERPICKEDUPMONEY - BATTLESTRINGS_TABLE_START] = sText_PkmnPickedUpItem, + [STRINGID_PLAYERPICKEDUPMONEY - BATTLESTRINGS_TABLE_START] = sText_PkmnPickedUpItem, [STRINGID_PKMNUNAFFECTED - BATTLESTRINGS_TABLE_START] = sText_PkmnUnaffected, [STRINGID_PKMNTRANSFORMEDINTO - BATTLESTRINGS_TABLE_START] = sText_PkmnTransformedInto, [STRINGID_PKMNMADESUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeSubstitute, @@ -729,7 +731,7 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_WILDPKMNFLED - BATTLESTRINGS_TABLE_START] = sText_WildPkmnFled, [STRINGID_NORUNNINGFROMTRAINERS - BATTLESTRINGS_TABLE_START] = sText_NoRunningFromTrainers, [STRINGID_CANTESCAPE - BATTLESTRINGS_TABLE_START] = sText_CantEscape, - [STRINGID_DONTLEAVEBIRCH - BATTLESTRINGS_TABLE_START] = sText_EmptyString5, + [STRINGID_DONTLEAVEBIRCH - BATTLESTRINGS_TABLE_START] = sText_DontLeaveBirch, [STRINGID_BUTNOTHINGHAPPENED - BATTLESTRINGS_TABLE_START] = sText_ButNothingHappened, [STRINGID_BUTITFAILED - BATTLESTRINGS_TABLE_START] = sText_ButItFailed, [STRINGID_ITHURTCONFUSION - BATTLESTRINGS_TABLE_START] = sText_ItHurtConfusion, @@ -890,104 +892,120 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_TRAINER1MON1AND2COMEBACK - BATTLESTRINGS_TABLE_START] = sText_Trainer1RecallBoth }; -const u16 gMissStringIds[] = { - STRINGID_ATTACKMISSED, - STRINGID_PKMNPROTECTEDITSELF, - STRINGID_PKMNAVOIDEDATTACK, - STRINGID_AVOIDEDDAMAGE, - STRINGID_PKMNMAKESGROUNDMISS +const u16 gMissStringIds[] = +{ + [B_MSG_MISSED] = STRINGID_ATTACKMISSED, + [B_MSG_PROTECTED] = STRINGID_PKMNPROTECTEDITSELF, + [B_MSG_AVOIDED_ATK] = STRINGID_PKMNAVOIDEDATTACK, + [B_MSG_AVOIDED_DMG] = STRINGID_AVOIDEDDAMAGE, + [B_MSG_GROUND_MISS] = STRINGID_PKMNMAKESGROUNDMISS }; -const u16 gNoEscapeStringIds[] = { - STRINGID_CANTESCAPE, - STRINGID_DONTLEAVEBIRCH, - STRINGID_PREVENTSESCAPE, - STRINGID_CANTESCAPE2, - STRINGID_ATTACKERCANTESCAPE +const u16 gNoEscapeStringIds[] = +{ + [B_MSG_CANT_ESCAPE] = STRINGID_CANTESCAPE, + [B_MSG_DONT_LEAVE_BIRCH] = STRINGID_DONTLEAVEBIRCH, + [B_MSG_PREVENTS_ESCAPE] = STRINGID_PREVENTSESCAPE, + [B_MSG_CANT_ESCAPE_2] = STRINGID_CANTESCAPE2, + [B_MSG_ATTACKER_CANT_ESCAPE] = STRINGID_ATTACKERCANTESCAPE }; -const u16 gMoveWeatherChangeStringIds[] = { - STRINGID_STARTEDTORAIN, - STRINGID_DOWNPOURSTARTED, - STRINGID_BUTITFAILED, - STRINGID_SANDSTORMBREWED, - STRINGID_SUNLIGHTGOTBRIGHT, - STRINGID_STARTEDHAIL +const u16 gMoveWeatherChangeStringIds[] = +{ + [B_MSG_STARTED_RAIN] = STRINGID_STARTEDTORAIN, + [B_MSG_STARTED_DOWNPOUR] = STRINGID_DOWNPOURSTARTED, + [B_MSG_WEATHER_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_STARTED_SANDSTORM] = STRINGID_SANDSTORMBREWED, + [B_MSG_STARTED_SUNLIGHT] = STRINGID_SUNLIGHTGOTBRIGHT, + [B_MSG_STARTED_HAIL] = STRINGID_STARTEDHAIL }; -const u16 gSandstormHailContinuesStringIds[] = { - STRINGID_SANDSTORMRAGES, - STRINGID_HAILCONTINUES +const u16 gSandstormHailContinuesStringIds[] = +{ + [B_MSG_SANDSTORM] = STRINGID_SANDSTORMRAGES, + [B_MSG_HAIL] = STRINGID_HAILCONTINUES }; -const u16 gSandstormHailDmgStringIds[] = { - STRINGID_PKMNBUFFETEDBYSANDSTORM, - STRINGID_PKMNPELTEDBYHAIL +const u16 gSandstormHailDmgStringIds[] = +{ + [B_MSG_SANDSTORM] = STRINGID_PKMNBUFFETEDBYSANDSTORM, + [B_MSG_HAIL] = STRINGID_PKMNPELTEDBYHAIL }; -const u16 gSandstormHailEndStringIds[] = { - STRINGID_SANDSTORMSUBSIDED, - STRINGID_HAILSTOPPED +const u16 gSandstormHailEndStringIds[] = +{ + [B_MSG_SANDSTORM] = STRINGID_SANDSTORMSUBSIDED, + [B_MSG_HAIL] = STRINGID_HAILSTOPPED }; -const u16 gRainContinuesStringIds[] = { - STRINGID_RAINCONTINUES, - STRINGID_DOWNPOURCONTINUES, - STRINGID_RAINSTOPPED +const u16 gRainContinuesStringIds[] = +{ + [B_MSG_RAIN_CONTINUES] = STRINGID_RAINCONTINUES, + [B_MSG_DOWNPOUR_CONTINUES] = STRINGID_DOWNPOURCONTINUES, + [B_MSG_RAIN_STOPPED] = STRINGID_RAINSTOPPED }; -const u16 gProtectLikeUsedStringIds[] = { - STRINGID_PKMNPROTECTEDITSELF2, - STRINGID_PKMNBRACEDITSELF, - STRINGID_BUTITFAILED +const u16 gProtectLikeUsedStringIds[] = +{ + [B_MSG_PROTECTED_ITSELF] = STRINGID_PKMNPROTECTEDITSELF2, + [B_MSG_BRACED_ITSELF] = STRINGID_PKMNBRACEDITSELF, + [B_MSG_PROTECT_FAILED] = STRINGID_BUTITFAILED }; -const u16 gReflectLightScreenSafeguardStringIds[] = { - STRINGID_BUTITFAILED, - STRINGID_PKMNRAISEDDEF, - STRINGID_PKMNRAISEDDEFALITTLE, - STRINGID_PKMNRAISEDSPDEF, - STRINGID_PKMNRAISEDSPDEFALITTLE, - STRINGID_PKMNCOVEREDBYVEIL +const u16 gReflectLightScreenSafeguardStringIds[] = +{ + [B_MSG_SIDE_STATUS_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_SET_REFLECT_SINGLE] = STRINGID_PKMNRAISEDDEF, + [B_MSG_SET_REFLECT_DOUBLE] = STRINGID_PKMNRAISEDDEFALITTLE, + [B_MSG_SET_LIGHTSCREEN_SINGLE] = STRINGID_PKMNRAISEDSPDEF, + [B_MSG_SET_LIGHTSCREEN_DOUBLE] = STRINGID_PKMNRAISEDSPDEFALITTLE, + [B_MSG_SET_SAFEGUARD] = STRINGID_PKMNCOVEREDBYVEIL }; -const u16 gLeechSeedStringIds[] = { - STRINGID_PKMNSEEDED, - STRINGID_PKMNEVADEDATTACK, - STRINGID_ITDOESNTAFFECT, - STRINGID_PKMNSAPPEDBYLEECHSEED, - STRINGID_ITSUCKEDLIQUIDOOZE +const u16 gLeechSeedStringIds[] = +{ + [B_MSG_LEECH_SEED_SET] = STRINGID_PKMNSEEDED, + [B_MSG_LEECH_SEED_MISS] = STRINGID_PKMNEVADEDATTACK, + [B_MSG_LEECH_SEED_FAIL] = STRINGID_ITDOESNTAFFECT, + [B_MSG_LEECH_SEED_DRAIN] = STRINGID_PKMNSAPPEDBYLEECHSEED, + [B_MSG_LEECH_SEED_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE }; -const u16 gRestUsedStringIds[] = { - STRINGID_PKMNWENTTOSLEEP, - STRINGID_PKMNSLEPTHEALTHY +const u16 gRestUsedStringIds[] = +{ + [B_MSG_REST] = STRINGID_PKMNWENTTOSLEEP, + [B_MSG_REST_STATUSED] = STRINGID_PKMNSLEPTHEALTHY }; -const u16 gUproarOverTurnStringIds[] = { - STRINGID_PKMNMAKINGUPROAR, - STRINGID_PKMNCALMEDDOWN +const u16 gUproarOverTurnStringIds[] = +{ + [B_MSG_UPROAR_CONTINUES] = STRINGID_PKMNMAKINGUPROAR, + [B_MSG_UPROAR_ENDS] = STRINGID_PKMNCALMEDDOWN }; -const u16 gStockpileUsedStringIds[] = { - STRINGID_PKMNSTOCKPILED, - STRINGID_PKMNCANTSTOCKPILE +const u16 gStockpileUsedStringIds[] = +{ + [B_MSG_STOCKPILED] = STRINGID_PKMNSTOCKPILED, + [B_MSG_CANT_STOCKPILE] = STRINGID_PKMNCANTSTOCKPILE }; -const u16 gWokeUpStringIds[] = { - STRINGID_PKMNWOKEUP, - STRINGID_PKMNWOKEUPINUPROAR +const u16 gWokeUpStringIds[] = +{ + [B_MSG_WOKE_UP] = STRINGID_PKMNWOKEUP, + [B_MSG_WOKE_UP_UPROAR] = STRINGID_PKMNWOKEUPINUPROAR }; -const u16 gSwallowFailStringIds[] = { - STRINGID_FAILEDTOSWALLOW, - STRINGID_PKMNHPFULL +const u16 gSwallowFailStringIds[] = +{ + [B_MSG_SWALLOW_FAILED] = STRINGID_FAILEDTOSWALLOW, + [B_MSG_SWALLOW_FULL_HP] = STRINGID_PKMNHPFULL }; -const u16 gUproarAwakeStringIds[] = { - STRINGID_PKMNCANTSLEEPINUPROAR2, - STRINGID_UPROARKEPTPKMNAWAKE, - STRINGID_PKMNSTAYEDAWAKEUSING +const u16 gUproarAwakeStringIds[] = +{ + [B_MSG_CANT_SLEEP_UPROAR] = STRINGID_PKMNCANTSLEEPINUPROAR2, + [B_MSG_UPROAR_KEPT_AWAKE] = STRINGID_UPROARKEPTPKMNAWAKE, + [B_MSG_STAYED_AWAKE_USING] = STRINGID_PKMNSTAYEDAWAKEUSING }; const u16 gStatUpStringIds[] = @@ -1000,220 +1018,258 @@ const u16 gStatUpStringIds[] = [B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED, }; -const u16 gStatDownStringIds[] = { - STRINGID_ATTACKERSSTATFELL, - STRINGID_DEFENDERSSTATFELL, - STRINGID_STATSWONTDECREASE, - STRINGID_EMPTYSTRING3 +const u16 gStatDownStringIds[] = +{ + [B_MSG_ATTACKER_STAT_FELL] = STRINGID_ATTACKERSSTATFELL, + [B_MSG_DEFENDER_STAT_FELL] = STRINGID_DEFENDERSSTATFELL, + [B_MSG_STAT_WONT_DECREASE] = STRINGID_STATSWONTDECREASE, + [B_MSG_STAT_FELL_EMPTY] = STRINGID_EMPTYSTRING3 }; -const u16 gFirstTurnOfTwoStringIds[] = { - STRINGID_PKMNWHIPPEDWHIRLWIND, - STRINGID_PKMNTOOKSUNLIGHT, - STRINGID_PKMNLOWEREDHEAD, - STRINGID_PKMNISGLOWING, - STRINGID_PKMNFLEWHIGH, - STRINGID_PKMNDUGHOLE, - STRINGID_PKMNHIDUNDERWATER, - STRINGID_PKMNSPRANGUP +// Index read from sTWOTURN_STRINGID +const u16 gFirstTurnOfTwoStringIds[] = +{ + [B_MSG_TURN1_RAZOR_WIND] = STRINGID_PKMNWHIPPEDWHIRLWIND, + [B_MSG_TURN1_SOLAR_BEAM] = STRINGID_PKMNTOOKSUNLIGHT, + [B_MSG_TURN1_SKULL_BASH] = STRINGID_PKMNLOWEREDHEAD, + [B_MSG_TURN1_SKY_ATTACK] = STRINGID_PKMNISGLOWING, + [B_MSG_TURN1_FLY] = STRINGID_PKMNFLEWHIGH, + [B_MSG_TURN1_DIG] = STRINGID_PKMNDUGHOLE, + [B_MSG_TURN1_DIVE] = STRINGID_PKMNHIDUNDERWATER, + [B_MSG_TURN1_BOUNCE] = STRINGID_PKMNSPRANGUP }; -const u16 gWrappedStringIds[] = { - STRINGID_PKMNSQUEEZEDBYBIND, - STRINGID_PKMNWRAPPEDBY, - STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNCLAMPED, - STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNTRAPPEDBYSANDTOMB +// Index copied from move's index in gTrappingMoves +const u16 gWrappedStringIds[] = +{ + STRINGID_PKMNSQUEEZEDBYBIND, // MOVE_BIND + STRINGID_PKMNWRAPPEDBY, // MOVE_WRAP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_FIRE_SPIN + STRINGID_PKMNCLAMPED, // MOVE_CLAMP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_WHIRLPOOL + STRINGID_PKMNTRAPPEDBYSANDTOMB // MOVE_SAND_TOMB }; -const u16 gMistUsedStringIds[] = { - STRINGID_PKMNSHROUDEDINMIST, - STRINGID_BUTITFAILED +const u16 gMistUsedStringIds[] = +{ + [B_MSG_SET_MIST] = STRINGID_PKMNSHROUDEDINMIST, + [B_MSG_MIST_FAILED] = STRINGID_BUTITFAILED }; -const u16 gFocusEnergyUsedStringIds[] = { - STRINGID_PKMNGETTINGPUMPED, - STRINGID_BUTITFAILED +const u16 gFocusEnergyUsedStringIds[] = +{ + [B_MSG_GETTING_PUMPED] = STRINGID_PKMNGETTINGPUMPED, + [B_MSG_FOCUS_ENERGY_FAILED] = STRINGID_BUTITFAILED }; -const u16 gTransformUsedStringIds[] = { - STRINGID_PKMNTRANSFORMEDINTO, - STRINGID_BUTITFAILED +const u16 gTransformUsedStringIds[] = +{ + [B_MSG_TRANSFORMED] = STRINGID_PKMNTRANSFORMEDINTO, + [B_MSG_TRANSFORM_FAILED] = STRINGID_BUTITFAILED }; -const u16 gSubstituteUsedStringIds[] = { - STRINGID_PKMNMADESUBSTITUTE, - STRINGID_TOOWEAKFORSUBSTITUTE +const u16 gSubstituteUsedStringIds[] = +{ + [B_MSG_SET_SUBSTITUTE] = STRINGID_PKMNMADESUBSTITUTE, + [B_MSG_SUBSTITUTE_FAILED] = STRINGID_TOOWEAKFORSUBSTITUTE }; -const u16 gGotPoisonedStringIds[] = { - STRINGID_PKMNWASPOISONED, - STRINGID_PKMNPOISONEDBY +const u16 gGotPoisonedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASPOISONED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNPOISONEDBY }; -const u16 gGotParalyzedStringIds[] = { - STRINGID_PKMNWASPARALYZED, - STRINGID_PKMNWASPARALYZEDBY +const u16 gGotParalyzedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASPARALYZED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNWASPARALYZEDBY }; -const u16 gFellAsleepStringIds[] = { - STRINGID_PKMNFELLASLEEP, - STRINGID_PKMNMADESLEEP +const u16 gFellAsleepStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNFELLASLEEP, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNMADESLEEP }; -const u16 gGotBurnedStringIds[] = { - STRINGID_PKMNWASBURNED, - STRINGID_PKMNBURNEDBY +const u16 gGotBurnedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASBURNED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNBURNEDBY }; -const u16 gGotFrozenStringIds[] = { - STRINGID_PKMNWASFROZEN, - STRINGID_PKMNFROZENBY +const u16 gGotFrozenStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASFROZEN, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNFROZENBY }; -const u16 gGotDefrostedStringIds[] = { - STRINGID_PKMNWASDEFROSTED2, - STRINGID_PKMNWASDEFROSTEDBY +const u16 gGotDefrostedStringIds[] = +{ + [B_MSG_DEFROSTED] = STRINGID_PKMNWASDEFROSTED2, + [B_MSG_DEFROSTED_BY_MOVE] = STRINGID_PKMNWASDEFROSTEDBY }; -const u16 gKOFailedStringIds[] = { - STRINGID_ATTACKMISSED, - STRINGID_PKMNUNAFFECTED +const u16 gKOFailedStringIds[] = +{ + [B_MSG_KO_MISS] = STRINGID_ATTACKMISSED, + [B_MSG_KO_UNAFFECTED] = STRINGID_PKMNUNAFFECTED }; -const u16 gAttractUsedStringIds[] = { - STRINGID_PKMNFELLINLOVE, - STRINGID_PKMNSXINFATUATEDY +const u16 gAttractUsedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNFELLINLOVE, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNSXINFATUATEDY }; -const u16 gAbsorbDrainStringIds[] = { - STRINGID_PKMNENERGYDRAINED, - STRINGID_ITSUCKEDLIQUIDOOZE +const u16 gAbsorbDrainStringIds[] = +{ + [B_MSG_ABSORB] = STRINGID_PKMNENERGYDRAINED, + [B_MSG_ABSORB_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE }; -const u16 gSportsUsedStringIds[] = { - STRINGID_ELECTRICITYWEAKENED, - STRINGID_FIREWEAKENED +const u16 gSportsUsedStringIds[] = +{ + [B_MSG_WEAKEN_ELECTRIC] = STRINGID_ELECTRICITYWEAKENED, + [B_MSG_WEAKEN_FIRE] = STRINGID_FIREWEAKENED }; -const u16 gPartyStatusHealStringIds[] = { - STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, - STRINGID_SOOTHINGAROMA +const u16 gPartyStatusHealStringIds[] = +{ + [B_MSG_BELL] = STRINGID_BELLCHIMED, + [B_MSG_BELL_SOUNDPROOF_ATTACKER] = STRINGID_BELLCHIMED, + [B_MSG_BELL_SOUNDPROOF_PARTNER] = STRINGID_BELLCHIMED, + [B_MSG_BELL_BOTH_SOUNDPROOF] = STRINGID_BELLCHIMED, + [B_MSG_SOOTHING_AROMA] = STRINGID_SOOTHINGAROMA }; -const u16 gFutureMoveUsedStringIds[] = { - STRINGID_PKMNFORESAWATTACK, - STRINGID_PKMNCHOSEXASDESTINY +const u16 gFutureMoveUsedStringIds[] = +{ + [B_MSG_FUTURE_SIGHT] = STRINGID_PKMNFORESAWATTACK, + [B_MSG_DOOM_DESIRE] = STRINGID_PKMNCHOSEXASDESTINY }; -const u16 gBallEscapeStringIds[] = { - STRINGID_PKMNBROKEFREE, - STRINGID_ITAPPEAREDCAUGHT, - STRINGID_AARGHALMOSTHADIT, - STRINGID_SHOOTSOCLOSE +const u16 gBallEscapeStringIds[] = +{ + [BALL_NO_SHAKES] = STRINGID_PKMNBROKEFREE, + [BALL_1_SHAKE] = STRINGID_ITAPPEAREDCAUGHT, + [BALL_2_SHAKES] = STRINGID_AARGHALMOSTHADIT, + [BALL_3_SHAKES_FAIL] = STRINGID_SHOOTSOCLOSE }; -const u16 gWeatherStartsStringIds[] = { - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_SANDSTORMISRAGING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_SUNLIGHTSTRONG, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING +// Overworld weathers that don't have an associated battle weather default to "It is raining." +const u16 gWeatherStartsStringIds[] = +{ + [WEATHER_NONE] = STRINGID_ITISRAINING, + [WEATHER_SUNNY_CLOUDS] = STRINGID_ITISRAINING, + [WEATHER_SUNNY] = STRINGID_ITISRAINING, + [WEATHER_RAIN] = STRINGID_ITISRAINING, + [WEATHER_SNOW] = STRINGID_ITISRAINING, + [WEATHER_RAIN_THUNDERSTORM] = STRINGID_ITISRAINING, + [WEATHER_FOG_HORIZONTAL] = STRINGID_ITISRAINING, + [WEATHER_VOLCANIC_ASH] = STRINGID_ITISRAINING, + [WEATHER_SANDSTORM] = STRINGID_SANDSTORMISRAGING, + [WEATHER_FOG_DIAGONAL] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER] = STRINGID_ITISRAINING, + [WEATHER_SHADE] = STRINGID_ITISRAINING, + [WEATHER_DROUGHT] = STRINGID_SUNLIGHTSTRONG, + [WEATHER_DOWNPOUR] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER_BUBBLES] = STRINGID_ITISRAINING, + [WEATHER_ABNORMAL] = STRINGID_ITISRAINING }; -const u16 gInobedientStringIds[] = { - STRINGID_PKMNLOAFING, - STRINGID_PKMNWONTOBEY, - STRINGID_PKMNTURNEDAWAY, - STRINGID_PKMNPRETENDNOTNOTICE +const u16 gInobedientStringIds[] = +{ + [B_MSG_LOAFING] = STRINGID_PKMNLOAFING, + [B_MSG_WONT_OBEY] = STRINGID_PKMNWONTOBEY, + [B_MSG_TURNED_AWAY] = STRINGID_PKMNTURNEDAWAY, + [B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE }; -const u16 gSafariPokeblockResultStringIds[] = { - STRINGID_PKMNWATCHINGCAREFULLY, - STRINGID_PKMNANGRY, - STRINGID_PKMNEATING +const u16 gSafariPokeblockResultStringIds[] = +{ + [B_MSG_MON_WATCHING] = STRINGID_PKMNWATCHINGCAREFULLY, + [B_MSG_MON_ANGRY] = STRINGID_PKMNANGRY, + [B_MSG_MON_EATING] = STRINGID_PKMNEATING }; -const u16 gTrainerItemCuredStatusStringIds[] = { - STRINGID_PKMNSITEMSNAPPEDOUT, - STRINGID_PKMNSITEMCUREDPARALYSIS, - STRINGID_PKMNSITEMDEFROSTEDIT, - STRINGID_PKMNSITEMHEALEDBURN, - STRINGID_PKMNSITEMCUREDPOISON, - STRINGID_PKMNSITEMWOKEIT +const u16 gTrainerItemCuredStatusStringIds[] = +{ + [AI_HEAL_CONFUSION] = STRINGID_PKMNSITEMSNAPPEDOUT, + [AI_HEAL_PARALYSIS] = STRINGID_PKMNSITEMCUREDPARALYSIS, + [AI_HEAL_FREEZE] = STRINGID_PKMNSITEMDEFROSTEDIT, + [AI_HEAL_BURN] = STRINGID_PKMNSITEMHEALEDBURN, + [AI_HEAL_POISON] = STRINGID_PKMNSITEMCUREDPOISON, + [AI_HEAL_SLEEP] = STRINGID_PKMNSITEMWOKEIT }; -const u16 gBerryEffectStringIds[] = { - STRINGID_PKMNSITEMCUREDPROBLEM, - STRINGID_PKMNSITEMNORMALIZEDSTATUS +const u16 gBerryEffectStringIds[] = +{ + [B_MSG_CURED_PROBLEM] = STRINGID_PKMNSITEMCUREDPROBLEM, + [B_MSG_NORMALIZED_STATUS] = STRINGID_PKMNSITEMNORMALIZEDSTATUS }; -const u16 gBRNPreventionStringIds[] = { - STRINGID_PKMNSXPREVENTSBURNS, - STRINGID_PKMNSXPREVENTSYSZ, - STRINGID_PKMNSXHADNOEFFECTONY +const u16 gBRNPreventionStringIds[] = +{ + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNSXPREVENTSBURNS, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; -const u16 gPRLZPreventionStringIds[] = { - STRINGID_PKMNPREVENTSPARALYSISWITH, - STRINGID_PKMNSXPREVENTSYSZ, - STRINGID_PKMNSXHADNOEFFECTONY +const u16 gPRLZPreventionStringIds[] = +{ + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPARALYSISWITH, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; -const u16 gPSNPreventionStringIds[] = { - STRINGID_PKMNPREVENTSPOISONINGWITH, - STRINGID_PKMNSXPREVENTSYSZ, - STRINGID_PKMNSXHADNOEFFECTONY +const u16 gPSNPreventionStringIds[] = +{ + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPOISONINGWITH, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; -const u16 gItemSwapStringIds[] = { - STRINGID_PKMNOBTAINEDX, - STRINGID_PKMNOBTAINEDX2, - STRINGID_PKMNOBTAINEDXYOBTAINEDZ +const u16 gItemSwapStringIds[] = +{ + [B_MSG_ITEM_SWAP_TAKEN] = STRINGID_PKMNOBTAINEDX, + [B_MSG_ITEM_SWAP_GIVEN] = STRINGID_PKMNOBTAINEDX2, + [B_MSG_ITEM_SWAP_BOTH] = STRINGID_PKMNOBTAINEDXYOBTAINEDZ }; -const u16 gFlashFireStringIds[] = { - STRINGID_PKMNRAISEDFIREPOWERWITH, - STRINGID_PKMNSXMADEYINEFFECTIVE +const u16 gFlashFireStringIds[] = +{ + [B_MSG_FLASH_FIRE_BOOST] = STRINGID_PKMNRAISEDFIREPOWERWITH, + [B_MSG_FLASH_FIRE_NO_BOOST] = STRINGID_PKMNSXMADEYINEFFECTIVE }; -const u16 gCaughtMonStringIds[] = { - STRINGID_PKMNTRANSFERREDSOMEONESPC, - STRINGID_PKMNTRANSFERREDBILLSPC, - STRINGID_PKMNBOXSOMEONESPCFULL, - STRINGID_PKMNBOXBILLSPCFULL +const u16 gCaughtMonStringIds[] = +{ + [B_MSG_SENT_SOMEONES_PC] = STRINGID_PKMNTRANSFERREDSOMEONESPC, + [B_MSG_SENT_BILLS_PC] = STRINGID_PKMNTRANSFERREDBILLSPC, + [B_MSG_SOMEONES_BOX_FULL] = STRINGID_PKMNBOXSOMEONESPCFULL, + [B_MSG_BILLS_BOX_FULL] = STRINGID_PKMNBOXBILLSPCFULL }; -const u16 gDoubleBattleRecallStrings[] = { +// Index is determined in VARIOUS_GET_BATTLERS_FOR_RECALL by ORing flags for each present battler on the losing side. +// No battlers (0) is skipped. +const u16 gDoubleBattleRecallStrings[1 << (MAX_BATTLERS_COUNT / 2)] = +{ STRINGID_TRAINER1MON1COMEBACK, STRINGID_TRAINER1MON1COMEBACK, STRINGID_TRAINER1MON2COMEBACK, STRINGID_TRAINER1MON1AND2COMEBACK }; -const u16 gTrappingMoves[] = { +const u16 gTrappingMoves[NUM_TRAPPING_MOVES + 1] = +{ MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, - 0xFFFF + 0xFFFF // Never read }; const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); @@ -1225,30 +1281,32 @@ const u8 gText_WhatWillPlayerThrow[] = _("What will {B_PLAYER_NAME}\nthrow?"); const u8 gText_WhatWillOldManDo[] = _("What will the\nold man do?"); const u8 gText_LinkStandby[] = _("{PAUSE 16}Link standby…"); const u8 gText_BattleMenu[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN"); -const u8 gUnknown_83FE747[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}BALL{CLEAR_TO 56}BAIT\nROCK{CLEAR_TO 56}RUN"); +const u8 gText_SafariZoneMenu[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}BALL{CLEAR_TO 56}BAIT\nROCK{CLEAR_TO 56}RUN"); const u8 gText_MoveInterfacePP[] = _("PP "); const u8 gText_MoveInterfaceType[] = _("TYPE/"); -const u8 gUnknown_83FE770[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); -const u8 gUnknown_83FE779[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}ã©ã® ã‚ã–ã‚’\nã‚ã™ã‚Œã•ã›ãŸã„?"); +const u8 gText_MoveInterfaceDynamicColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); +const u8 gText_WhichMoveToForget_Unused[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}ã©ã® ã‚ã–ã‚’\nã‚ã™ã‚Œã•ã›ãŸã„?"); const u8 gText_BattleYesNoChoice[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}Yes\nNo"); const u8 gText_BattleSwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}Switch\nwhich?"); -const u8 gUnknown_83FE7B6[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); -const u8 gUnknown_83FE7BF[] = _("{RIGHT_ARROW_2}"); -const u8 gUnknown_83FE7C2[] = _("{PLUS}"); -const u8 gUnknown_83FE7C5[] = _("-"); +static const u8 sText_UnusedColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); +static const u8 sText_RightArrow2[] = _("{RIGHT_ARROW_2}"); +static const u8 sText_Plus[] = _("{PLUS}"); +static const u8 sText_Dash[] = _("-"); -const u8 gUnknown_83FE7C7[] = _("{FONT_0}Max{FONT_2} HP"); -const u8 gUnknown_83FE7D4[] = _("ATTACK "); -const u8 gUnknown_83FE7DC[] = _("DEFENSE"); -const u8 gUnknown_83FE7E4[] = _("SP. ATK"); -const u8 gUnknown_83FE7EC[] = _("SP. DEF"); +static const u8 sText_MaxHP[] = _("{FONT_0}Max{FONT_2} HP"); +static const u8 sText_Attack[] = _("ATTACK "); +static const u8 sText_Defense[] = _("DEFENSE"); +static const u8 sText_SpAtk[] = _("SP. ATK"); +static const u8 sText_SpDef[] = _("SP. DEF"); -const u8 *const gUnknown_83FE7F4[] = { - gUnknown_83FE7C7, - gUnknown_83FE7E4, - gUnknown_83FE7D4, - gUnknown_83FE7EC, - gUnknown_83FE7DC, +// Unused +static const u8 *const sStatNamesTable2[] = +{ + sText_MaxHP, + sText_SpAtk, + sText_Attack, + sText_SpDef, + sText_Defense, sText_Speed }; @@ -1262,81 +1320,84 @@ const u8 gText_Paralysis[] = _("paralysis"); const u8 gText_Ice[] = _("ice"); const u8 gText_Confusion[] = _("confusion"); const u8 gText_Love[] = _("love"); -const u8 gUnknown_83FE859[] = _(" "); -const u8 gUnknown_83FE85C[] = _("\n"); -const u8 gUnknown_83FE85E[] = _("\n"); -const u8 gUnknown_83FE860[] = _(" is"); -const u8 gUnknown_83FE864[] = _(" is"); +const u8 gText_BattleTowerBan_Space[] = _(" "); +const u8 gText_BattleTowerBan_Newline1[] = _("\n"); +const u8 gText_BattleTowerBan_Newline2[] = _("\n"); +const u8 gText_BattleTowerBan_Is1[] = _(" is"); +const u8 gText_BattleTowerBan_Is2[] = _(" is"); const u8 gText_BadEgg[] = _("Bad EGG"); -const u8 gUnknown_83FE870[] = _("ミツル"); +const u8 gText_BattleWallyName[] = _("ミツル"); const u8 gText_Win[] = _("{HIGHLIGHT 0}Win"); const u8 gText_Loss[] = _("{HIGHLIGHT 0}Loss"); const u8 gText_Draw[] = _("{HIGHLIGHT 0}Draw"); static const u8 sText_SpaceIs[] = _(" is"); static const u8 sText_ApostropheS[] = _("'s"); -const u8 gUnknown_83FE892[] = _("a NORMAL move"); -const u8 gUnknown_83FE8A0[] = _("a FIGHTING move"); -const u8 gUnknown_83FE8B0[] = _("a FLYING move"); -const u8 gUnknown_83FE8BE[] = _("a POISON move"); -const u8 gUnknown_83FE8CC[] = _("a GROUND move"); -const u8 gUnknown_83FE8DA[] = _("a ROCK move"); -const u8 gUnknown_83FE8E6[] = _("a BUG move"); -const u8 gUnknown_83FE8F1[] = _("a GHOST move"); -const u8 gUnknown_83FE8FE[] = _("a STEEL move"); -const u8 gUnknown_83FE90B[] = _("a ??? move"); -const u8 gUnknown_83FE916[] = _("a FIRE move"); -const u8 gUnknown_83FE922[] = _("a WATER move"); -const u8 gUnknown_83FE92F[] = _("a GRASS move"); -const u8 gUnknown_83FE93C[] = _("an ELECTRIC move"); -const u8 gUnknown_83FE94D[] = _("a PSYCHIC move"); -const u8 gUnknown_83FE95C[] = _("an ICE move"); -const u8 gUnknown_83FE968[] = _("a DRAGON move"); -const u8 gUnknown_83FE976[] = _("a DARK move"); +const u8 gText_ANormalMove[] = _("a NORMAL move"); +const u8 gText_AFightingMove[] = _("a FIGHTING move"); +const u8 gText_AFlyingMove[] = _("a FLYING move"); +const u8 gText_APoisonMove[] = _("a POISON move"); +const u8 gText_AGroundMove[] = _("a GROUND move"); +const u8 gText_ARockMove[] = _("a ROCK move"); +const u8 gText_ABugMove[] = _("a BUG move"); +const u8 gText_AGhostMove[] = _("a GHOST move"); +const u8 gText_ASteelMove[] = _("a STEEL move"); +const u8 gText_AMysteryMove[] = _("a ??? move"); +const u8 gText_AFireMove[] = _("a FIRE move"); +const u8 gText_AWaterMove[] = _("a WATER move"); +const u8 gText_AGrassMove[] = _("a GRASS move"); +const u8 gText_AnElectricMove[] = _("an ELECTRIC move"); +const u8 gText_APsychicMove[] = _("a PSYCHIC move"); +const u8 gText_AnIceMove[] = _("an ICE move"); +const u8 gText_ADragonMove[] = _("a DRAGON move"); +const u8 gText_ADarkMove[] = _("a DARK move"); const u8 gText_TimeBoard[] = _("TIME BOARD"); const u8 gText_ClearTime[] = _("CLEAR TIME"); // Unused const u8 gText_XMinYZSec[] = _("{STR_VAR_1}MIN. {STR_VAR_2}.{STR_VAR_3}SEC."); -const u8 gUnknown_83FE9A9[] = _("1F"); -const u8 gUnknown_83FE9AC[] = _("2F"); -const u8 gUnknown_83FE9AF[] = _("3F"); -const u8 gUnknown_83FE9B2[] = _("4F"); -const u8 gUnknown_83FE9B5[] = _("5F"); -const u8 gUnknown_83FE9B8[] = _("6F"); -const u8 gUnknown_83FE9BB[] = _("7F"); -const u8 gUnknown_83FE9BE[] = _("8F"); +const u8 gText_Unused_1F[] = _("1F"); +const u8 gText_Unused_2F[] = _("2F"); +const u8 gText_Unused_3F[] = _("3F"); +const u8 gText_Unused_4F[] = _("4F"); +const u8 gText_Unused_5F[] = _("5F"); +const u8 gText_Unused_6F[] = _("6F"); +const u8 gText_Unused_7F[] = _("7F"); +const u8 gText_Unused_8F[] = _("8F"); -const u8 *const gTrainerTowerChallengeTypeTexts[NUM_TOWER_CHALLENGE_TYPES] = { +const u8 *const gTrainerTowerChallengeTypeTexts[NUM_TOWER_CHALLENGE_TYPES] = +{ gOtherText_Single, gOtherText_Double, gOtherText_Knockout, gOtherText_Mixed }; -const u8 gUnknown_83FE9D4[] = _("{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); // +static const u8 sText_Trainer1Fled[] = _("{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); -static const u8 *const sATypeMove_Table[] = { - gUnknown_83FE892, - gUnknown_83FE8A0, - gUnknown_83FE8B0, - gUnknown_83FE8BE, - gUnknown_83FE8CC, - gUnknown_83FE8DA, - gUnknown_83FE8E6, - gUnknown_83FE8F1, - gUnknown_83FE8FE, - gUnknown_83FE90B, - gUnknown_83FE916, - gUnknown_83FE922, - gUnknown_83FE92F, - gUnknown_83FE93C, - gUnknown_83FE94D, - gUnknown_83FE95C, - gUnknown_83FE968, - gUnknown_83FE976 +static const u8 *const sATypeMove_Table[NUMBER_OF_MON_TYPES] = +{ + [TYPE_NORMAL] = gText_ANormalMove, + [TYPE_FIGHTING] = gText_AFightingMove, + [TYPE_FLYING] = gText_AFlyingMove, + [TYPE_POISON] = gText_APoisonMove, + [TYPE_GROUND] = gText_AGroundMove, + [TYPE_ROCK] = gText_ARockMove, + [TYPE_BUG] = gText_ABugMove, + [TYPE_GHOST] = gText_AGhostMove, + [TYPE_STEEL] = gText_ASteelMove, + [TYPE_MYSTERY] = gText_AMysteryMove, + [TYPE_FIRE] = gText_AFireMove, + [TYPE_WATER] = gText_AWaterMove, + [TYPE_GRASS] = gText_AGrassMove, + [TYPE_ELECTRIC] = gText_AnElectricMove, + [TYPE_PSYCHIC] = gText_APsychicMove, + [TYPE_ICE] = gText_AnIceMove, + [TYPE_DRAGON] = gText_ADragonMove, + [TYPE_DARK] = gText_ADarkMove }; -static const u16 sGrammarMoveUsedTable[] = { +static const u16 sGrammarMoveUsedTable[] = +{ MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_GROWTH, @@ -1460,7 +1521,6 @@ static const u16 sGrammarMoveUsedTable[] = { MOVE_NONE }; -// code void BufferStringBattle(u16 stringId) { s32 i; @@ -1499,7 +1559,7 @@ void BufferStringBattle(u16 stringId) } else { - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1WantsToBattle; else stringPtr = sText_LinkTrainerWantsToBattle; @@ -1559,7 +1619,7 @@ void BufferStringBattle(u16 stringId) { if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) stringPtr = sText_Trainer1SentOutPkmn; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn; else stringPtr = sText_LinkTrainerSentOutPkmn; @@ -1611,7 +1671,7 @@ void BufferStringBattle(u16 stringId) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_LinkTrainerMultiSentOutPkmn; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn2; else stringPtr = sText_LinkTrainerSentOutPkmn2; @@ -1644,8 +1704,8 @@ void BufferStringBattle(u16 stringId) stringPtr = sText_GotAwaySafely; else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_TwoWildFled; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) - stringPtr = gUnknown_83FE9D4; + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) + stringPtr = sText_Trainer1Fled; else stringPtr = sText_WildFled; } @@ -1669,7 +1729,7 @@ void BufferStringBattle(u16 stringId) break; } } - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { switch (gBattleTextBuff1[0]) { @@ -1702,7 +1762,7 @@ void BufferStringBattle(u16 stringId) } break; default: // load a string from the table - if (stringId >= BATTLESTRINGS_COUNT + BATTLESTRINGS_TABLE_START) + if (stringId >= BATTLESTRINGS_COUNT) { gDisplayedStringBattle[0] = EOS; return; @@ -1770,7 +1830,7 @@ static const u8 *TryGetStatusString(u8 *src) { \ GetMonData(&gPlayerParty[monIndex], MON_DATA_NICKNAME, text); \ } \ - StringGetEnd10(text); \ + StringGet_Nickname(text); \ toCpy = text; u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) @@ -1833,49 +1893,49 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_PLAYER_MON1_NAME: // first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 1]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 2]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 3]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only battlerId 0/1 @@ -1892,7 +1952,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) &gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix @@ -1983,7 +2043,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER1_CLASS: // trainer class name if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()]; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) toCpy = gTrainerClassNames[GetUnionRoomTrainerClass()]; else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) toCpy = gTrainerClassNames[GetBattleTowerTrainerClassNameId()]; @@ -2002,7 +2062,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) text[i] = EOS; toCpy = text; } - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { toCpy = gLinkPlayers[multiplayerId ^ BIT_SIDE].name; } @@ -2129,29 +2189,24 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) // missing if (toCpy != NULL) check while (*toCpy != EOS) { - dst[dstId] = *toCpy; - dstId++; + dst[dstId++] = *toCpy; toCpy++; } if (*src == B_TXT_TRAINER1_LOSE_TEXT || *src == B_TXT_TRAINER1_WIN_TEXT || *src == B_TXT_TRAINER2_LOSE_TEXT || *src == B_TXT_TRAINER2_WIN_TEXT) { - dst[dstId] = EXT_CTRL_CODE_BEGIN; - dstId++; - dst[dstId] = 9; - dstId++; + dst[dstId++] = EXT_CTRL_CODE_BEGIN; + dst[dstId++] = EXT_CTRL_CODE_WAIT_BUTTON; } } else { - dst[dstId] = *src; - dstId++; + dst[dstId++] = *src; } src++; } - dst[dstId] = *src; - dstId++; + dst[dstId++] = *src; return dstId; } @@ -2211,7 +2266,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) GetMonData(&gEnemyParty[src[srcId + 2]], MON_DATA_NICKNAME, text); } - StringGetEnd10(text); + StringGet_Nickname(text); StringAppend(dst, text); srcId += 3; break; @@ -2228,7 +2283,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) GetMonData(&gPlayerParty[src[srcId + 2]], MON_DATA_NICKNAME, dst); else GetMonData(&gEnemyParty[src[srcId + 2]], MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); + StringGet_Nickname(dst); srcId += 3; break; case B_BUFF_NEGATIVE_FLAVOR: // flavor table @@ -2351,31 +2406,306 @@ static void ChooseTypeOfMoveUsedString(u8 *dst) } static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = { - {PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 1, 0x1, 0xf, 0x6}, - {PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 0, 0x1, 0xf, 0x6}, - {PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 2, 0, 0, 0, 0xc, 0xe, 0xb}, - {PIXEL_FILL(0xe), 0, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 1, 0x0a, 2, 0, 2, 0, 0xc, 0xe, 0xb}, - {PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 0, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0x0), 0, 0x20, 0, 0, 0, 0, 0x1, 0x0, 0x2}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 1, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0x0), 2, 0x00, 2, 0, 0, 0, 0x1, 0x0, 0x6}, - {PIXEL_FILL(0x0), 2, 0x00, 2, 0, 0, 0, 0x1, 0x0, 0x6}, - {PIXEL_FILL(0x0), 2, 0x00, 2, 0, 0, 0, 0x1, 0x0, 0x6}, - {PIXEL_FILL(0x1), 4, 0x00, 1, 0, 1, 1, 0x2, 0x1, 0x3} + [B_WIN_MSG] = { + .fillValue = PIXEL_FILL(0xf), + .fontId = FONT_2, + .x = 2, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 1, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + [B_WIN_ACTION_PROMPT] = { + .fillValue = PIXEL_FILL(0xf), + .fontId = FONT_2, + .x = 2, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + [B_WIN_ACTION_MENU] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_1] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_2] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_3] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_4] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_PP] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + [B_WIN_MOVE_TYPE] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_PP_REMAINING] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 10, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + [B_WIN_DUMMY] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_SWITCH_PROMPT] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_LEVEL_UP_BOX] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 0, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_LEVEL_UP_BANNER] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_0, + .x = 0x20, + .y = 0, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 2, + }, + [B_WIN_YESNO] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 1, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_PLAYER] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_OPPONENT] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_1] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_2] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_3] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_4] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_OUTCOME_DRAW] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + [B_WIN_VS_OUTCOME_LEFT] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + [B_WIN_VS_OUTCOME_RIGHT] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + [B_WIN_OAK_OLD_MAN] = { + .fillValue = PIXEL_FILL(0x1), + .fontId = FONT_4, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 1, + .speed = 1, + .fgColor = 2, + .bgColor = 1, + .shadowColor = 3, + } }; const u8 gUnknown_83FEC90[] = {0x04, 0x05, 0x02, 0x02}; @@ -2403,11 +2733,18 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) { } switch (windowId) { - case 15 ... 20: + case B_WIN_VS_PLAYER: + case B_WIN_VS_OPPONENT: + case B_WIN_VS_MULTI_PLAYER_1: + case B_WIN_VS_MULTI_PLAYER_2: + case B_WIN_VS_MULTI_PLAYER_3: + case B_WIN_VS_MULTI_PLAYER_4: x = (48 - GetStringWidth(sTextOnWindowsInfo_Normal[windowId].fontId, text, sTextOnWindowsInfo_Normal[windowId].letterSpacing)) / 2; break; - case 21 ... 23: + case B_WIN_VS_OUTCOME_DRAW: + case B_WIN_VS_OUTCOME_LEFT: + case B_WIN_VS_OUTCOME_RIGHT: x = (64 - GetStringWidth(sTextOnWindowsInfo_Normal[windowId].fontId, text, sTextOnWindowsInfo_Normal[windowId].letterSpacing)) / 2; break; @@ -2429,17 +2766,17 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) { printerTemplate.fgColor = sTextOnWindowsInfo_Normal[windowId].fgColor; printerTemplate.bgColor = sTextOnWindowsInfo_Normal[windowId].bgColor; printerTemplate.shadowColor = sTextOnWindowsInfo_Normal[windowId].shadowColor; - if (windowId == 24) + if (windowId == B_WIN_OAK_OLD_MAN) gTextFlags.useAlternateDownArrow = FALSE; else gTextFlags.useAlternateDownArrow = TRUE; - if ((gBattleTypeFlags & BATTLE_TYPE_LINK) || ((gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) && windowId != 24)) + if ((gBattleTypeFlags & BATTLE_TYPE_LINK) || ((gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) && windowId != B_WIN_OAK_OLD_MAN)) gTextFlags.autoScroll = TRUE; else gTextFlags.autoScroll = FALSE; - if (windowId == 0 || windowId == 24) + if (windowId == B_WIN_MSG || windowId == B_WIN_OAK_OLD_MAN) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) speed = 1; @@ -2471,7 +2808,7 @@ bool8 BattleStringShouldBeColored(u16 stringId) void SetPpNumbersPaletteInMoveSelection(void) { struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]); - const u16 *palPtr = gUnknown_8D2FBB4; + const u16 *palPtr = gPPTextPalette; u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 92dc9ecf4..272c900bb 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6125,7 +6125,7 @@ static void Cmd_various(void) gHitMarker &= ~HITMARKER_PLAYER_FAINTED; } break; - case VARIOUS_CASE_8: + case VARIOUS_GET_BATTLERS_FOR_RECALL: i = 0; // redundant gBattleCommunication[MULTISTRING_CHOOSER] = 0; gActiveBattler = 1; diff --git a/src/battle_tower.c b/src/battle_tower.c index 5c6672f6e..134e82a11 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -717,21 +717,21 @@ static u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 count) if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { if (count == 0) - StringAppend(gStringVar1, gUnknown_83FE859); + StringAppend(gStringVar1, gText_BattleTowerBan_Space); count++; StringAppend(gStringVar1, gSpeciesNames[species]); switch (count) { case 2: - StringAppend(gStringVar1, gUnknown_83FE85E); + StringAppend(gStringVar1, gText_BattleTowerBan_Newline2); break; case 5: case 8: case 11: - StringAppend(gStringVar1, gUnknown_83FE85C); + StringAppend(gStringVar1, gText_BattleTowerBan_Newline1); break; default: - StringAppend(gStringVar1, gUnknown_83FE859); + StringAppend(gStringVar1, gText_BattleTowerBan_Space); break; } } @@ -815,9 +815,9 @@ void CheckPartyBattleTowerBanlist(void) i = StringLength(gStringVar1); gStringVar1[i - 1] = EOS; if (counter < 3) - StringAppend(gStringVar1, gUnknown_83FE860); + StringAppend(gStringVar1, gText_BattleTowerBan_Is1); else - StringAppend(gStringVar1, gUnknown_83FE864); + StringAppend(gStringVar1, gText_BattleTowerBan_Is2); } else { @@ -1119,7 +1119,7 @@ static void SetPlayerBattleTowerRecord(void) playerRecord->trainerClass = trainerClass; CopyTrainerId(playerRecord->trainerId, gSaveBlock2Ptr->playerTrainerId); - StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(playerRecord->name, gSaveBlock2Ptr->playerName); playerRecord->winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType); @@ -1310,7 +1310,7 @@ static void Debug_FillEReaderTrainerWithPlayerData(void) } CopyTrainerId(ereaderTrainer->trainerId, gSaveBlock2Ptr->playerTrainerId); - StringCopy7(ereaderTrainer->name, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(ereaderTrainer->name, gSaveBlock2Ptr->playerName); ereaderTrainer->winStreak = 1; diff --git a/src/field_poison.c b/src/field_poison.c index 1e2a30c0c..9c8b1f4b9 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -36,7 +36,7 @@ static void FaintFromFieldPoison(u8 partyIdx) AdjustFriendship(pokemon, FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE); SetMonData(pokemon, MON_DATA_STATUS, &status); GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } static bool32 MonFaintedFromPoison(u8 partyIdx) diff --git a/src/field_specials.c b/src/field_specials.c index d306236cb..92c47c2eb 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1663,7 +1663,7 @@ static void ChangePokemonNickname_CB(void) void BufferMonNickname(void) { GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } void IsMonOTIDNotPlayers(void) diff --git a/src/graphics.c b/src/graphics.c index b7694f158..ce702daf4 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -950,7 +950,7 @@ const u32 gBattleAnimSpritePal_Meteor[] = INCBIN_U32("graphics/battle_anims/spri const u32 gBattleAnimSpriteGfx_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.4bpp.lz"); const u32 gBattleAnimSpritePal_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.gbapal.lz"); -const u16 gUnknown_8D2FBB4[] = INCBIN_U16("graphics/interface/unk_8D2FBB4.gbapal"); +const u16 gPPTextPalette[] = INCBIN_U16("graphics/interface/text_pp.gbapal"); #include "data/graphics/pokemon.h" #include "data/graphics/trainers.h" diff --git a/src/party_menu.c b/src/party_menu.c index ee2800801..faeca7ef9 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -895,7 +895,7 @@ static void DisplayPartyPokemonDataForMultiBattle(u8 slot) { menuBox->infoRects->blitFunc(menuBox->windowId, 0, 0, 0, 0, FALSE); StringCopy(gStringVar1, gMultiPartnerParty[actualSlot].nickname); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); if (StringLength(gStringVar1) <= 5) ConvertInternationalString(gStringVar1, 1); DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, menuBox->infoRects->dimensions); @@ -1530,7 +1530,7 @@ static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir) u8 *GetMonNickname(struct Pokemon *mon, u8 *dest) { GetMonData(mon, MON_DATA_NICKNAME, dest); - return StringGetEnd10(dest); + return StringGet_Nickname(dest); } #define tKeepOpen data[0] diff --git a/src/pokemon.c b/src/pokemon.c index e2bfb20cf..8955cfe4c 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6082,7 +6082,7 @@ bool8 CheckBattleTypeGhost(struct Pokemon *mon, u8 battlerId) if (gBattleTypeFlags & BATTLE_TYPE_GHOST && GetBattlerSide(battlerId) != B_SIDE_PLAYER) { GetMonData(mon, MON_DATA_NICKNAME, buffer); - StringGetEnd10(buffer); + StringGet_Nickname(buffer); if (!StringCompare(buffer, gText_Ghost)) return TRUE; } diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c index f01a1551b..8074b57c4 100644 --- a/src/pokemon_storage_system_5.c +++ b/src/pokemon_storage_system_5.c @@ -1026,7 +1026,7 @@ static void SetCursorMonData(void *pokemon, u8 mode) gPSSData->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); GetMonData(mon, MON_DATA_NICKNAME, gPSSData->displayMonName); - StringGetEnd10(gPSSData->displayMonName); + StringGet_Nickname(gPSSData->displayMonName); gPSSData->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); gPSSData->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); gPSSData->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); @@ -1051,7 +1051,7 @@ static void SetCursorMonData(void *pokemon, u8 mode) GetBoxMonData(boxMon, MON_DATA_NICKNAME, gPSSData->displayMonName); - StringGetEnd10(gPSSData->displayMonName); + StringGet_Nickname(gPSSData->displayMonName); gPSSData->displayMonLevel = GetLevelFromBoxMonExp(boxMon); gPSSData->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); gPSSData->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index fa3731083..bfe9fd267 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2110,7 +2110,7 @@ static void BufferMonInfo(void) GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr); StringCopyN_Multibyte(sMonSummaryScreen->summary.nicknameStrBuf, tempStr, POKEMON_NAME_LENGTH); - StringGetEnd10(sMonSummaryScreen->summary.nicknameStrBuf); + StringGet_Nickname(sMonSummaryScreen->summary.nicknameStrBuf); gender = GetMonGender(&sMonSummaryScreen->currentMon); dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); diff --git a/src/quest_log_events.c b/src/quest_log_events.c index e805b5f2e..6dc645b93 100644 --- a/src/quest_log_events.c +++ b/src/quest_log_events.c @@ -1149,9 +1149,9 @@ static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0) memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1); memset(gStringVar2, EOS, PLAYER_NAME_LENGTH + 1); memset(gStringVar3, EOS, PLAYER_NAME_LENGTH + 1); - StringCopy7(gStringVar1, (const u8 *)a0 + 5); - StringCopy7(gStringVar2, (const u8 *)a0 + 12); - StringCopy7(gStringVar3, (const u8 *)a0 + 19); + StringCopy_PlayerName(gStringVar1, (const u8 *)a0 + 5); + StringCopy_PlayerName(gStringVar2, (const u8 *)a0 + 12); + StringCopy_PlayerName(gStringVar3, (const u8 *)a0 + 19); BufferLinkPartnersName(gStringVar1); BufferLinkPartnersName(gStringVar2); BufferLinkPartnersName(gStringVar3); diff --git a/src/scrcmd.c b/src/scrcmd.c index 823593623..3640aba6a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1616,7 +1616,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext * ctx) u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); - StringGetEnd10(sScriptStringVars[stringVarIndex]); + StringGet_Nickname(sScriptStringVars[stringVarIndex]); return FALSE; } diff --git a/src/string_util.c b/src/string_util.c index ffb51b354..4744e231c 100644 --- a/src/string_util.c +++ b/src/string_util.c @@ -54,10 +54,10 @@ u8 *StringCopy_Nickname(u8 *dest, const u8 *src) return &dest[i]; } -u8 *StringGetEnd10(u8 *str) +u8 *StringGet_Nickname(u8 *str) { u8 i; - u32 limit = 10; + u32 limit = POKEMON_NAME_LENGTH; for (i = 0; i < limit; i++) if (str[i] == EOS) @@ -67,10 +67,10 @@ u8 *StringGetEnd10(u8 *str) return &str[i]; } -u8 *StringCopy7(u8 *dest, const u8 *src) +u8 *StringCopy_PlayerName(u8 *dest, const u8 *src) { s32 i; - s32 limit = 7; + s32 limit = PLAYER_NAME_LENGTH; for (i = 0; i < limit; i++) { diff --git a/src/union_room.c b/src/union_room.c index cadc00181..70973e4aa 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -645,7 +645,7 @@ static const u8 sUnref_84570D1[] = _("{DYNAMIC 00}·{DYNAMIC 01}"); // These are functions in Emerald but inlined in FireRed #define IntlConvPartnerUname7(dest, arg1) ({ \ - StringCopy7(dest, (arg1).gname_uname.uname); \ + StringCopy_PlayerName(dest, (arg1).gname_uname.uname); \ ConvertInternationalString(dest, (arg1).gname_uname.gname.unk_00.language); \ }) diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 56676ab7b..907c9ef8d 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -58,7 +58,7 @@ static void SetUpPartiesAndStartBattle(void) } IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES); CalculatePlayerPartyCount(); - gTrainerBattleOpponent_A = TRAINER_OPPONENT_C00; + gTrainerBattleOpponent_A = TRAINER_UNION_ROOM; SetMainCallback2(CB2_InitBattle); } From 1040b2a66a73f0a9eb424b2269ae355cfb3a377b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 12 Aug 2022 15:42:26 -0400 Subject: [PATCH 006/105] Restore NUM_LOAF_STRINGS --- include/battle_string_ids.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h index 2a056e516..d05863c3c 100644 --- a/include/battle_string_ids.h +++ b/include/battle_string_ids.h @@ -545,6 +545,7 @@ #define B_MSG_WONT_OBEY 1 #define B_MSG_TURNED_AWAY 2 #define B_MSG_PRETEND_NOT_NOTICE 3 +#define NUM_LOAF_STRINGS 4 // For randomly selecting a disobey string // gSafariGetNearStringIds #define B_MSG_CREPT_CLOSER 0 From 702d43e74254f25b84f4e40963fce70911db0af2 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 14 Aug 2022 17:52:12 -0400 Subject: [PATCH 007/105] Rename battle anim files --- ...mokescreen.s => battle_anim_smokescreen.s} | 0 ld_script.txt | 60 +++++++++---------- src/{bug.c => battle_anim_bug.c} | 0 src/{dark.c => battle_anim_dark.c} | 0 src/{dragon.c => battle_anim_dragon.c} | 0 src/{electric.c => battle_anim_electric.c} | 0 src/{fighting.c => battle_anim_fight.c} | 0 src/{fire.c => battle_anim_fire.c} | 0 src/{ghost.c => battle_anim_ghost.c} | 0 src/{ground.c => battle_anim_ground.c} | 0 src/{ice.c => battle_anim_ice.c} | 0 src/{normal.c => battle_anim_normal.c} | 0 src/{poison.c => battle_anim_poison.c} | 0 src/{psychic.c => battle_anim_psychic.c} | 0 src/{rock.c => battle_anim_rock.c} | 0 ...mokescreen.c => battle_anim_smokescreen.c} | 0 src/{water.c => battle_anim_water.c} | 0 sym_ewram.txt | 2 +- 18 files changed, 31 insertions(+), 31 deletions(-) rename data/{smokescreen.s => battle_anim_smokescreen.s} (100%) rename src/{bug.c => battle_anim_bug.c} (100%) rename src/{dark.c => battle_anim_dark.c} (100%) rename src/{dragon.c => battle_anim_dragon.c} (100%) rename src/{electric.c => battle_anim_electric.c} (100%) rename src/{fighting.c => battle_anim_fight.c} (100%) rename src/{fire.c => battle_anim_fire.c} (100%) rename src/{ghost.c => battle_anim_ghost.c} (100%) rename src/{ground.c => battle_anim_ground.c} (100%) rename src/{ice.c => battle_anim_ice.c} (100%) rename src/{normal.c => battle_anim_normal.c} (100%) rename src/{poison.c => battle_anim_poison.c} (100%) rename src/{psychic.c => battle_anim_psychic.c} (100%) rename src/{rock.c => battle_anim_rock.c} (100%) rename src/{smokescreen.c => battle_anim_smokescreen.c} (100%) rename src/{water.c => battle_anim_water.c} (100%) diff --git a/data/smokescreen.s b/data/battle_anim_smokescreen.s similarity index 100% rename from data/smokescreen.s rename to data/battle_anim_smokescreen.s diff --git a/ld_script.txt b/ld_script.txt index 09e230ed6..7006d3094 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -81,7 +81,7 @@ SECTIONS { src/blend_palette.o(.text); src/daycare.o(.text); src/battle_interface.o(.text); - src/smokescreen.o(.text); + src/battle_anim_smokescreen.o(.text); src/pokeball.o(.text); src/load_save.o(.text); src/trade.o(.text); @@ -162,21 +162,21 @@ SECTIONS { src/item_use.o(.text); src/battle_anim_effects_1.o(.text); src/battle_anim_effects_2.o(.text); - src/water.o(.text); - src/fire.o(.text); - src/electric.o(.text); - src/ice.o(.text); - src/fighting.o(.text); - src/poison.o(.text); + src/battle_anim_water.o(.text); + src/battle_anim_fire.o(.text); + src/battle_anim_electric.o(.text); + src/battle_anim_ice.o(.text); + src/battle_anim_fight.o(.text); + src/battle_anim_poison.o(.text); src/flying.o(.text); - src/psychic.o(.text); - src/bug.o(.text); - src/rock.o(.text); - src/ghost.o(.text); - src/dragon.o(.text); - src/dark.o(.text); - src/ground.o(.text); - src/normal.o(.text); + src/battle_anim_psychic.o(.text); + src/battle_anim_bug.o(.text); + src/battle_anim_rock.o(.text); + src/battle_anim_ghost.o(.text); + src/battle_anim_dragon.o(.text); + src/battle_anim_dark.o(.text); + src/battle_anim_ground.o(.text); + src/battle_anim_normal.o(.text); src/battle_anim_utility_funcs.o(.text); src/battle_intro.o(.text); src/bike.o(.text); @@ -409,7 +409,7 @@ SECTIONS { src/battle_util.o(.rodata); src/battle_script_commands.o(.rodata); src/battle_controller_player.o(.rodata); - data/smokescreen.o(.rodata); + data/battle_anim_smokescreen.o(.rodata); src/battle_controller_opponent.o(.rodata); src/battle_controller_link_opponent.o(.rodata); src/pokemon.o(.rodata); @@ -474,21 +474,21 @@ SECTIONS { src/item_use.o(.rodata); src/battle_anim_effects_1.o(.rodata); src/battle_anim_effects_2.o(.rodata); - src/water.o(.rodata); - src/fire.o(.rodata); - src/electric.o(.rodata); - src/ice.o(.rodata); - src/fighting.o(.rodata); - src/poison.o(.rodata); + src/battle_anim_water.o(.rodata); + src/battle_anim_fire.o(.rodata); + src/battle_anim_electric.o(.rodata); + src/battle_anim_ice.o(.rodata); + src/battle_anim_fight.o(.rodata); + src/battle_anim_poison.o(.rodata); src/flying.o(.rodata); - src/psychic.o(.rodata); - src/bug.o(.rodata); - src/rock.o(.rodata); - src/ghost.o(.rodata); - src/dragon.o(.rodata); - src/dark.o(.rodata); - src/ground.o(.rodata); - src/normal.o(.rodata); + src/battle_anim_psychic.o(.rodata); + src/battle_anim_bug.o(.rodata); + src/battle_anim_rock.o(.rodata); + src/battle_anim_ghost.o(.rodata); + src/battle_anim_dragon.o(.rodata); + src/battle_anim_dark.o(.rodata); + src/battle_anim_ground.o(.rodata); + src/battle_anim_normal.o(.rodata); src/battle_anim_utility_funcs.o(.rodata); src/battle_intro.o(.rodata); src/bike.o(.rodata); diff --git a/src/bug.c b/src/battle_anim_bug.c similarity index 100% rename from src/bug.c rename to src/battle_anim_bug.c diff --git a/src/dark.c b/src/battle_anim_dark.c similarity index 100% rename from src/dark.c rename to src/battle_anim_dark.c diff --git a/src/dragon.c b/src/battle_anim_dragon.c similarity index 100% rename from src/dragon.c rename to src/battle_anim_dragon.c diff --git a/src/electric.c b/src/battle_anim_electric.c similarity index 100% rename from src/electric.c rename to src/battle_anim_electric.c diff --git a/src/fighting.c b/src/battle_anim_fight.c similarity index 100% rename from src/fighting.c rename to src/battle_anim_fight.c diff --git a/src/fire.c b/src/battle_anim_fire.c similarity index 100% rename from src/fire.c rename to src/battle_anim_fire.c diff --git a/src/ghost.c b/src/battle_anim_ghost.c similarity index 100% rename from src/ghost.c rename to src/battle_anim_ghost.c diff --git a/src/ground.c b/src/battle_anim_ground.c similarity index 100% rename from src/ground.c rename to src/battle_anim_ground.c diff --git a/src/ice.c b/src/battle_anim_ice.c similarity index 100% rename from src/ice.c rename to src/battle_anim_ice.c diff --git a/src/normal.c b/src/battle_anim_normal.c similarity index 100% rename from src/normal.c rename to src/battle_anim_normal.c diff --git a/src/poison.c b/src/battle_anim_poison.c similarity index 100% rename from src/poison.c rename to src/battle_anim_poison.c diff --git a/src/psychic.c b/src/battle_anim_psychic.c similarity index 100% rename from src/psychic.c rename to src/battle_anim_psychic.c diff --git a/src/rock.c b/src/battle_anim_rock.c similarity index 100% rename from src/rock.c rename to src/battle_anim_rock.c diff --git a/src/smokescreen.c b/src/battle_anim_smokescreen.c similarity index 100% rename from src/smokescreen.c rename to src/battle_anim_smokescreen.c diff --git a/src/water.c b/src/battle_anim_water.c similarity index 100% rename from src/water.c rename to src/battle_anim_water.c diff --git a/sym_ewram.txt b/sym_ewram.txt index 719497748..a3766873e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -55,7 +55,7 @@ .include "src/safari_zone.o" .include "src/item_use.o" .include "src/battle_anim_effects_1.o" - .include "src/dragon.o" + .include "src/battle_anim_dragon.o" .include "src/battle_anim_utility_funcs.o" .include "src/battle_intro.o" .include "src/easy_chat.o" From e4aec1b6d19c241130061b4ead1296b71aeef447 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 14 Aug 2022 18:21:03 -0400 Subject: [PATCH 008/105] Sync battle anim - bug --- src/battle_anim_bug.c | 68 +++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index 32d2f3b3f..74e7ae5d5 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -6,16 +6,16 @@ static void AnimMegahornHorn(struct Sprite *sprite); static void AnimLeechLifeNeedle(struct Sprite *sprite); static void AnimTranslateWebThread(struct Sprite *sprite); +static void AnimTranslateWebThread_Step(struct Sprite *sprite); static void AnimStringWrap(struct Sprite *sprite); +static void AnimStringWrap_Step(struct Sprite *sprite); static void AnimSpiderWeb(struct Sprite *sprite); +static void AnimSpiderWeb_Step(struct Sprite *sprite); +static void AnimSpiderWeb_End(struct Sprite *sprite); static void AnimTranslateStinger(struct Sprite *sprite); static void AnimMissileArc(struct Sprite *sprite); +static void AnimMissileArc_Step(struct Sprite *sprite); static void AnimTailGlowOrb(struct Sprite *sprite); -static void sub_80B41C0(struct Sprite *sprite); -static void sub_80B4274(struct Sprite *sprite); -static void sub_80B42E8(struct Sprite *sprite); -static void sub_80B4344(struct Sprite *sprite); -static void AnimMissileArcStep(struct Sprite *sprite); static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = { @@ -210,11 +210,11 @@ static void AnimMegahornHorn(struct Sprite *sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -231,11 +231,11 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -257,8 +257,8 @@ static void AnimTranslateWebThread(struct Sprite *sprite) sprite->data[3] = sprite->y; if (!gBattleAnimArgs[4]) { - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } else { @@ -266,10 +266,10 @@ static void AnimTranslateWebThread(struct Sprite *sprite) } BattleAnim_InitLinearTranslationWithDuration(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = sub_80B41C0; + sprite->callback = AnimTranslateWebThread_Step; } -static void sub_80B41C0(struct Sprite *sprite) +static void AnimTranslateWebThread_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -290,10 +290,10 @@ static void AnimStringWrap(struct Sprite *sprite) sprite->y += gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; - sprite->callback = sub_80B4274; + sprite->callback = AnimStringWrap_Step; } -static void sub_80B4274(struct Sprite *sprite) +static void AnimStringWrap_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -311,10 +311,10 @@ static void AnimSpiderWeb(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); sprite->data[0] = 16; - sprite->callback = sub_80B42E8; + sprite->callback = AnimSpiderWeb_Step; } -static void sub_80B42E8(struct Sprite *sprite) +static void AnimSpiderWeb_Step(struct Sprite *sprite) { if (sprite->data[2] < 20) { @@ -328,12 +328,12 @@ static void sub_80B42E8(struct Sprite *sprite) if (sprite->data[0] == 0) { sprite->invisible = TRUE; - sprite->callback = sub_80B4344; + sprite->callback = AnimSpiderWeb_End; } } } -static void sub_80B4344(struct Sprite *sprite) +static void AnimSpiderWeb_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -377,8 +377,8 @@ static void AnimTranslateStinger(struct Sprite *sprite) } } InitSpritePosToAnimAttacker(sprite, 1); - lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y); rot += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); @@ -402,15 +402,15 @@ static void AnimMissileArc(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); - sprite->callback = AnimMissileArcStep; + sprite->callback = AnimMissileArc_Step; sprite->invisible = TRUE; } -static void AnimMissileArcStep(struct Sprite *sprite) +static void AnimMissileArc_Step(struct Sprite *sprite) { sprite->invisible = FALSE; @@ -447,15 +447,15 @@ static void AnimMissileArcStep(struct Sprite *sprite) static void AnimTailGlowOrb(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 18; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 18; } StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; From 92a193aa7151a795ab16a85ac9f0b8d0be3bf930 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 14 Aug 2022 18:30:55 -0400 Subject: [PATCH 009/105] Sync battle anim - dark --- data/battle_anim_scripts.s | 2 +- include/battle_anim.h | 2 +- include/sprite.h | 1 + src/battle_anim_dark.c | 111 +++++++++++++++++++------------------ 4 files changed, 60 insertions(+), 56 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 936e58a35..85d7201f1 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -3600,7 +3600,7 @@ Move_MEMENTO:: delay 48 playsewithpan SE_M_PSYBEAM2, 192 waitforvisualfinish - createvisualtask sub_80B8664, 2, + createvisualtask AnimTask_MementoHandleBg, 2, delay 12 setalpha 0, 16 delay 1 diff --git a/include/battle_anim.h b/include/battle_anim.h index fc40e1373..80963c10d 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -530,7 +530,7 @@ void AnimTask_InitAttackerFadeFromInvisible(u8 taskId); void AnimTask_MoveAttackerMementoShadow(u8 taskId); void AnimTask_MoveTargetMementoShadow(u8 taskId); void AnimTask_InitMementoShadow(u8 taskId); -void sub_80B8664(u8 taskId); +void AnimTask_MementoHandleBg(u8 taskId); void AnimTask_MetallicShine(u8 taskId); void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId); void GetIsDoomDesireHitTurn(u8 taskId); diff --git a/include/sprite.h b/include/sprite.h index 9fa6280dc..eed582775 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -4,6 +4,7 @@ #include "global.h" #define MAX_SPRITES 64 +#define SPRITE_NONE 0xFF #define TAG_NONE 0xFFFF struct SpriteSheet diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index 9b12555d9..1923a9dea 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -6,23 +6,24 @@ #include "trig.h" #include "util.h" -static void sub_80B7ACC(struct Sprite *sprite); +static void AnimUnusedBagSteal(struct Sprite *sprite); +static void AnimUnusedBagSteal_Step(struct Sprite *sprite); static void AnimBite(struct Sprite *sprite); static void AnimTearDrop(struct Sprite *sprite); static void AnimClawSlash(struct Sprite *sprite); static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId); static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId); -static void sub_80B7B48(struct Sprite *sprite); -static void sub_80B7C10(struct Sprite *sprite); -static void sub_80B7C50(struct Sprite *sprite); -static void sub_80B7D88(struct Sprite *sprite); -static void sub_80B856C(u8 priority); -static void sub_80B7F58(u8 taskId); -static void sub_80B843C(struct Task *task); -static void sub_80B82C0(u8 taskId); -static void sub_80B8920(u8 taskId); +static void AnimBite_Step1(struct Sprite *sprite); +static void AnimBite_Step2(struct Sprite *sprite); +static void AnimTearDrop_Step(struct Sprite *sprite); +static void SetAllBattlersSpritePriority(u8 priority); +static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId); +static void DoMementoShadowEffect(struct Task *task); +static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId); +static void AnimTask_MetallicShine_Step(u8 taskId); -const struct SpriteTemplate gUnknown_83E7878 = +// Unused +const struct SpriteTemplate sUnusedBagStealSpriteTemplate = { .tileTag = ANIM_TAG_TIED_BAG, .paletteTag = ANIM_TAG_TIED_BAG, @@ -30,7 +31,7 @@ const struct SpriteTemplate gUnknown_83E7878 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B7ACC, + .callback = AnimUnusedBagSteal, }; static const union AffineAnimCmd sAffineAnim_Bite_0[] = @@ -265,7 +266,7 @@ void AnimTask_InitAttackerFadeFromInvisible(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B7ACC(struct Sprite *sprite) +static void AnimUnusedBagSteal(struct Sprite *sprite) { sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -276,11 +277,11 @@ static void sub_80B7ACC(struct Sprite *sprite) sprite->data[3] = -sprite->data[1]; sprite->data[4] = -sprite->data[2]; sprite->data[6] = 0xFFD8; - sprite->callback = sub_80B7B48; + sprite->callback = AnimUnusedBagSteal_Step; sprite->callback(sprite); } -static void sub_80B7B48(struct Sprite *sprite) +static void AnimUnusedBagSteal_Step(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -306,6 +307,7 @@ static void sub_80B7B48(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Move sprite inward for Bite/Crunch and Clamp static void AnimBite(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; @@ -314,20 +316,20 @@ static void AnimBite(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[4]; sprite->data[2] = gBattleAnimArgs[5]; - sprite->callback = sub_80B7C10; + sprite->callback = AnimBite_Step1; } -static void sub_80B7C10(struct Sprite *sprite) +static void AnimBite_Step1(struct Sprite *sprite) { sprite->data[4] += sprite->data[0]; sprite->data[5] += sprite->data[1]; sprite->x2 = sprite->data[4] >> 8; sprite->y2 = sprite->data[5] >> 8; if (++sprite->data[3] == sprite->data[2]) - sprite->callback = sub_80B7C50; + sprite->callback = AnimBite_Step2; } -static void sub_80B7C50(struct Sprite *sprite) +static void AnimBite_Step2(struct Sprite *sprite) { sprite->data[4] -= sprite->data[0]; sprite->data[5] -= sprite->data[1]; @@ -337,12 +339,13 @@ static void sub_80B7C50(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } +// Launches a tear drop away from the battler. Used by Fake Tears static void AnimTearDrop(struct Sprite *sprite) { u8 battler; s8 xOffset; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; @@ -376,10 +379,10 @@ static void AnimTearDrop(struct Sprite *sprite) sprite->data[4] = sprite->y + 12; sprite->data[5] = -12; InitAnimArcTranslation(sprite); - sprite->callback = sub_80B7D88; + sprite->callback = AnimTearDrop_Step; } -static void sub_80B7D88(struct Sprite *sprite) +static void AnimTearDrop_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroySpriteAndMatrix(sprite); @@ -416,7 +419,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) scanlineParams.dmaDest = ®_BG1VOFS; var0 = WINOUT_WIN01_BG1; if (!IsContest()) - gBattle_BG2_X += 240; + gBattle_BG2_X += DISPLAY_WIDTH; } else { @@ -426,7 +429,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) scanlineParams.dmaDest = ®_BG2VOFS; var0 = WINOUT_WIN01_BG2; if (!IsContest()) - gBattle_BG1_X += 240; + gBattle_BG1_X += DISPLAY_WIDTH; } scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; scanlineParams.initState = 1; @@ -436,7 +439,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; - sub_80B856C(3); + SetAllBattlersSpritePriority(3); for (i = 0; i < 112; ++i) { gScanlineEffectRegBuffers[0][i] = task->data[10]; @@ -446,12 +449,12 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | (var0 ^ (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR))); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; - gBattle_WIN0V = 160; + gBattle_WIN0V = DISPLAY_HEIGHT; - task->func = sub_80B7F58; + task->func = AnimTask_MoveAttackerMementoShadow_Step; } -static void sub_80B7F58(u8 taskId) +static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -477,13 +480,13 @@ static void sub_80B7F58(u8 taskId) break; case 1: task->data[4] -= 8; - sub_80B843C(task); + DoMementoShadowEffect(task); if (task->data[4] < task->data[8]) ++task->data[0]; break; case 2: task->data[4] -= 8; - sub_80B843C(task); + DoMementoShadowEffect(task); task->data[14] += 4; task->data[15] -= 4; if (task->data[14] >= task->data[15]) @@ -527,12 +530,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) if (task->data[3] == 1) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); - gBattle_BG2_X += 240; + gBattle_BG2_X += DISPLAY_WIDTH; } else { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - gBattle_BG1_X += 240; + gBattle_BG1_X += DISPLAY_WIDTH; } ++task->data[0]; } @@ -549,7 +552,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) task->data[10] = gBattle_BG2_Y; FillPalette(RGB_BLACK, 9 * 16, 32); } - sub_80B856C(3); + SetAllBattlersSpritePriority(3); ++task->data[0]; break; case 2: @@ -592,17 +595,17 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; - gBattle_WIN0V = 160; + gBattle_WIN0V = DISPLAY_HEIGHT; task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 8)); - task->func = sub_80B82C0; + task->func = AnimTask_MoveTargetMementoShadow_Step; break; } } -static void sub_80B82C0(u8 taskId) +static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId) { u8 pos; u16 i; @@ -614,7 +617,7 @@ static void sub_80B82C0(u8 taskId) task->data[5] += 8; if (task->data[5] >= task->data[7]) task->data[5] = task->data[7]; - sub_80B843C(task); + DoMementoShadowEffect(task); if (task->data[5] == task->data[7]) ++task->data[0]; break; @@ -632,7 +635,7 @@ static void sub_80B82C0(u8 taskId) task->data[4] += 8; if (task->data[4] >= task->data[6]) task->data[4] = task->data[6]; - sub_80B843C(task); + DoMementoShadowEffect(task); if (task->data[4] == task->data[6] && task->data[1]) { task->data[1] = 0; @@ -672,7 +675,7 @@ static void sub_80B82C0(u8 taskId) } } -static void sub_80B843C(struct Task *task) +static void DoMementoShadowEffect(struct Task *task) { s32 var0, var1, var4; s16 var2, i; @@ -711,15 +714,14 @@ static void sub_80B843C(struct Task *task) } } -static void sub_80B856C(u8 priority) +static void SetAllBattlersSpritePriority(u8 priority) { u16 i; for (i = 0; i < MAX_BATTLERS_COUNT; ++i) { u8 spriteId = GetAnimBattlerSpriteId(i); - - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].oam.priority = priority; } } @@ -738,7 +740,7 @@ void AnimTask_InitMementoShadow(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B8664(u8 taskId) +void AnimTask_MementoHandleBg(u8 taskId) { bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE; @@ -748,6 +750,7 @@ void sub_80B8664(u8 taskId) DestroyAnimVisualTask(taskId); } +// Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw static void AnimClawSlash(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; @@ -816,10 +819,10 @@ void AnimTask_MetallicShine(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[1]; gTasks[taskId].data[3] = gBattleAnimArgs[2]; gTasks[taskId].data[6] = priorityChanged; - gTasks[taskId].func = sub_80B8920; + gTasks[taskId].func = AnimTask_MetallicShine_Step; } -static void sub_80B8920(u8 taskId) +static void AnimTask_MetallicShine_Step(u8 taskId) { struct BattleAnimBgData animBg; u16 paletteNum; @@ -871,10 +874,10 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) switch (gBattleAnimArgs[0]) { - case 0: - case 1: - case 2: - case 3: + case ANIM_ATTACKER: + case ANIM_TARGET: + case ANIM_ATK_PARTNER: + case ANIM_DEF_PARTNER: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; case 4: @@ -894,7 +897,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) calcSpriteId = TRUE; break; default: - spriteId = 0xFF; + spriteId = SPRITE_NONE; break; } if (calcSpriteId) @@ -903,9 +906,9 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) if (IsBattlerSpriteVisible(battler)) spriteId = gBattlerSpriteIds[battler]; else - spriteId = 0xFF; + spriteId = SPRITE_NONE; } - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); DestroyAnimVisualTask(taskId); } @@ -913,8 +916,8 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) void GetIsDoomDesireHitTurn(u8 taskId) { if (gAnimMoveTurn < 2) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; if (gAnimMoveTurn == 2) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } From 102dc65fd14bc29c3a5431f5c2c3d34fe43db657 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 14 Aug 2022 18:36:29 -0400 Subject: [PATCH 010/105] Sync battle anim - dragon --- src/battle_anim_dragon.c | 97 +++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/src/battle_anim_dragon.c b/src/battle_anim_dragon.c index cef5d219d..6cdcdb4e1 100644 --- a/src/battle_anim_dragon.c +++ b/src/battle_anim_dragon.c @@ -4,19 +4,19 @@ #include "task.h" #include "trig.h" -static void sub_80B725C(struct Sprite *sprite); +static void AnimOutrageFlame(struct Sprite *sprite); static void AnimDragonFireToTarget(struct Sprite *sprite); static void AnimDragonRageFirePlume(struct Sprite *sprite); static void AnimDragonDanceOrb(struct Sprite *sprite); static void AnimOverheatFlame(struct Sprite *sprite); -static void sub_80B74D8(struct Sprite *sprite); -static void sub_80B76B0(u8 taskId); -static void sub_80B776C(struct Task *task); -static void sub_80B7894(struct Sprite *sprite); +static void AnimDragonDanceOrb_Step(struct Sprite *sprite); +static void AnimTask_DragonDanceWaver_Step(u8 taskId); +static void UpdateDragonDanceScanlineEffect(struct Task *task); +static void AnimOverheatFlame_Step(struct Sprite *sprite); -static EWRAM_DATA u16 gUnknown_20399A4[7] = {0}; +static EWRAM_DATA u16 sUnusedOverheatData[7] = {0}; -static const union AnimCmd gUnknown_83E7710[] = +static const union AnimCmd sAnim_OutrageOverheatFire_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -26,9 +26,9 @@ static const union AnimCmd gUnknown_83E7710[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7728[] = +static const union AnimCmd *const sAnims_OutrageOverheatFire[] = { - gUnknown_83E7710, + sAnim_OutrageOverheatFire_0, }; const struct SpriteTemplate gOutrageFlameSpriteTemplate = @@ -36,10 +36,10 @@ const struct SpriteTemplate gOutrageFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E7728, + .anims = sAnims_OutrageOverheatFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B725C, + .callback = AnimOutrageFlame, }; static const union AnimCmd sAnim_DragonBreathFire_0[] = @@ -180,16 +180,16 @@ const struct SpriteTemplate gOverheatFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E7728, + .anims = sAnims_OutrageOverheatFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimOverheatFlame, }; -static void sub_80B725C(struct Sprite *sprite) +static void AnimOutrageFlame(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->x -= gBattleAnimArgs[0]; @@ -210,11 +210,11 @@ static void sub_80B725C(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -static void sub_80B72F8(struct Sprite *sprite) +static void StartDragonFireTranslation(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->x -= gBattleAnimArgs[1]; @@ -239,13 +239,13 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]); sprite->y += gBattleAnimArgs[2]; @@ -253,11 +253,12 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } +// For Dragon Breath and Dragon Rage static void AnimDragonFireToTarget(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); - sub_80B72F8(sprite); + StartDragonFireTranslation(sprite); } static void AnimDragonDanceOrb(struct Sprite *sprite) @@ -265,8 +266,8 @@ static void AnimDragonDanceOrb(struct Sprite *sprite) u16 r5; u16 r0; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = 0; sprite->data[5] = 1; sprite->data[6] = gBattleAnimArgs[0]; @@ -278,10 +279,10 @@ static void AnimDragonDanceOrb(struct Sprite *sprite) sprite->data[7] = r0 / 2; sprite->x2 = Cos(sprite->data[6], sprite->data[7]); sprite->y2 = Sin(sprite->data[6], sprite->data[7]); - sprite->callback = sub_80B74D8; + sprite->callback = AnimDragonDanceOrb_Step; } -static void sub_80B74D8(struct Sprite *sprite) +static void AnimDragonDanceOrb_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -319,26 +320,28 @@ static void sub_80B74D8(struct Sprite *sprite) } } +// Wavers the attacker back and forth. Progressing vertical wave of scanline shifts +// Used by Dragon Dance void AnimTask_DragonDanceWaver(u8 taskId) { - struct ScanlineEffectParams sp; + struct ScanlineEffectParams scanlineParams; struct Task *task = &gTasks[taskId]; u16 i; u8 r1; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - sp.dmaDest = ®_BG1HOFS; + scanlineParams.dmaDest = ®_BG1HOFS; task->data[2] = gBattle_BG1_X; } else { - sp.dmaDest = ®_BG2HOFS; + scanlineParams.dmaDest = ®_BG2HOFS; task->data[2] = gBattle_BG2_X; } - sp.dmaControl = 0xA2600001; - sp.initState = 1; - sp.unused9 = 0; + scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + scanlineParams.initState = 1; + scanlineParams.unused9 = 0; r1 = GetBattlerYCoordWithElevation(gBattleAnimAttacker); task->data[3] = r1 - 32; task->data[4] = r1 + 32; @@ -349,11 +352,11 @@ void AnimTask_DragonDanceWaver(u8 taskId) gScanlineEffectRegBuffers[0][i] = task->data[2]; gScanlineEffectRegBuffers[1][i] = task->data[2]; } - ScanlineEffect_SetParams(sp); - task->func = sub_80B76B0; + ScanlineEffect_SetParams(scanlineParams); + task->func = AnimTask_DragonDanceWaver_Step; } -static void sub_80B76B0(u8 taskId) +static void AnimTask_DragonDanceWaver_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -366,12 +369,12 @@ static void sub_80B76B0(u8 taskId) if (++task->data[6] == 3) ++task->data[0]; } - sub_80B776C(task); + UpdateDragonDanceScanlineEffect(task); break; case 1: if (++task->data[1] > 0x3C) ++task->data[0]; - sub_80B776C(task); + UpdateDragonDanceScanlineEffect(task); break; case 2: if (++task->data[7] > 1) @@ -380,7 +383,7 @@ static void sub_80B76B0(u8 taskId) if (--task->data[6] == 0) ++task->data[0]; } - sub_80B776C(task); + UpdateDragonDanceScanlineEffect(task); break; case 3: gScanlineEffect.state = 3; @@ -392,7 +395,7 @@ static void sub_80B76B0(u8 taskId) } } -static void sub_80B776C(struct Task *task) +static void UpdateDragonDanceScanlineEffect(struct Task *task) { u16 i, r3 = task->data[5]; @@ -406,21 +409,21 @@ static void sub_80B776C(struct Task *task) static void AnimOverheatFlame(struct Sprite *sprite) { - s32 i, r6 = (gBattleAnimArgs[2] * 3) / 5; + s32 i, yAmplitude = (gBattleAnimArgs[2] * 3) / 5; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[4]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[4]; sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]); - sprite->data[2] = Sin(gBattleAnimArgs[1], r6); + sprite->data[2] = Sin(gBattleAnimArgs[1], yAmplitude); sprite->x += sprite->data[1] * gBattleAnimArgs[0]; sprite->y += sprite->data[2] * gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[3]; - sprite->callback = sub_80B7894; + sprite->callback = AnimOverheatFlame_Step; for (i = 0; i < 7; ++i) - gUnknown_20399A4[i] = sprite->data[i]; + sUnusedOverheatData[i] = sprite->data[i]; } -static void sub_80B7894(struct Sprite *sprite) +static void AnimOverheatFlame_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->data[5] += sprite->data[2]; From b15305378ac0ead882a85c3d1be7217902b17675 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 14 Aug 2022 18:56:23 -0400 Subject: [PATCH 011/105] Sync battle anim - effects 1 --- include/battle_anim.h | 5 +- src/battle_anim_effects_1.c | 735 ++++++++++++++++---------------- src/battle_anim_effects_2.c | 6 +- src/battle_anim_effects_3.c | 4 +- src/battle_anim_ghost.c | 6 +- src/battle_anim_mons.c | 6 +- src/battle_anim_normal.c | 4 +- src/battle_anim_psychic.c | 2 +- src/battle_anim_special.c | 2 +- src/battle_anim_utility_funcs.c | 10 +- 10 files changed, 394 insertions(+), 386 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 80963c10d..fde2a87aa 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -215,7 +215,6 @@ void AnimMoon(struct Sprite *); void AnimMoonlightSparkle(struct Sprite *); void AnimHornHit(struct Sprite *); void AnimSuperFang(struct Sprite *); -void AnimWavyMusicNotes(struct Sprite *); void AnimFlyingMusicNotes(struct Sprite *); void AnimBellyDrumHand(struct Sprite *); void AnimSlowFlyingMusicNotes(struct Sprite *); @@ -421,7 +420,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x void TryResetSpriteAffineState(struct Sprite *sprite); u16 ArcTan2Neg(s16 a, s16 b); void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); -u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); +u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); u8 GetSpritePalIdxByBattler(u8 a1); void AnimSpriteOnMonPos(struct Sprite *sprite); @@ -429,7 +428,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void AnimThrowProjectile(struct Sprite *sprite); void AnimSnoreZ(struct Sprite *sprite); s16 CloneBattlerSpriteWithBlend(u8 animBattler); -void obj_delete_but_dont_free_vram(struct Sprite *sprite); +void DestroySpriteWithActiveSheet(struct Sprite *sprite); void AnimTask_AlphaFadeIn(u8 taskId); void AnimTask_BlendMonInAndOut(u8 task); void AnimTask_BlendPalInAndOutByTag(u8 taskId); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 2d1a6f3cf..d03206ded 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -7,84 +7,87 @@ #include "util.h" #include "constants/songs.h" -// RAM -EWRAM_DATA static s16 gUnknown_203999C[4] = {0}; +struct { + s16 startX; + s16 startY; + s16 targetX; + s16 targetY; +} static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read. -// Function Declarations -static void AnimMovePowderParticleStep(struct Sprite *); -static void AnimSolarBeamSmallOrbStep(struct Sprite *); -static void AnimAbsorptionOrbStep(struct Sprite *); -static void AnimHyperBeamOrbStep(struct Sprite *); -static void AnimLeechSeedStep(struct Sprite *); +static void AnimMovePowderParticle_Step(struct Sprite *); +static void AnimSolarBeamSmallOrb_Step(struct Sprite *); +static void AnimAbsorptionOrb_Step(struct Sprite *); +static void AnimHyperBeamOrb_Step(struct Sprite *); +static void AnimLeechSeed_Step(struct Sprite *); static void AnimLeechSeedSprouts(struct Sprite *); -static void AnimSporeParticleStep(struct Sprite *); -static void AnimPetalDanceBigFlowerStep(struct Sprite *); -static void AnimPetalDanceSmallFlowerStep(struct Sprite *); -static void AnimRazorLeafParticleStep1(struct Sprite *); -static void AnimRazorLeafParticleStep2(struct Sprite *); -static void AnimTranslateLinearSingleSineWaveStep(struct Sprite *); -static void AnimMoveTwisterParticleStep(struct Sprite *); -static void AnimConstrictBindingStep1(struct Sprite *); -static void AnimConstrictBindingStep2(struct Sprite *); -static void AnimTask_DuplicateAndShrinkToPosStep1(u8); -static void AnimTask_DuplicateAndShrinkToPosStep2(u8); -static void AnimItemStealStep3(struct Sprite *); +static void AnimSporeParticle_Step(struct Sprite *); +static void AnimPetalDanceBigFlower_Step(struct Sprite *); +static void AnimPetalDanceSmallFlower_Step(struct Sprite *); +static void AnimRazorLeafParticle_Step1(struct Sprite *); +static void AnimRazorLeafParticle_Step2(struct Sprite *); +static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *); +static void AnimMoveTwisterParticle_Step(struct Sprite *); +static void AnimConstrictBinding_Step1(struct Sprite *); +static void AnimConstrictBinding_Step2(struct Sprite *); +static void AnimTask_DuplicateAndShrinkToPos_Step1(u8); +static void AnimTask_DuplicateAndShrinkToPos_Step2(u8); +static void AnimItemSteal_Step3(struct Sprite *); static void AnimRootFlickerOut(struct Sprite *); -static void AnimTrickBagStep1(struct Sprite *); -static void AnimTrickBagStep2(struct Sprite *); -static void AnimTrickBagStep3(struct Sprite *); -static void AnimTask_LeafBladeStep(u8); +static void AnimTrickBag_Step1(struct Sprite *); +static void AnimTrickBag_Step2(struct Sprite *); +static void AnimTrickBag_Step3(struct Sprite *); +static void AnimTask_LeafBlade_Step(u8); static s16 LeafBladeGetPosFactor(struct Sprite *); -static void AnimTask_LeafBladeStep2(struct Task *, u8); -static void AnimTask_LeafBladeStep2_Callback(struct Sprite *); -static void AnimFlyingParticleStep(struct Sprite *); -static void AnimNeedleArmSpikeStep(struct Sprite *); -static void AnimSliceStep(struct Sprite *); +static void AnimTask_LeafBlade_Step2(struct Task *, u8); +static void AnimTask_LeafBlade_Step2_Callback(struct Sprite *); +static void AnimFlyingParticle_Step(struct Sprite *); +static void AnimNeedleArmSpike_Step(struct Sprite *); +static void AnimSlice_Step(struct Sprite *); static void AnimCirclingMusicNote_Step(struct Sprite *); -static void AnimProtectStep(struct Sprite *); -static void AnimMilkBottleStep1(struct Sprite *); -static void AnimMilkBottleStep2(struct Sprite *, int, int); +static void AnimProtect_Step(struct Sprite *); +static void AnimMilkBottle_Step1(struct Sprite *); +static void AnimMilkBottle_Step2(struct Sprite *, int, int); static void AnimBubbleBurst_Step(struct Sprite *); -static void AnimSleepLetterZStep(struct Sprite *); -static void AnimLockOnTargetStep1(struct Sprite *); -static void AnimLockOnTargetStep2(struct Sprite *); -static void AnimLockOnTargetStep3(struct Sprite *); -static void AnimLockOnTargetStep4(struct Sprite *); -static void AnimLockOnTargetStep5(struct Sprite *); -static void AnimLockOnTargetStep6(struct Sprite *); -static void AnimBowMonStep1(struct Sprite *); -static void AnimBowMonStep1_Callback(struct Sprite *); -static void AnimBowMonStep2(struct Sprite *); -static void AnimBowMonStep3(struct Sprite *); -static void AnimBowMonStep4(struct Sprite *); -static void AnimBowMonStep3_Callback(struct Sprite *); +static void AnimSleepLetterZ_Step(struct Sprite *); +static void AnimLockOnTarget_Step1(struct Sprite *); +static void AnimLockOnTarget_Step2(struct Sprite *); +static void AnimLockOnTarget_Step3(struct Sprite *); +static void AnimLockOnTarget_Step4(struct Sprite *); +static void AnimLockOnTarget_Step5(struct Sprite *); +static void AnimLockOnTarget_Step6(struct Sprite *); +static void AnimBowMon_Step1(struct Sprite *); +static void AnimBowMon_Step1_Callback(struct Sprite *); +static void AnimBowMon_Step2(struct Sprite *); +static void AnimBowMon_Step3(struct Sprite *); +static void AnimBowMon_Step4(struct Sprite *); +static void AnimBowMon_Step3_Callback(struct Sprite *); static void AnimTipMon_Step(struct Sprite *); static void AnimTask_SkullBashPositionSet(u8); static void AnimTask_SkullBashPositionReset(u8); -static void AnimFalseSwipeSliceStep1(struct Sprite *); -static void AnimFalseSwipeSliceStep2(struct Sprite *); -static void AnimFalseSwipeSliceStep3(struct Sprite *); -static void AnimEndureEnergyStep(struct Sprite *); -static void AnimSharpenSphereStep(struct Sprite *); +static void AnimFalseSwipeSlice_Step1(struct Sprite *); +static void AnimFalseSwipeSlice_Step2(struct Sprite *); +static void AnimFalseSwipeSlice_Step3(struct Sprite *); +static void AnimEndureEnergy_Step(struct Sprite *); +static void AnimSharpenSphere_Step(struct Sprite *); static void AnimConversion2Step(struct Sprite *); -static void AnimMoonStep(struct Sprite *); -static void AnimMoonlightSparkleStep(struct Sprite *); -static void AnimHornHitStep(struct Sprite *); -static void AnimTask_DoubleTeamStep(u8); -static void AnimTask_DoubleTeamCallback(struct Sprite *); -static void AnimWavyMusicNotesGetNextPos(s16, s16, s16 *, s16 *, s8); -static void AnimWavyMusicNotesStep(struct Sprite *); -static void AnimFlyingMusicNotesStep(struct Sprite *); -static void AnimSlowFlyingMusicNotesStep(struct Sprite *); -static void AnimThoughtBubbleStep(struct Sprite *); -static void AnimMetronomeFingerStep(struct Sprite *); -static void AnimFollowMeFingerStep1(struct Sprite *); -static void AnimFollowMeFingerStep2(struct Sprite *); -static void AnimTauntFingerStep1(struct Sprite *); -static void AnimTauntFingerStep2(struct Sprite *); +static void AnimMoon_Step(struct Sprite *); +static void AnimMoonlightSparkle_Step(struct Sprite *); +static void AnimHornHit_Step(struct Sprite *); +static void AnimTask_DoubleTeam_Step(u8); +static void AnimDoubleTeam(struct Sprite *); +static void AnimWavyMusicNotes(struct Sprite* sprite); +static void AnimWavyMusicNotes_CalcVelocity(s16, s16, s16 *, s16 *, s8); +static void AnimWavyMusicNotes_Step(struct Sprite *); +static void AnimFlyingMusicNotes_Step(struct Sprite *); +static void AnimSlowFlyingMusicNotes_Step(struct Sprite *); +static void AnimThoughtBubble_Step(struct Sprite *); +static void AnimMetronomeFinger_Step(struct Sprite *); +static void AnimFollowMeFinger_Step1(struct Sprite *); +static void AnimFollowMeFinger_Step2(struct Sprite *); +static void AnimTauntFinger_Step1(struct Sprite *); +static void AnimTauntFinger_Step2(struct Sprite *); -// Unused -static const u8 sUnknown_83E2964[] = {0x02, 0x04, 0x01, 0x03}; +static const u8 sUnused[] = {2, 4, 1, 3}; static const union AnimCmd sPowderParticlesAnimCmds[] = { @@ -513,7 +516,7 @@ const struct SpriteTemplate gSwiftStarSpriteTemplate = .callback = AnimTranslateLinearSingleSineWave, }; -static const union AnimCmd sConstrictBindingAnimCmds1[] = +static const union AnimCmd sAnim_ConstrictBinding[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(32, 4), @@ -522,7 +525,7 @@ static const union AnimCmd sConstrictBindingAnimCmds1[] = ANIMCMD_END, }; -static const union AnimCmd sConstrictBindingAnimCmds2[] = +static const union AnimCmd sAnim_ConstrictBinding_Flipped[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .hFlip = TRUE), @@ -531,13 +534,13 @@ static const union AnimCmd sConstrictBindingAnimCmds2[] = ANIMCMD_END, }; -static const union AnimCmd *const sConstrictBindingAnimTable[] = +static const union AnimCmd *const sAnims_ConstrictBinding[] = { - sConstrictBindingAnimCmds1, - sConstrictBindingAnimCmds2, + sAnim_ConstrictBinding, + sAnim_ConstrictBinding_Flipped, }; -static const union AffineAnimCmd sConstrictBindingAffineAnimCmds1[] = +static const union AffineAnimCmd sAffineAnim_ConstrictBinding[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-11, 0, 0, 6), @@ -545,7 +548,7 @@ static const union AffineAnimCmd sConstrictBindingAffineAnimCmds1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sConstrictBindingAffineAnimCmds2[] = +static const union AffineAnimCmd sAffineAnim_ConstrictBinding_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(11, 0, 0, 6), @@ -553,10 +556,10 @@ static const union AffineAnimCmd sConstrictBindingAffineAnimCmds2[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sConstrictBindingAffineAnimTable[] = +static const union AffineAnimCmd *const sAffineAnims_ConstrictBinding[] = { - sConstrictBindingAffineAnimCmds1, - sConstrictBindingAffineAnimCmds2, + sAffineAnim_ConstrictBinding, + sAffineAnim_ConstrictBinding_Flipped, }; const struct SpriteTemplate gConstrictBindingSpriteTemplate = @@ -564,9 +567,9 @@ const struct SpriteTemplate gConstrictBindingSpriteTemplate = .tileTag = ANIM_TAG_TENDRILS, .paletteTag = ANIM_TAG_TENDRILS, .oam = &gOamData_AffineNormal_ObjNormal_64x32, - .anims = sConstrictBindingAnimTable, + .anims = sAnims_ConstrictBinding, .images = NULL, - .affineAnims = sConstrictBindingAffineAnimTable, + .affineAnims = sAffineAnims_ConstrictBinding, .callback = AnimConstrictBinding, }; @@ -1022,7 +1025,7 @@ const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate = .callback = AnimNeedleArmSpike, }; -static const union AnimCmd sWhipAnimCmds1[] = +static const union AnimCmd sAnim_Whip[] = { ANIMCMD_FRAME(64, 3), ANIMCMD_FRAME(80, 3), @@ -1031,7 +1034,7 @@ static const union AnimCmd sWhipAnimCmds1[] = ANIMCMD_END, }; -static const union AnimCmd sWhipAnimCmds2[] = +static const union AnimCmd sAnim_Whip_Flipped[] = { ANIMCMD_FRAME(64, 3, .hFlip = TRUE), ANIMCMD_FRAME(80, 3, .hFlip = TRUE), @@ -1040,10 +1043,10 @@ static const union AnimCmd sWhipAnimCmds2[] = ANIMCMD_END, }; -static const union AnimCmd *const sWhipAnimTable[] = +static const union AnimCmd *const sAnims_Whip[] = { - sWhipAnimCmds1, - sWhipAnimCmds2, + sAnim_Whip, + sAnim_Whip_Flipped, }; const struct SpriteTemplate gSlamHitSpriteTemplate = @@ -1051,7 +1054,7 @@ const struct SpriteTemplate gSlamHitSpriteTemplate = .tileTag = ANIM_TAG_SLAM_HIT, .paletteTag = ANIM_TAG_SLAM_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sWhipAnimTable, + .anims = sAnims_Whip, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWhipHit, @@ -1062,13 +1065,13 @@ const struct SpriteTemplate gVineWhipSpriteTemplate = .tileTag = ANIM_TAG_WHIP_HIT, .paletteTag = ANIM_TAG_WHIP_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sWhipAnimTable, + .anims = sAnims_Whip, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWhipHit, }; -static const union AnimCmd sUnknown_83E3178[] = +static const union AnimCmd sAnim_SlidingHit[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1078,105 +1081,104 @@ static const union AnimCmd sUnknown_83E3178[] = ANIMCMD_END, }; -// Unused -static const union AnimCmd *const sUnknown_83E3190[] = +static const union AnimCmd *const sAnims_SlidingHit[] = { - sUnknown_83E3178, + sAnim_SlidingHit, }; // Unused -static const struct SpriteTemplate sUnknown_83E3194 = +static const struct SpriteTemplate sSlidingHit1SpriteTemplate = { .tileTag = ANIM_TAG_HIT, .paletteTag = ANIM_TAG_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sUnknown_83E3190, + .anims = sAnims_SlidingHit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingHit, }; // Unused -static const struct SpriteTemplate sUnknown_83E31AC = +static const struct SpriteTemplate sSlidingHit2SpriteTemplate = { .tileTag = ANIM_TAG_HIT_2, .paletteTag = ANIM_TAG_HIT_2, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sUnknown_83E3190, + .anims = sAnims_SlidingHit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingHit, }; -static const union AffineAnimCmd sUnknown_83E31C4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_Normal[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E31D4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 32, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E31E4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 64, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E31F4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 96, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3204[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_UpsideDown[] = { AFFINEANIMCMD_FRAME(256, 256, -128, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3214[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomRight[] = { AFFINEANIMCMD_FRAME(256, 256, -96, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3224[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedRight[] = { AFFINEANIMCMD_FRAME(256, 256, -64, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3234[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopRight[] = { AFFINEANIMCMD_FRAME(256, 256, -32, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sUnknown_83E3244[] = +static const union AffineAnimCmd *const sAffineAnims_FlickeringPunch[] = { - sUnknown_83E31C4, - sUnknown_83E31D4, - sUnknown_83E31E4, - sUnknown_83E31F4, - sUnknown_83E3204, - sUnknown_83E3214, - sUnknown_83E3224, - sUnknown_83E3234, + sAffineAnim_FlickeringPunch_Normal, + sAffineAnim_FlickeringPunch_TurnedTopLeft, + sAffineAnim_FlickeringPunch_TurnedLeft, + sAffineAnim_FlickeringPunch_TurnedBottomLeft, + sAffineAnim_FlickeringPunch_UpsideDown, + sAffineAnim_FlickeringPunch_TurnedBottomRight, + sAffineAnim_FlickeringPunch_TurnedRight, + sAffineAnim_FlickeringPunch_TurnedTopRight, }; // Unused -static const struct SpriteTemplate sUnknown_83E3264 = +static const struct SpriteTemplate sFlickeringPunchSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sUnknown_83E3244, + .affineAnims = sAffineAnims_FlickeringPunch, .callback = AnimFlickeringPunch, }; @@ -1216,87 +1218,87 @@ const struct SpriteTemplate gAirCutterSliceSpriteTemplate = .callback = AnimAirCutterSlice, }; -static const union AnimCmd sUnknown_83E32C4[] = +static const union AnimCmd sAnim_CirclingMusicNote_Eighth[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32CC[] = +static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32D4[] = +static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32DC[] = +static const union AnimCmd sAnim_CirclingMusicNote_Quarter[] = { ANIMCMD_FRAME(12, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32E4[] = +static const union AnimCmd sAnim_CirclingMusicNote_QuarterRest[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32EC[] = +static const union AnimCmd sAnim_CirclingMusicNote_EighthRest[] = { ANIMCMD_FRAME(20, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32F4[] = +static const union AnimCmd sAnim_CirclingMusicNote_Eighth_Flipped[] = { ANIMCMD_FRAME(0, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32FC[] = +static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth_Flipped[] = { ANIMCMD_FRAME(4, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E3304[] = +static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped[] = { ANIMCMD_FRAME(8, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E330C[] = +static const union AnimCmd sAnim_CirclingMusicNote_Quarter_Flipped[] = { ANIMCMD_FRAME(12, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E3314[] = +static const union AnimCmd *const sAnims_CirclingMusicNote[] = { - sUnknown_83E32C4, - sUnknown_83E32CC, - sUnknown_83E32D4, - sUnknown_83E32DC, - sUnknown_83E32E4, - sUnknown_83E32EC, - sUnknown_83E32F4, - sUnknown_83E32FC, - sUnknown_83E3304, - sUnknown_83E330C, + sAnim_CirclingMusicNote_Eighth, + sAnim_CirclingMusicNote_BeamedEighth, + sAnim_CirclingMusicNote_SlantedBeamedEighth, + sAnim_CirclingMusicNote_Quarter, + sAnim_CirclingMusicNote_QuarterRest, + sAnim_CirclingMusicNote_EighthRest, + sAnim_CirclingMusicNote_Eighth_Flipped, + sAnim_CirclingMusicNote_BeamedEighth_Flipped, + sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped, + sAnim_CirclingMusicNote_Quarter_Flipped, }; // Unused -static const struct SpriteTemplate sUnknown_83E333C = +static const struct SpriteTemplate sCirclingMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sUnknown_83E3314, + .anims = sAnims_CirclingMusicNote, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimCirclingMusicNote, @@ -1386,7 +1388,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate = .callback = AnimSparkingStars, }; -static const union AnimCmd sUnknown_83E3424[] = +static const union AnimCmd sAnim_BubbleBurst[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), @@ -1399,7 +1401,7 @@ static const union AnimCmd sUnknown_83E3424[] = ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E3448[] = +static const union AnimCmd sAnim_BubbleBurst_Flipped[] = { ANIMCMD_FRAME(0, 10, .hFlip = TRUE), ANIMCMD_FRAME(4, 10, .hFlip = TRUE), @@ -1412,19 +1414,19 @@ static const union AnimCmd sUnknown_83E3448[] = ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E346C[] = +static const union AnimCmd *const sAnims_BubbleBurst[] = { - sUnknown_83E3424, - sUnknown_83E3448, + sAnim_BubbleBurst, + sAnim_BubbleBurst_Flipped, }; // Unused -static const struct SpriteTemplate sUnknown_83E3474 = +static const struct SpriteTemplate sBubbleBurstSpriteTemplate = { .tileTag = ANIM_TAG_BUBBLE_BURST, .paletteTag = ANIM_TAG_BUBBLE_BURST, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sUnknown_83E346C, + .anims = sAnims_BubbleBurst, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBubbleBurst, @@ -1528,7 +1530,8 @@ const struct SpriteTemplate gBowMonSpriteTemplate = }; // Unused -static const struct SpriteTemplate sUnknown_83E3568 = +// Same as BowMon above but without backing up +static const struct SpriteTemplate sTipMonSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -2155,7 +2158,6 @@ const struct SpriteTemplate gTauntFingerSpriteTemplate = .callback = AnimTauntFinger, }; -// Functions // Animates the falling particles that horizontally wave back and forth. // Used by Sleep Powder, Stun Spore, and Poison Powder. // arg 0: initial x pixel offset @@ -2181,10 +2183,10 @@ void AnimMovePowderParticle(struct Sprite* sprite) } sprite->data[4] = gBattleAnimArgs[5]; - sprite->callback = AnimMovePowderParticleStep; + sprite->callback = AnimMovePowderParticle_Step; } -static void AnimMovePowderParticleStep(struct Sprite* sprite) +static void AnimMovePowderParticle_Step(struct Sprite* sprite) { if (sprite->data[0] > 0) { @@ -2246,11 +2248,11 @@ void AnimSolarBeamSmallOrb(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimSolarBeamSmallOrbStep; + sprite->callback = AnimSolarBeamSmallOrb_Step; sprite->callback(sprite); } -static void AnimSolarBeamSmallOrbStep(struct Sprite* sprite) +static void AnimSolarBeamSmallOrb_Step(struct Sprite* sprite) { if (AnimTranslateLinear(sprite)) { @@ -2302,10 +2304,10 @@ void AnimAbsorptionOrb(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = gBattleAnimArgs[2]; InitAnimArcTranslation(sprite); - sprite->callback = AnimAbsorptionOrbStep; + sprite->callback = AnimAbsorptionOrb_Step; } -static void AnimAbsorptionOrbStep(struct Sprite* sprite) +static void AnimAbsorptionOrb_Step(struct Sprite* sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -2335,11 +2337,11 @@ void AnimHyperBeamOrb(struct Sprite* sprite) InitAnimFastLinearTranslationWithSpeed(sprite); sprite->data[5] = Random() & 0xFF; sprite->data[6] = sprite->subpriority; - sprite->callback = AnimHyperBeamOrbStep; + sprite->callback = AnimHyperBeamOrb_Step; sprite->callback(sprite); } -static void AnimHyperBeamOrbStep(struct Sprite* sprite) +static void AnimHyperBeamOrb_Step(struct Sprite* sprite) { if (AnimFastTranslateLinear(sprite)) { @@ -2377,10 +2379,10 @@ void AnimLeechSeed(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); - sprite->callback = AnimLeechSeedStep; + sprite->callback = AnimLeechSeed_Step; } -static void AnimLeechSeedStep(struct Sprite* sprite) +static void AnimLeechSeed_Step(struct Sprite* sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -2417,11 +2419,11 @@ void AnimSporeParticle(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[2]; - sprite->callback = AnimSporeParticleStep; + sprite->callback = AnimSporeParticle_Step; sprite->callback(sprite); } -static void AnimSporeParticleStep(struct Sprite* sprite) +static void AnimSporeParticle_Step(struct Sprite* sprite) { sprite->x2 = Sin(sprite->data[1], 32); sprite->y2 = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8); @@ -2480,11 +2482,11 @@ void AnimPetalDanceBigFlower(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; - sprite->callback = AnimPetalDanceBigFlowerStep; + sprite->callback = AnimPetalDanceBigFlower_Step; sprite->callback(sprite); } -static void AnimPetalDanceBigFlowerStep(struct Sprite* sprite) +static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -2518,11 +2520,11 @@ void AnimPetalDanceSmallFlower(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; - sprite->callback = AnimPetalDanceSmallFlowerStep; + sprite->callback = AnimPetalDanceSmallFlower_Step; sprite->callback(sprite); } -static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) +static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -2550,10 +2552,10 @@ void AnimRazorLeafParticle(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; - sprite->callback = AnimRazorLeafParticleStep1; + sprite->callback = AnimRazorLeafParticle_Step1; } -static void AnimRazorLeafParticleStep1(struct Sprite* sprite) +static void AnimRazorLeafParticle_Step1(struct Sprite* sprite) { if (!sprite->data[2]) { @@ -2569,7 +2571,7 @@ static void AnimRazorLeafParticleStep1(struct Sprite* sprite) sprite->data[1] = 0; sprite->data[2] = 0; } - sprite->callback = AnimRazorLeafParticleStep2; + sprite->callback = AnimRazorLeafParticle_Step2; } else { @@ -2579,7 +2581,7 @@ static void AnimRazorLeafParticleStep1(struct Sprite* sprite) } } -static void AnimRazorLeafParticleStep2(struct Sprite* sprite) +static void AnimRazorLeafParticle_Step2(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker)) sprite->x2 = -Sin(sprite->data[0], 25); @@ -2632,10 +2634,10 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) else sprite->data[0] = 0; - sprite->callback = AnimTranslateLinearSingleSineWaveStep; + sprite->callback = AnimTranslateLinearSingleSineWave_Step; } -static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite) { bool8 destroy = FALSE; s16 a = sprite->data[0]; @@ -2657,9 +2659,9 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) destroy = TRUE; } - if (sprite->x + sprite->x2 > 256 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 || sprite->x + sprite->x2 < -16 - || sprite->y + sprite->y2 > 160 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) destroy = TRUE; @@ -2684,10 +2686,10 @@ void AnimMoveTwisterParticle(struct Sprite* sprite) sprite->data[2] = gBattleAnimArgs[2]; sprite->data[3] = gBattleAnimArgs[3]; sprite->data[4] = gBattleAnimArgs[4]; - sprite->callback = AnimMoveTwisterParticleStep; + sprite->callback = AnimMoveTwisterParticle_Step; } -static void AnimMoveTwisterParticleStep(struct Sprite* sprite) +static void AnimMoveTwisterParticle_Step(struct Sprite* sprite) { if (sprite->data[1] == 0xFF) { @@ -2727,10 +2729,10 @@ void AnimConstrictBinding(struct Sprite* sprite) StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); sprite->data[6] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[3]; - sprite->callback = AnimConstrictBindingStep1; + sprite->callback = AnimConstrictBinding_Step1; } -static void AnimConstrictBindingStep1(struct Sprite* sprite) +static void AnimConstrictBinding_Step1(struct Sprite* sprite) { u8 spriteId; @@ -2739,11 +2741,11 @@ static void AnimConstrictBindingStep1(struct Sprite* sprite) sprite->affineAnimPaused = FALSE; spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); sprite->data[0] = 0x100; - sprite->callback = AnimConstrictBindingStep2; + sprite->callback = AnimConstrictBinding_Step2; } } -static void AnimConstrictBindingStep2(struct Sprite* sprite) +static void AnimConstrictBinding_Step2(struct Sprite* sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -2781,11 +2783,11 @@ void AnimTask_ShrinkTargetCopy(u8 taskId) gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPosStep1; + gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPos_Step1; } } -static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) +static void AnimTask_DuplicateAndShrinkToPos_Step1(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -2800,11 +2802,11 @@ static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) if (--gTasks[taskId].data[1] == 0) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPosStep2; + gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPos_Step2; } } -static void AnimTask_DuplicateAndShrinkToPosStep2(u8 taskId) +static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { @@ -2907,10 +2909,10 @@ void AnimFrenzyPlantRoot(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->data[2] = gBattleAnimArgs[5]; sprite->callback = AnimRootFlickerOut; - gUnknown_203999C[0] = sprite->x; - gUnknown_203999C[1] = sprite->y; - gUnknown_203999C[2] = targetX; - gUnknown_203999C[3] = targetY; + sFrenzyPlantRootData.startX = sprite->x; + sFrenzyPlantRootData.startY = sprite->y; + sFrenzyPlantRootData.targetX = targetX; + sFrenzyPlantRootData.targetY = targetY; } static void AnimRootFlickerOut(struct Sprite* sprite) @@ -2946,7 +2948,7 @@ void AnimIngrainOrb(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void sub_80A33B8(struct Sprite* sprite, s16 c) +static void InitItemBagData(struct Sprite* sprite, s16 c) { int a = (sprite->x << 8) | sprite->y; int b = (sprite->data[6] << 8) | sprite->data[7]; @@ -2972,7 +2974,7 @@ bool8 MoveAlongLinearPath(struct Sprite* sprite) if (xEndPos == 0) xEndPos = -32; else if (xEndPos == 255) - xEndPos = 272; + xEndPos = DISPLAY_WIDTH + 32; yEndPos_2 = yEndPos - yStartPos; r0 = xEndPos - xStartPos; @@ -2987,7 +2989,7 @@ bool8 MoveAlongLinearPath(struct Sprite* sprite) return FALSE; } -void AnimItemStealStep2(struct Sprite* sprite) +static void AnimItemSteal_Step2(struct Sprite* sprite) { if (sprite->data[0] == 10) StartSpriteAffineAnim(sprite, 1); @@ -2997,7 +2999,7 @@ void AnimItemStealStep2(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void AnimItemStealStep1(struct Sprite* sprite) +static void AnimItemSteal_Step1(struct Sprite* sprite) { sprite->data[0] += sprite->data[3] * 128 / sprite->data[4]; if (sprite->data[0] >= 128) @@ -3011,7 +3013,7 @@ static void AnimItemStealStep1(struct Sprite* sprite) { sprite->y2 = 0; sprite->data[0] = 0; - sprite->callback = AnimItemStealStep2; + sprite->callback = AnimItemSteal_Step2; } } @@ -3027,22 +3029,22 @@ void AnimPresent(struct Sprite* sprite) { sprite->data[6] = targetX; sprite->data[7] = targetY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 1; } else { sprite->data[6] = targetX; sprite->data[7] = targetY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 3; } sprite->data[4] = 60; - sprite->callback = AnimItemStealStep1; + sprite->callback = AnimItemSteal_Step1; } -static void sub_80A3590(struct Sprite* sprite) +static void AnimKnockOffOpponentsItem(struct Sprite* sprite) { int zero; @@ -3071,10 +3073,10 @@ void AnimKnockOffItem(struct Sprite* sprite) { sprite->data[6] = 0; sprite->data[7] = targetY + 10; - sub_80A33B8(sprite, 40); + InitItemBagData(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; - sprite->callback = AnimItemStealStep1; + sprite->callback = AnimItemSteal_Step1; } else { @@ -3083,10 +3085,10 @@ void AnimKnockOffItem(struct Sprite* sprite) if (IsContest()) sprite->data[6] = 0; - sub_80A33B8(sprite, 40); + InitItemBagData(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; - sprite->callback = sub_80A3590; + sprite->callback = AnimKnockOffOpponentsItem; } } @@ -3121,22 +3123,22 @@ void AnimItemSteal(struct Sprite* sprite) { sprite->data[6] = attackerX; sprite->data[7] = attackerY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 1; } else { sprite->data[6] = attackerX; sprite->data[7] = attackerY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 3; } sprite->data[4] = 60; - sprite->callback = AnimItemStealStep3; + sprite->callback = AnimItemSteal_Step3; } -static void AnimItemStealStep3(struct Sprite* sprite) +static void AnimItemSteal_Step3(struct Sprite* sprite) { int zero; @@ -3156,7 +3158,7 @@ static void AnimItemStealStep3(struct Sprite* sprite) { sprite->y2 = 0; sprite->data[0] = 0; - sprite->callback = AnimItemStealStep2; + sprite->callback = AnimItemSteal_Step2; PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); } } @@ -3193,7 +3195,7 @@ void AnimTrickBag(struct Sprite* sprite) sprite->data[4] = 20; sprite->x2 = Cos(sprite->data[1], 60); sprite->y2 = Sin(sprite->data[1], 20); - sprite->callback = AnimTrickBagStep1; + sprite->callback = AnimTrickBag_Step1; if (sprite->data[1] > 0 && sprite->data[1] < 192) sprite->subpriority = 31; else @@ -3201,7 +3203,7 @@ void AnimTrickBag(struct Sprite* sprite) } } -static void AnimTrickBagStep1(struct Sprite* sprite) +static void AnimTrickBag_Step1(struct Sprite* sprite) { switch (sprite->data[3]) { @@ -3225,20 +3227,20 @@ static void AnimTrickBagStep1(struct Sprite* sprite) { sprite->data[0] = 0; sprite->data[2] = 0; - sprite->callback = AnimTrickBagStep2; + sprite->callback = AnimTrickBag_Step2; } break; } } -static void AnimTrickBagStep2(struct Sprite* sprite) +static void AnimTrickBag_Step2(struct Sprite* sprite) { if (sprite->data[2] == gTrickBagCoordinates[sprite->data[0]][1]) { if (gTrickBagCoordinates[sprite->data[0]][2] == 127) { sprite->data[0] = 0; - sprite->callback = AnimTrickBagStep3; + sprite->callback = AnimTrickBag_Step3; } sprite->data[2] = 0; @@ -3261,7 +3263,7 @@ static void AnimTrickBagStep2(struct Sprite* sprite) } } -static void AnimTrickBagStep3(struct Sprite* sprite) +static void AnimTrickBag_Step3(struct Sprite* sprite) { if (sprite->data[0] > 20) DestroyAnimSprite(sprite); @@ -3293,10 +3295,10 @@ void AnimTask_LeafBlade(u8 taskId) gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[5] = LeafBladeGetPosFactor(&gSprites[task->data[2]]); InitAnimArcTranslation(&gSprites[task->data[2]]); - task->func = AnimTask_LeafBladeStep; + task->func = AnimTask_LeafBlade_Step; } -static void AnimTask_LeafBladeStep(u8 taskId) +static void AnimTask_LeafBlade_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; struct Sprite* sprite = &gSprites[task->data[2]]; @@ -3305,7 +3307,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) switch (a) { case 4: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 5; @@ -3313,7 +3315,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) } break; case 8: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 9; @@ -3321,7 +3323,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) } break; case 0: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 1; @@ -3347,7 +3349,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 2: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 3; @@ -3390,7 +3392,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 6: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 7; @@ -3433,7 +3435,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 10: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 11; @@ -3461,7 +3463,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) break; } case 12: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { DestroySprite(sprite); @@ -3492,7 +3494,7 @@ static s16 LeafBladeGetPosFactor(struct Sprite* sprite) return var; } -static void AnimTask_LeafBladeStep2(struct Task* task, u8 taskId) +static void AnimTask_LeafBlade_Step2(struct Task* task, u8 taskId) { task->data[14]++; if (task->data[14] > 0) @@ -3513,12 +3515,12 @@ static void AnimTask_LeafBladeStep2(struct Task* task, u8 taskId) gTasks[taskId].data[13]++; StartSpriteAnim(&gSprites[spriteId], task->data[3]); gSprites[spriteId].subpriority = task->data[4]; - gSprites[spriteId].callback = AnimTask_LeafBladeStep2_Callback; + gSprites[spriteId].callback = AnimTask_LeafBlade_Step2_Callback; } } } -static void AnimTask_LeafBladeStep2_Callback(struct Sprite* sprite) +static void AnimTask_LeafBlade_Step2_Callback(struct Sprite* sprite) { sprite->data[0]++; if (sprite->data[0] > 1) @@ -3580,10 +3582,10 @@ void AnimFlyingParticle(struct Sprite* sprite) break; } - sprite->callback = AnimFlyingParticleStep; + sprite->callback = AnimFlyingParticle_Step; } -static void AnimFlyingParticleStep(struct Sprite* sprite) +static void AnimFlyingParticle_Step(struct Sprite* sprite) { int a = sprite->data[7]; @@ -3688,11 +3690,11 @@ void AnimNeedleArmSpike(struct Sprite* sprite) c -= 0x8000; TrySetSpriteRotScale(sprite, 0, 0x100, 0x100, c); - sprite->callback = AnimNeedleArmSpikeStep; + sprite->callback = AnimNeedleArmSpike_Step; } } -static void AnimNeedleArmSpikeStep(struct Sprite* sprite) +static void AnimNeedleArmSpike_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -3708,7 +3710,7 @@ static void AnimNeedleArmSpikeStep(struct Sprite* sprite) } } -static void sub_80A43DC(struct Sprite* sprite) +static void AnimWhipHit_WaitEnd(struct Sprite* sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -3736,7 +3738,7 @@ void AnimWhipHit(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) StartSpriteAnim(sprite, 1); - sprite->callback = sub_80A43DC; + sprite->callback = AnimWhipHit_WaitEnd; SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->y += gBattleAnimArgs[1]; } @@ -3766,7 +3768,7 @@ void AnimCuttingSlice(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; - sprite->callback = AnimSliceStep; + sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { sprite->x += gBattleAnimArgs[0]; @@ -3817,7 +3819,7 @@ void AnimAirCutterSlice(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; - sprite->callback = AnimSliceStep; + sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { sprite->x += gBattleAnimArgs[0]; @@ -3836,7 +3838,7 @@ void AnimAirCutterSlice(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -static void AnimSliceStep(struct Sprite* sprite) +static void AnimSlice_Step(struct Sprite* sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -3857,7 +3859,7 @@ static void AnimSliceStep(struct Sprite* sprite) } } -void sub_80A4738(struct Sprite* sprite) +static void UnusedFlickerAnim(struct Sprite* sprite) { if (sprite->data[2] > 1) { @@ -3940,10 +3942,10 @@ void AnimProtect(struct Sprite* sprite) sprite->data[7] = 16; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); - sprite->callback = AnimProtectStep; + sprite->callback = AnimProtect_Step; } -static void AnimProtectStep(struct Sprite *sprite) +static void AnimProtect_Step(struct Sprite *sprite) { int i, id, savedPal; sprite->data[5] += 96; @@ -3999,10 +4001,10 @@ void AnimMilkBottle(struct Sprite* sprite) sprite->data[7] = 16; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); - sprite->callback = AnimMilkBottleStep1; + sprite->callback = AnimMilkBottle_Step1; } -static void AnimMilkBottleStep1(struct Sprite* sprite) +static void AnimMilkBottle_Step1(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -4035,7 +4037,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } break; case 2: - AnimMilkBottleStep2(sprite, 16, 4); + AnimMilkBottle_Step2(sprite, 16, 4); if (++sprite->data[1] > 2) { sprite->data[1] = 0; @@ -4075,7 +4077,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } } -static void AnimMilkBottleStep2(struct Sprite* sprite, int unk1, int unk2) +static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2) { if (sprite->data[3] <= 11) sprite->data[4] += 2; @@ -4196,10 +4198,10 @@ void AnimSleepLetterZ(struct Sprite* sprite) StartSpriteAffineAnim(sprite, 1); } - sprite->callback = AnimSleepLetterZStep; + sprite->callback = AnimSleepLetterZ_Step; } -static void AnimSleepLetterZStep(struct Sprite* sprite) +static void AnimSleepLetterZ_Step(struct Sprite* sprite) { sprite->y2 = -(sprite->data[0] / 0x28); sprite->x2 = sprite->data[4] / 10; @@ -4215,17 +4217,17 @@ void AnimLockOnTarget(struct Sprite* sprite) sprite->y -= 32; sprite->data[0] = 20; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep1); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); } -static void AnimLockOnTargetStep1(struct Sprite* sprite) +static void AnimLockOnTarget_Step1(struct Sprite* sprite) { switch (sprite->data[5] & 1) { case 0: sprite->data[0] = 1; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep1); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); break; case 1: sprite->x += sprite->x2; @@ -4236,7 +4238,7 @@ static void AnimLockOnTargetStep1(struct Sprite* sprite) sprite->data[2] = sprite->x + sInclineMonCoordTable[sprite->data[5] >> 8][0]; sprite->data[4] = sprite->y + sInclineMonCoordTable[sprite->data[5] >> 8][1]; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep2); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); break; @@ -4245,21 +4247,21 @@ static void AnimLockOnTargetStep1(struct Sprite* sprite) sprite->data[5] ^= 1; } -static void AnimLockOnTargetStep2(struct Sprite* sprite) +static void AnimLockOnTarget_Step2(struct Sprite* sprite) { if ((sprite->data[5] >> 8) == 4) { sprite->data[0] = 10; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep3); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step3); } else { - sprite->callback = AnimLockOnTargetStep1; + sprite->callback = AnimLockOnTarget_Step1; } } -static void AnimLockOnTargetStep3(struct Sprite* sprite) +static void AnimLockOnTarget_Step3(struct Sprite* sprite) { s16 a; s16 b; @@ -4270,7 +4272,7 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->data[1] = 0; sprite->data[2] = 0; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep4); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step4); } else { @@ -4302,11 +4304,11 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + a; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + b; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep5); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step5); } } -static void AnimLockOnTargetStep4(struct Sprite* sprite) +static void AnimLockOnTarget_Step4(struct Sprite* sprite) { if (sprite->data[2] == 0) { @@ -4318,7 +4320,7 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite) sprite->data[1] = 0; } - BlendPalettes(SelectBattleAnimSpriteAndBgPalettes(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB_WHITE); + BlendPalettes(GetBattlePalettesMask(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB_WHITE); if (sprite->data[1] == 16) { int pal; @@ -4329,21 +4331,21 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite) } else if (sprite->data[1] == 0) { - sprite->callback = AnimLockOnTargetStep5; + sprite->callback = AnimLockOnTarget_Step5; } } -static void AnimLockOnTargetStep5(struct Sprite* sprite) +static void AnimLockOnTarget_Step5(struct Sprite* sprite) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { sprite->data[1] = 0; sprite->data[0] = 0; - sprite->callback = AnimLockOnTargetStep6; + sprite->callback = AnimLockOnTarget_Step6; } } -static void AnimLockOnTargetStep6(struct Sprite* sprite) +static void AnimLockOnTarget_Step6(struct Sprite* sprite) { if (sprite->data[0] % 3 == 0) { @@ -4395,31 +4397,31 @@ void AnimBowMon(struct Sprite* sprite) switch (gBattleAnimArgs[0]) { case 0: - sprite->callback = AnimBowMonStep1; + sprite->callback = AnimBowMon_Step1; break; case 1: - sprite->callback = AnimBowMonStep2; + sprite->callback = AnimBowMon_Step2; break; case 2: - sprite->callback = AnimBowMonStep3; + sprite->callback = AnimBowMon_Step3; break; default: - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; break; } } -static void AnimBowMonStep1(struct Sprite* sprite) +static void AnimBowMon_Step1(struct Sprite* sprite) { sprite->data[0] = 6; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) ? 2 : -2; sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - StoreSpriteCallbackInData6(sprite, AnimBowMonStep1_Callback); + StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback); sprite->callback = TranslateMonSpriteLinear; } -static void AnimBowMonStep1_Callback(struct Sprite* sprite) +static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4435,30 +4437,30 @@ static void AnimBowMonStep1_Callback(struct Sprite* sprite) if (++sprite->data[0] > 3) { sprite->data[0] = 0; - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; } } -static void AnimBowMonStep2(struct Sprite* sprite) +static void AnimBowMon_Step2(struct Sprite* sprite) { sprite->data[0] = 4; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) ? -3 : 3; sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - StoreSpriteCallbackInData6(sprite, AnimBowMonStep4); + StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4); sprite->callback = TranslateMonSpriteLinear; } -static void AnimBowMonStep3(struct Sprite* sprite) +static void AnimBowMon_Step3(struct Sprite* sprite) { if (++sprite->data[0] > 8) { sprite->data[0] = 0; - sprite->callback = AnimBowMonStep3_Callback; + sprite->callback = AnimBowMon_Step3_Callback; } } -static void AnimBowMonStep3_Callback(struct Sprite* sprite) +static void AnimBowMon_Step3_Callback(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4482,11 +4484,11 @@ static void AnimBowMonStep3_Callback(struct Sprite* sprite) if (++sprite->data[0] > 2) { ResetSpriteRotScale(sprite->data[3]); - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; } } -static void AnimBowMonStep4(struct Sprite* sprite) +static void AnimBowMon_Step4(struct Sprite* sprite) { DestroyAnimSprite(sprite); } @@ -4697,7 +4699,7 @@ void AnimSlashSlice(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = 0; - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep3); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step3); sprite->callback = RunStoredCallbackWhenAnimEnds; } @@ -4705,7 +4707,7 @@ void AnimFalseSwipeSlice(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep1); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } @@ -4716,29 +4718,29 @@ void AnimFalseSwipePositionedSlice(struct Sprite* sprite) StartSpriteAnim(sprite, 1); sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = AnimFalseSwipeSliceStep3; + sprite->callback = AnimFalseSwipeSlice_Step3; } -static void AnimFalseSwipeSliceStep1(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step1(struct Sprite* sprite) { if (++sprite->data[0] > 8) { sprite->data[0] = 12; sprite->data[1] = 8; sprite->data[2] = 0; - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep2); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step2); sprite->callback = TranslateSpriteLinear; } } -static void AnimFalseSwipeSliceStep2(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step2(struct Sprite* sprite) { sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = AnimFalseSwipeSliceStep3; + sprite->callback = AnimFalseSwipeSlice_Step3; } -static void AnimFalseSwipeSliceStep3(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite) { if (++sprite->data[0] > 1) { @@ -4764,10 +4766,10 @@ void AnimEndureEnergy(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = AnimEndureEnergyStep; + sprite->callback = AnimEndureEnergy_Step; } -static void AnimEndureEnergyStep(struct Sprite* sprite) +static void AnimEndureEnergy_Step(struct Sprite* sprite) { if (++sprite->data[0] > sprite->data[1]) { @@ -4790,10 +4792,10 @@ void AnimSharpenSphere(struct Sprite* sprite) sprite->data[3] = 0; sprite->data[4] = 0; sprite->data[5] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); - sprite->callback = AnimSharpenSphereStep; + sprite->callback = AnimSharpenSphere_Step; } -static void AnimSharpenSphereStep(struct Sprite* sprite) +static void AnimSharpenSphere_Step(struct Sprite* sprite) { if (++sprite->data[0] >= sprite->data[1]) { @@ -4894,26 +4896,27 @@ void AnimTask_Conversion2AlphaBlend(u8 taskId) } } -void sub_80A5E34(u8 taskId) +// Unused +static void AnimTask_HideBattlersHealthbox(u8 taskId) { u8 i; for (i = 0; i < gBattlersCount; i++) { - if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == B_SIDE_PLAYER) + if (gBattleAnimArgs[0] == TRUE && GetBattlerSide(i) == B_SIDE_PLAYER) SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); - if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == B_SIDE_OPPONENT) + if (gBattleAnimArgs[1] == TRUE && GetBattlerSide(i) == B_SIDE_OPPONENT) SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); } DestroyAnimVisualTask(taskId); } -void sub_80A5EA8(u8 taskId) +// Unused +static void AnimTask_ShowBattlersHealthbox(u8 taskId) { u8 i; - for (i = 0; i < gBattlersCount; i++) SetHealthboxSpriteVisible(gHealthboxSpriteIds[i]); @@ -4936,10 +4939,10 @@ void AnimMoon(struct Sprite* sprite) sprite->oam.shape = SPRITE_SHAPE(8x8); sprite->oam.size = SPRITE_SIZE(64x32); sprite->data[0] = 0; - sprite->callback = AnimMoonStep; + sprite->callback = AnimMoon_Step; } -static void AnimMoonStep(struct Sprite* sprite) +static void AnimMoon_Step(struct Sprite* sprite) { if (sprite->data[0]) DestroyAnimSprite(sprite); @@ -4954,10 +4957,10 @@ void AnimMoonlightSparkle(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = 0; sprite->data[4] = 1; - sprite->callback = AnimMoonlightSparkleStep; + sprite->callback = AnimMoonlightSparkle_Step; } -static void AnimMoonlightSparkleStep(struct Sprite* sprite) +static void AnimMoonlightSparkle_Step(struct Sprite* sprite) { if (++sprite->data[1] > 1) { @@ -4973,12 +4976,12 @@ static void AnimMoonlightSparkleStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimTask_FadeScreenBlueStep(u8); +void AnimTask_FadeScreenBlue_Step(u8); void AnimTask_FadeScreenBlue(u8 taskId) { - int a = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + int a = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE) & 0xFFFF; int b; int c; int d; @@ -4999,11 +5002,11 @@ void AnimTask_FadeScreenBlue(u8 taskId) b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE); BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31)); - gTasks[taskId].func = AnimTask_FadeScreenBlueStep; + gTasks[taskId].func = AnimTask_FadeScreenBlue_Step; gTasks[taskId].func(taskId); } -void AnimTask_FadeScreenBlueStep(u8 taskId) +void AnimTask_FadeScreenBlue_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -5126,10 +5129,10 @@ void AnimHornHit(struct Sprite* sprite) sprite->oam.matrixNum = (ST_OAM_HFLIP | ST_OAM_VFLIP); } - sprite->callback = AnimHornHitStep; + sprite->callback = AnimHornHit_Step; } -static void AnimHornHitStep(struct Sprite* sprite) +static void AnimHornHit_Step(struct Sprite* sprite) { sprite->data[2] += sprite->data[3]; sprite->data[4] += sprite->data[5]; @@ -5169,19 +5172,19 @@ void AnimTask_DoubleTeam(u8 taskId) gSprites[obj].data[0] = 0; gSprites[obj].data[1] = i << 7; gSprites[obj].data[2] = taskId; - gSprites[obj].callback = AnimTask_DoubleTeamCallback; + gSprites[obj].callback = AnimDoubleTeam; task->data[3]++; i++; } - task->func = AnimTask_DoubleTeamStep; + task->func = AnimTask_DoubleTeam_Step; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); } -static void AnimTask_DoubleTeamStep(u8 taskId) +static void AnimTask_DoubleTeam_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -5197,7 +5200,7 @@ static void AnimTask_DoubleTeamStep(u8 taskId) } } -static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) +static void AnimDoubleTeam(struct Sprite* sprite) { if (++sprite->data[3] > 1) { @@ -5208,7 +5211,7 @@ static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) if (sprite->data[0] > 64) { gTasks[sprite->data[2]].data[3]--; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } else { @@ -5263,81 +5266,87 @@ void AnimTask_MusicNotesClearRainbowBlend(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimWavyMusicNotes(struct Sprite* sprite) +#define sMoveTimer data[0] +#define sBlendTableIdx data[1] +#define sBlendTimer data[2] +#define sBlendCycleTime data[3] +#define sX data[4] +#define sY data[5] +#define sVelocX data[6] +#define sVelocY data[7] + +static void AnimWavyMusicNotes(struct Sprite* sprite) { u8 index; - u8 a; - u8 b; - + u8 x, y; SetSpriteCoordsToAnimAttackerCoords(sprite); StartSpriteAnim(sprite, gBattleAnimArgs[0]); if ((index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[gBattleAnimArgs[1]][0])) != 0xFF) sprite->oam.paletteNum = index; - sprite->data[1] = gBattleAnimArgs[1]; - sprite->data[2] = 0; - sprite->data[3] = gBattleAnimArgs[2]; + sprite->sBlendTableIdx = gBattleAnimArgs[1]; + sprite->sBlendTimer = 0; + sprite->sBlendCycleTime = gBattleAnimArgs[2]; if (IsContest()) { - a = 48; - b = 40; + x = 48; + y = 40; } else { - a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } - sprite->data[4] = sprite->x << 4; - sprite->data[5] = sprite->y << 4; - AnimWavyMusicNotesGetNextPos(a - sprite->x, b - sprite->y, &sprite->data[6], &sprite->data[7], 40); - sprite->callback = AnimWavyMusicNotesStep; + sprite->sX = sprite->x << 4; + sprite->sY = sprite->y << 4; + AnimWavyMusicNotes_CalcVelocity(x - sprite->x, y - sprite->y, &sprite->sVelocX, &sprite->sVelocY, 40); + sprite->callback = AnimWavyMusicNotes_Step; } -static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16 *c, s16 *d, s8 e) +static void AnimWavyMusicNotes_CalcVelocity(s16 x, s16 y, s16 *velocX, s16 *velocY, s8 xSpeedFactor) { - int f; - int g; - - if (a < 0) - e = -e; + int x2; + int time; + if (x < 0) + xSpeedFactor = -xSpeedFactor; - f = a << 8; - g = f / e; - if (g == 0) - g = 1; + x2 = x * 256; + time = x2 / xSpeedFactor; + if (time == 0) + time = 1; - *c = f / g; - *d = (b << 8) / g; + *velocX = x2 / time; + *velocY = (y * 256) / time; } -static void AnimWavyMusicNotesStep(struct Sprite* sprite) +static void AnimWavyMusicNotes_Step(struct Sprite* sprite) { - s16 y, yDelta; + s16 y, trigIdx; u8 index; - sprite->data[0]++; - yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8); - sprite->data[4] += sprite->data[6]; - sprite->data[5] += sprite->data[7]; - sprite->x = sprite->data[4] >> 4; - sprite->y = sprite->data[5] >> 4; - sprite->y2 = Sin(yDelta, 15); + sprite->sMoveTimer++; + trigIdx = sprite->sMoveTimer * 5 - ((sprite->sMoveTimer * 5 / 256) << 8); + sprite->sX += sprite->sVelocX; + sprite->sY += sprite->sVelocY; + sprite->x = sprite->sX >> 4; + sprite->y = sprite->sY >> 4; + sprite->y2 = Sin(trigIdx, 15); y = sprite->y; - if (sprite->x < -16 || sprite->x > 256 || y < -16 || y > 128) + if (sprite->x < -16 || sprite->x > DISPLAY_WIDTH + 16 || y < -16 || y > DISPLAY_HEIGHT - 32) { DestroySpriteAndMatrix(sprite); } else { - if (sprite->data[3] && ++sprite->data[2] > sprite->data[3]) + if (sprite->sBlendCycleTime && ++sprite->sBlendTimer > sprite->sBlendCycleTime) { - sprite->data[2] = 0; - if (++sprite->data[1] > 3) - sprite->data[1] = 0; + sprite->sBlendTimer = 0; + if (++sprite->sBlendTableIdx > 3) + sprite->sBlendTableIdx = 0; - index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[sprite->data[1]][0]); + index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[sprite->sBlendTableIdx][0]); if (index != 0xFF) sprite->oam.paletteNum = index; } @@ -5358,10 +5367,10 @@ void AnimFlyingMusicNotes(struct Sprite* sprite) sprite->data[5] = sprite->y << 4; sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5; sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5; - sprite->callback = AnimFlyingMusicNotesStep; + sprite->callback = AnimFlyingMusicNotes_Step; } -static void AnimFlyingMusicNotesStep(struct Sprite* sprite) +static void AnimFlyingMusicNotes_Step(struct Sprite* sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; @@ -5421,10 +5430,10 @@ void AnimSlowFlyingMusicNotes(struct Sprite* sprite) sprite->data[4] = sprite->data[3] - 40; InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimSlowFlyingMusicNotesStep; + sprite->callback = AnimSlowFlyingMusicNotes_Step; } -static void AnimSlowFlyingMusicNotesStep(struct Sprite* sprite) +static void AnimSlowFlyingMusicNotes_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -5456,7 +5465,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) void AnimThoughtBubble(struct Sprite* sprite) { - u8 a; + u8 animNum; u8 battler; if (gBattleAnimArgs[0] == 0) @@ -5465,15 +5474,15 @@ void AnimThoughtBubble(struct Sprite* sprite) battler = gBattleAnimTarget; SetSpriteNextToMonHead(battler, sprite); - a = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1; + animNum = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1; sprite->data[0] = gBattleAnimArgs[1]; - sprite->data[1] = a + 2; - StartSpriteAnim(sprite, a); - StoreSpriteCallbackInData6(sprite, AnimThoughtBubbleStep); + sprite->data[1] = animNum + 2; + StartSpriteAnim(sprite, animNum); + StoreSpriteCallbackInData6(sprite, AnimThoughtBubble_Step); sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void AnimThoughtBubbleStep(struct Sprite* sprite) +static void AnimThoughtBubble_Step(struct Sprite* sprite) { if (--sprite->data[0] == 0) { @@ -5494,11 +5503,11 @@ void AnimMetronomeFinger(struct Sprite* sprite) SetSpriteNextToMonHead(battler, sprite); sprite->data[0] = 0; - StoreSpriteCallbackInData6(sprite, AnimMetronomeFingerStep); + StoreSpriteCallbackInData6(sprite, AnimMetronomeFinger_Step); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimMetronomeFingerStep(struct Sprite* sprite) +static void AnimMetronomeFinger_Step(struct Sprite* sprite) { if (++sprite->data[0] > 16) { @@ -5527,17 +5536,17 @@ void AnimFollowMeFinger(struct Sprite* sprite) sprite->data[2] = sprite->subpriority; sprite->data[3] = sprite->subpriority + 4; sprite->data[4] = 0; - StoreSpriteCallbackInData6(sprite, AnimFollowMeFingerStep1); + StoreSpriteCallbackInData6(sprite, AnimFollowMeFinger_Step1); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimFollowMeFingerStep1(struct Sprite* sprite) +static void AnimFollowMeFinger_Step1(struct Sprite* sprite) { if (++sprite->data[4] > 12) - sprite->callback = AnimFollowMeFingerStep2; + sprite->callback = AnimFollowMeFinger_Step2; } -static void AnimFollowMeFingerStep2(struct Sprite* sprite) +static void AnimFollowMeFinger_Step2(struct Sprite* sprite) { s16 x1, x2; @@ -5547,7 +5556,7 @@ static void AnimFollowMeFingerStep2(struct Sprite* sprite) if (--sprite->data[0] == 0) { sprite->x2 = 0; - sprite->callback = AnimMetronomeFingerStep; + sprite->callback = AnimMetronomeFinger_Step; return; } else @@ -5588,21 +5597,21 @@ void AnimTauntFinger(struct Sprite* sprite) sprite->data[0] = 3; } - sprite->callback = AnimTauntFingerStep1; + sprite->callback = AnimTauntFinger_Step1; } -static void AnimTauntFingerStep1(struct Sprite* sprite) +static void AnimTauntFinger_Step1(struct Sprite* sprite) { if (++sprite->data[1] > 10) { sprite->data[1] = 0; StartSpriteAnim(sprite, sprite->data[0]); - StoreSpriteCallbackInData6(sprite, AnimTauntFingerStep2); + StoreSpriteCallbackInData6(sprite, AnimTauntFinger_Step2); sprite->callback = RunStoredCallbackWhenAnimEnds; } } -static void AnimTauntFingerStep2(struct Sprite* sprite) +static void AnimTauntFinger_Step2(struct Sprite* sprite) { if (++sprite->data[1] > 5) DestroyAnimSprite(sprite); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 5974491f1..455c4dfc7 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -2072,7 +2072,7 @@ static void CreateMinimizeSprite(struct Task* task, u8 taskId) { if ((matrixNum = AllocOamMatrix()) == 0xFF) { - obj_delete_but_dont_free_vram(&gSprites[spriteId]); + DestroySpriteWithActiveSheet(&gSprites[spriteId]); } else { @@ -2100,7 +2100,7 @@ static void ClonedMinizeSprite_Step(struct Sprite *sprite) { gTasks[sprite->data[1]].data[sprite->data[2]]--; FreeOamMatrix(sprite->oam.matrixNum); - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } @@ -3082,7 +3082,7 @@ static void FakeOutStep2(u8 taskId) { gTasks[taskId].data[11] = 0x88; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN); - BlendPalettes(SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0), 16, RGB_WHITE); + BlendPalettes(GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0), 16, RGB_WHITE); } else if (gTasks[taskId].data[10] > 4) { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index b7c1fa2cc..4a279249d 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -4743,7 +4743,7 @@ void AnimTask_OdorSleuthMovement(u8 taskId) spriteId2 = CloneBattlerSpriteWithBlend(ANIM_TARGET); if (spriteId2 < 0) { - obj_delete_but_dont_free_vram(&gSprites[spriteId1]); + DestroySpriteWithActiveSheet(&gSprites[spriteId1]); DestroyAnimVisualTask(taskId); return; } @@ -4823,7 +4823,7 @@ static void MoveOdorSleuthClone(struct Sprite *sprite) if (sprite->data[5] < 0) { gTasks[sprite->data[6]].data[sprite->data[7]]--; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } break; diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index a531cec44..43c451f9f 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -563,7 +563,7 @@ static void sub_80B59D4(u8 taskId) break; if (task->data[1] <= 80) break; - obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); + DestroySpriteWithActiveSheet(&gSprites[task->data[0]]); task->data[4] = 1; break; case 1: @@ -718,7 +718,7 @@ static void sub_80B5DCC(u8 taskId) break; case 2: gSprites[task->data[14]].invisible = TRUE; - obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); + DestroySpriteWithActiveSheet(&gSprites[task->data[0]]); FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -980,7 +980,7 @@ static void sub_80B6468(u8 taskId) right = 240; top = 0; bottom = 112; - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0)); gTasks[taskId].func = sub_80B65F0; } diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index fa59a20c9..61fe2fb8f 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1242,7 +1242,7 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) } } -u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7) +u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7) { u32 selectedPalettes = 0; u32 shift; @@ -1467,7 +1467,7 @@ s16 CloneBattlerSpriteWithBlend(u8 animBattler) return -1; } -void obj_delete_but_dont_free_vram(struct Sprite *sprite) +void DestroySpriteWithActiveSheet(struct Sprite *sprite) { sprite->usingSheet = TRUE; DestroySprite(sprite); @@ -2204,7 +2204,7 @@ static void SpriteCB_PunchTrace(struct Sprite *sprite) if (--sprite->data[0] == 0) { --gTasks[sprite->data[1]].data[5]; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index 157af414a..9deb261dc 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -326,7 +326,7 @@ u32 UnpackSelectedBattleAnimPalettes(s16 selector) u8 arg5 = (selector >> 5) & 1; u8 arg6 = (selector >> 6) & 1; - return SelectBattleAnimSpriteAndBgPalettes(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); + return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); } static void AnimSimplePaletteBlendStep(struct Sprite *sprite) @@ -659,7 +659,7 @@ void AnimTask_InvertScreenColor(u8 taskId) u8 targetBattler = gBattleAnimTarget; if (gBattleAnimArgs[0] & 0x100) - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); if (gBattleAnimArgs[1] & 0x100) selectedPalettes |= (0x10000 << attackerBattler); if (gBattleAnimArgs[2] & 0x100) diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 1c31bfdca..97e1714ba 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -1024,7 +1024,7 @@ static void sub_80B3D78(u8 taskId) ++task->data[0]; break; case 2: - obj_delete_but_dont_free_vram(&gSprites[task->data[15]]); + DestroySpriteWithActiveSheet(&gSprites[task->data[15]]); ++task->data[0]; break; case 3: diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 238e0b3bd..677200b90 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -660,7 +660,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId) priority = gSprites[spriteId].oam.priority; subpriority = gSprites[spriteId].subpriority; gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId); - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId); gTasks[taskId].data[0]++; break; diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 184d21884..4a44031db 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -279,7 +279,7 @@ static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite) else { --gTasks[sprite->data[1]].data[sprite->data[2]]; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } @@ -584,7 +584,7 @@ void AnimTask_Flash(u8 taskId) sub_80BB790(selectedPalettes, 0); gTasks[taskId].data[14] = selectedPalettes >> 16; - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; sub_80BB790(selectedPalettes, 0xFFFF); gTasks[taskId].data[15] = selectedPalettes; gTasks[taskId].data[0] = 0; @@ -856,7 +856,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -874,7 +874,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -892,7 +892,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; From bcab96fb861f258a7a4cd8813d557d32b89a269c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 13:54:37 -0400 Subject: [PATCH 012/105] Sync battle anim - effects 2 --- data/battle_anim_scripts.s | 2 +- include/battle_anim.h | 9 +- src/battle_anim_effects_2.c | 329 +++++++++++++++++++----------------- src/battle_anim_effects_3.c | 2 +- src/battle_anim_mons.c | 2 +- src/battle_anim_rock.c | 4 +- 6 files changed, 180 insertions(+), 168 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 85d7201f1..cb7f8ca9e 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -3478,7 +3478,7 @@ ExtremeSpeedContinue:: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein - createvisualtask AnimTask_StretchAttacker, 2 + createvisualtask AnimTask_AttackerStretchAndDisappear, 2 loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 3 waitforvisualfinish delay 1 diff --git a/include/battle_anim.h b/include/battle_anim.h index fde2a87aa..3ee687e55 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -231,8 +231,8 @@ void AnimCirclingFinger(struct Sprite *); void AnimBouncingMusicNote(struct Sprite *); void AnimVibrateBattlerBack(struct Sprite *); void AnimMovingClamp(struct Sprite *); -void Anim_KinesisZapEnergy(struct Sprite *); -void Anim_SwordsDanceBlade(struct Sprite *); +void AnimKinesisZapEnergy(struct Sprite *); +void AnimSwordsDanceBlade(struct Sprite *); void AnimSonicBoomProjectile(struct Sprite *); void AnimAirWaveProjectile(struct Sprite *); void AnimVoidLines(struct Sprite *); @@ -253,7 +253,7 @@ void AnimSpeedDust(struct Sprite *); void AnimHealBellMusicNote(struct Sprite *); void AnimMagentaHeart(struct Sprite *); void AnimRedHeartProjectile(struct Sprite *); -void AnimParticuleBurst(struct Sprite *); +void AnimParticleBurst(struct Sprite *); void AnimRedHeartRising(struct Sprite *); void AnimOrbitFast(struct Sprite *); void AnimOrbitScatter(struct Sprite *); @@ -309,7 +309,6 @@ void AnimForesightMagnifyingGlass(struct Sprite *); void AnimMeteorMashStar(struct Sprite *); void AnimBlockX(struct Sprite *); void AnimUnusedItemBagSteal(struct Sprite *); -void AnimParticuleBurst(struct Sprite *); void AnimKnockOffStrike(struct Sprite *); void AnimRecycle(struct Sprite *); @@ -364,7 +363,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler); void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback); void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite); -void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); +void TranslateSpriteInEllipse(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite); void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 455c4dfc7..cc67bbbc5 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -14,24 +14,24 @@ static void AnimBouncingMusicNote_Step(struct Sprite *); static void AnimMovingClamp_Step(struct Sprite *); static void AnimMovingClamp_End(struct Sprite *); -static void AnimTask_WithdrawStep(u8); -static void AnimSwordsDanceBladeStep(struct Sprite *); +static void AnimTask_Withdraw_Step(u8); +static void AnimSwordsDanceBlade_Step(struct Sprite *); static void AnimVoidLines_Step(struct Sprite *); static void AnimFallingCoin_Step(struct Sprite *); static void AnimBulletSeed_Step1(struct Sprite *); static void AnimBulletSeed_Step2(struct Sprite *); -static void AnimViceGripPincerStep(struct Sprite *); -static void AnimGuillotinePincerStep1(struct Sprite *); -static void AnimGuillotinePincerStep2(struct Sprite *); -static void AnimGuillotinePincerStep3(struct Sprite *); -static void AnimTask_GrowAndGreyscaleStep(u8); -static void AnimTask_MinimizeStep1(u8); +static void AnimViceGripPincer_Step(struct Sprite *); +static void AnimGuillotinePincer_Step1(struct Sprite *); +static void AnimGuillotinePincer_Step2(struct Sprite *); +static void AnimGuillotinePincer_Step3(struct Sprite *); +static void AnimTask_GrowAndGreyscale_Step(u8); +static void AnimTask_Minimize_Step1(u8); static void CreateMinimizeSprite(struct Task *, u8); static void ClonedMinizeSprite_Step(struct Sprite *); -static void AnimTask_SplashStep(u8); -static void AnimTask_GrowAndShrinkStep(u8); -static void ThrashMoveMonStep(u8); -static void ThrashMoveMon(u8); +static void AnimTask_Splash_Step(u8); +static void AnimTask_GrowAndShrink_Step(u8); +static void AnimTask_ThrashMoveMonHorizontal_Step(u8); +static void AnimTask_ThrashMoveMonVertical_Step(u8); static void AnimTask_SketchDrawMon_Step(u8); static void AnimPencil_Step(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); @@ -41,27 +41,26 @@ static void AnimSoftBoiledEgg_Step3_Callback1(struct Sprite *); static void AnimSoftBoiledEgg_Step3_Callback2(struct Sprite *); static void AnimSoftBoiledEgg_Step4(struct Sprite *); static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *); -static void StretchAttacker_Step(u8); -static void ExtremeSpeedImpact_Step(u8); -static void ExtremeSpeedMonReappear_Step(u8); -static void SpeedDust_Step1(u8); -static void FakeOutStep1(u8); -static void FakeOutStep2(u8); +static void AnimTask_AttackerStretchAndDisappear_Step(u8); +static void AnimTask_ExtremeSpeedImpact_Step(u8); +static void AnimTask_ExtremeSpeedMonReappear_Step(u8); +static void AnimTask_SpeedDust_Step(u8); +static void AnimTask_FakeOut_Step1(u8); +static void AnimTask_FakeOut_Step2(u8); static void AnimRedHeartProjectile_Step(struct Sprite *); static void AnimRedHeartRising_Step(struct Sprite *); -static void HeartsBackground_Step(u8); -static void ScaryFace_Step(u8); -static void AnimOrbitFastStep(struct Sprite *); -static void AnimOrbitScatterStep(struct Sprite *); +static void AnimTask_HeartsBackground_Step(u8); +static void AnimTask_ScaryFace_Step(u8); +static void AnimOrbitFast_Step(struct Sprite *); +static void AnimOrbitScatter_Step(struct Sprite *); static void AnimMovementWaves_Step(struct Sprite *); -static void UproarDistortion_Step(u8); +static void AnimTask_UproarDistortion_Step(u8); static void AnimJaggedMusicNote_Step(struct Sprite *); static void AnimPerishSongMusicNote_Step1(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *); -// Data // Unused -static const struct SpriteTemplate sUnknown_83E3ADC = +static const struct SpriteTemplate sCirclingFingerSpriteTemplate = { .tileTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER, @@ -72,19 +71,20 @@ static const struct SpriteTemplate sUnknown_83E3ADC = .callback = AnimCirclingFinger, }; -static const union AnimCmd sUnknown_83E3AF4[] = +static const union AnimCmd sAnim_BouncingMusicNote[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E3AFC[] = +// Unused (association assumed) +static const union AnimCmd *const sAnims_BouncingMusicNote[] = { - sUnknown_83E3AF4, + sAnim_BouncingMusicNote, }; // Unused -static const struct SpriteTemplate sUnknown_83E3B00 = +static const struct SpriteTemplate sBouncingMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -96,7 +96,7 @@ static const struct SpriteTemplate sUnknown_83E3B00 = }; // Unused -static const struct SpriteTemplate sUnknown_83E3B18 = +static const struct SpriteTemplate sVibrateBattlerBackSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -108,7 +108,7 @@ static const struct SpriteTemplate sUnknown_83E3B18 = }; // Unused -static const struct SpriteTemplate sUnknown_83E3B30 = +static const struct SpriteTemplate sMovingClampSpriteTemplate = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, @@ -119,7 +119,7 @@ static const struct SpriteTemplate sUnknown_83E3B30 = .callback = AnimMovingClamp, }; -static const union AnimCmd sUnknown_83E3B48[] = +static const union AnimCmd sAnim_SmallExplosion[] = { ANIMCMD_FRAME(0, 9), ANIMCMD_FRAME(16, 3), @@ -128,32 +128,32 @@ static const union AnimCmd sUnknown_83E3B48[] = ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E3B5C[] = +static const union AnimCmd *const sAnims_SmallExplosion[] = { - sUnknown_83E3B48, + sAnim_SmallExplosion, }; -static const union AffineAnimCmd sUnknown_83E3B60[] = +static const union AffineAnimCmd sAffineAnim_SmallExplosion[] = { AFFINEANIMCMD_FRAME(80, 80, 0, 0), AFFINEANIMCMD_FRAME(9, 9, 0, 18), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sUnknown_83E3B78[] = +static const union AffineAnimCmd *const sAffineAnims_SmallExplosion[] = { - sUnknown_83E3B60, + sAffineAnim_SmallExplosion, }; // Unused -static const struct SpriteTemplate sUnknown_83E3B7C = +static const struct SpriteTemplate sSmallExplosionSpriteTemplate = { .tileTag = ANIM_TAG_EXPLOSION_6, .paletteTag = ANIM_TAG_EXPLOSION_6, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = sUnknown_83E3B5C, + .anims = sAnims_SmallExplosion, .images = NULL, - .affineAnims = sUnknown_83E3B78, + .affineAnims = sAffineAnims_SmallExplosion, .callback = AnimSpriteOnMonPos, }; @@ -183,7 +183,7 @@ const struct SpriteTemplate gKinesisZapEnergySpriteTemplate = .anims = sKinesisZapEnergyAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = Anim_KinesisZapEnergy, + .callback = AnimKinesisZapEnergy, }; static const union AffineAnimCmd sSwordsDanceBladeAffineAnimCmds[] = @@ -207,7 +207,7 @@ const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sSwordsDanceBladeAffineAnimTable, - .callback = Anim_SwordsDanceBlade, + .callback = AnimSwordsDanceBlade, }; const struct SpriteTemplate gSonicBoomSpriteTemplate = @@ -316,7 +316,7 @@ const struct SpriteTemplate gEggThrowSpriteTemplate = .callback = AnimThrowProjectile, }; -static const struct SpriteTemplate sUnknown_83E3D18 = +static const struct SpriteTemplate sVoidLinesSpriteTemplate = { .tileTag = ANIM_TAG_VOID_LINES, .paletteTag = ANIM_TAG_VOID_LINES, @@ -830,7 +830,9 @@ const struct SpriteTemplate gBellSpriteTemplate = .callback = AnimSpriteOnMonPos, }; -const u16 gMusicNotePaletteTagsTable[] = +#define NUM_MUSIC_NOTE_PAL_TAGS 3 + +const u16 gMusicNotePaletteTagsTable[NUM_MUSIC_NOTE_PAL_TAGS] = { ANIM_TAG_MUSIC_NOTES_2, ANIM_SPRITES_START - 1, @@ -859,7 +861,7 @@ const struct SpriteTemplate gMagentaHeartSpriteTemplate = .callback = AnimMagentaHeart, }; -static const union AffineAnimCmd sUnknown_83E4200[] = +static const union AffineAnimCmd sAffineAnims_StretchBattlerUp[] = { AFFINEANIMCMD_FRAME(10, -13, 0, 10), AFFINEANIMCMD_FRAME(-10, 13, 0, 10), @@ -885,7 +887,7 @@ const struct SpriteTemplate gRedHeartBurstSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimParticuleBurst, + .callback = AnimParticleBurst, }; const struct SpriteTemplate gRedHeartRisingSpriteTemplate = @@ -1044,7 +1046,7 @@ const struct SpriteTemplate gDevilSpriteTemplate = .callback = AnimDevil, }; -static const union AnimCmd sFurySwipesAnimCmd1[] = +static const union AnimCmd sAnim_FurySwipes[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1053,7 +1055,7 @@ static const union AnimCmd sFurySwipesAnimCmd1[] = ANIMCMD_END, }; -static const union AnimCmd sFurySwipesAnimCmd2[] = +static const union AnimCmd sAnim_FurySwipes_Flipped[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -1062,10 +1064,10 @@ static const union AnimCmd sFurySwipesAnimCmd2[] = ANIMCMD_END, }; -static const union AnimCmd *const sFurySwipesAnimTable[] = +static const union AnimCmd *const sAnims_FurySwipes[] = { - sFurySwipesAnimCmd1, - sFurySwipesAnimCmd2, + sAnim_FurySwipes, + sAnim_FurySwipes_Flipped, }; const struct SpriteTemplate gFurySwipesSpriteTemplate = @@ -1073,7 +1075,7 @@ const struct SpriteTemplate gFurySwipesSpriteTemplate = .tileTag = ANIM_TAG_SWIPE, .paletteTag = ANIM_TAG_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sFurySwipesAnimTable, + .anims = sAnims_FurySwipes, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFurySwipes, @@ -1209,21 +1211,30 @@ const struct SpriteTemplate gGuardRingSpriteTemplate = .callback = AnimGuardRing, }; -// Functions +#define sAmplitudeX data[1] +#define sCircleSpeed data[2] +#define sMoveSteps data[3] +#define sAmplitudeY data[4] + void AnimCirclingFinger(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->y += gBattleAnimArgs[1]; - sprite->data[1] = gBattleAnimArgs[2]; - sprite->data[2] = gBattleAnimArgs[4]; - sprite->data[3] = gBattleAnimArgs[5]; - sprite->data[4] = gBattleAnimArgs[3]; + sprite->sAmplitudeX = gBattleAnimArgs[2]; + sprite->sCircleSpeed = gBattleAnimArgs[4]; + sprite->sMoveSteps = gBattleAnimArgs[5]; + sprite->sAmplitudeY = gBattleAnimArgs[3]; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInEllipseOverDuration; + sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } +#undef sAmplitudeX +#undef sCircleSpeed +#undef sMoveSteps +#undef sAmplitudeY + void AnimBouncingMusicNote(struct Sprite *sprite) { u8 battler; @@ -1326,10 +1337,10 @@ static void AnimMovingClamp_End(struct Sprite *sprite) void AnimTask_Withdraw(u8 taskId) { PrepareBattlerSpriteForRotScale(gBattlerSpriteIds[gBattleAnimAttacker], ST_OAM_OBJ_NORMAL); - gTasks[taskId].func = AnimTask_WithdrawStep; + gTasks[taskId].func = AnimTask_Withdraw_Step; } -static void AnimTask_WithdrawStep(u8 taskId) +static void AnimTask_Withdraw_Step(u8 taskId) { u8 spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; s16 rotation; @@ -1379,7 +1390,7 @@ static void AnimTask_WithdrawStep(u8 taskId) // arg 0: x pixel offset // arg 1: y pixel offset // arg 2: vertical flip -void Anim_KinesisZapEnergy(struct Sprite *sprite) +void AnimKinesisZapEnergy(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -1407,14 +1418,14 @@ void Anim_KinesisZapEnergy(struct Sprite *sprite) // Animates a sword that rises into the air after a brief pause. // arg 0: x pixel offset // arg 1: y pixel offset -void Anim_SwordsDanceBlade(struct Sprite *sprite) +void AnimSwordsDanceBlade(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, AnimSwordsDanceBladeStep); + StoreSpriteCallbackInData6(sprite, AnimSwordsDanceBlade_Step); } -static void AnimSwordsDanceBladeStep(struct Sprite *sprite) +static void AnimSwordsDanceBlade_Step(struct Sprite *sprite) { sprite->data[0] = 6; sprite->data[2] = sprite->x; @@ -1555,13 +1566,13 @@ void AnimAirWaveProjectile(struct Sprite *sprite) } } -static void AirCutterProjectileStep2(u8 taskId) +static void AirCutterProjectile_Step2(u8 taskId) { if (gTasks[taskId].data[1] == 0) DestroyAnimVisualTask(taskId); } -static void AirCutterProjectileStep1(u8 taskId) +static void AirCutterProjectile_Step1(u8 taskId) { if (gTasks[taskId].data[0]-- <= 0) { @@ -1586,7 +1597,7 @@ static void AirCutterProjectileStep1(u8 taskId) gTasks[taskId].data[1]++; PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-SOUND_PAN_TARGET)); if (gTasks[taskId].data[1] > 2) - gTasks[taskId].func = AirCutterProjectileStep2; + gTasks[taskId].func = AirCutterProjectile_Step2; } } @@ -1687,13 +1698,13 @@ void AnimTask_AirCutterProjectile(u8 taskId) if (gTasks[taskId].data[2] < 3) gTasks[taskId].data[2] = 3; - gTasks[taskId].func = AirCutterProjectileStep1; + gTasks[taskId].func = AirCutterProjectile_Step1; } void AnimVoidLines(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); - sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sUnknown_83E3D18.paletteTag) << 4); + sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4); sprite->callback = AnimVoidLines_Step; } @@ -1865,10 +1876,10 @@ void AnimViceGripPincer(struct Sprite *sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + endXOffset; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + endYOffset; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimViceGripPincerStep); + StoreSpriteCallbackInData6(sprite, AnimViceGripPincer_Step); } -static void AnimViceGripPincerStep(struct Sprite *sprite) +static void AnimViceGripPincer_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1902,10 +1913,10 @@ void AnimGuillotinePincer(struct Sprite *sprite) InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[0]; sprite->data[6] = sprite->data[0]; - sprite->callback = AnimGuillotinePincerStep1; + sprite->callback = AnimGuillotinePincer_Step1; } -static void AnimGuillotinePincerStep1(struct Sprite *sprite) +static void AnimGuillotinePincer_Step1(struct Sprite *sprite) { if (AnimTranslateLinear(sprite) && sprite->animEnded) { @@ -1920,11 +1931,11 @@ static void AnimGuillotinePincerStep1(struct Sprite *sprite) sprite->data[2] ^= 1; sprite->data[4] = 0; sprite->data[3] = 0; - sprite->callback = AnimGuillotinePincerStep2; + sprite->callback = AnimGuillotinePincer_Step2; } } -static void AnimGuillotinePincerStep2(struct Sprite *sprite) +static void AnimGuillotinePincer_Step2(struct Sprite *sprite) { if (sprite->data[3]) { @@ -1941,11 +1952,11 @@ static void AnimGuillotinePincerStep2(struct Sprite *sprite) sprite->data[3] = 0; sprite->animPaused = FALSE; StartSpriteAnim(sprite, sprite->data[5] ^ 1); - sprite->callback = AnimGuillotinePincerStep3; + sprite->callback = AnimGuillotinePincer_Step3; } } -static void AnimGuillotinePincerStep3(struct Sprite *sprite) +static void AnimGuillotinePincer_Step3(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); @@ -1962,10 +1973,10 @@ void AnimTask_GrowAndGreyscale(u8 taskId) SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); gTasks[taskId].data[0] = 80; - gTasks[taskId].func = AnimTask_GrowAndGreyscaleStep; + gTasks[taskId].func = AnimTask_GrowAndGreyscale_Step; } -static void AnimTask_GrowAndGreyscaleStep(u8 taskId) +static void AnimTask_GrowAndGreyscale_Step(u8 taskId) { if (--gTasks[taskId].data[0] == -1) { @@ -1993,10 +2004,10 @@ void AnimTask_Minimize(u8 taskId) task->data[5] = 0; task->data[6] = 0; task->data[7] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - task->func = AnimTask_MinimizeStep1; + task->func = AnimTask_Minimize_Step1; } -static void AnimTask_MinimizeStep1(u8 taskId) +static void AnimTask_Minimize_Step1(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2124,11 +2135,11 @@ void AnimTask_Splash(u8 taskId) task->data[3] = 0; task->data[4] = 0; PrepareAffineAnimInTaskData(task, spriteId, sSplashEffectAffineAnimCmds); - task->func = AnimTask_SplashStep; + task->func = AnimTask_Splash_Step; } } -static void AnimTask_SplashStep(u8 taskId) +static void AnimTask_Splash_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2189,10 +2200,10 @@ void AnimTask_GrowAndShrink(u8 taskId) u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); PrepareAffineAnimInTaskData(task, spriteId, sGrowAndShrinkAffineAnimCmds); - task->func = AnimTask_GrowAndShrinkStep; + task->func = AnimTask_GrowAndShrink_Step; } -static void AnimTask_GrowAndShrinkStep(u8 taskId) +static void AnimTask_GrowAndShrink_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2261,10 +2272,10 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId) task->data[0] = spriteId; task->data[1] = 0; PrepareAffineAnimInTaskData(task, spriteId, sThrashMoveMonAffineAnimCmds); - task->func = ThrashMoveMonStep; + task->func = AnimTask_ThrashMoveMonHorizontal_Step; } -static void ThrashMoveMonStep(u8 taskId) +static void AnimTask_ThrashMoveMonHorizontal_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2290,10 +2301,10 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) task->data[2] *= -1; - task->func = ThrashMoveMon; + task->func = AnimTask_ThrashMoveMonVertical_Step; } -static void ThrashMoveMon(u8 taskId) +static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2537,7 +2548,7 @@ void AnimBlendThinRing(struct Sprite *sprite) sprite->callback(sprite); } -void sub_80A8C84(struct Sprite *sprite) +static void AnimHyperVoiceRing_WaitEnd(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -2548,14 +2559,14 @@ void sub_80A8C84(struct Sprite *sprite) void AnimHyperVoiceRing(struct Sprite *sprite) { - u16 r9 = 0; - u16 r6 = 0; - s16 sp0 = 0; - s16 sp1 = 0; - u8 sp4; + u16 startX = 0; + u16 startY = 0; + s16 x = 0; + s16 y = 0; + u8 yCoordType; u8 battler1; u8 battler2; - u8 r10; + u8 xCoordType; if (gBattleAnimArgs[5] == 0) { @@ -2570,18 +2581,18 @@ void AnimHyperVoiceRing(struct Sprite *sprite) if (!gBattleAnimArgs[6]) { - r10 = 0; - sp4 = 1; + xCoordType = BATTLER_COORD_X; + yCoordType = BATTLER_COORD_Y; } else { - r10 = 2; - sp4 = 3; + xCoordType = BATTLER_COORD_X_2; + yCoordType = BATTLER_COORD_Y_PIC_OFFSET; } if (GetBattlerSide(battler1) != B_SIDE_PLAYER) { - r9 = GetBattlerSpriteCoord(battler1, r10) + gBattleAnimArgs[0]; + startX = GetBattlerSpriteCoord(battler1, xCoordType) + gBattleAnimArgs[0]; if (IsBattlerSpriteVisible(BATTLE_PARTNER(battler2))) sprite->subpriority = gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler2)]].subpriority - 1; else @@ -2589,7 +2600,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite) } else { - r9 = GetBattlerSpriteCoord(battler1, r10) - gBattleAnimArgs[0]; + startX = GetBattlerSpriteCoord(battler1, xCoordType) - gBattleAnimArgs[0]; if (!IsContest() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler1))) { if (gSprites[gBattlerSpriteIds[battler1]].x < gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler1)]].x) @@ -2604,30 +2615,30 @@ void AnimHyperVoiceRing(struct Sprite *sprite) } - r6 = GetBattlerSpriteCoord(battler1, sp4) + gBattleAnimArgs[1]; + startY = GetBattlerSpriteCoord(battler1, yCoordType) + gBattleAnimArgs[1]; if (!IsContest() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler2))) { - SetAverageBattlerPositions(battler2, gBattleAnimArgs[6], &sp0, &sp1); + SetAverageBattlerPositions(battler2, gBattleAnimArgs[6], &x, &y); } else { - sp0 = GetBattlerSpriteCoord(battler2, r10); - sp1 = GetBattlerSpriteCoord(battler2, sp4); + x = GetBattlerSpriteCoord(battler2, xCoordType); + y = GetBattlerSpriteCoord(battler2, yCoordType); } if (GetBattlerSide(battler2) != B_SIDE_PLAYER) - sp0 += gBattleAnimArgs[3]; + x += gBattleAnimArgs[3]; else - sp0 -= gBattleAnimArgs[3]; + x -= gBattleAnimArgs[3]; - sp1 += gBattleAnimArgs[4]; - sprite->x = sprite->data[1] = r9; - sprite->y = sprite->data[3] = r6; - sprite->data[2] = sp0; - sprite->data[4] = sp1; + y += gBattleAnimArgs[4]; + sprite->x = sprite->data[1] = startX; + sprite->y = sprite->data[3] = startY; + sprite->data[2] = x; + sprite->data[4] = y; sprite->data[0] = gBattleAnimArgs[0]; InitAnimLinearTranslation(sprite); - sprite->callback = sub_80A8C84; + sprite->callback = AnimHyperVoiceRing_WaitEnd; sprite->callback(sprite); } @@ -2749,17 +2760,18 @@ static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTask_StretchAttacker(u8 taskId) +// Used by Extremespeed +void AnimTask_AttackerStretchAndDisappear(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = spriteId; PrepareAffineAnimInTaskData(task, spriteId, sStretchAttackerAffineAnimCmds); - task->func = StretchAttacker_Step; + task->func = AnimTask_AttackerStretchAndDisappear_Step; } -static void StretchAttacker_Step(u8 taskId) +static void AnimTask_AttackerStretchAndDisappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2792,10 +2804,10 @@ void AnimTask_ExtremeSpeedImpact(u8 taskId) } task->data[15] = GetAnimBattlerSpriteId(ANIM_TARGET); - task->func = ExtremeSpeedImpact_Step; + task->func = AnimTask_ExtremeSpeedImpact_Step; } -static void ExtremeSpeedImpact_Step(u8 taskId) +static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2853,10 +2865,10 @@ void AnimTask_ExtremeSpeedMonReappear(u8 taskId) task->data[13] = 14; task->data[14] = 2; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = ExtremeSpeedMonReappear_Step; + task->func = AnimTask_ExtremeSpeedMonReappear_Step; } -static void ExtremeSpeedMonReappear_Step(u8 taskId) +static void AnimTask_ExtremeSpeedMonReappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2901,10 +2913,10 @@ void AnimTask_SpeedDust(u8 taskId) task->data[13] = 0; task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); - task->func = SpeedDust_Step1; + task->func = AnimTask_SpeedDust_Step; } -static void SpeedDust_Step1(u8 taskId) +static void AnimTask_SpeedDust_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2984,15 +2996,15 @@ void AnimSpeedDust(struct Sprite *sprite) void AnimTask_LoadMusicNotesPals(u8 taskId) { int i; - u8 paletteNums[3]; + u8 paletteNums[NUM_MUSIC_NOTE_PAL_TAGS]; paletteNums[0] = IndexOfSpritePaletteTag(ANIM_TAG_MUSIC_NOTES_2); - for (i = 1; i < 3; i++) + for (i = 1; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) paletteNums[i] = AllocSpritePalette(ANIM_SPRITES_START - i); gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000); LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->multiUseBuffer); - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) LoadPalette(&gMonSpritesGfxPtr->multiUseBuffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer); @@ -3003,7 +3015,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId) { int i; - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) FreeSpritePaletteByTag(gMusicNotePaletteTagsTable[i]); DestroyAnimVisualTask(taskId); @@ -3045,30 +3057,30 @@ void AnimMagentaHeart(struct Sprite *sprite) void AnimTask_FakeOut(u8 taskId) { - u16 win0h = IsContest() ? 0x98 : 0xF0; + u16 win0h = IsContest() ? 152 : DISPLAY_WIDTH; u16 win0v = 0; gBattle_WIN0H = win0h; - gBattle_WIN0V = 0xA0; + gBattle_WIN0V = DISPLAY_HEIGHT; SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_CLR | WININ_WIN1_OBJ | WININ_WIN1_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_BG_ALL); SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN1_CLR | WININ_WIN1_OBJ | WININ_WIN1_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN0_BG_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN); - SetGpuReg(REG_OFFSET_BLDY, BLDCNT_TGT1_OBJ); + SetGpuReg(REG_OFFSET_BLDY, 16); gTasks[taskId].data[0] = win0v; gTasks[taskId].data[1] = win0h; - gTasks[taskId].func = FakeOutStep1; + gTasks[taskId].func = AnimTask_FakeOut_Step1; } -static void FakeOutStep1(u8 taskId) +static void AnimTask_FakeOut_Step1(u8 taskId) { gTasks[taskId].data[0] += 13; gTasks[taskId].data[1] -= 13; if (gTasks[taskId].data[0] >= gTasks[taskId].data[1]) { gBattle_WIN0H = 0; - gTasks[taskId].func = FakeOutStep2; + gTasks[taskId].func = AnimTask_FakeOut_Step2; } else { @@ -3076,13 +3088,13 @@ static void FakeOutStep1(u8 taskId) } } -static void FakeOutStep2(u8 taskId) +static void AnimTask_FakeOut_Step2(u8 taskId) { if (++gTasks[taskId].data[10] == 5) { gTasks[taskId].data[11] = 0x88; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN); - BlendPalettes(GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0), 16, RGB_WHITE); + BlendPalettes(GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 16, RGB_WHITE); } else if (gTasks[taskId].data[10] > 4) { @@ -3102,7 +3114,7 @@ void AnimTask_StretchTargetUp(u8 taskId) if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), sUnknown_83E4200); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), sAffineAnims_StretchBattlerUp); gSprites[spriteId].x2 = 4; } else @@ -3123,7 +3135,7 @@ void AnimTask_StretchAttackerUp(u8 taskId) if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), sUnknown_83E4200); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), sAffineAnims_StretchBattlerUp); gSprites[spriteId].x2 = 4; } else @@ -3163,7 +3175,7 @@ static void AnimRedHeartProjectile_Step(struct Sprite *sprite) } } -void AnimParticuleBurst(struct Sprite *sprite) +void AnimParticleBurst(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3188,7 +3200,7 @@ void AnimParticuleBurst(struct Sprite *sprite) void AnimRedHeartRising(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; - sprite->y = 160; + sprite->y = DISPLAY_HEIGHT; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; sprite->callback = WaitAnimForDuration; @@ -3234,10 +3246,10 @@ void AnimTask_HeartsBackground(u8 taskId) if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); - gTasks[taskId].func = HeartsBackground_Step; + gTasks[taskId].func = AnimTask_HeartsBackground_Step; } -static void HeartsBackground_Step(u8 taskId) +static void AnimTask_HeartsBackground_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -3322,10 +3334,10 @@ void AnimTask_ScaryFace(u8 taskId) if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); - gTasks[taskId].func = ScaryFace_Step; + gTasks[taskId].func = AnimTask_ScaryFace_Step; } -static void ScaryFace_Step(u8 taskId) +static void AnimTask_ScaryFace_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -3394,11 +3406,11 @@ void AnimOrbitFast(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[7] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - sprite->callback = AnimOrbitFastStep; + sprite->callback = AnimOrbitFast_Step; sprite->callback(sprite); } -static void AnimOrbitFastStep(struct Sprite *sprite) +static void AnimOrbitFast_Step(struct Sprite *sprite) { if (sprite->data[1] >= 64 && sprite->data[1] <= 191) sprite->subpriority = sprite->data[7] + 1; @@ -3443,14 +3455,15 @@ void AnimOrbitScatter(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); - sprite->callback = AnimOrbitScatterStep; + sprite->callback = AnimOrbitScatter_Step; } -static void AnimOrbitScatterStep(struct Sprite *sprite) +static void AnimOrbitScatter_Step(struct Sprite *sprite) { sprite->x2 += sprite->data[0]; sprite->y2 += sprite->data[1]; - if (sprite->x + sprite->x2 + 16 > 272u || sprite->y + sprite->y2 > 160 || sprite->y + sprite->y2 < -16) + if (sprite->x + sprite->x2 + 16 > ((u32)DISPLAY_WIDTH + 32) + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } @@ -3472,7 +3485,7 @@ void AnimSpitUpOrb(struct Sprite *sprite) sprite->callback = AnimSpitUpOrb_Step; } -static void sub_80AA3D4(struct Sprite *sprite) +static void AnimEyeSparkle_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -3481,7 +3494,7 @@ static void sub_80AA3D4(struct Sprite *sprite) void AnimEyeSparkle(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->callback = sub_80AA3D4; + sprite->callback = AnimEyeSparkle_Step; } void AnimAngel(struct Sprite *sprite) @@ -3510,7 +3523,7 @@ void AnimAngel(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80AA49C(struct Sprite *sprite) +static void AnimPinkHeart_Step(struct Sprite *sprite) { sprite->data[5]++; sprite->x2 = Sin(sprite->data[3], 5); @@ -3539,7 +3552,7 @@ void AnimPinkHeart(struct Sprite *sprite) sprite->data[3] = (sprite->data[3] + 3) & 0xFF; if (sprite->data[3] > 70) { - sprite->callback = sub_80AA49C; + sprite->callback = AnimPinkHeart_Step; sprite->x += sprite->x2; sprite->y += sprite->y2; sprite->x2 = 0; @@ -3640,10 +3653,10 @@ void AnimTask_UproarDistortion(u8 taskId) u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], spriteId, sUproarAffineAnimCmds); - gTasks[taskId].func = UproarDistortion_Step; + gTasks[taskId].func = AnimTask_UproarDistortion_Step; } -static void UproarDistortion_Step(u8 taskId) +static void AnimTask_UproarDistortion_Step(u8 taskId) { if (!RunAffineAnimFromTaskData(&gTasks[taskId])) DestroyAnimVisualTask(taskId); @@ -3696,7 +3709,7 @@ void AnimPerishSongMusicNote2(struct Sprite *sprite) } if (++sprite->data[0] == sprite->data[1]) - SetGreyscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0); + SetGreyscaleOrOriginalPalette(sprite->oam.paletteNum + 16, FALSE); if (sprite->data[0] == sprite->data[1] + 80) DestroyAnimSprite(sprite); @@ -3782,7 +3795,7 @@ void AnimGuardRing(struct Sprite *sprite) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { - SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); + SetAverageBattlerPositions(gBattleAnimAttacker, FALSE, &sprite->x, &sprite->y); sprite->y += 40; StartSpriteAffineAnim(sprite, 1); @@ -3803,12 +3816,12 @@ void AnimGuardRing(struct Sprite *sprite) void AnimTask_IsFuryCutterHitRight(u8 taskId) { - gBattleAnimArgs[7] = gAnimDisableStructPtr->furyCutterCounter & 1; + gBattleAnimArgs[ARG_RET_ID] = gAnimDisableStructPtr->furyCutterCounter & 1; DestroyAnimVisualTask(taskId); } void AnimTask_GetFuryCutterHitCount(u8 taskId) { - gBattleAnimArgs[7] = gAnimDisableStructPtr->furyCutterCounter; + gBattleAnimArgs[ARG_RET_ID] = gAnimDisableStructPtr->furyCutterCounter; DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 4a279249d..09cb223ae 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1031,7 +1031,7 @@ const struct SpriteTemplate gUnknown_83FF6D4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimParticuleBurst, + .callback = AnimParticleBurst, }; const struct SpriteTemplate gBlockXSpriteTemplate = diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 61fe2fb8f..144a8db75 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -462,7 +462,7 @@ static void TranslateSpriteInLissajousCurveOverDuration(struct Sprite *sprite) // x = a * sin(theta0 + dtheta * t) // y = b * cos(theta0 + dtheta * t) -void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) +void TranslateSpriteInEllipse(struct Sprite *sprite) { if (sprite->data[3]) { diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 7ec10630a..2690e4237 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -328,7 +328,7 @@ static void AnimFallingRock(struct Sprite *sprite) sprite->data[4] = -70; sprite->data[5] = gBattleAnimArgs[2]; StoreSpriteCallbackInData6(sprite, sub_80B46B4); - sprite->callback = TranslateSpriteInEllipseOverDuration; + sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } @@ -341,7 +341,7 @@ static void sub_80B46B4(struct Sprite *sprite) sprite->data[3] = 32; sprite->data[4] = -24; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInEllipseOverDuration; + sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } From 0c74385de76c621d139c67650c1e910716d00393 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 14:12:51 -0400 Subject: [PATCH 013/105] Sync battle anim - effects 3 --- data/battle_anim_scripts.s | 2 +- include/constants/battle_anim.h | 2 +- src/battle_anim.c | 4 +- src/battle_anim_effects_3.c | 504 ++++++++++++++++++-------------- 4 files changed, 295 insertions(+), 217 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index cb7f8ca9e..93904a4fa 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -8157,7 +8157,7 @@ HyperFangInContest:: goto HyperFangContinue Move_TRI_ATTACK:: - loadspritegfx ANIM_TAG_TRI_FORCE_TRIANGLE + loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 playsewithpan SE_M_TRI_ATTACK, 192 delay 20 diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 4363b7fca..3ea251966 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -237,7 +237,7 @@ #define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227) #define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228) #define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229) -#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230) +#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230) #define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231) #define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232) #define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233) diff --git a/src/battle_anim.c b/src/battle_anim.c index 3b466329c..b1479a7bb 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1343,7 +1343,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_ATTACK_TRIANGLE}, {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, @@ -1636,7 +1636,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_ATTACK_TRIANGLE}, {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 09cb223ae..74737beec 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -15,8 +15,7 @@ #include "constants/songs.h" #include "constants/weather.h" -// Function Declarations -static void AnimBlackSmokeStep(struct Sprite *); +static void AnimBlackSmoke_Step(struct Sprite *); static void AnimWhiteHalo_Step1(struct Sprite *); static void AnimWhiteHalo_Step2(struct Sprite *); static void AnimMeanLookEye_Step1(struct Sprite *); @@ -39,39 +38,38 @@ static void AnimMiniTwinklingStar_Step(struct Sprite *); static void AnimGreenStar_Step1(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *); -static void AnimTask_RockMonBackAndForthStep(u8); -static void AnimSweetScentPetalStep(struct Sprite *); -static void AnimTask_FlailMovementStep(u8); -static void AnimFlatterConfettiStep(struct Sprite *); -static void AnimFlatterSpotlightStep(struct Sprite *); -static void AnimReversalOrbStep(struct Sprite *); -static void AnimTask_RolePlaySilhouetteStep1(u8); -static void AnimTask_RolePlaySilhouetteStep2(u8); -static void AnimTask_AcidArmorStep(u8); -static void AnimTask_DeepInhaleStep(u8); -static void AnimYawnCloudStep(struct Sprite *); -static void AnimTask_SquishAndSweatDropletsStep(u8); +static void AnimTask_RockMonBackAndForth_Step(u8); +static void AnimSweetScentPetal_Step(struct Sprite *); +static void AnimTask_FlailMovement_Step(u8); +static void AnimFlatterConfetti_Step(struct Sprite *); +static void AnimFlatterSpotlight_Step(struct Sprite *); +static void AnimReversalOrb_Step(struct Sprite *); +static void AnimTask_RolePlaySilhouette_Step1(u8); +static void AnimTask_RolePlaySilhouette_Step2(u8); +static void AnimTask_AcidArmor_Step(u8); +static void AnimTask_DeepInhale_Step(u8); +static void AnimYawnCloud_Step(struct Sprite *); +static void AnimTask_SquishAndSweatDroplets_Step(u8); static void CreateSweatDroplets(u8, bool8); -static void AnimTask_FacadeColorBlendStep(u8); -static void AnimRoarNoiseLineStep(struct Sprite *); -static void AnimTask_GlareEyeDotsStep(u8); +static void AnimTask_FacadeColorBlend_Step(u8); +static void AnimRoarNoiseLine_Step(struct Sprite *); +static void AnimTask_GlareEyeDots_Step(u8); static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *); -static void AnimTask_BarrageBallStep(u8); +static void AnimTask_BarrageBall_Step(u8); static void AnimSmellingSaltsHand_Step(struct Sprite *); -static void AnimTask_SmellingSaltsSquishStep(u8); -static void AnimSmellingSaltExclamationStep(struct Sprite *); -static void AnimHelpingHandClapStep(struct Sprite *); -static void AnimTask_HelpingHandAttackerMovementStep(u8); -static void AnimForesightMagnifyingGlassStep(struct Sprite *); +static void AnimTask_SmellingSaltsSquish_Step(u8); +static void AnimSmellingSaltExclamation_Step(struct Sprite *); +static void AnimHelpingHandClap_Step(struct Sprite *); +static void AnimTask_HelpingHandAttackerMovement_Step(u8); +static void AnimForesightMagnifyingGlass_Step(struct Sprite *); static void AnimTask_MonToSubstituteDoll(u8); -static void AnimBlockXStep(struct Sprite *); +static void AnimBlockX_Step(struct Sprite *); static void AnimTask_OdorSleuthMovementWaitFinish(u8); static void MoveOdorSleuthClone(struct Sprite *); -static void AnimTask_TeeterDanceMovementStep(u8); -static void AnimRecycleStep(struct Sprite *); -static void AnimTask_SlackOffSquishStep(u8); +static void AnimTask_TeeterDanceMovement_Step(u8); +static void AnimRecycle_Step(struct Sprite *); +static void AnimTask_SlackOffSquish_Step(u8); -// Data static const union AnimCmd sScratchAnimCmds[] = { ANIMCMD_FRAME(0, 4), @@ -383,7 +381,7 @@ const struct SpriteTemplate gRapidSpinSpriteTemplate = .callback = AnimRapidSpin, }; -static const union AffineAnimCmd sUnknown_83FF080[] = +static const union AffineAnimCmd sAffineAnims_Torment[] = { AFFINEANIMCMD_FRAME(-12, 8, 0, 4), AFFINEANIMCMD_FRAME(20, -20, 0, 4), @@ -418,8 +416,8 @@ static const union AffineAnimCmd *const sTriAttackTriangleAffineAnimTable[] = const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = { - .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE, - .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE, + .tileTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, + .paletteTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = sTriAttackTriangleAnimTable, .images = NULL, @@ -669,7 +667,7 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate = .callback = AnimSweetScentPetal, }; -static const u16 sUnknown_83FF33C[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused +static const u16 sUnusedPalette[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused static const union AnimCmd sPainSplitAnimCmds[] = { @@ -1023,7 +1021,7 @@ const struct SpriteTemplate gMeteorMashStarSpriteTemplate = .callback = AnimMeteorMashStar, }; -const struct SpriteTemplate gUnknown_83FF6D4 = +static const struct SpriteTemplate sUnusedStarBurstSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -1045,7 +1043,7 @@ const struct SpriteTemplate gBlockXSpriteTemplate = .callback = AnimBlockX, }; -const struct SpriteTemplate gUnknown_83FF704 = +static const struct SpriteTemplate sUnusedItemBagStealSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -1131,7 +1129,6 @@ static const union AffineAnimCmd sSlackOffSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -// Functions void AnimBlackSmoke(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; @@ -1142,10 +1139,10 @@ void AnimBlackSmoke(struct Sprite *sprite) sprite->data[0] = -gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[4]; - sprite->callback = AnimBlackSmokeStep; + sprite->callback = AnimBlackSmoke_Step; } -static void AnimBlackSmokeStep(struct Sprite *sprite) +static void AnimBlackSmoke_Step(struct Sprite *sprite) { if (sprite->data[1] > 0) { @@ -1162,7 +1159,10 @@ static void AnimBlackSmokeStep(struct Sprite *sprite) void AnimTask_SmokescreenImpact(u8 taskId) { - SmokescreenImpact(GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 8, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 8, 0); + SmokescreenImpact( + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 8, + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 8, + FALSE); DestroyAnimVisualTask(taskId); } @@ -1465,9 +1465,9 @@ void AnimFang(struct Sprite *sprite) void AnimTask_IsTargetPlayerSide(u8 taskId) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; else - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } @@ -1475,9 +1475,9 @@ void AnimTask_IsTargetPlayerSide(u8 taskId) void AnimTask_IsHealingMove(u8 taskId) { if (gAnimMoveDmg > 0) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; else - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } @@ -1616,17 +1616,17 @@ void AnimTask_CreateSpotlight(u8 taskId) if (IsContest()) { SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_OBJ | WININ_WIN1_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN0_BG_ALL); - gBattle_WIN1H = WININ_WIN1_OBJ | WININ_WIN1_BG3 | WIN_RANGE(0, 0xF0) | WIN_RANGE(0x80, 0x0); - gBattle_WIN1V = WININ_WIN0_CLR | WIN_RANGE(0, 0x80); + gBattle_WIN1H = WIN_RANGE(152, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(0, DISPLAY_HEIGHT); SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN0V); } else { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); - gBattle_WIN1H = WIN_RANGE(0, 0xF0); - gBattle_WIN1V = WININ_WIN0_CLR | WIN_RANGE(0, 0x80) | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR | WIN_RANGE(0x40, 0); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0xF0)); + gBattle_WIN1H = WIN_RANGE(0, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(120, DISPLAY_HEIGHT); + SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H); SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); } @@ -1721,13 +1721,13 @@ void AnimTask_RapinSpinMonElevation(u8 taskId) { var3 = gBattle_BG1_X; task->data[8] = var3; - var4 = var3 + 240; + var4 = var3 + DISPLAY_WIDTH; } else { var3 = gBattle_BG2_X; task->data[8] = var3; - var4 = var3 + 240; + var4 = var3 + DISPLAY_WIDTH; } task->data[9] = var4; @@ -1878,7 +1878,7 @@ static void TormentAttacker_Step(u8 taskId) task->data[5] -= 6; } - PrepareAffineAnimInTaskData(task, task->data[15], sUnknown_83FF080); + PrepareAffineAnimInTaskData(task, task->data[15], sAffineAnims_Torment); task->data[1]++; task->data[0] = 1; break; @@ -2040,7 +2040,7 @@ void AnimWishStar(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->x = -16; else - sprite->x = 256; + sprite->x = DISPLAY_WIDTH + 16; sprite->y = 0; sprite->callback = AnimWishStar_Step; @@ -2069,7 +2069,7 @@ static void AnimWishStar_Step(struct Sprite *sprite) } newX = sprite->x + sprite->x2 + 32; - if (newX > 304) + if (newX > DISPLAY_WIDTH + 64) DestroyAnimSprite(sprite); } @@ -2224,7 +2224,7 @@ void AnimTask_TransformMon(u8 taskId) src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11); dest = animBg.bgTiles; - CpuCopy32(src, dest, 0x800); + CpuCopy32(src, dest, MON_PIC_SIZE); LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset); gTasks[taskId].data[0]++; break; @@ -2263,7 +2263,7 @@ void AnimTask_TransformMon(u8 taskId) void AnimTask_IsMonInvisible(u8 taskId) { - gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; + gBattleAnimArgs[ARG_RET_ID] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; DestroyAnimVisualTask(taskId); } @@ -2638,10 +2638,10 @@ void AnimTask_RockMonBackAndForth(u8 taskId) } PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = AnimTask_RockMonBackAndForthStep; + task->func = AnimTask_RockMonBackAndForth_Step; } -static void AnimTask_RockMonBackAndForthStep(u8 taskId) +static void AnimTask_RockMonBackAndForth_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -2708,16 +2708,16 @@ void AnimSweetScentPetal(struct Sprite *sprite) } else { - sprite->x = 240; + sprite->x = DISPLAY_WIDTH; sprite->y = gBattleAnimArgs[0] - 30; } sprite->data[2] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[1]); - sprite->callback = AnimSweetScentPetalStep; + sprite->callback = AnimSweetScentPetal_Step; } -static void AnimSweetScentPetalStep(struct Sprite *sprite) +static void AnimSweetScentPetal_Step(struct Sprite *sprite) { sprite->data[0] += 3; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -2725,7 +2725,7 @@ static void AnimSweetScentPetalStep(struct Sprite *sprite) sprite->x += 5; sprite->y -= 1; - if (sprite->x > 240) + if (sprite->x > DISPLAY_WIDTH) DestroyAnimSprite(sprite); sprite->y2 = Sin(sprite->data[0] & 0xFF, 16); @@ -2758,10 +2758,10 @@ void AnimTask_FlailMovement(u8 taskId) task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = AnimTask_FlailMovementStep; + task->func = AnimTask_FlailMovement_Step; } -static void AnimTask_FlailMovementStep(u8 taskId) +static void AnimTask_FlailMovement_Step(u8 taskId) { int temp; struct Task *task = &gTasks[taskId]; @@ -2959,10 +2959,10 @@ void AnimFlatterConfetti(struct Sprite *sprite) sprite->x = 248; sprite->y = 104; - sprite->callback = AnimFlatterConfettiStep; + sprite->callback = AnimFlatterConfetti_Step; } -static void AnimFlatterConfettiStep(struct Sprite *sprite) +static void AnimFlatterConfetti_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3000,10 +3000,10 @@ void AnimFlatterSpotlight(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->invisible = TRUE; - sprite->callback = AnimFlatterSpotlightStep; + sprite->callback = AnimFlatterSpotlight_Step; } -static void AnimFlatterSpotlightStep(struct Sprite *sprite) +static void AnimFlatterSpotlight_Step(struct Sprite *sprite) { switch (sprite->data[1]) { @@ -3043,11 +3043,11 @@ void AnimReversalOrb(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; - sprite->callback = AnimReversalOrbStep; + sprite->callback = AnimReversalOrb_Step; sprite->callback(sprite); } -static void AnimReversalOrbStep(struct Sprite *sprite) +static void AnimReversalOrb_Step(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->y2 = Cos(sprite->data[1], sprite->data[3] >> 8); @@ -3143,10 +3143,10 @@ void AnimTask_RolePlaySilhouette(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1])); gTasks[taskId].data[0] = spriteId; - gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep1; + gTasks[taskId].func = AnimTask_RolePlaySilhouette_Step1; } -static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) +static void AnimTask_RolePlaySilhouette_Step1(u8 taskId) { if (gTasks[taskId].data[10]++ > 1) { @@ -3157,12 +3157,12 @@ static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) { gTasks[taskId].data[10] = 256; gTasks[taskId].data[11] = 256; - gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep2; + gTasks[taskId].func = AnimTask_RolePlaySilhouette_Step2; } } } -static void AnimTask_RolePlaySilhouetteStep2(u8 taskId) +static void AnimTask_RolePlaySilhouette_Step2(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; @@ -3239,10 +3239,10 @@ void AnimTask_AcidArmor(u8 taskId) scanlineParams.initState = 1; scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = AnimTask_AcidArmorStep; + task->func = AnimTask_AcidArmor_Step; } -static void AnimTask_AcidArmorStep(u8 taskId) +static void AnimTask_AcidArmor_Step(u8 taskId) { struct Task *task; s16 var1; @@ -3365,10 +3365,10 @@ void AnimTask_DeepInhale(u8 taskId) task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], task->data[15], sDeepInhaleAffineAnimCmds); - task->func = AnimTask_DeepInhaleStep; + task->func = AnimTask_DeepInhale_Step; } -static void AnimTask_DeepInhaleStep(u8 taskId) +static void AnimTask_DeepInhale_Step(u8 taskId) { u16 var0; struct Task *task = &gTasks[taskId]; @@ -3426,10 +3426,10 @@ void AnimYawnCloud(struct Sprite *sprite) StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); InitYawnCloudPosition(sprite, sprite->x, sprite->y, destX, destY, 64); sprite->data[0] = 0; - sprite->callback = AnimYawnCloudStep; + sprite->callback = AnimYawnCloud_Step; } -static void AnimYawnCloudStep(struct Sprite *sprite) +static void AnimYawnCloud_Step(struct Sprite *sprite) { int index; @@ -3467,7 +3467,7 @@ void AnimSmokeBallEscapeCloud(struct Sprite *sprite) sprite->callback = DestroyAnimSpriteAfterTimer; } -static void sub_80E1990(u8 taskId) +static void AnimTask_SlideMonForFocusBand_Step2(u8 taskId) { u16 var0 = 0; u16 var1 = 0; @@ -3517,7 +3517,7 @@ static void sub_80E1990(u8 taskId) } } -static void sub_80E1AD8(u8 taskId) +static void AnimTask_SlideMonForFocusBand_Step1(u8 taskId) { u16 var0 = 0; u16 var1 = 0; @@ -3566,7 +3566,7 @@ static void sub_80E1AD8(u8 taskId) { gTasks[taskId].data[0] = 30; gTasks[taskId].data[13] = 0; - gTasks[taskId].func = sub_80E1990; + gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step2; } } @@ -3601,9 +3601,29 @@ void AnimTask_SlideMonForFocusBand(u8 taskId) gTasks[taskId].data[7] = 0; gTasks[taskId].data[4] = gBattleAnimArgs[4]; gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].func = sub_80E1AD8; + gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1; } +#define IDX_ACTIVE_SPRITES 2 // Used by the sprite callback to modify the number of active sprites + +// Task data for AnimTask_SquishAndSweatDroplets +#define tState data[0] +#define tTimer data[1] +#define tActiveSprites data[IDX_ACTIVE_SPRITES] +#define tNumSquishes data[3] +#define tBaseX data[4] +#define tBaseY data[5] +#define tSubpriority data[6] +// data[7]-data[15] used by PrepareAffineAnimInTaskData +#define tBattlerSpriteId data[15] + +// Sprite data for AnimFacadeSweatDrop +#define sTimer data[0] +#define sVelocX data[1] +#define sVelocY data[2] +#define sTaskId data[3] +#define sActiveSpritesIdx data[4] + // Squishes the mon vertically and emits sweat droplets a few times. // arg 0: battler // arg 1: num squishes @@ -3615,58 +3635,61 @@ void AnimTask_SquishAndSweatDroplets(u8 taskId) if (!gBattleAnimArgs[1]) DestroyAnimVisualTask(taskId); - task->data[0] = 0; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = gBattleAnimArgs[1]; + task->tState = 0; + task->tTimer = 0; + task->tActiveSprites = 0; + task->tNumSquishes = gBattleAnimArgs[1]; if (gBattleAnimArgs[0] == ANIM_ATTACKER) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; - task->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); - task->data[5] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); - task->data[6] = GetBattlerSpriteSubpriority(battler); - task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - PrepareAffineAnimInTaskData(task, task->data[15], sFacadeSquishAffineAnimCmds); - task->func = AnimTask_SquishAndSweatDropletsStep; + task->tBaseX = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); + task->tBaseY = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); + task->tSubpriority = GetBattlerSpriteSubpriority(battler); + task->tBattlerSpriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, sFacadeSquishAffineAnimCmds); + task->func = AnimTask_SquishAndSweatDroplets_Step; } -static void AnimTask_SquishAndSweatDropletsStep(u8 taskId) +static void AnimTask_SquishAndSweatDroplets_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - task->data[1]++; - if (task->data[1] == 6) + task->tTimer++; + if (task->tTimer == 6) CreateSweatDroplets(taskId, TRUE); - if (task->data[1] == 18) + if (task->tTimer == 18) CreateSweatDroplets(taskId, FALSE); if (!RunAffineAnimFromTaskData(task)) { - if (--task->data[3] == 0) + if (--task->tNumSquishes == 0) { - task->data[0]++; + // Animation is finished + task->tState++; } else { - task->data[1] = 0; - PrepareAffineAnimInTaskData(task, task->data[15], sFacadeSquishAffineAnimCmds); + // Animation continues, more droplet sprites to create + task->tTimer = 0; + PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, sFacadeSquishAffineAnimCmds); } } break; case 1: - if (task->data[2] == 0) + // Wait for sprites to be destroyed before ending task + if (task->tActiveSprites == 0) DestroyAnimVisualTask(taskId); break; } } -static void CreateSweatDroplets(u8 taskId, bool8 arg1) +static void CreateSweatDroplets(u8 taskId, bool8 lowerDroplets) { u8 i; s8 xOffset, yOffset; @@ -3675,7 +3698,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) s16 yCoords[2]; task = &gTasks[taskId]; - if (!arg1) + if (!lowerDroplets) { xOffset = 18; yOffset = -20; @@ -3686,39 +3709,54 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) yOffset = 20; } - xCoords[0] = task->data[4] - xOffset; - xCoords[1] = task->data[4] - xOffset - 4; - xCoords[2] = task->data[4] + xOffset; - xCoords[3] = task->data[4] + xOffset + 4; - yCoords[0] = task->data[5] + yOffset; - yCoords[1] = task->data[5] + yOffset + 6; + xCoords[0] = task->tBaseX - xOffset; + xCoords[1] = task->tBaseX - xOffset - 4; + xCoords[2] = task->tBaseX + xOffset; + xCoords[3] = task->tBaseX + xOffset + 4; + yCoords[0] = task->tBaseY + yOffset; + yCoords[1] = task->tBaseY + yOffset + 6; for (i = 0; i < 4; i++) { - u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->data[6] - 5); + u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->tSubpriority - 5); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = 0; - gSprites[spriteId].data[1] = i < 2 ? -2 : 2; - gSprites[spriteId].data[2] = -1; - gSprites[spriteId].data[3] = taskId; - gSprites[spriteId].data[4] = 2; - task->data[2]++; + gSprites[spriteId].sTimer = 0; + gSprites[spriteId].sVelocX = i < 2 ? -2 : 2; // First two travel left, remaining travel right + gSprites[spriteId].sVelocY = -1; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES; + task->tActiveSprites++; } } } void AnimFacadeSweatDrop(struct Sprite *sprite) { - sprite->x += sprite->data[1]; - sprite->y += sprite->data[2]; - if (++sprite->data[0] > 6) + sprite->x += sprite->sVelocX; + sprite->y += sprite->sVelocY; + if (++sprite->sTimer > 6) { - gTasks[sprite->data[3]].data[sprite->data[4]]--; + gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--; DestroySprite(sprite); } } +#undef IDX_ACTIVE_SPRITES +#undef tState +#undef tTimer +#undef tActiveSprites +#undef tNumSquishes +#undef tBaseX +#undef tBaseY +#undef tSubpriority +#undef tBattlerSpriteId +#undef sTimer +#undef sVelocX +#undef sVelocY +#undef sTaskId +#undef sActiveSpritesIdx + // Blends the mon sprite's color with a rotating set of colors. // arg 0: battler // arg 1: duration @@ -3730,10 +3768,10 @@ void AnimTask_FacadeColorBlend(u8 taskId) gTasks[taskId].data[1] = gBattleAnimArgs[1]; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16; - gTasks[taskId].func = AnimTask_FacadeColorBlendStep; + gTasks[taskId].func = AnimTask_FacadeColorBlend_Step; } -static void AnimTask_FacadeColorBlendStep(u8 taskId) +static void AnimTask_FacadeColorBlend_Step(u8 taskId) { if (gTasks[taskId].data[1]) { @@ -3789,10 +3827,10 @@ void AnimRoarNoiseLine(struct Sprite *sprite) sprite->hFlip = TRUE; } - sprite->callback = AnimRoarNoiseLineStep; + sprite->callback = AnimRoarNoiseLine_Step; } -static void AnimRoarNoiseLineStep(struct Sprite *sprite) +static void AnimRoarNoiseLine_Step(struct Sprite *sprite) { sprite->data[6] += sprite->data[0]; sprite->data[7] += sprite->data[1]; @@ -3802,130 +3840,169 @@ static void AnimRoarNoiseLineStep(struct Sprite *sprite) DestroyAnimSprite(sprite); } +#define IDX_ACTIVE_SPRITES 10 // Used by the sprite callback to modify the number of active sprites + +// Task data for AnimTask_GlareEyeDots +#define tState data[0] +#define tTimer data[1] +#define tPairNum data[2] +#define tPairMax data[5] +#define tDotOffset data[6] +#define tIsContest data[7] +#define tActiveSprites data[IDX_ACTIVE_SPRITES] +#define tStartX data[11] +#define tStartY data[12] +#define tEndX data[13] +#define tEndY data[14] + +// Sprite data for AnimGlareEyeDot +#define sTimer data[0] +#define sTaskId data[1] +#define sActiveSpritesIdx data[2] + // Makes a series of dots in a trail from the attacker to the target. // arg 0: unused void AnimTask_GlareEyeDots(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[5] = 12; - task->data[6] = 3; - task->data[7] = 0; + task->tPairMax = 12; + task->tDotOffset = 3; + task->tIsContest = FALSE; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; + task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; else - task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; + task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; - task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; - task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - task->func = AnimTask_GlareEyeDotsStep; + task->tStartY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; + task->tEndX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + task->tEndY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + task->func = AnimTask_GlareEyeDots_Step; } -static void AnimTask_GlareEyeDotsStep(u8 taskId) +static void AnimTask_GlareEyeDots_Step(u8 taskId) { u8 i; s16 x, y; struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 3) + // Wait to create next pair of dots + if (++task->tTimer > 3) { - task->data[1] = 0; + task->tTimer = 0; GetGlareEyeDotCoords( - task->data[11], - task->data[12], - task->data[13], - task->data[14], - task->data[5], - task->data[2], + task->tStartX, + task->tStartY, + task->tEndX, + task->tEndY, + task->tPairMax, + task->tPairNum, &x, &y); + // Create dot pair for (i = 0; i < 2; i++) { u8 spriteId = CreateSprite(&gGlareEyeDotSpriteTemplate, x, y, 35); if (spriteId != MAX_SPRITES) { - if (task->data[7] == 0) + if (!task->tIsContest) { if (i == 0) - gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->data[6]; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->tDotOffset; else - gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->data[6]; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->tDotOffset; } else { if (i == 0) { - gSprites[spriteId].x2 = -task->data[6]; - gSprites[spriteId].y2 = task->data[6]; + gSprites[spriteId].x2 = -task->tDotOffset; + gSprites[spriteId].y2 = task->tDotOffset; } else { - gSprites[spriteId].x2 = task->data[6]; - gSprites[spriteId].y2 = -task->data[6]; + gSprites[spriteId].x2 = task->tDotOffset; + gSprites[spriteId].y2 = -task->tDotOffset; } } - gSprites[spriteId].data[0] = 0; - gSprites[spriteId].data[1] = taskId; - gSprites[spriteId].data[2] = 10; - task->data[10]++; + gSprites[spriteId].sTimer = 0; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES; + task->tActiveSprites++; } } - if (task->data[2] == task->data[5]) - task->data[0]++; + if (task->tPairNum == task->tPairMax) + task->tState++; - task->data[2]++; + task->tPairNum++; } break; case 1: - if (task->data[10] == 0) + // Wait for sprites to be destroyed before ending task + if (task->tActiveSprites == 0) DestroyAnimVisualTask(taskId); break; } } -static void GetGlareEyeDotCoords(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, s16 *x, s16 *y) +static void GetGlareEyeDotCoords(s16 startX, s16 startY, s16 endX, s16 endY, u8 pairMax, u8 pairNum, s16 *x, s16 *y) { int x2; int y2; - if (arg5 == 0) + if (pairNum == 0) { - *x = arg0; - *y = arg1; + *x = startX; + *y = startY; return; } - if (arg5 >= arg4) + if (pairNum >= pairMax) { - *x = arg2; - *y = arg3; + *x = endX; + *y = endY; return; } - arg4--; - x2 = (arg0 << 8) + arg5 * (((arg2 - arg0) << 8) / arg4); - y2 = (arg1 << 8) + arg5 * (((arg3 - arg1) << 8) / arg4); + pairMax--; + x2 = (startX << 8) + pairNum * (((endX - startX) << 8) / pairMax); + y2 = (startY << 8) + pairNum * (((endY - startY) << 8) / pairMax); *x = x2 >> 8; *y = y2 >> 8; } void AnimGlareEyeDot(struct Sprite *sprite) { - if (++sprite->data[0] > 36) + if (++sprite->sTimer > 36) { - gTasks[sprite->data[1]].data[sprite->data[2]]--; + gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--; DestroySprite(sprite); } } +#undef IDX_ACTIVE_SPRITES +#undef tState +#undef tTimer +#undef tPairNum +#undef tPairMax +#undef tDotOffset +#undef tIsContest +#undef tActiveSprites +#undef tStartX +#undef tStartY +#undef tEndX +#undef tEndY +#undef sTimer +#undef sTaskId +#undef sActiveSpritesIdx + // Moves a pawprint in a straight line. // arg 0: initial x position // arg 1: initial y position @@ -3964,7 +4041,7 @@ void AnimTask_BarrageBall(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(&gSprites[task->data[15]], 1); - task->func = AnimTask_BarrageBallStep; + task->func = AnimTask_BarrageBall_Step; } else { @@ -3972,7 +4049,7 @@ void AnimTask_BarrageBall(u8 taskId) } } -static void AnimTask_BarrageBallStep(u8 taskId) +static void AnimTask_BarrageBall_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4105,11 +4182,11 @@ void AnimTask_SmellingSaltsSquish(u8 taskId) gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], gTasks[taskId].data[15], sSmellingSaltsSquishAffineAnimCmds); - gTasks[taskId].func = AnimTask_SmellingSaltsSquishStep; + gTasks[taskId].func = AnimTask_SmellingSaltsSquish_Step; } } -static void AnimTask_SmellingSaltsSquishStep(u8 taskId) +static void AnimTask_SmellingSaltsSquish_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4162,10 +4239,10 @@ void AnimSmellingSaltExclamation(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = 0; sprite->data[3] = gBattleAnimArgs[2]; - sprite->callback = AnimSmellingSaltExclamationStep; + sprite->callback = AnimSmellingSaltExclamation_Step; } -static void AnimSmellingSaltExclamationStep(struct Sprite *sprite) +static void AnimSmellingSaltExclamation_Step(struct Sprite *sprite) { if (++sprite->data[0] >= sprite->data[1]) { @@ -4195,10 +4272,10 @@ void AnimHelpingHandClap(struct Sprite *sprite) } sprite->y = 56; - sprite->callback = AnimHelpingHandClapStep; + sprite->callback = AnimHelpingHandClap_Step; } -static void AnimHelpingHandClapStep(struct Sprite *sprite) +static void AnimHelpingHandClap_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4290,9 +4367,9 @@ void AnimTask_HelpingHandAttackerMovement(u8 taskId) task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); if (IsDoubleBattle() == TRUE) { - int x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); - int y = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); - if (x > y) + int attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + int partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); + if (attackerX > partnerX) task->data[14] = 1; else task->data[14] = -1; @@ -4305,10 +4382,10 @@ void AnimTask_HelpingHandAttackerMovement(u8 taskId) task->data[14] = 1; } - task->func = AnimTask_HelpingHandAttackerMovementStep; + task->func = AnimTask_HelpingHandAttackerMovement_Step; } -static void AnimTask_HelpingHandAttackerMovementStep(u8 taskId) +static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4409,10 +4486,10 @@ void AnimForesightMagnifyingGlass(struct Sprite *sprite) sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]); sprite->oam.objMode = ST_OAM_OBJ_BLEND; - sprite->callback = AnimForesightMagnifyingGlassStep; + sprite->callback = AnimForesightMagnifyingGlass_Step; } -static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) +static void AnimForesightMagnifyingGlass_Step(struct Sprite *sprite) { u16 x, y; @@ -4514,7 +4591,7 @@ static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) } } -static void AnimMeteorMashStarStep(struct Sprite *sprite) +static void AnimMeteorMashStar_Step(struct Sprite *sprite) { sprite->x2 = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; sprite->y2 = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4]; @@ -4559,7 +4636,7 @@ void AnimMeteorMashStar(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[4]; sprite->x = sprite->data[0]; sprite->y = sprite->data[1]; - sprite->callback = AnimMeteorMashStarStep; + sprite->callback = AnimMeteorMashStar_Step; } void AnimTask_MonToSubstitute(u8 taskId) @@ -4590,7 +4667,7 @@ void AnimTask_MonToSubstitute(u8 taskId) else { LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, 0, spriteId); - for (i = 0; i < 16; i++) + for (i = 0; i < NUM_TASK_DATA; i++) gTasks[taskId].data[i] = 0; gTasks[taskId].func = AnimTask_MonToSubstituteDoll; @@ -4669,10 +4746,10 @@ void AnimBlockX(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->y2 = y; - sprite->callback = AnimBlockXStep; + sprite->callback = AnimBlockX_Step; } -static void AnimBlockXStep(struct Sprite *sprite) +static void AnimBlockX_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4832,15 +4909,15 @@ static void MoveOdorSleuthClone(struct Sprite *sprite) void AnimTask_GetReturnPowerLevel(u8 taskId) { - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if (gAnimFriendship < 60) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if (gAnimFriendship > 60 && gAnimFriendship < 92) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = 1; if (gAnimFriendship > 91 && gAnimFriendship < 201) - gBattleAnimArgs[7] = 2; + gBattleAnimArgs[ARG_RET_ID] = 2; if (gAnimFriendship > 200) - gBattleAnimArgs[7] = 3; + gBattleAnimArgs[ARG_RET_ID] = 3; DestroyAnimVisualTask(taskId); } @@ -4869,7 +4946,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) gTasks[taskId].data[1] &= 0xFF; x = gSprites[spriteId].x + gSprites[spriteId].x2; - if ((u16)(x + 32) > 304) + if (x < -32 || x > DISPLAY_WIDTH + 32) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -4890,7 +4967,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; isBackPic = FALSE; - x = 272; + x = DISPLAY_WIDTH + 32; } else { @@ -4943,7 +5020,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } } - if ((u16)(x + 32) > 304) + if (x < -32 || x > DISPLAY_WIDTH + 32) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -4956,7 +5033,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) gSprites[spriteId].x2 = -gSprites[spriteId].x - 32; else - gSprites[spriteId].x2 = 272 - gSprites[spriteId].x; + gSprites[spriteId].x2 = DISPLAY_WIDTH + 32 - gSprites[spriteId].x; gTasks[taskId].data[0]++; break; @@ -5101,10 +5178,10 @@ void AnimTask_TeeterDanceMovement(u8 taskId) task->data[11] = 0; task->data[10] = 1; task->data[12] = 0; - task->func = AnimTask_TeeterDanceMovementStep; + task->func = AnimTask_TeeterDanceMovement_Step; } -static void AnimTask_TeeterDanceMovementStep(u8 taskId) +static void AnimTask_TeeterDanceMovement_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -5139,8 +5216,9 @@ static void AnimTask_TeeterDanceMovementStep(u8 taskId) } } -static void AnimKnockOffStrikeStep(struct Sprite *sprite) +static void AnimKnockOffStrike_Step(struct Sprite *sprite) { + // These two cases are identical. if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { sprite->data[1] += sprite->data[0]; @@ -5181,7 +5259,7 @@ void AnimKnockOffStrike(struct Sprite *sprite) sprite->y += gBattleAnimArgs[1]; } - sprite->callback = AnimKnockOffStrikeStep; + sprite->callback = AnimKnockOffStrike_Step; } // Gradually fades a rotating recyle arrow sprite in and back out. @@ -5195,11 +5273,11 @@ void AnimRecycle(struct Sprite *sprite) sprite->data[6] = 0; sprite->data[7] = 16; - sprite->callback = AnimRecycleStep; + sprite->callback = AnimRecycle_Step; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); } -static void AnimRecycleStep(struct Sprite *sprite) +static void AnimRecycle_Step(struct Sprite *sprite) { switch (sprite->data[2]) { @@ -5261,15 +5339,15 @@ static void AnimRecycleStep(struct Sprite *sprite) void AnimTask_GetWeather(u8 taskId) { - gBattleAnimArgs[7] = ANIM_WEATHER_NONE; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_NONE; if (gWeatherMoveAnim & B_WEATHER_SUN) - gBattleAnimArgs[7] = ANIM_WEATHER_SUN; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SUN; else if (gWeatherMoveAnim & B_WEATHER_RAIN) - gBattleAnimArgs[7] = ANIM_WEATHER_RAIN; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_RAIN; else if (gWeatherMoveAnim & B_WEATHER_SANDSTORM) - gBattleAnimArgs[7] = ANIM_WEATHER_SANDSTORM; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SANDSTORM; else if (gWeatherMoveAnim & B_WEATHER_HAIL) - gBattleAnimArgs[7] = ANIM_WEATHER_HAIL; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_HAIL; DestroyAnimVisualTask(taskId); } @@ -5283,10 +5361,10 @@ void AnimTask_SlackOffSquish(u8 taskId) task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(task, task->data[15], sSlackOffSquishAffineAnimCmds); - task->func = AnimTask_SlackOffSquishStep; + task->func = AnimTask_SlackOffSquish_Step; } -static void AnimTask_SlackOffSquishStep(u8 taskId) +static void AnimTask_SlackOffSquish_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; From ba6bb34226855f0dca738890ffed523b0160b1a2 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 14:35:37 -0400 Subject: [PATCH 014/105] Sync battle anim - electric --- include/battle_anim.h | 2 +- src/battle_anim_effects_2.c | 2 +- src/battle_anim_electric.c | 158 +++++++++++++++++++----------------- src/battle_anim_mons.c | 2 +- 4 files changed, 86 insertions(+), 78 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 3ee687e55..4b35ccc8b 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -361,7 +361,7 @@ u8 GetGhostSpriteDefault_Y(u8 battlerId); u8 GetBattlerYCoordWithElevation(u8 battlerId); u8 GetAnimBattlerSpriteId(u8 animBattler); void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback); -void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); +void TranslateSpriteInCircle(struct Sprite *sprite); void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite); void TranslateSpriteInEllipse(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index cc67bbbc5..b16c2d163 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1847,7 +1847,7 @@ void AnimRazorWindTornado(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[5]; sprite->data[3] = gBattleAnimArgs[6]; sprite->data[4] = gBattleAnimArgs[3]; - sprite->callback = TranslateSpriteInCircleOverDuration; + sprite->callback = TranslateSpriteInCircle; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback(sprite); } diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index f6f01a8ef..a34f848f1 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -5,9 +5,9 @@ #include "constants/songs.h" static void AnimLightning(struct Sprite *sprite); -static void sub_80ADC58(struct Sprite *sprite); -static void sub_80ADCB8(struct Sprite *sprite); -static void sub_80ADD4C(struct Sprite *sprite); +static void AnimUnusedSpinningFist(struct Sprite *sprite); +static void AnimUnusedCirclingShock(struct Sprite *sprite); +static void AnimSparkElectricity(struct Sprite *sprite); static void AnimZapCannonSpark(struct Sprite *sprite); static void AnimThunderboltOrb(struct Sprite *sprite); static void AnimSparkElectricityFlashing(struct Sprite *sprite); @@ -20,19 +20,19 @@ static void AnimVoltTackleOrbSlide(struct Sprite *sprite); static void AnimVoltTackleBolt(struct Sprite *sprite); static void AnimGrowingShockWaveOrb(struct Sprite *sprite); static void AnimShockWaveProgressingBolt(struct Sprite *sprite); -static void sub_80ADC3C(struct Sprite *sprite); -static void sub_80ADC9C(struct Sprite *sprite); -static void sub_80ADF38(struct Sprite *sprite); -static void sub_80AE130(struct Sprite *sprite); -static void sub_80AE278(u8 taskId); -static void sub_80AE4F4(struct Sprite *sprite); -static void sub_80AE5BC(u8 taskId); -static void sub_80AE704(struct Sprite *sprite); -static void sub_80AE83C(struct Sprite *sprite); -static bool8 sub_80AEB98(struct Task *task, u8 taskId); -static bool8 sub_80AEE74(struct Task *task, u8 taskId); -static bool8 sub_80AF058(struct Task *task, u8 taskId); -static void sub_80AF0C8(struct Sprite *sprite); +static void AnimLightning_Step(struct Sprite *sprite); +static void AnimUnusedSpinningFist_Step(struct Sprite *sprite); +static void AnimZapCannonSpark_Step(struct Sprite *sprite); +static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite); +static void AnimTask_ElectricBolt_Step(u8 taskId); +static void AnimThunderWave_Step(struct Sprite *sprite); +static void AnimTask_ElectricChargingParticles_Step(u8 taskId); +static void AnimElectricChargingParticles(struct Sprite *sprite); +static void AnimVoltTackleOrbSlide_Step(struct Sprite *sprite); +static bool8 CreateVoltTackleBolt(struct Task *task, u8 taskId); +static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId); +static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId); +static void AnimShockWaveLightning(struct Sprite *sprite); static const union AnimCmd sAnim_Lightning[] = { @@ -60,7 +60,7 @@ const struct SpriteTemplate gLightningSpriteTemplate = .callback = AnimLightning, }; -static const union AffineAnimCmd gUnknown_83E5F50[] = +static const union AffineAnimCmd sAffineAnim_UnusedSpinningFist[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), @@ -68,23 +68,23 @@ static const union AffineAnimCmd gUnknown_83E5F50[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E5F70[] = +static const union AffineAnimCmd *const sAffineAnims_UnusedSpinningFist[] = { - gUnknown_83E5F50, + sAffineAnim_UnusedSpinningFist, }; -const struct SpriteTemplate gUnknown_83E5F74 = +static const struct SpriteTemplate sUnusedSpinningFistSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E5F70, - .callback = sub_80ADC58, + .affineAnims = sAffineAnims_UnusedSpinningFist, + .callback = AnimUnusedSpinningFist, }; -static const union AnimCmd gUnknown_83E5F8C[] = +static const union AnimCmd sAnim_UnusedCirclingShock[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -95,20 +95,20 @@ static const union AnimCmd gUnknown_83E5F8C[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5FA8[] = +static const union AnimCmd *const sAnims_UnusedCirclingShock[] = { - gUnknown_83E5F8C, + sAnim_UnusedCirclingShock, }; -const struct SpriteTemplate gUnknown_83E5FAC = +static const struct SpriteTemplate sUnusedCirclingShockSpriteTemplate = { .tileTag = ANIM_TAG_SHOCK, .paletteTag = ANIM_TAG_SHOCK, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5FA8, + .anims = sAnims_UnusedCirclingShock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ADCB8, + .callback = AnimUnusedCirclingShock, }; const struct SpriteTemplate gSparkElectricitySpriteTemplate = @@ -119,7 +119,7 @@ const struct SpriteTemplate gSparkElectricitySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ADD4C, + .callback = AnimSparkElectricity, }; const struct SpriteTemplate gZapCannonBallSpriteTemplate = @@ -458,31 +458,31 @@ static void AnimLightning(struct Sprite *sprite) else sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; - sprite->callback = sub_80ADC3C; + sprite->callback = AnimLightning_Step; } -static void sub_80ADC3C(struct Sprite *sprite) +static void AnimLightning_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); } -static void sub_80ADC58(struct Sprite *sprite) +static void AnimUnusedSpinningFist(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->x -= gBattleAnimArgs[0]; else sprite->x += gBattleAnimArgs[0]; - sprite->callback = sub_80ADC9C; + sprite->callback = AnimUnusedSpinningFist_Step; } -static void sub_80ADC9C(struct Sprite *sprite) +static void AnimUnusedSpinningFist_Step(struct Sprite *sprite) { if (sprite->affineAnimEnded) DestroySpriteAndMatrix(sprite); } -static void sub_80ADCB8(struct Sprite *sprite) +static void AnimUnusedCirclingShock(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); @@ -501,10 +501,10 @@ static void sub_80ADCB8(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInCircleOverDuration; + sprite->callback = TranslateSpriteInCircle; } -static void sub_80ADD4C(struct Sprite *sprite) +static void AnimSparkElectricity(struct Sprite *sprite) { u8 battler; u32 matrixNum; @@ -512,20 +512,20 @@ static void sub_80ADD4C(struct Sprite *sprite) switch (gBattleAnimArgs[4]) { - case 0: + case ANIM_ATTACKER: battler = gBattleAnimAttacker; break; - case 1: + case ANIM_TARGET: default: battler = gBattleAnimTarget; break; - case 2: + case ANIM_ATK_PARTNER: if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) battler = gBattleAnimAttacker; else battler = BATTLE_PARTNER(gBattleAnimAttacker); break; - case 3: + case ANIM_DEF_PARTNER: if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) battler = BATTLE_PARTNER(gBattleAnimTarget); else @@ -568,11 +568,11 @@ static void AnimZapCannonSpark(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[5]; sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; - sprite->callback = sub_80ADF38; + sprite->callback = AnimZapCannonSpark_Step; sprite->callback(sprite); } -static void sub_80ADF38(struct Sprite *sprite) +static void AnimZapCannonSpark_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -588,7 +588,7 @@ static void sub_80ADF38(struct Sprite *sprite) } } -static void sub_80ADFB0(struct Sprite *sprite) +static void AnimThunderboltOrb_Step(struct Sprite *sprite) { if (--sprite->data[5] == -1) { @@ -608,7 +608,7 @@ static void AnimThunderboltOrb(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[0]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = sub_80ADFB0; + sprite->callback = AnimThunderboltOrb_Step; } static void AnimSparkElectricityFlashing(struct Sprite *sprite) @@ -629,11 +629,11 @@ static void AnimSparkElectricityFlashing(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[5]; sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; - sprite->callback = sub_80AE130; + sprite->callback = AnimSparkElectricityFlashing_Step; sprite->callback(sprite); } -static void sub_80AE130(struct Sprite *sprite) +static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[7], sprite->data[5]); sprite->y2 = Cos(sprite->data[7], sprite->data[5]); @@ -644,6 +644,7 @@ static void sub_80AE130(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Electricity arcs around the target. Used for Paralysis and various electric move hits static void AnimElectricity(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); @@ -657,15 +658,16 @@ static void AnimElectricity(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// The vertical falling thunder bolt used in Thunder Wave/Shock/Bolt void AnimTask_ElectricBolt(u8 taskId) { gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_80AE278; + gTasks[taskId].func = AnimTask_ElectricBolt_Step; } -static void sub_80AE278(u8 taskId) +static void AnimTask_ElectricBolt_Step(u8 taskId) { u16 r8; u16 r2; @@ -735,18 +737,19 @@ static void AnimElectricBoltSegment(struct Sprite *sprite) { if (!sprite->data[0]) { - sprite->oam.shape = ST_OAM_V_RECTANGLE; - sprite->oam.size = ST_OAM_SIZE_0; + sprite->oam.shape = SPRITE_SHAPE(8x16); + sprite->oam.size = SPRITE_SIZE(8x16); } else { - sprite->oam.shape = ST_OAM_SQUARE; - sprite->oam.size = ST_OAM_SIZE_1; + sprite->oam.shape = SPRITE_SHAPE(16x16); + sprite->oam.size = SPRITE_SIZE(16x16); } if (++sprite->data[1] == 15) DestroySprite(sprite); } +// The horizontal bands of electricity used in Thunder Wave static void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; @@ -756,11 +759,11 @@ static void AnimThunderWave(struct Sprite *sprite) spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->x + 32, sprite->y, sprite->subpriority); gSprites[spriteId].oam.tileNum += 8; ++gAnimVisualTaskCount; - gSprites[spriteId].callback = sub_80AE4F4; - sprite->callback = sub_80AE4F4; + gSprites[spriteId].callback = AnimThunderWave_Step; + sprite->callback = AnimThunderWave_Step; } -static void sub_80AE4F4(struct Sprite *sprite) +static void AnimThunderWave_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -771,6 +774,7 @@ static void sub_80AE4F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Animates small electric orbs moving from around the battler inward. For Charge/Shock Wave void AnimTask_ElectricChargingParticles(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -793,10 +797,10 @@ void AnimTask_ElectricChargingParticles(u8 taskId) task->data[11] = gBattleAnimArgs[3]; task->data[12] = 0; task->data[13] = gBattleAnimArgs[2]; - task->func = sub_80AE5BC; + task->func = AnimTask_ElectricChargingParticles_Step; } -static void sub_80AE5BC(u8 taskId) +static void AnimTask_ElectricChargingParticles_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -821,7 +825,7 @@ static void sub_80AE5BC(u8 taskId) sprite->data[4] = task->data[15]; sprite->data[5] = taskId; InitAnimLinearTranslation(sprite); - StoreSpriteCallbackInData6(sprite, sub_80AE704); + StoreSpriteCallbackInData6(sprite, AnimElectricChargingParticles); sprite->callback = RunStoredCallbackWhenAnimEnds; if (++task->data[9] > 15) task->data[9] = 0; @@ -842,7 +846,7 @@ static void sub_80AE5BC(u8 taskId) } } -static void sub_80AE6D0(struct Sprite *sprite) +static void AnimElectricChargingParticles_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -851,15 +855,15 @@ static void sub_80AE6D0(struct Sprite *sprite) } } -static void sub_80AE704(struct Sprite *sprite) +static void AnimElectricChargingParticles(struct Sprite *sprite) { StartSpriteAnim(sprite, 1); - sprite->callback = sub_80AE6D0; + sprite->callback = AnimElectricChargingParticles_Step; } static void AnimGrowingChargeOrb(struct Sprite *sprite) { - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -873,9 +877,10 @@ static void AnimGrowingChargeOrb(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } +// The quick electric burst at the end of Charge / during the Volt Tackle hit static void AnimElectricPuff(struct Sprite *sprite) { - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -891,6 +896,7 @@ static void AnimElectricPuff(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } +// Creates an orb of electricity that grows then slides off-screen. The attacker slides with it static void AnimVoltTackleOrbSlide(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); @@ -900,10 +906,10 @@ static void AnimVoltTackleOrbSlide(struct Sprite *sprite) sprite->data[7] = 16; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) sprite->data[7] *= -1; - sprite->callback = sub_80AE83C; + sprite->callback = AnimVoltTackleOrbSlide_Step; } -static void sub_80AE83C(struct Sprite *sprite) +static void AnimVoltTackleOrbSlide_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -975,6 +981,7 @@ void AnimTask_VoltTackleAttackerReappear(u8 taskId) } } +// The horizontal bolts of electricity for Volt Tackle void AnimTask_VoltTackleBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1036,7 +1043,7 @@ void AnimTask_VoltTackleBolt(u8 taskId) if (++task->data[2] > 0) { task->data[2] = 0; - if (sub_80AEB98(task, taskId) || sub_80AEB98(task, taskId)) + if (CreateVoltTackleBolt(task, taskId) || CreateVoltTackleBolt(task, taskId)) ++task->data[0]; } break; @@ -1047,7 +1054,7 @@ void AnimTask_VoltTackleBolt(u8 taskId) } } -static bool8 sub_80AEB98(struct Task *task, u8 taskId) +static bool8 CreateVoltTackleBolt(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35); @@ -1112,7 +1119,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) task->data[4] = 7; task->data[5] = -1; task->data[11] = 12; - task->data[12] = BattleAnimAdjustPanning(task->data[11] - 76); + task->data[12] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); task->data[13] = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[14] = task->data[12]; task->data[15] = (task->data[13] - task->data[12]) / 3; @@ -1122,7 +1129,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) if (++task->data[1] > 0) { task->data[1] = 0; - if (sub_80AEE74(task, taskId)) + if (CreateShockWaveBoltSprite(task, taskId)) { if (task->data[2] == 5) task->data[0] = 3; @@ -1172,7 +1179,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) } } -static bool8 sub_80AEE74(struct Task *task, u8 taskId) +static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&sShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35); if (spriteId != MAX_SPRITES) @@ -1206,6 +1213,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId) } } +// Just runs timer for sprite. See AnimTask_ShockWaveProgressingBolt static void AnimShockWaveProgressingBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) @@ -1234,7 +1242,7 @@ void AnimTask_ShockWaveLightning(u8 taskId) if (++task->data[1] > 1) { task->data[1] = 0; - if (sub_80AF058(task, taskId)) + if (CreateShockWaveLightningSprite(task, taskId)) ++task->data[0]; } break; @@ -1245,13 +1253,13 @@ void AnimTask_ShockWaveLightning(u8 taskId) } } -static bool8 sub_80AF058(struct Task *task, u8 taskId) +static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].callback = sub_80AF0C8; + gSprites[spriteId].callback = AnimShockWaveLightning; gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = 10; ++task->data[10]; @@ -1262,7 +1270,7 @@ static bool8 sub_80AF058(struct Task *task, u8 taskId) return FALSE; } -static void sub_80AF0C8(struct Sprite *sprite) +static void AnimShockWaveLightning(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 144a8db75..9eb2fa2dd 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -392,7 +392,7 @@ static void SetCallbackToStoredInData6(struct Sprite *sprite) // x = a * sin(theta0 + dtheta * t) // y = a * cos(theta0 + dtheta * t) -void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) +void TranslateSpriteInCircle(struct Sprite *sprite) { if (sprite->data[3]) { From b598507a2e5dd0d14e797f855cbc86f927980893 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 14:51:48 -0400 Subject: [PATCH 015/105] Sync battle anim - fight --- include/battle_anim.h | 4 +- src/battle_anim_effects_2.c | 2 +- src/battle_anim_fight.c | 186 ++++++++++++++++++------------------ src/battle_anim_fire.c | 4 +- src/battle_anim_mons.c | 14 +-- 5 files changed, 104 insertions(+), 106 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 4b35ccc8b..15185b59d 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -404,7 +404,7 @@ void InitAnimLinearTranslation(struct Sprite *sprite); void StartAnimLinearTranslation(struct Sprite *sprite); void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); -void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); +void AnimTranslateLinear_WithFollowup(struct Sprite *sprite); void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite); void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); @@ -425,7 +425,7 @@ u8 GetSpritePalIdxByBattler(u8 a1); void AnimSpriteOnMonPos(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void AnimThrowProjectile(struct Sprite *sprite); -void AnimSnoreZ(struct Sprite *sprite); +void AnimTravelDiagonally(struct Sprite *sprite); s16 CloneBattlerSpriteWithBlend(u8 animBattler); void DestroySpriteWithActiveSheet(struct Sprite *sprite); void AnimTask_AlphaFadeIn(u8 taskId); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index b16c2d163..ab870f792 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -585,7 +585,7 @@ const struct SpriteTemplate gSnoreZSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSnoreZ, + .callback = AnimTravelDiagonally, }; static const union AnimCmd sExplosionAnimCmds[] = diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c index f2c4b687e..c99a00785 100644 --- a/src/battle_anim_fight.c +++ b/src/battle_anim_fight.c @@ -5,7 +5,7 @@ #include "task.h" #include "trig.h" -static void unc_080B08A0(struct Sprite *sprite); +static void AnimUnusedHumanoidFoot(struct Sprite *sprite); static void AnimSlideHandOrFootToTarget(struct Sprite *sprite); static void AnimJumpKick(struct Sprite *sprite); static void AnimBasicFistOrFoot(struct Sprite *sprite); @@ -23,19 +23,19 @@ static void AnimSuperpowerFireball(struct Sprite *sprite); static void AnimArmThrustHit(struct Sprite *sprite); static void AnimRevengeScratch(struct Sprite *sprite); static void AnimFocusPunchFist(struct Sprite *sprite); -static void sub_80B0B2C(struct Sprite *sprite); -static void sub_80B0BD8(struct Sprite *sprite); -static void sub_80B0CB4(struct Sprite *sprite); +static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite); +static void AnimCrossChopHand_Step(struct Sprite *sprite); +static void AnimSlidingKick_Step(struct Sprite *sprite); static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite); static void AnimStompFootStep(struct Sprite *sprite); static void AnimStompFootEnd(struct Sprite *sprite); -static void sub_80B0EF0(struct Sprite *sprite); -static void sub_80B1050(struct Sprite *sprite); -static void sub_80B111C(struct Sprite *sprite); -static void sub_80B11E4(struct Sprite *sprite); -static void sub_80B12A4(struct Sprite *sprite); +static void AnimBrickBreakWall_Step(struct Sprite *sprite); +static void AnimBrickBreakWallShard_Step(struct Sprite *sprite); +static void AnimSuperpowerOrb_Step(struct Sprite *sprite); +static void AnimSuperpowerRock_Step1(struct Sprite *sprite); +static void AnimSuperpowerRock_Step2(struct Sprite *sprite); -const struct SpriteTemplate gUnknown_83E668C = +static const struct SpriteTemplate sUnusedHumanoidFootSpriteTemplate = { .tileTag = ANIM_TAG_HUMANOID_FOOT, .paletteTag = ANIM_TAG_HUMANOID_FOOT, @@ -43,54 +43,46 @@ const struct SpriteTemplate gUnknown_83E668C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = unc_080B08A0, + .callback = AnimUnusedHumanoidFoot, }; -static const union AnimCmd sAnim_HandOrFoot[] = +static const union AnimCmd sAnim_Fist[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_SlidingKick_0[] = +static const union AnimCmd sAnim_FootWide[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_SlidingKick_1[] = +static const union AnimCmd sAnim_FootTall[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CrossChopHand_0[] = +static const union AnimCmd sAnim_HandLeft[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CrossChopHand_1[] = +static const union AnimCmd sAnim_HandRight[] = { ANIMCMD_FRAME(48, 1, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const sAnims_HandOrFoot[] = +static const union AnimCmd *const sAnims_HandsAndFeet[] = { - sAnim_HandOrFoot, -}; - -static const union AnimCmd *const sAnims_SlidingKick[] = -{ - sAnim_SlidingKick_0, - sAnim_SlidingKick_1, -}; - -static const union AnimCmd *const sAnims_CrossChopHand[] = -{ - sAnim_CrossChopHand_0, - sAnim_CrossChopHand_1, + sAnim_Fist, + sAnim_FootWide, + sAnim_FootTall, + sAnim_HandLeft, + sAnim_HandRight, }; const struct SpriteTemplate gKarateChopSpriteTemplate = @@ -98,7 +90,7 @@ const struct SpriteTemplate gKarateChopSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlideHandOrFootToTarget, @@ -109,7 +101,7 @@ const struct SpriteTemplate gJumpKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimJumpKick, @@ -120,7 +112,7 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, @@ -131,7 +123,7 @@ const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFistOrFootRandomPos, @@ -142,7 +134,7 @@ const struct SpriteTemplate gCrossChopHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_CrossChopHand, + .anims = &sAnims_HandsAndFeet[3], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimCrossChopHand, @@ -153,7 +145,7 @@ const struct SpriteTemplate gSlidingKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_SlidingKick, + .anims = &sAnims_HandsAndFeet[1], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingKick, @@ -171,12 +163,13 @@ static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = sAffineAnim_SpinningHandOrFoot, }; +// Blaze Kick / Meteor Mash const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, @@ -199,7 +192,7 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, @@ -210,7 +203,7 @@ const struct SpriteTemplate gStompFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_SlidingKick, + .anims = &sAnims_HandsAndFeet[1], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot, @@ -301,7 +294,7 @@ const struct SpriteTemplate gArmThrustHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimArmThrustHit, @@ -405,13 +398,13 @@ const struct SpriteTemplate gFocusPunchFistSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_FocusPunchFist, .callback = AnimFocusPunchFist, }; -static void unc_080B08A0(struct Sprite *sprite) +static void AnimUnusedHumanoidFoot(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->y += gBattleAnimArgs[1]; @@ -429,7 +422,7 @@ static void AnimSlideHandOrFootToTarget(struct Sprite *sprite) } StartSpriteAnim(sprite, gBattleAnimArgs[6]); gBattleAnimArgs[6] = 0; - AnimSnoreZ(sprite); + AnimTravelDiagonally(sprite); } static void AnimJumpKick(struct Sprite *sprite) @@ -475,8 +468,8 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) if (gBattleAnimArgs[2] < 0) gBattleAnimArgs[2] = Random() % 5; StartSpriteAnim(sprite, gBattleAnimArgs[2]); - sprite->x = GetBattlerSpriteCoord(battler, 2); - sprite->y = GetBattlerSpriteCoord(battler, 3); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); xMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_WIDTH) / 2; yMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; x = Random() % xMod; @@ -491,19 +484,19 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) sprite->y += y; sprite->data[0] = gBattleAnimArgs[1]; sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); - if (sprite->data[7] != 64) + if (sprite->data[7] != MAX_SPRITES) { StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0); gSprites[sprite->data[7]].callback = SpriteCallbackDummy; } - sprite->callback = sub_80B0B2C; + sprite->callback = AnimFistOrFootRandomPos_Step; } -static void sub_80B0B2C(struct Sprite *sprite) +static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite) { if (sprite->data[0] == 0) { - if (sprite->data[7] != 64) + if (sprite->data[7] != MAX_SPRITES) { FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum); DestroySprite(&gSprites[sprite->data[7]]); @@ -531,10 +524,10 @@ static void AnimCrossChopHand(struct Sprite *sprite) } sprite->data[4] = sprite->y - 20; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, sub_80B0BD8); + StoreSpriteCallbackInData6(sprite, AnimCrossChopHand_Step); } -static void sub_80B0BD8(struct Sprite *sprite) +static void AnimCrossChopHand_Step(struct Sprite *sprite) { if (++sprite->data[5] == 11) { @@ -550,6 +543,7 @@ static void sub_80B0BD8(struct Sprite *sprite) } } +// Rolling Kick / Low Kick static void AnimSlidingKick(struct Sprite *sprite) { if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT) @@ -566,10 +560,10 @@ static void AnimSlidingKick(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; sprite->data[6] = gBattleAnimArgs[4]; sprite->data[7] = 0; - sprite->callback = sub_80B0CB4; + sprite->callback = AnimSlidingKick_Step; } -static void sub_80B0CB4(struct Sprite *sprite) +static void AnimSlidingKick_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -622,8 +616,8 @@ static void AnimStompFootStep(struct Sprite *sprite) if (--sprite->data[0] == -1) { sprite->data[0] = 6; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimStompFootEnd); } @@ -658,17 +652,18 @@ static void AnimDizzyPunchDuck(struct Sprite *sprite) } } +// The wall that appears when Brick Break is going to shatter the target's defensive wall static void AnimBrickBreakWall(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->x += gBattleAnimArgs[1]; sprite->y += gBattleAnimArgs[2]; @@ -676,10 +671,10 @@ static void AnimBrickBreakWall(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = 0; - sprite->callback = sub_80B0EF0; + sprite->callback = AnimBrickBreakWall_Step; } -static void sub_80B0EF0(struct Sprite *sprite) +static void AnimBrickBreakWall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -709,17 +704,18 @@ static void sub_80B0EF0(struct Sprite *sprite) } } +// Piece of shattered defensive wall flies off. Used by Brick Break when the target has a defensive wall static void AnimBrickBreakWallShard(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[3]; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[2]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[3]; } sprite->oam.tileNum += gBattleAnimArgs[1] * 16; sprite->data[0] = 0; @@ -745,10 +741,10 @@ static void AnimBrickBreakWallShard(struct Sprite *sprite) DestroyAnimSprite(sprite); return; } - sprite->callback = sub_80B1050; + sprite->callback = AnimBrickBreakWallShard_Step; } -static void sub_80B1050(struct Sprite *sprite) +static void AnimBrickBreakWallShard_Step(struct Sprite *sprite) { sprite->x += sprite->data[6]; sprite->y += sprite->data[7]; @@ -760,8 +756,8 @@ static void AnimSuperpowerOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); sprite->data[7] = gBattleAnimTarget; } @@ -773,25 +769,26 @@ static void AnimSuperpowerOrb(struct Sprite *sprite) sprite->data[0] = 0; sprite->data[1] = 12; sprite->data[2] = 8; - sprite->callback = sub_80B111C; + sprite->callback = AnimSuperpowerOrb_Step; } -static void sub_80B111C(struct Sprite *sprite) +static void AnimSuperpowerOrb_Step(struct Sprite *sprite) { if (++sprite->data[0] == 180) { SetGpuReg(REG_OFFSET_BLDCNT, 0); sprite->data[0] = 16; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], 2); + sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3); + sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; } } +// Floating rock that flies off to hit the target. Used by Superpower static void AnimSuperpowerRock(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; @@ -800,10 +797,10 @@ static void AnimSuperpowerRock(struct Sprite *sprite) StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->y << 8)); sprite->data[6] = gBattleAnimArgs[1]; sprite->oam.tileNum += gBattleAnimArgs[2] * 4; - sprite->callback = sub_80B11E4; + sprite->callback = AnimSuperpowerRock_Step1; } -static void sub_80B11E4(struct Sprite *sprite) +static void AnimSuperpowerRock_Step1(struct Sprite *sprite) { void *var0; @@ -821,20 +818,20 @@ static void sub_80B11E4(struct Sprite *sprite) } else { - s16 pos0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - s16 pos1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); - s16 pos2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - s16 pos3 = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + s16 pos0 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + s16 pos1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + s16 pos2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + s16 pos3 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = pos2 - pos0; sprite->data[1] = pos3 - pos1; sprite->data[2] = sprite->x << 4; sprite->data[3] = sprite->y << 4; - sprite->callback = sub_80B12A4; + sprite->callback = AnimSuperpowerRock_Step2; } } -static void sub_80B12A4(struct Sprite *sprite) +static void AnimSuperpowerRock_Step2(struct Sprite *sprite) { u16 edgeX; @@ -851,10 +848,10 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) { u8 battler; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_Y_PIC_OFFSET); battler = gBattleAnimTarget; sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -869,15 +866,15 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP); sprite->data[0] = 16; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(battler, 2); + sprite->data[2] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(battler, 3); + sprite->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; } -static void sub_80B13D4(struct Sprite *sprite) +static void AnimArmThrustHit_Step(struct Sprite *sprite) { if (sprite->data[0] == sprite->data[4]) DestroyAnimSprite(sprite); @@ -888,8 +885,8 @@ static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; @@ -905,12 +902,12 @@ static void AnimArmThrustHit(struct Sprite *sprite) StartSpriteAnim(sprite, sprite->data[1]); sprite->x2 = sprite->data[2]; sprite->y2 = sprite->data[3]; - sprite->callback = sub_80B13D4; + sprite->callback = AnimArmThrustHit_Step; } static void AnimRevengeScratch(struct Sprite *sprite) { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); @@ -922,6 +919,7 @@ static void AnimRevengeScratch(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// Fist shrinks toward target and shakes static void AnimFocusPunchFist(struct Sprite *sprite) { if (sprite->affineAnimEnded) diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index a8f0c8503..c46fdf5d8 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -605,7 +605,7 @@ static void AnimEmberFlare(struct Sprite *sprite) && (gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) || gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->callback = AnimSnoreZ; + sprite->callback = AnimTravelDiagonally; sprite->callback(sprite); } @@ -613,7 +613,7 @@ static void AnimBurnFlame(struct Sprite *sprite) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->callback = AnimSnoreZ; + sprite->callback = AnimTravelDiagonally; } // Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 9eb2fa2dd..c5c88189c 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -19,7 +19,7 @@ #define IS_DOUBLE_BATTLE() (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3); -static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); +static void PlayerThrowBall_AnimTranslateLinear_WithFollowup(struct Sprite *sprite); static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite); static bool8 Dummy_ReturnFalse(void); static void AnimThrowProjectile_Step(struct Sprite *sprite); @@ -958,7 +958,7 @@ void StartAnimLinearTranslation(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; InitAnimLinearTranslation(sprite); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } @@ -967,7 +967,7 @@ void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; InitAnimLinearTranslation(sprite); - sprite->callback = PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = PlayerThrowBall_AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } @@ -998,13 +998,13 @@ bool8 AnimTranslateLinear(struct Sprite *sprite) return FALSE; } -void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite) +void AnimTranslateLinear_WithFollowup(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); } -static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite) +static void PlayerThrowBall_AnimTranslateLinear_WithFollowup(struct Sprite *sprite) { UpdatePlayerPosInThrowAnim(sprite); if (AnimTranslateLinear(sprite)) @@ -1024,7 +1024,7 @@ void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; BattleAnim_InitLinearTranslationWithDuration(sprite); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } @@ -1411,7 +1411,7 @@ static void AnimThrowProjectile_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimSnoreZ(struct Sprite *sprite) +void AnimTravelDiagonally(struct Sprite *sprite) { bool8 r4; u8 battlerId, coordType; From 796d307ffb77910f2a4fce4a026d9756167373c9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 15:08:16 -0400 Subject: [PATCH 016/105] Sync battle anim - fire --- include/battle_anim.h | 4 +- src/battle_anim_bug.c | 2 +- src/battle_anim_fire.c | 451 +++++++++++++++++++++++---------------- src/battle_anim_ghost.c | 2 +- src/battle_anim_ice.c | 4 +- src/battle_anim_mons.c | 6 +- src/battle_anim_normal.c | 2 +- 7 files changed, 280 insertions(+), 191 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 15185b59d..8c8bfbf0f 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -362,7 +362,7 @@ u8 GetBattlerYCoordWithElevation(u8 battlerId); u8 GetAnimBattlerSpriteId(u8 animBattler); void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback); void TranslateSpriteInCircle(struct Sprite *sprite); -void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite); +void TranslateSpriteInGrowingCircle(struct Sprite *sprite); void TranslateSpriteInEllipse(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite); void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite); @@ -405,7 +405,7 @@ void StartAnimLinearTranslation(struct Sprite *sprite); void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void AnimTranslateLinear_WithFollowup(struct Sprite *sprite); -void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite); +void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite); void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite); diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index 74e7ae5d5..15e94665b 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -264,7 +264,7 @@ static void AnimTranslateWebThread(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); } - BattleAnim_InitLinearTranslationWithDuration(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = AnimTranslateWebThread_Step; } diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index c46fdf5d8..d89416924 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -10,8 +10,8 @@ static void AnimFireSpiralInward(struct Sprite *sprite); static void AnimFireSpread(struct Sprite *sprite); static void AnimLargeFlame(struct Sprite *sprite); static void AnimFirePlume(struct Sprite *sprite); -static void sub_80ACAA8(struct Sprite *sprite); -static void sub_80ACBB0(struct Sprite *sprite); +static void AnimUnusedSmallEmber(struct Sprite *sprite); +static void AnimSunlight(struct Sprite *sprite); static void AnimEmberFlare(struct Sprite *sprite); static void AnimBurnFlame(struct Sprite *sprite); static void AnimFireRing(struct Sprite *sprite); @@ -21,22 +21,22 @@ static void AnimEruptionLaunchRock(struct Sprite *sprite); static void AnimEruptionFallingRock(struct Sprite *sprite); static void AnimWillOWispOrb(struct Sprite *sprite); static void AnimWillOWispFire(struct Sprite *sprite); -static void sub_80ACA6C(struct Sprite *sprite); -static void sub_80ACB1C(struct Sprite *sprite); +static void AnimLargeFlame_Step(struct Sprite *sprite); +static void AnimUnusedSmallEmber_Step(struct Sprite *sprite); static void AnimFireRing_Step1(struct Sprite *sprite); static void AnimFireRing_Step2(struct Sprite *sprite); static void AnimFireRing_Step3(struct Sprite *sprite); static void UpdateFireRingCircleOffset(struct Sprite *sprite); -static void sub_80ACE28(struct Sprite *sprite); -static void sub_80ACE50(struct Sprite *sprite); +static void AnimFireSpiralOutward_Step1(struct Sprite *sprite); +static void AnimFireSpiralOutward_Step2(struct Sprite *sprite); static void AnimTask_EruptionLaunchRocks_Step(u8 taskId); -static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3); -static u16 sub_80AD374(u8 spriteId); -static void sub_80AD3C8(struct Sprite *sprite, s16 x, s16 y); -static void sub_80AD3E4(struct Sprite *sprite); -static void sub_80AD4A8(struct Sprite *sprite); -static void sub_80AD690(struct Sprite *sprite); -static void sub_80AD870(u8 taskId); +static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3); +static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId); +static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y); +static void UpdateEruptionLaunchRockPos(struct Sprite *sprite); +static void AnimEruptionFallingRock_Step(struct Sprite *sprite); +static void AnimWillOWispOrb_Step(struct Sprite *sprite); +static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId); static const union AnimCmd sAnim_FireSpiralSpread_0[] = { @@ -160,7 +160,7 @@ const struct SpriteTemplate gFirePlumeSpriteTemplate = .callback = AnimFirePlume, }; -const struct SpriteTemplate gUnknown_83E5CB8 = +static const struct SpriteTemplate sUnusedEmberFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -171,7 +171,7 @@ const struct SpriteTemplate gUnknown_83E5CB8 = .callback = AnimFirePlume, }; -static const union AnimCmd gUnknown_83E5CD0[] = +static const union AnimCmd sAnim_UnusedSmallEmber[] = { ANIMCMD_FRAME(16, 6), ANIMCMD_FRAME(32, 6), @@ -179,20 +179,20 @@ static const union AnimCmd gUnknown_83E5CD0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5CE0[] = +static const union AnimCmd *const sAnims_UnusedSmallEmber[] = { - gUnknown_83E5CD0, + sAnim_UnusedSmallEmber, }; -const struct SpriteTemplate gUnknown_83E5CE4 = +static const struct SpriteTemplate sUnusedSmallEmberSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5CE0, + .anims = sAnims_UnusedSmallEmber, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACAA8, + .callback = AnimUnusedSmallEmber, }; static const union AffineAnimCmd sAffineAnim_SunlightRay[] = @@ -215,7 +215,7 @@ const struct SpriteTemplate gSunlightRaySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sAffineAnims_SunlightRay, - .callback = sub_80ACBB0, + .callback = AnimSunlight, }; static const union AnimCmd sAnim_BasicFire[] = @@ -289,22 +289,22 @@ static const union AnimCmd *const sAnims_FireBlastCross[] = sAnim_FireBlastCross, }; -static const union AffineAnimCmd gUnknown_83E5DBC[] = +static const union AffineAnimCmd sAffineAnim_Unused_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E5DCC[] = +static const union AffineAnimCmd sAffineAnim_Unused_1[] = { AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E5DDC[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - gUnknown_83E5DBC, - gUnknown_83E5DCC, + sAffineAnim_Unused_0, + sAffineAnim_Unused_1, }; const struct SpriteTemplate gFireBlastCrossSpriteTemplate = @@ -351,7 +351,7 @@ static const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate = .callback = AnimEruptionLaunchRock, }; -static const s16 sEruptionLaunchRockCoords[][2] = +static const s16 sEruptionLaunchRockSpeeds[][2] = { {-2, -5}, {-1, -1}, @@ -457,6 +457,7 @@ static const s8 sShakeDirsPattern1[16] = -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, }; +// For the first stage of Fire Punch static void AnimFireSpiralInward(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; @@ -465,10 +466,11 @@ static void AnimFireSpiralInward(struct Sprite *sprite) sprite->data[3] = 0x1E; sprite->data[4] = 0xFE00; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateSpriteInGrowingCircleOverDuration; + sprite->callback = TranslateSpriteInGrowingCircle; sprite->callback(sprite); } +// For the impact spread of fire sprites for moves like Blaze Kick or Fire Punch static void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -498,7 +500,7 @@ static void AnimFirePlume(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_80ACA6C; + sprite->callback = AnimLargeFlame_Step; } static void AnimLargeFlame(struct Sprite *sprite) @@ -518,10 +520,10 @@ static void AnimLargeFlame(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_80ACA6C; + sprite->callback = AnimLargeFlame_Step; } -static void sub_80ACA6C(struct Sprite *sprite) +static void AnimLargeFlame_Step(struct Sprite *sprite) { if (++sprite->data[0] < sprite->data[4]) { @@ -532,7 +534,7 @@ static void sub_80ACA6C(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -static void sub_80ACAA8(struct Sprite *sprite) +static void AnimUnusedSmallEmber(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -551,10 +553,10 @@ static void sub_80ACAA8(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[6]; sprite->data[5] = 0; - sprite->callback = sub_80ACB1C; + sprite->callback = AnimUnusedSmallEmber_Step; } -static void sub_80ACB1C(struct Sprite *sprite) +static void AnimUnusedSmallEmber_Step(struct Sprite *sprite) { if (sprite->data[3]) { @@ -576,8 +578,8 @@ static void sub_80ACB1C(struct Sprite *sprite) } } -//sunlight -static void sub_80ACBB0(struct Sprite *sprite) +// Sunlight from Sunny Day / sunny weather +static void AnimSunlight(struct Sprite *sprite) { sprite->x = 0; sprite->y = 0; @@ -588,8 +590,6 @@ static void sub_80ACBB0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -//fire 2 - // Animates the secondary effect of MOVE_EMBER, where the flames grow and slide // horizontally a bit. // arg 0: initial x pixel offset @@ -626,7 +626,7 @@ static void AnimBurnFlame(struct Sprite *sprite) //void AnimFireRing(struct Sprite *sprite) static void AnimFireRing(struct Sprite *sprite) { - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[7] = gBattleAnimArgs[2]; sprite->data[0] = 0; sprite->callback = AnimFireRing_Step1; @@ -706,19 +706,19 @@ static void AnimFireSpiralOutward(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->invisible = TRUE; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_80ACE28); + StoreSpriteCallbackInData6(sprite, AnimFireSpiralOutward_Step1); } -static void sub_80ACE28(struct Sprite *sprite) +static void AnimFireSpiralOutward_Step1(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->data[0] = sprite->data[1]; sprite->data[1] = 0; - sprite->callback = sub_80ACE50; + sprite->callback = AnimFireSpiralOutward_Step2; sprite->callback(sprite); } -static void sub_80ACE50(struct Sprite *sprite) +static void AnimFireSpiralOutward_Step2(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->y2 = Cos(sprite->data[1], sprite->data[2] >> 8); @@ -728,258 +728,337 @@ static void sub_80ACE50(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTask_EruptionLaunchRocks(u8 taskId) // initialize animation task for Move_ERUPTION? +#define IDX_ACTIVE_SPRITES 6 // Used by the sprite callback to modify the number of active sprites + +#define tState data[0] +#define tTimer1 data[1] +#define tTimer2 data[2] +#define tTimer3 data[3] +#define tAttackerY data[4] +#define tAttackerSide data[5] +#define tActiveSprites data[IDX_ACTIVE_SPRITES] +// data[8]-data[15] used by BattleAnimHelper_SetSpriteSquashParams / BattleAnimHelper_RunSpriteSquash +#define tAttackerSpriteId data[15] + +#define sSpeedDelay data[0] +#define sLaunchStage data[1] +#define sX data[2] +#define sY data[3] +#define sSpeedX data[4] +#define sSpeedY data[5] +#define sTaskId data[6] +#define sActiveSpritesIdx data[7] + +// Animates first stage of Eruption where the attacker squishes and launches rocks away from themself +void AnimTask_EruptionLaunchRocks(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[0] = 0; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = 0; - task->data[4] = gSprites[task->data[15]].y; - task->data[5] = GetBattlerSide(gBattleAnimAttacker); - task->data[6] = 0; + task->tAttackerSpriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->tState = 0; + task->tTimer1 = 0; + task->tTimer2 = 0; + task->tTimer3 = 0; + task->tAttackerY = gSprites[task->tAttackerSpriteId].y; + task->tAttackerSide = GetBattlerSide(gBattleAnimAttacker); + task->tActiveSprites = 0; PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); task->func = AnimTask_EruptionLaunchRocks_Step; } -static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTION? +static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20); - ++task->data[0]; - // fall through + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0x100, 0x100, 0xE0, 0x200, 32); + task->tState++; case 1: - if (++task->data[1] > 1) + if (++task->tTimer1 > 1) { - task->data[1] = 0; - if (++task->data[2] & 0x1) - gSprites[task->data[15]].x2 = 3; + task->tTimer1 = 0; + + if (++task->tTimer2 & 1) + gSprites[task->tAttackerSpriteId].x2 = 3; else - gSprites[task->data[15]].x2 = -3; + gSprites[task->tAttackerSpriteId].x2 = -3; } - if (task->data[5]) + + if (task->tAttackerSide != B_SIDE_PLAYER) { - if (++task->data[3] > 4) + if (++task->tTimer3 > 4) { - task->data[3] = 0; - ++gSprites[task->data[15]].y; + task->tTimer3 = 0; + gSprites[task->tAttackerSpriteId].y++; } } + if(!BattleAnimHelper_RunSpriteSquash(task)) { - SetBattlerSpriteYOffsetFromYScale(task->data[15]); - gSprites[task->data[15]].x2 = 0; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = 0; - ++task->data[0]; + SetBattlerSpriteYOffsetFromYScale(task->tAttackerSpriteId); + gSprites[task->tAttackerSpriteId].x2 = 0; + + task->tTimer1 = 0; + task->tTimer2 = 0; + task->tTimer3 = 0; + task->tState++; } break; case 2: - if (++task->data[1] > 4) + if (++task->tTimer1 > 4) { - if (task->data[5]) - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6); + if (task->tAttackerSide != B_SIDE_PLAYER) + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0xE0, 0x200, 0x180, 0xF0, 6); else - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6); - task->data[1] = 0; - ++task->data[0]; + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0xE0, 0x200, 0x180, 0xC0, 6); + + task->tTimer1 = 0; + task->tState++; } break; case 3: if (!BattleAnimHelper_RunSpriteSquash(task)) { - sub_80AD1F8(task->data[15], taskId, 6); - ++task->data[0]; + CreateEruptionLaunchRocks(task->tAttackerSpriteId, taskId, IDX_ACTIVE_SPRITES); + task->tState++; } break; case 4: - if (++task->data[1] > 1) + if (++task->tTimer1 > 1) { - task->data[1] = 0; - if (++task->data[2] & 1) - gSprites[task->data[15]].y2 += 3; + task->tTimer1 = 0; + + if (++task->tTimer2 & 1) + gSprites[task->tAttackerSpriteId].y2 += 3; else - gSprites[task->data[15]].y2 -= 3; + gSprites[task->tAttackerSpriteId].y2 -= 3; } - if (++task->data[3] > 0x18) + + if (++task->tTimer3 > 24) { - if (task->data[5]) - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8); + if (task->tAttackerSide != B_SIDE_PLAYER) + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0x180, 0xF0, 0x100, 0x100, 8); else - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8); - if (task->data[2] & 1) - gSprites[task->data[15]].y2 -= 3; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = 0; - ++task->data[0]; + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0x180, 0xC0, 0x100, 0x100, 8); + + if (task->tTimer2 & 1) + gSprites[task->tAttackerSpriteId].y2 -= 3; + + task->tTimer1 = 0; + task->tTimer2 = 0; + task->tTimer3 = 0; + task->tState++; } break; case 5: - if (task->data[5]) - --gSprites[task->data[15]].y; + if (task->tAttackerSide != B_SIDE_PLAYER) + gSprites[task->tAttackerSpriteId].y--; + if (!BattleAnimHelper_RunSpriteSquash(task)) { - gSprites[task->data[15]].y = task->data[4]; - ResetSpriteRotScale(task->data[15]); - - task->data[2] = 0; - ++task->data[0]; + gSprites[task->tAttackerSpriteId].y = task->tAttackerY; + ResetSpriteRotScale(task->tAttackerSpriteId); + task->tTimer2 = 0; + task->tState++; } break; case 6: - if (!task->data[6]) + if (task->tActiveSprites == 0) DestroyAnimVisualTask(taskId); break; + default: + break; } } -static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3) +static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 activeSpritesIdx) { u16 i, j; s8 sign; - u16 y = sub_80AD374(spriteId); + + u16 y = GetEruptionLaunchRockInitialYPos(spriteId); u16 x = gSprites[spriteId].x; - if(GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + if(!GetBattlerSide(gBattleAnimAttacker)) { - x -= 0xC; + x -= 12; sign = 1; } else { - x += 0x10; + x += 16; sign = -1; } - for (i = 0, j = 0; i <= 6; ++i) + + for (i = 0, j = 0; i <= 6; i++) { u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2); - if (spriteId != 0x40) + if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += j * 4 + 0x40; + if (++j >= 5) j = 0; - sub_80AD3C8(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]); - gSprites[spriteId].data[6] = taskId; - gSprites[spriteId].data[7] = a3; - ++gTasks[taskId].data[a3]; + + InitEruptionLaunchRockCoordData(&gSprites[spriteId], sEruptionLaunchRockSpeeds[i][0] * sign, sEruptionLaunchRockSpeeds[i][1]); + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sActiveSpritesIdx = activeSpritesIdx; + + gTasks[taskId].data[activeSpritesIdx]++; } } } static void AnimEruptionLaunchRock(struct Sprite *sprite) { - sub_80AD3E4(sprite); + UpdateEruptionLaunchRockPos(sprite); + if (sprite->invisible) { - --gTasks[sprite->data[6]].data[sprite->data[7]]; + gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--; DestroySprite(sprite); } } -static u16 sub_80AD374(u8 spriteId) +static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId) { - u16 var1 = gSprites[spriteId].y + gSprites[spriteId].y2 + gSprites[spriteId].centerToCornerVecY; + s16 y = gSprites[spriteId].y + gSprites[spriteId].y2 + gSprites[spriteId].centerToCornerVecY; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - var1 = ((var1 << 16) + 0x4A0000) >> 16; + y += 74; else - var1 = ((var1 << 16) + 0x2C0000) >> 16; - return var1; + y += 44; + + return y; } -static void sub_80AD3C8(struct Sprite *sprite, s16 x, s16 y) +static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 speedX, s16 speedY) { - sprite->data[0] = 0; - sprite->data[1] = 0; - sprite->data[2] = (u16)sprite->x * 8; - sprite->data[3] = (u16)sprite->y * 8; - sprite->data[4] = x * 8; - sprite->data[5] = y * 8; + sprite->sSpeedDelay = 0; + sprite->sLaunchStage = 0; + sprite->sX = (u16)sprite->x * 8; + sprite->sY = (u16)sprite->y * 8; + sprite->sSpeedX = speedX * 8; + sprite->sSpeedY = speedY * 8; } -static void sub_80AD3E4(struct Sprite *sprite) +static void UpdateEruptionLaunchRockPos(struct Sprite *sprite) { - s32 var1; - - if (++sprite->data[0] > 2) + int extraLaunchSpeed; + if (++sprite->sSpeedDelay > 2) { - sprite->data[0] = 0; - ++sprite->data[1]; - var1 = (u16)sprite->data[1] * (u16)sprite->data[1]; - sprite->data[3] += var1; + sprite->sSpeedDelay = 0; + ++sprite->sLaunchStage; + extraLaunchSpeed = (u16)sprite->sLaunchStage * (u16)sprite->sLaunchStage; + sprite->sY += extraLaunchSpeed; } - sprite->data[2] += sprite->data[4]; - sprite->x = sprite->data[2] >> 3; - sprite->data[3] += sprite->data[5]; - sprite->y = sprite->data[3] >> 3; - if (sprite->x < -8 || sprite->x > 0xf8 || sprite->y < -8 || sprite->y > 120) + + sprite->sX += sprite->sSpeedX; + sprite->x = sprite->sX >> 3; + sprite->sY += sprite->sSpeedY; + sprite->y = sprite->sY >> 3; + + if (sprite->x < -8 || sprite->x > DISPLAY_WIDTH + 8 || sprite->y < -8 || sprite->y > 120) sprite->invisible = TRUE; } +#undef IDX_ACTIVE_SPRITES +#undef tState +#undef tTimer1 +#undef tTimer2 +#undef tTimer3 +#undef tAttackerY +#undef tAttackerSide +#undef tActiveSprites +#undef tAttackerSpriteId +#undef sSpeedDelay +#undef sLaunchStage +#undef sX +#undef sY +#undef sSpeedX +#undef sSpeedY +#undef sTaskId +#undef sActiveSpritesIdx + +#define sState data[0] +#define sBounceTimer data[1] +#define sBounceDir data[2] +#define sEndTimer data[3] +#define sFallDelay data[6] +#define sTargetY data[7] + static void AnimEruptionFallingRock(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; sprite->y = gBattleAnimArgs[1]; - sprite->data[0] = 0; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[6] = gBattleAnimArgs[2]; - sprite->data[7] = gBattleAnimArgs[3]; + + sprite->sState = 0; + sprite->sBounceTimer = 0; + sprite->sBounceDir = 0; + sprite->sFallDelay = gBattleAnimArgs[2]; + sprite->sTargetY = gBattleAnimArgs[3]; + sprite->oam.tileNum += gBattleAnimArgs[4] * 16; - sprite->callback = sub_80AD4A8; + sprite->callback = AnimEruptionFallingRock_Step; } -static void sub_80AD4A8(struct Sprite *sprite) +static void AnimEruptionFallingRock_Step(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (sprite->data[6] != 0) + // Wait to begin falling + if (sprite->sFallDelay != 0) { - --sprite->data[6]; + sprite->sFallDelay--; return; } - ++sprite->data[0]; + + sprite->sState++; // fall through case 1: + // Rock is falling sprite->y += 8; - if (sprite->y >= sprite->data[7]) + if (sprite->y >= sprite->sTargetY) { - sprite->y = sprite->data[7]; - ++sprite->data[0]; + sprite->y = sprite->sTargetY; + sprite->sState++; } break; case 2: - if (++sprite->data[1] > 1) + // Bounce up and down on landing spot + if (++sprite->sBounceTimer > 1) { - sprite->data[1] = 0; - if ((++sprite->data[2] & 1) != 0) + sprite->sBounceTimer = 0; + if ((++sprite->sBounceDir & 1) != 0) sprite->y2 = -3; else sprite->y2 = 3; } - if (++sprite->data[3] > 16) + + if (++sprite->sEndTimer > 16) DestroyAnimSprite(sprite); break; } } +#undef sState +#undef sBounceTimer +#undef sBounceDir +#undef sEndTimer +#undef sFallDelay +#undef sTargetY + //wisp orb static void AnimWillOWispOrb(struct Sprite *sprite) { switch (sprite->data[0]) { case 0: - InitSpritePosToAnimAttacker(sprite, 0); + InitSpritePosToAnimAttacker(sprite, FALSE); StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[7] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -1016,14 +1095,14 @@ static void AnimWillOWispOrb(struct Sprite *sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - BattleAnim_InitLinearTranslationWithDuration(sprite); - sprite->callback = sub_80AD690; + InitAnimLinearTranslationWithSpeed(sprite); + sprite->callback = AnimWillOWispOrb_Step; } break; } } -static void sub_80AD690(struct Sprite *sprite) +static void AnimWillOWispOrb_Step(struct Sprite *sprite) { s16 initialData5, newData5; @@ -1042,7 +1121,6 @@ static void sub_80AD690(struct Sprite *sprite) } } -//wisp fire static void AnimWillOWispFire(struct Sprite *sprite) { if (!sprite->data[0]) @@ -1083,10 +1161,10 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId) task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK) + 1; task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET); task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); - task->func = sub_80AD870; + task->func = AnimTask_MoveHeatWaveTargets_Step; } -static void sub_80AD870(u8 taskId) +static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1153,7 +1231,7 @@ static void sub_80AD870(u8 taskId) } } -// Used to add a color mask to the battle interface / HUD in Heat Wave. +// Used to add a color mask to the battle background. // arg 0: opacity // arg 1: color code void AnimTask_BlendBackground(u8 taskId) @@ -1165,29 +1243,40 @@ void AnimTask_BlendBackground(u8 taskId) DestroyAnimVisualTask(taskId); } +#define tShakeNum data[0] +#define tMaxShakes data[1] +#define tShakeOffset data[2] // Never read, gBattleAnimArgs[1] is used directly instead +#define tVertical data[3] +#define tPatternId data[4] + +// Shakes target horizontally or vertically tMaxShakes times, following a set pattern of alternations void AnimTask_ShakeTargetInPattern(u8 taskId) { - s8 unk; + s8 dir; u8 spriteId; - if (gTasks[taskId].data[0] == 0) + if (gTasks[taskId].tShakeNum == 0) { - gTasks[taskId].data[1] = gBattleAnimArgs[0]; - gTasks[taskId].data[2] = gBattleAnimArgs[1]; - gTasks[taskId].data[3] = gBattleAnimArgs[2]; - gTasks[taskId].data[4] = gBattleAnimArgs[3]; + gTasks[taskId].tMaxShakes = gBattleAnimArgs[0]; + gTasks[taskId].tShakeOffset = gBattleAnimArgs[1]; + gTasks[taskId].tVertical = gBattleAnimArgs[2]; + gTasks[taskId].tPatternId = gBattleAnimArgs[3]; } - ++gTasks[taskId].data[0]; + gTasks[taskId].tShakeNum++; + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; - if (!gTasks[taskId].data[4]) - unk = sShakeDirsPattern0[gTasks[taskId].data[0] % 10]; + + if (gTasks[taskId].tPatternId == 0) + dir = sShakeDirsPattern0[gTasks[taskId].tShakeNum % 10]; else - unk = sShakeDirsPattern1[gTasks[taskId].data[0] % 10]; - if (gTasks[taskId].data[3] == 1) - gSprites[spriteId].y2 = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk; + dir = sShakeDirsPattern1[gTasks[taskId].tShakeNum % 10]; + + if (gTasks[taskId].tVertical == TRUE) + gSprites[spriteId].y2 = gBattleAnimArgs[1] * dir < 0 ? -(gBattleAnimArgs[1] * dir) : gBattleAnimArgs[1] * dir; else - gSprites[spriteId].x2 = gBattleAnimArgs[1] * unk; - if (gTasks[taskId].data[0] == gTasks[taskId].data[1]) + gSprites[spriteId].x2 = gBattleAnimArgs[1] * dir; + + if (gTasks[taskId].tShakeNum == gTasks[taskId].tMaxShakes) { gSprites[spriteId].x2 = 0; gSprites[spriteId].y2 = 0; diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index 43c451f9f..8bf8cd762 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -226,7 +226,7 @@ static void AnimConfuseRayBallBounce(struct Sprite *sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - BattleAnim_InitLinearTranslationWithDuration(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->callback = sub_80B52D0; sprite->data[6] = 16; SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 8e09574a9..3e63cdbe9 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -584,7 +584,7 @@ static void AnimIcePunchSwirlingParticle(struct Sprite *sprite) sprite->data[3] = 30; sprite->data[4] = -512; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateSpriteInGrowingCircleOverDuration; + sprite->callback = TranslateSpriteInGrowingCircle; sprite->callback(sprite); } @@ -1230,7 +1230,7 @@ static void MovePoisonGasCloud(struct Sprite *sprite) sprite->data[2] = -0x10; ++sprite->data[7]; sprite->x2 = sprite->y2 = 0; - BattleAnim_InitLinearTranslationWithDuration(sprite); + InitAnimLinearTranslationWithSpeed(sprite); } break; case 2: diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index c5c88189c..75fd70ae4 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -413,7 +413,7 @@ void TranslateSpriteInCircle(struct Sprite *sprite) // x = (a0 + da * t) * sin(theta0 + dtheta * t) // y = (a0 + da * t) * cos(theta0 + dtheta * t) -void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) +void TranslateSpriteInGrowingCircle(struct Sprite *sprite) { if (sprite->data[3]) { @@ -1011,7 +1011,7 @@ static void PlayerThrowBall_AnimTranslateLinear_WithFollowup(struct Sprite *spri SetCallbackToStoredInData6(sprite); } -void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite) +void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite) { s32 v1 = abs(sprite->sTransl_DestX - sprite->sTransl_InitX) << 8; @@ -1023,7 +1023,7 @@ void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite) { sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; - BattleAnim_InitLinearTranslationWithDuration(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->callback = AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index 9deb261dc..09efc5354 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -402,7 +402,7 @@ static void sub_80B9B8C(struct Sprite *sprite) sprite->data[4] = 112; sprite->data[5] = 0; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInGrowingCircleOverDuration; + sprite->callback = TranslateSpriteInGrowingCircle; sprite->callback(sprite); } From ba890e57a46c6f8394aea1ef100937fc2d8fb6e9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 15:27:42 -0400 Subject: [PATCH 017/105] Sync battle anim - ghost --- include/battle_anim.h | 2 +- src/battle_anim.c | 4 +- src/battle_anim_fire.c | 2 +- src/battle_anim_ghost.c | 206 +++++++++++++++++----------------- src/battle_anim_sound_tasks.c | 2 +- 5 files changed, 109 insertions(+), 107 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 8c8bfbf0f..f8c9d9c0a 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -60,7 +60,7 @@ extern u8 gBattleAnimTarget; extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern s32 gAnimMoveDmg; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_2037F24; +extern u8 gAnimCustomPanning; // battle_anim.c extern const struct OamData gOamData_AffineOff_ObjNormal_8x8; diff --git a/src/battle_anim.c b/src/battle_anim.c index b1479a7bb..26246bf5b 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -36,7 +36,7 @@ EWRAM_DATA static u16 sAnimMoveIndex = 0; EWRAM_DATA u8 gBattleAnimAttacker = 0; EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u8 gUnknown_2037F24 = 0; +EWRAM_DATA u8 gAnimCustomPanning = 0; // Function Declarations static void AddSpriteIndex(u16 index); @@ -1809,7 +1809,7 @@ void ClearBattleAnimationVars(void) sAnimMoveIndex = 0; gBattleAnimAttacker = 0; gBattleAnimTarget = 0; - gUnknown_2037F24 = 0; + gAnimCustomPanning = 0; } void DoMoveAnim(u16 move) diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index d89416924..3fd92d0f9 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -1113,7 +1113,7 @@ static void AnimWillOWispOrb_Step(struct Sprite *sprite) sprite->data[5] = (sprite->data[5] + 4) & 0xFF; newData5 = sprite->data[5]; if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0) - PlaySE12WithPanning(SE_M_FLAME_WHEEL, gUnknown_2037F24); + PlaySE12WithPanning(SE_M_FLAME_WHEEL, gAnimCustomPanning); } else { diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index 8bf8cd762..f808e92f6 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -9,39 +9,39 @@ #include "constants/songs.h" static void AnimConfuseRayBallBounce(struct Sprite *sprite); -static void sub_80B52D0(struct Sprite *sprite); -static void sub_80B5344(struct Sprite *sprite); -static void sub_80B53C0(struct Sprite *sprite); +static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite); +static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite); +static void UpdateConfuseRayBallBlend(struct Sprite *sprite); static void AnimConfuseRayBallSpiral(struct Sprite *sprite); -static void sub_80B5470(struct Sprite *sprite); -static void sub_80B5570(u8 taskId); -static void sub_80B55C8(u8 taskId); +static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite); +static void AnimTask_NightShadeClone_Step1(u8 taskId); +static void AnimTask_NightShadeClone_Step2(u8 taskId); static void AnimShadowBall(struct Sprite *sprite); -static void AnimShadowBallStep(struct Sprite *sprite); +static void AnimShadowBall_Step(struct Sprite *sprite); static void AnimLick(struct Sprite *sprite); -static void sub_80B5810(struct Sprite *sprite); -static void sub_80B59D4(u8 taskId); -static void sub_80B5AD4(u8 taskId); -static void sub_80B5D38(u8 taskId); -static void sub_80B5DCC(u8 taskId); +static void AnimLick_Step(struct Sprite *sprite); +static void AnimTask_NightmareClone_Step(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step1(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step2(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step3(u8 taskId); static void AnimDestinyBondWhiteShadow(struct Sprite *sprite); -static void sub_80B5FE0(struct Sprite *sprite); -static void sub_80B623C(u8 taskId); -static void sub_80B6468(u8 taskId); -static void sub_80B65F0(u8 taskId); +static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite); +static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId); +static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId); +static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId); static void AnimCurseNail(struct Sprite *sprite); -static void sub_80B66A8(struct Sprite *sprite); -static void sub_80B6728(struct Sprite *sprite); -static void sub_80B67A0(struct Sprite *sprite); +static void AnimCurseNail_Step1(struct Sprite *sprite); +static void AnimCurseNail_Step2(struct Sprite *sprite); +static void AnimCurseNail_End(struct Sprite *sprite); static void AnimGhostStatusSprite(struct Sprite *sprite); -static void sub_80B68A8(struct Sprite *sprite); -static void sub_80B696C(u8 taskId); +static void AnimGhostStatusSprite_End(struct Sprite *sprite); +static void AnimTask_GrudgeFlames_Step(u8 taskId); static void AnimGrudgeFlame(struct Sprite *sprite); -static void sub_80B7158(struct Sprite *sprite); +static void AnimMonMoveCircular(struct Sprite *sprite); static void sub_80B6BE4(u8 taskId); static void sub_80B6F30(u8 taskId); static void sub_80B6FC4(u8 taskId); -static void sub_80B71B0(struct Sprite *sprite); +static void AnimMonMoveCircular_Step(struct Sprite *sprite); static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = { @@ -125,17 +125,15 @@ const struct SpriteTemplate gLickSpriteTemplate = .callback = AnimLick, }; -// not used -static const union AffineAnimCmd gUnknown_83E7654[] = +static const union AffineAnimCmd sAffineAnim_Unused[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; -// not used -static const union AffineAnimCmd *const gUnknown_83E7664[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - gUnknown_83E7654, + sAffineAnim_Unused, }; const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = @@ -207,7 +205,8 @@ const struct SpriteTemplate gGrudgeFlameSpriteTemplate = .callback = AnimGrudgeFlame, }; -const struct SpriteTemplate gUnknown_83E76F8 = +// Unused +static const struct SpriteTemplate sMonMoveCircularSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -215,7 +214,7 @@ const struct SpriteTemplate gUnknown_83E76F8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B7158, + .callback = AnimMonMoveCircular, }; static void AnimConfuseRayBallBounce(struct Sprite *sprite) @@ -223,24 +222,24 @@ static void AnimConfuseRayBallBounce(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslationWithSpeed(sprite); - sprite->callback = sub_80B52D0; + sprite->callback = AnimConfuseRayBallBounce_Step1; sprite->data[6] = 16; SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, sprite->data[6]); } -static void sub_80B52D0(struct Sprite *sprite) +static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite) { s16 r0, r2; - sub_80B53C0(sprite); + UpdateConfuseRayBallBlend(sprite); if (AnimTranslateLinear(sprite)) { - sprite->callback = sub_80B5344; + sprite->callback = AnimConfuseRayBallBounce_Step2; return; } sprite->x2 += Sin(sprite->data[5], 10); @@ -252,10 +251,10 @@ static void sub_80B52D0(struct Sprite *sprite) return; if (r0 <= 0) return; - PlaySE12WithPanning(SE_M_CONFUSE_RAY, gUnknown_2037F24); + PlaySE12WithPanning(SE_M_CONFUSE_RAY, gAnimCustomPanning); } -static void sub_80B5344(struct Sprite *sprite) +static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) { s16 r2, r0; @@ -275,11 +274,11 @@ static void sub_80B5344(struct Sprite *sprite) } else { - sub_80B53C0(sprite); + UpdateConfuseRayBallBlend(sprite); } } -static void sub_80B53C0(struct Sprite *sprite) +static void UpdateConfuseRayBallBlend(struct Sprite *sprite) { s16 r0; @@ -309,11 +308,11 @@ static void sub_80B53C0(struct Sprite *sprite) static void AnimConfuseRayBallSpiral(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_80B5470; + sprite->callback = AnimConfuseRayBallSpiral_Step; sprite->callback(sprite); } -static void sub_80B5470(struct Sprite *sprite) +static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite) { u16 temp1; @@ -332,6 +331,7 @@ static void sub_80B5470(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Creates a large transparent clone of the attacker centered on their position which shrinks to original size void AnimTask_NightShadeClone(u8 taskId) { u8 spriteId; @@ -346,10 +346,10 @@ void AnimTask_NightShadeClone(u8 taskId) gTasks[taskId].data[1] = *gBattleAnimArgs; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 16; - gTasks[taskId].func = sub_80B5570; + gTasks[taskId].func = AnimTask_NightShadeClone_Step1; } -static void sub_80B5570(u8 taskId) +static void AnimTask_NightShadeClone_Step1(u8 taskId) { gTasks[taskId].data[10] += 1; if (gTasks[taskId].data[10] == 3) @@ -360,11 +360,11 @@ static void sub_80B5570(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[2], gTasks[taskId].data[3])); if (gTasks[taskId].data[2] != 9) return; - gTasks[taskId].func = sub_80B55C8; + gTasks[taskId].func = AnimTask_NightShadeClone_Step2; } } -static void sub_80B55C8(u8 taskId) +static void AnimTask_NightShadeClone_Step2(u8 taskId) { u8 spriteId; @@ -398,8 +398,8 @@ static void AnimShadowBall(struct Sprite *sprite) s16 oldPosX = sprite->x; s16 oldPosY = sprite->y; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; @@ -408,10 +408,10 @@ static void AnimShadowBall(struct Sprite *sprite) sprite->data[5] = sprite->y << 4; sprite->data[6] = ((oldPosX - sprite->x) << 4) / (gBattleAnimArgs[0] << 1); sprite->data[7] = ((oldPosY - sprite->y) << 4) / (gBattleAnimArgs[0] << 1); - sprite->callback = AnimShadowBallStep; + sprite->callback = AnimShadowBall_Step; } -static void AnimShadowBallStep(struct Sprite *sprite) +static void AnimShadowBall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -429,8 +429,8 @@ static void AnimShadowBallStep(struct Sprite *sprite) sprite->data[2] -= 1; if (sprite->data[2] > 0) break; - sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = sprite->x << 4; sprite->data[5] = sprite->y << 4; sprite->data[6] = ((sprite->data[1] - sprite->x) << 4) / sprite->data[3]; @@ -445,8 +445,8 @@ static void AnimShadowBallStep(struct Sprite *sprite) sprite->data[3] -= 1; if (sprite->data[3] > 0) break; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] += 1; break; case 3: @@ -458,10 +458,10 @@ static void AnimShadowBallStep(struct Sprite *sprite) static void AnimLick(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_80B5810; + sprite->callback = AnimLick_Step; } -static void sub_80B5810(struct Sprite *sprite) +static void AnimLick_Step(struct Sprite *sprite) { bool8 r5 = FALSE; bool8 r6 = FALSE; @@ -507,12 +507,13 @@ static void sub_80B5810(struct Sprite *sprite) } } +// Creates a transparent clone of the target which drifts up and away to the side void AnimTask_NightmareClone(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - task->data[0] = CloneBattlerSpriteWithBlend(1); + task->data[0] = CloneBattlerSpriteWithBlend(ANIM_TARGET); if (task->data[0] < 0) { DestroyAnimVisualTask(taskId); @@ -539,10 +540,10 @@ void AnimTask_NightmareClone(u8 taskId) gSprites[task->data[0]].data[4] = 0; StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy); gSprites[task->data[0]].callback = TranslateSpriteLinearFixedPoint; - task->func = sub_80B59D4; + task->func = AnimTask_NightmareClone_Step; } -static void sub_80B59D4(u8 taskId) +static void AnimTask_NightmareClone_Step(u8 taskId) { struct Task *task; @@ -579,17 +580,18 @@ static void sub_80B59D4(u8 taskId) } } +// Creates a blended copy of the target that wavers in front of them void AnimTask_SpiteTargetShadow(u8 taskId) { struct Task *task; task = &gTasks[taskId]; task->data[15] = 0; - task->func = sub_80B5AD4; + task->func = AnimTask_SpiteTargetShadow_Step1; task->func(taskId); } -static void sub_80B5AD4(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step1(u8 taskId) { s16 startLine; struct Task *task = &gTasks[taskId]; @@ -670,7 +672,7 @@ static void sub_80B5AD4(u8 taskId) SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); - task->func = sub_80B5D38; + task->func = AnimTask_SpiteTargetShadow_Step2; ++task->data[15]; break; default: @@ -679,7 +681,7 @@ static void sub_80B5AD4(u8 taskId) } } -static void sub_80B5D38(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step2(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -693,12 +695,12 @@ static void sub_80B5D38(u8 taskId) if (task->data[1] == 128) { task->data[15] = 0; - task->func = sub_80B5DCC; + task->func = AnimTask_SpiteTargetShadow_Step3; task->func(taskId); } } -static void sub_80B5DCC(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step3(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 rank = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); @@ -740,17 +742,17 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; - battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; + battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28; } else { - battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; - battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; + battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28; } yDiff = battler2Y - battler1Y; sprite->data[0] = battler1X * 16; @@ -764,11 +766,11 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) sprite->oam.priority = 2; sprite->x = battler1X; sprite->y = battler1Y; - sprite->callback = sub_80B5FE0; + sprite->callback = AnimDestinyBondWhiteShadow_Step; sprite->invisible = TRUE; } -static void sub_80B5FE0(struct Sprite *sprite) +static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite) { if (sprite->data[4]) { @@ -798,11 +800,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) task->data[8] = 0; task->data[9] = 16; task->data[10] = gBattleAnimArgs[0]; - baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); baseY = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM); if (!IsContest()) { - for (battler = 0; battler < 4; ++battler) + for (battler = 0; battler < MAX_BATTLERS_COUNT; ++battler) { if (battler != gBattleAnimAttacker && battler != (gBattleAnimAttacker ^ 2) @@ -811,7 +813,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { - x = GetBattlerSpriteCoord(battler, 2); + x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_BOTTOM); gSprites[spriteId].data[0] = baseX << 4; gSprites[spriteId].data[1] = baseY << 4; @@ -820,7 +822,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) gSprites[spriteId].data[4] = gBattleAnimArgs[1]; gSprites[spriteId].data[5] = x; gSprites[spriteId].data[6] = y; - gSprites[spriteId].callback = sub_80B5FE0; + gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step; task->data[task->data[12] + 13] = spriteId; ++task->data[12]; } @@ -841,15 +843,15 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) gSprites[spriteId].data[4] = gBattleAnimArgs[1]; gSprites[spriteId].data[5] = x; gSprites[spriteId].data[6] = y; - gSprites[spriteId].callback = sub_80B5FE0; + gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step; task->data[13] = spriteId; task->data[12] = 1; } } - task->func = sub_80B623C; + task->func = AnimTask_DestinyBondWhiteShadow_Step; } -static void sub_80B623C(u8 taskId) +static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -933,7 +935,7 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, ((WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) | (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR))); SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN)); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest()) startX = 40; else @@ -951,10 +953,10 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId) gTasks[taskId].data[4] = bottomDistance; gTasks[taskId].data[5] = startX; gTasks[taskId].data[6] = startY; - gTasks[taskId].func = sub_80B6468; + gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step1; } -static void sub_80B6468(u8 taskId) +static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId) { s16 step, leftDistance, rightDistance, topDistance, bottomDistance, startX, startY; u16 left, right, top, bottom, selectedPalettes; @@ -980,15 +982,15 @@ static void sub_80B6468(u8 taskId) right = 240; top = 0; bottom = 112; - selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0)); - gTasks[taskId].func = sub_80B65F0; + gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2; } gBattle_WIN0H = WIN_RANGE(left, right); gBattle_WIN0V = WIN_RANGE(top, bottom); } -static void sub_80B65F0(u8 taskId) +static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId) { if (!gPaletteFade.active) { @@ -1023,10 +1025,10 @@ static void AnimCurseNail(struct Sprite *sprite) sprite->x += xDelta; sprite->data[1] = xDelta2; sprite->data[0] = 60; - sprite->callback = sub_80B66A8; + sprite->callback = AnimCurseNail_Step1; } -static void sub_80B66A8(struct Sprite *sprite) +static void AnimCurseNail_Step1(struct Sprite *sprite) { u16 var0; @@ -1047,7 +1049,7 @@ static void sub_80B66A8(struct Sprite *sprite) { sprite->data[0] = 30; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_80B6728); + StoreSpriteCallbackInData6(sprite, AnimCurseNail_Step2); } else { @@ -1057,7 +1059,7 @@ static void sub_80B66A8(struct Sprite *sprite) } } -static void sub_80B6728(struct Sprite *sprite) +static void AnimCurseNail_Step2(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -1079,12 +1081,12 @@ static void sub_80B6728(struct Sprite *sprite) if (sprite->data[2] == 16) { sprite->invisible = TRUE; - sprite->callback = sub_80B67A0; + sprite->callback = AnimCurseNail_End; } } } -static void sub_80B67A0(struct Sprite *sprite) +static void AnimCurseNail_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1125,12 +1127,12 @@ static void AnimGhostStatusSprite(struct Sprite *sprite) if (coeffB == 16 && coeffA == 0) { sprite->invisible = TRUE; - sprite->callback = sub_80B68A8; + sprite->callback = AnimGhostStatusSprite_End; } } } -static void sub_80B68A8(struct Sprite *sprite) +static void AnimGhostStatusSprite_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1143,7 +1145,7 @@ void AnimTask_GrudgeFlames(u8 taskId) task->data[0] = 0; task->data[1] = 16; - task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimAttacker); task->data[11] = (GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2) + 8; task->data[7] = 0; @@ -1154,10 +1156,10 @@ void AnimTask_GrudgeFlames(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); task->data[8] = 0; - task->func = sub_80B696C; + task->func = AnimTask_GrudgeFlames_Step; } -static void sub_80B696C(u8 taskId) +static void AnimTask_GrudgeFlames_Step(u8 taskId) { u16 i; u8 spriteId; @@ -1447,7 +1449,7 @@ static void sub_80B6FC4(u8 taskId) ++task->data[15]; } -static void sub_80B7158(struct Sprite *sprite) +static void AnimMonMoveCircular(struct Sprite *sprite) { sprite->invisible = TRUE; sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker]; @@ -1455,11 +1457,11 @@ static void sub_80B7158(struct Sprite *sprite) sprite->data[1] = 10; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; - sprite->callback = sub_80B71B0; + sprite->callback = AnimMonMoveCircular_Step; gSprites[sprite->data[5]].y += 8; } -static void sub_80B71B0(struct Sprite *sprite) +static void AnimMonMoveCircular_Step(struct Sprite *sprite) { if (sprite->data[3]) { diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index b05819e70..4b660fb7a 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -307,7 +307,7 @@ static void sub_80DD4D4(u8 taskId) gTasks[taskId].data[11] = panIncrement + oldPan; gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); } - gUnknown_2037F24 = gTasks[taskId].data[11]; + gAnimCustomPanning = gTasks[taskId].data[11]; if (gTasks[taskId].data[11] == gTasks[taskId].data[2]) DestroyAnimVisualTask(taskId); } From 3a0cd4180d2974fe1adcf3145c28c35cf0aff8f0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 15:38:51 -0400 Subject: [PATCH 018/105] Sync battle anim - ground --- src/battle_anim_ground.c | 263 ++++++++++++++++++++++----------------- 1 file changed, 146 insertions(+), 117 deletions(-) diff --git a/src/battle_anim_ground.c b/src/battle_anim_ground.c index 1ed06be1a..955071c22 100644 --- a/src/battle_anim_ground.c +++ b/src/battle_anim_ground.c @@ -9,22 +9,22 @@ static void AnimBonemerangProjectile(struct Sprite *sprite); static void AnimBoneHitProjectile(struct Sprite *sprite); static void AnimDirtScatter(struct Sprite *sprite); static void AnimMudSportDirt(struct Sprite *sprite); -static void AnimFissureDirtPlumeParticle(struct Sprite *sprite); +static void AnimDirtPlumeParticle(struct Sprite *sprite); static void AnimDigDirtMound(struct Sprite *sprite); -static void AnimBonemerangProjectileStep(struct Sprite *sprite); -static void AnimBonemerangProjectileEnd(struct Sprite *sprite); +static void AnimBonemerangProjectile_Step(struct Sprite *sprite); +static void AnimBonemerangProjectile_End(struct Sprite *sprite); static void AnimMudSportDirtRising(struct Sprite *sprite); static void AnimMudSportDirtFalling(struct Sprite *sprite); -static void sub_80B8ED4(u8 taskId); -static void sub_80B908C(u8 taskId); -static void sub_80B92B8(u8 useBg1, s16 y, s16 endY); -static void sub_80B912C(u8 taskId); -static void sub_80B91B0(u8 taskId); -static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite); -static void sub_80B9584(u8 taskId); -static void sub_80B967C(u8 taskId); -static void sub_80B9760(struct Task *task); -static void sub_80B98A8(u8 taskId); +static void AnimTask_DigBounceMovement(u8 taskId); +static void AnimTask_DigDisappear(u8 taskId); +static void SetDigScanlineEffect(u8 useBg1, s16 y, s16 endY); +static void AnimTask_DigSetVisibleUnderground(u8 taskId); +static void AnimTask_DigRiseUpFromHole(u8 taskId); +static void AnimDirtPlumeParticle_Step(struct Sprite *sprite); +static void AnimTask_ShakeTerrain(u8 taskId); +static void AnimTask_ShakeBattlers(u8 taskId); +static void SetBattlersXOffsetForShake(struct Task *task); +static void WaitForFissureCompletion(u8 taskId); static const union AffineAnimCmd sAffineAnim_Bonemerang[] = { @@ -122,7 +122,7 @@ const struct SpriteTemplate gDirtPlumeSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimFissureDirtPlumeParticle, + .callback = AnimDirtPlumeParticle, }; const struct SpriteTemplate gDirtMoundSpriteTemplate = @@ -140,17 +140,17 @@ const struct SpriteTemplate gDirtMoundSpriteTemplate = // a boomerang. After hitting the target mon, it comes back to the user. static void AnimBonemerangProjectile(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = -40; InitAnimArcTranslation(sprite); - sprite->callback = AnimBonemerangProjectileStep; + sprite->callback = AnimBonemerangProjectile_Step; } -static void AnimBonemerangProjectileStep(struct Sprite *sprite) +static void AnimBonemerangProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -159,15 +159,15 @@ static void AnimBonemerangProjectileStep(struct Sprite *sprite) sprite->y2 = 0; sprite->x2 = 0; sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = 40; InitAnimArcTranslation(sprite); - sprite->callback = AnimBonemerangProjectileEnd; + sprite->callback = AnimBonemerangProjectile_End; } } -static void AnimBonemerangProjectileEnd(struct Sprite *sprite) +static void AnimBonemerangProjectile_End(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -186,8 +186,8 @@ static void AnimBoneHitProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -204,8 +204,8 @@ static void AnimDirtScatter(struct Sprite *sprite) s16 xOffset, yOffset; InitSpritePosToAnimAttacker(sprite, 1); - targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 2); - targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 3); + targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2); + targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); xOffset = Random() & 0x1F; yOffset = Random() & 0x1F; if (xOffset > 16) @@ -229,8 +229,8 @@ static void AnimMudSportDirt(struct Sprite *sprite) ++sprite->oam.tileNum; if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[1] > 0 ? 1 : -1; sprite->callback = AnimMudSportDirtRising; } @@ -283,14 +283,14 @@ void AnimTask_DigDownMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[0] == 0) - task->func = sub_80B8ED4; + if (gBattleAnimArgs[0] == FALSE) + task->func = AnimTask_DigBounceMovement; else - task->func = sub_80B908C; + task->func = AnimTask_DigDisappear; task->func(taskId); } -static void sub_80B8ED4(u8 taskId) +static void AnimTask_DigBounceMovement(u8 taskId) { u8 var0; struct Task *task = &gTasks[taskId]; @@ -319,7 +319,7 @@ static void sub_80B8ED4(u8 taskId) ++task->data[0]; break; case 1: - sub_80B92B8(task->data[11], task->data[14], task->data[15]); + SetDigScanlineEffect(task->data[11], task->data[14], task->data[15]); ++task->data[0]; break; case 2: @@ -358,7 +358,7 @@ static void sub_80B8ED4(u8 taskId) } } -static void sub_80B908C(u8 taskId) +static void AnimTask_DigDisappear(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -376,15 +376,15 @@ void AnimTask_DigUpMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[0] == 0) - task->func = sub_80B912C; + if (gBattleAnimArgs[0] == FALSE) + task->func = AnimTask_DigSetVisibleUnderground; else - task->func = sub_80B91B0; + task->func = AnimTask_DigRiseUpFromHole; task->func(taskId); } -static void sub_80B912C(u8 taskId) +static void AnimTask_DigSetVisibleUnderground(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -394,7 +394,7 @@ static void sub_80B912C(u8 taskId) task->data[10] = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[task->data[10]].invisible = FALSE; gSprites[task->data[10]].x2 = 0; - gSprites[task->data[10]].y2 = 160 - gSprites[task->data[10]].y; + gSprites[task->data[10]].y2 = DISPLAY_HEIGHT - gSprites[task->data[10]].y; ++task->data[0]; break; case 1: @@ -402,7 +402,7 @@ static void sub_80B912C(u8 taskId) } } -static void sub_80B91B0(u8 taskId) +static void AnimTask_DigRiseUpFromHole(u8 taskId) { u8 var0; struct Task *task = &gTasks[taskId]; @@ -422,7 +422,7 @@ static void sub_80B91B0(u8 taskId) ++task->data[0]; break; case 1: - sub_80B92B8(task->data[11], 0, task->data[15]); + SetDigScanlineEffect(task->data[11], 0, task->data[15]); ++task->data[0]; break; case 2: @@ -443,7 +443,7 @@ static void sub_80B91B0(u8 taskId) } } -static void sub_80B92B8(u8 useBG1, s16 y, s16 endY) +static void SetDigScanlineEffect(u8 useBG1, s16 y, s16 endY) { s16 bgX; struct ScanlineEffectParams scanlineParams; @@ -485,7 +485,7 @@ static void sub_80B92B8(u8 useBG1, s16 y, s16 endY) // arg 3: target y offset // arg 4: wave amplitude // arg 5: duration -static void AnimFissureDirtPlumeParticle(struct Sprite *sprite) +static void AnimDirtPlumeParticle(struct Sprite *sprite) { s8 battler; s16 xOffset; @@ -500,17 +500,17 @@ static void AnimFissureDirtPlumeParticle(struct Sprite *sprite) xOffset *= -1; gBattleAnimArgs[2] *= -1; } - sprite->x = GetBattlerSpriteCoord(battler, 2) + xOffset; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + xOffset; sprite->y = GetBattlerYCoordWithElevation(battler) + 30; sprite->data[0] = gBattleAnimArgs[5]; sprite->data[2] = sprite->x + gBattleAnimArgs[2]; sprite->data[4] = sprite->y + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; InitAnimArcTranslation(sprite); - sprite->callback = AnimFissureDirtPlumeParticleStep; + sprite->callback = AnimDirtPlumeParticle_Step; } -static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite) +static void AnimDirtPlumeParticle_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -530,7 +530,7 @@ static void AnimDigDirtMound(struct Sprite *sprite) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; - sprite->x = GetBattlerSpriteCoord(battler, 0) - 16 + (gBattleAnimArgs[1] * 32); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X) - 16 + (gBattleAnimArgs[1] * 32); sprite->y = GetBattlerYCoordWithElevation(battler) + 32; sprite->oam.tileNum += gBattleAnimArgs[1] * 8; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -538,151 +538,178 @@ static void AnimDigDirtMound(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } +#define tState data[0] +#define tDelay data[1] +#define tTimer data[2] +#define tMaxTime data[3] +#define tbattlerSpriteIds(i) data[9 + (i)] +#define tNumBattlers data[13] // AnimTask_ShakeBattlers +#define tInitialX data[13] // AnimTask_ShakeTerrain +#define tHorizOffset data[14] +#define tInitHorizOffset data[15] + +// Shakes battler(s) or the battle terrain back and forth horizontally. Used by e.g. Earthquake, Eruption +// arg0: What to shake. 0-3 for any specific battler, MAX_BATTLERS_COUNT for all battlers, MAX_BATTLERS_COUNT + 1 for the terrain +// arg1: Shake intensity, used to calculate horizontal pixel offset (if 0, use move power instead) +// arg2: Length of time to shake for void AnimTask_HorizontalShake(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[1]) - task->data[14] = task->data[15] = gBattleAnimArgs[1] + 3; + if (gBattleAnimArgs[1] != 0) + task->tHorizOffset = task->tInitHorizOffset = gBattleAnimArgs[1] + 3; else - task->data[14] = task->data[15] = (gAnimMovePower / 10) + 3; + task->tHorizOffset = task->tInitHorizOffset = (gAnimMovePower / 10) + 3; - task->data[3] = gBattleAnimArgs[2]; + task->tMaxTime = gBattleAnimArgs[2]; switch (gBattleAnimArgs[0]) { - case 5: - task->data[13] = gBattle_BG3_X; - task->func = sub_80B9584; + case MAX_BATTLERS_COUNT + 1: // Shake terrain + task->tInitialX = gBattle_BG3_X; + task->func = AnimTask_ShakeTerrain; break; - case 4: - task->data[13] = 0; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + case MAX_BATTLERS_COUNT: // Shake all battlers + task->tNumBattlers = 0; + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (IsBattlerSpriteVisible(i)) { - task->data[task->data[13] + 9] = gBattlerSpriteIds[i]; - ++task->data[13]; + task->tbattlerSpriteIds(task->tNumBattlers) = gBattlerSpriteIds[i]; + task->tNumBattlers++; } } - task->func = sub_80B967C; + task->func = AnimTask_ShakeBattlers; break; - default: - task->data[9] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (task->data[9] == 0xFF) + default: // Shake specific battler + task->tbattlerSpriteIds(0) = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (task->tbattlerSpriteIds(0) == SPRITE_NONE) { DestroyAnimVisualTask(taskId); } else { - task->data[13] = 1; - task->func = sub_80B967C; + task->tNumBattlers = 1; + task->func = AnimTask_ShakeBattlers; } - break; } } -static void sub_80B9584(u8 taskId) +static void AnimTask_ShakeTerrain(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - if ((task->data[2] & 1) == 0) - gBattle_BG3_X = task->data[13] + task->data[15]; + task->tDelay = 0; + if ((task->tTimer & 1) == 0) + gBattle_BG3_X = task->tInitialX + task->tInitHorizOffset; else - gBattle_BG3_X = task->data[13] - task->data[15]; + gBattle_BG3_X = task->tInitialX - task->tInitHorizOffset; - if (++task->data[2] == task->data[3]) + if (++task->tTimer == task->tMaxTime) { - task->data[2] = 0; - --task->data[14]; - ++task->data[0]; + task->tTimer = 0; + task->tHorizOffset--; + task->tState++; } } break; case 1: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - if ((task->data[2] & 1) == 0) - gBattle_BG3_X = task->data[13] + task->data[14]; + task->tDelay = 0; + if ((task->tTimer & 1) == 0) + gBattle_BG3_X = task->tInitialX + task->tHorizOffset; else - gBattle_BG3_X = task->data[13] - task->data[14]; + gBattle_BG3_X = task->tInitialX - task->tHorizOffset; - if (++task->data[2] == 4) + if (++task->tTimer == 4) { - task->data[2] = 0; - if (--task->data[14] == 0) - ++task->data[0]; + task->tTimer = 0; + if (--task->tHorizOffset == 0) + task->tState++; } } break; case 2: - gBattle_BG3_X = task->data[13]; + gBattle_BG3_X = task->tInitialX; DestroyAnimVisualTask(taskId); break; } } -static void sub_80B967C(u8 taskId) +static void AnimTask_ShakeBattlers(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - sub_80B9760(task); - if (++task->data[2] == task->data[3]) + task->tDelay = 0; + SetBattlersXOffsetForShake(task); + if (++task->tTimer == task->tMaxTime) { - task->data[2] = 0; - --task->data[14]; - ++task->data[0]; + task->tTimer = 0; + task->tHorizOffset--; + task->tState++; } } break; case 1: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - sub_80B9760(task); - if (++task->data[2] == 4) + task->tDelay = 0; + SetBattlersXOffsetForShake(task); + if (++task->tTimer == 4) { - task->data[2] = 0; - if (--task->data[14] == 0) - ++task->data[0]; + task->tTimer = 0; + if (--task->tHorizOffset == 0) + task->tState++; } } break; case 2: - for (i = 0; i < task->data[13]; ++i) - gSprites[task->data[9 + i]].x2 = 0; + for (i = 0; i < task->tNumBattlers; i++) + gSprites[task->tbattlerSpriteIds(i)].x2 = 0; + DestroyAnimVisualTask(taskId); break; } } -static void sub_80B9760(struct Task *task) +static void SetBattlersXOffsetForShake(struct Task *task) { u16 i, xOffset; - if ((task->data[2] & 1) == 0) - xOffset = (task->data[14] / 2) + (task->data[14] & 1); + if ((task->tTimer & 1) == 0) + xOffset = (task->tHorizOffset / 2) + (task->tHorizOffset & 1); else - xOffset = -(task->data[14] / 2); - for (i = 0; i < task->data[13]; ++i) - gSprites[task->data[9 + i]].x2 = xOffset; + xOffset = -(task->tHorizOffset / 2); + + for (i = 0; i < task->tNumBattlers; i++) + { + gSprites[task->tbattlerSpriteIds(i)].x2 = xOffset; + } } +#undef tState +#undef tDelay +#undef tTimer +#undef tMaxTime +#undef tbattlerSpriteIds +#undef tNumBattlers +#undef tInitialX +#undef tHorizOffset +#undef tInitHorizOffset + void AnimTask_IsPowerOver99(u8 taskId) { gBattleAnimArgs[15] = gAnimMovePower > 99; @@ -696,19 +723,21 @@ void AnimTask_PositionFissureBgOnBattler(u8 taskId) if (gBattleAnimArgs[0] > 1) battler ^= BIT_FLANK; - newTask = &gTasks[CreateTask(sub_80B98A8, gBattleAnimArgs[1])]; - newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, 2)) & 0x1FF; - newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, 3)) & 0xFF; + newTask = &gTasks[CreateTask(WaitForFissureCompletion, gBattleAnimArgs[1])]; + newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2)) & 0x1FF; + newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET)) & 0xFF; gBattle_BG3_X = newTask->data[1]; gBattle_BG3_Y = newTask->data[2]; newTask->data[3] = gBattleAnimArgs[2]; DestroyAnimVisualTask(taskId); } -static void sub_80B98A8(u8 taskId) +static void WaitForFissureCompletion(u8 taskId) { struct Task *task = &gTasks[taskId]; + // Holds the BG3 offsets until gBattleAnimArgs[7] + // is set to a special terminator value. if (gBattleAnimArgs[7] == task->data[3]) { gBattle_BG3_X = 0; From 9552ea633061e2eefcebc9b2ccb12fc6e40a94be Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 16 Aug 2022 15:53:59 -0400 Subject: [PATCH 019/105] Sync battle anim - ice --- data/battle_anim_scripts.s | 6 +- include/battle_anim.h | 6 +- src/battle_anim_ice.c | 129 +++++++++++++++++++------------------ 3 files changed, 71 insertions(+), 70 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 93904a4fa..8cb6c3502 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -3571,7 +3571,7 @@ Move_HAIL:: loadspritegfx ANIM_TAG_ICE_CRYSTALS createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 6, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_Hail1, 5, + createvisualtask AnimTask_Hail, 5, loopsewithpan SE_M_HAIL, 0, 8, 10 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1, 3, 6, 0, RGB_BLACK @@ -4049,7 +4049,7 @@ Move_MIST_BALL:: createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, 32279, 16, RGB_WHITE, 16 delay 0 playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_LoadMistTiles, 5, + createvisualtask AnimTask_MistBallFog, 5, createvisualtask AnimTask_BlendSelected, 10, 4, 3, 0, 16, RGB_WHITE delay 8 createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 70, 0 @@ -7067,7 +7067,7 @@ MistCloud:: Move_HAZE:: waitforvisualfinish playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_Haze1, 5, + createvisualtask AnimTask_HazeScrollingFog, 5, delay 30 createvisualtask AnimTask_BlendSelected, 10, 0 | (0xF << 7), 2, 0, 16, RGB_BLACK delay 90 diff --git a/include/battle_anim.h b/include/battle_anim.h index f8c9d9c0a..c5c7626f8 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -546,9 +546,9 @@ void AnimTask_MoveSkyUppercutBg(u8 taskId); // ice.c extern const union AnimCmd *const gAnims_SmallBubblePair[]; -void AnimTask_Haze1(u8 taskId); -void AnimTask_LoadMistTiles(u8 taskId); -void AnimTask_Hail1(u8 taskId); +void AnimTask_HazeScrollingFog(u8 taskId); +void AnimTask_MistBallFog(u8 taskId); +void AnimTask_Hail(u8 taskId); void AnimTask_GetRolloutCounter(u8 taskId); // electric.c diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 3e63cdbe9..f5e4a32dc 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -9,21 +9,21 @@ struct HailStruct { - s32 unk0:10; - s32 unk1:10; - s32 unk2:8; + s32 x:10; + s32 y:10; + s32 bPosition:8; s32 unk3:4; }; -static void sub_80AF108(struct Sprite *sprite); -static void sub_80AF28C(struct Sprite *sprite); +static void AnimUnusedIceCrystalThrow(struct Sprite *sprite); +static void AnimUnusedIceCrystalThrow_Step(struct Sprite *sprite); static void AnimIcePunchSwirlingParticle(struct Sprite *sprite); static void AnimIceBeamParticle(struct Sprite *sprite); static void AnimIceEffectParticle(struct Sprite *sprite); static void AnimFlickerIceEffectParticle(struct Sprite *sprite); +static void AnimSwirlingSnowball(struct Sprite *sprite); static void AnimSwirlingSnowball_Step1(struct Sprite *sprite); static void AnimSwirlingSnowball_Step2(struct Sprite *sprite); -static void AnimSwirlingSnowball_Step3(struct Sprite *sprite); static void AnimSwirlingSnowball_End(struct Sprite *sprite); static void AnimMoveParticleBeyondTarget(struct Sprite *sprite); static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite); @@ -39,25 +39,24 @@ static void InitIceBallAnim(struct Sprite *sprite); static void AnimThrowIceBall(struct Sprite *sprite); static void InitIceBallParticle(struct Sprite *sprite); static void AnimIceBallParticle(struct Sprite *sprite); -static void AnimTask_Haze2(u8 taskId); -static void AnimTask_OverlayFogTiles(u8 taskId); +static void AnimTask_HazeScrollingFog_Step(u8 taskId); +static void AnimTask_MistBallFog_Step(u8 taskId); static void AnimTask_Hail2(u8 taskId); static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); -static const union AnimCmd gUnknown_83E62C0[] = +static const union AnimCmd sAnim_Unused[] = { ANIMCMD_FRAME(0, 5, .hFlip = TRUE), ANIMCMD_FRAME(1, 5, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E62CC[] = +static const union AnimCmd *const sAnims_Unused[] = { - gUnknown_83E62C0, + sAnim_Unused, }; -// not used -static const struct SpriteTemplate gUnknown_83E62D0 = +static const struct SpriteTemplate sUnusedIceCrystalThrowSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, @@ -65,10 +64,10 @@ static const struct SpriteTemplate gUnknown_83E62D0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AF108, + .callback = AnimUnusedIceCrystalThrow, }; -static const union AnimCmd gUnknown_83E62E8[] = +static const union AnimCmd sAnim_IceCrystalLargeChunk[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, @@ -105,10 +104,10 @@ static const union AnimCmd sAnim_SmallBubblePair[] = ANIMCMD_JUMP(0), }; -// unused -static const union AnimCmd *const gUnknown_83E631C[] = +// Unused, contains just the top left corner of the large ice crystal +static const union AnimCmd *const sAnims_IceCrystalLargeChunk[] = { - gUnknown_83E62E8, + sAnim_IceCrystalLargeChunk, }; static const union AnimCmd *const sAnims_IceCrystalLarge[] = @@ -245,7 +244,7 @@ const struct SpriteTemplate gSwirlingSnowballSpriteTemplate = .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSwirlingSnowball_Step1, + .callback = AnimSwirlingSnowball, }; const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate = @@ -332,7 +331,7 @@ const struct SpriteTemplate gSmogCloudSpriteTemplate = .callback = InitSwirlingFogAnim, }; -static const u8 gUnknown_83E64D4[] = +static const u8 sHazeBlendAmounts[] = { 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; @@ -348,7 +347,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate = .callback = AnimThrowMistBall, }; -static const u8 gUnknown_83E6500[] = +static const u8 sMistBlendAmounts[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; @@ -366,16 +365,16 @@ const struct SpriteTemplate gPoisonGasCloudSpriteTemplate = static const struct HailStruct sHailCoordData[] = { - {100, 120, 0, 2}, - {85, 120, 0, 0}, - {242, 120, 1, 1}, - {66, 120, 2, 1}, - {182, 120, 3, 0}, - {60, 120, 0, 2}, - {214, 120, 1, 0}, - {113, 120, 0, 1}, - {210, 120, 3, 1}, - {38, 120, 2, 0}, + {.x = 100, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 2}, + {.x = 85, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 0}, + {.x = 242, .y = 120, .bPosition = B_POSITION_OPPONENT_LEFT, .unk3 = 1}, + {.x = 66, .y = 120, .bPosition = B_POSITION_PLAYER_RIGHT, .unk3 = 1}, + {.x = 182, .y = 120, .bPosition = B_POSITION_OPPONENT_RIGHT, .unk3 = 0}, + {.x = 60, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 2}, + {.x = 214, .y = 120, .bPosition = B_POSITION_OPPONENT_LEFT, .unk3 = 0}, + {.x = 113, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 1}, + {.x = 210, .y = 120, .bPosition = B_POSITION_OPPONENT_RIGHT, .unk3 = 1}, + {.x = 38, .y = 120, .bPosition = B_POSITION_PLAYER_RIGHT, .unk3 = 0}, }; static const union AffineAnimCmd sAffineAnim_HailParticle_0[] = @@ -518,8 +517,7 @@ const struct SpriteTemplate gIceBallImpactShardSpriteTemplate = .callback = InitIceBallParticle, }; -// not used -static void sub_80AF108(struct Sprite *sprite) +static void AnimUnusedIceCrystalThrow(struct Sprite *sprite) { s16 targetX, targetY, attackerX, attackerY; @@ -535,11 +533,13 @@ static void sub_80AF108(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[3] + targetY; SetupLinearTranslationWithFixedDuration(sprite); // won't match with while loop - for (; (targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192); targetX += sprite->data[1], targetY += sprite->data[2]) + for (; (targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32); + targetX += sprite->data[1], targetY += sprite->data[2]) ; sprite->data[1] = -sprite->data[1]; sprite->data[2] = -sprite->data[2]; - for (; (attackerX >= -32 && attackerX <= 272) && (attackerY >= -32 && attackerY <= 192); attackerX += sprite->data[1], attackerY += sprite->data[2]) + for (; (attackerX >= -32 && attackerX <= DISPLAY_WIDTH + 32) && (attackerY >= -32 && attackerY <= DISPLAY_HEIGHT + 32); + attackerX += sprite->data[1], attackerY += sprite->data[2]) ; sprite->x = attackerX; sprite->y = attackerY; @@ -551,11 +551,10 @@ static void sub_80AF108(struct Sprite *sprite) SetupLinearTranslationWithFixedDuration(sprite); sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[6]; - sprite->callback = sub_80AF28C; + sprite->callback = AnimUnusedIceCrystalThrow_Step; } -// not used -static void sub_80AF28C(struct Sprite *sprite) +static void AnimUnusedIceCrystalThrow_Step(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -645,7 +644,7 @@ static void AnimFlickerIceEffectParticle(struct Sprite *sprite) // arg 3: target y offset // arg 4: particle speed // arg 5: multiple targets? (boolean) -static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) +static void AnimSwirlingSnowball(struct Sprite *sprite) { s32 i; s16 tempDataHolder[8]; @@ -676,8 +675,9 @@ static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > 272 - || sprite->y + sprite->y2 > 160 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) break; } @@ -687,10 +687,10 @@ static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) for (i = 0; i < 8; ++i) sprite->data[i] = tempDataHolder[i]; sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed; - StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step2); + StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); } -static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) +static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { s16 tempVar; @@ -703,11 +703,11 @@ static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) sprite->data[3] = Sin(sprite->data[0], tempVar); sprite->data[4] = Cos(sprite->data[0], 0xF); sprite->data[5] = 0; - sprite->callback = AnimSwirlingSnowball_Step3; + sprite->callback = AnimSwirlingSnowball_Step2; sprite->callback(sprite); } -static void AnimSwirlingSnowball_Step3(struct Sprite *sprite) +static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) { s16 tempVar = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 20 : -20; @@ -780,8 +780,9 @@ static void AnimMoveParticleBeyondTarget(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > 272 - || sprite->y + sprite->y2 > 160 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) break; } @@ -806,8 +807,9 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if (sprite->data[0] == 1) { - if ((u32)(sprite->x + sprite->x2 + 16) > 272 - || sprite->y + sprite->y2 > 160 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } @@ -927,7 +929,7 @@ static void AnimSwirlingFogAnim(struct Sprite *sprite) } // Fades mons to black and places foggy overlay in Haze. -void AnimTask_Haze1(u8 taskId) +void AnimTask_HazeScrollingFog(u8 taskId) { struct BattleAnimBgData animBg; @@ -947,10 +949,10 @@ void AnimTask_Haze1(u8 taskId) LoadPalette(&gDefaultWeatherSpritePalette, animBg.paletteId * 16, 32); if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); - gTasks[taskId].func = AnimTask_Haze2; + gTasks[taskId].func = AnimTask_HazeScrollingFog_Step; } -static void AnimTask_Haze2(u8 taskId) +static void AnimTask_HazeScrollingFog_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -962,7 +964,7 @@ static void AnimTask_Haze2(u8 taskId) { gTasks[taskId].data[10] = 0; ++gTasks[taskId].data[9]; - gTasks[taskId].data[11] = gUnknown_83E64D4[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sHazeBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 9) { @@ -1024,8 +1026,7 @@ static void AnimThrowMistBall(struct Sprite *sprite) sprite->callback = TranslateAnimSpriteToTargetMonLocation; } -// Displays misty background in Mist Ball. -void AnimTask_LoadMistTiles(u8 taskId) +void AnimTask_MistBallFog(u8 taskId) { struct BattleAnimBgData animBg; @@ -1046,10 +1047,10 @@ void AnimTask_LoadMistTiles(u8 taskId) if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); gTasks[taskId].data[15] = -1; - gTasks[taskId].func = AnimTask_OverlayFogTiles; + gTasks[taskId].func = AnimTask_MistBallFog_Step; } -static void AnimTask_OverlayFogTiles(u8 taskId) +static void AnimTask_MistBallFog_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -1058,7 +1059,7 @@ static void AnimTask_OverlayFogTiles(u8 taskId) { case 0: gTasks[taskId].data[9] += 1; - gTasks[taskId].data[11] = gUnknown_83E6500[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sMistBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 5) { @@ -1249,7 +1250,7 @@ static void MovePoisonGasCloud(struct Sprite *sprite) } // Creates Hail. -void AnimTask_Hail1(u8 taskId) +void AnimTask_Hail(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1310,7 +1311,7 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, if (unk != 2) { - id = GetBattlerAtPosition(sHailCoordData[hailStructId].unk2); + id = GetBattlerAtPosition(sHailCoordData[hailStructId].bPosition); if (IsBattlerSpriteVisible(id)) { possibleBool = TRUE; @@ -1330,14 +1331,14 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, } else { - battlerX = (sHailCoordData[hailStructId].unk0); - battlerY = (sHailCoordData[hailStructId].unk1); + battlerX = sHailCoordData[hailStructId].x; + battlerY = sHailCoordData[hailStructId].y; } } else { - battlerX = (sHailCoordData[hailStructId].unk0); - battlerY = (sHailCoordData[hailStructId].unk1); + battlerX = sHailCoordData[hailStructId].x; + battlerY = sHailCoordData[hailStructId].y; } spriteX = battlerX - ((battlerY + 8) / 2); id = CreateSprite(&sHailParticleSpriteTemplate, spriteX, -8, 18); From 1711490e1634a6ba0200f2105dda97eae055da62 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 12:31:28 -0400 Subject: [PATCH 020/105] Sync battle anim - mon movement --- src/battle_anim_mon_movement.c | 217 +++++++++++++++++---------------- 1 file changed, 110 insertions(+), 107 deletions(-) diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 2ee4697ac..f7a8703ca 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -7,27 +7,27 @@ #undef abs #define abs(x) ((x) < 0 ? -(x) : (x)) -static void AnimTask_ShakeMonStep(u8 taskId); +static void AnimTask_ShakeMon_Step(u8 taskId); static void AnimTask_ShakeMon2Step(u8 taskId); -static void AnimTask_ShakeMonInPlaceStep(u8 taskId); -static void AnimTask_ShakeAndSinkMonStep(u8 taskId); -static void AnimTask_TranslateMonEllipticalStep(u8 taskId); +static void AnimTask_ShakeMonInPlace_Step(u8 taskId); +static void AnimTask_ShakeAndSinkMon_Step(u8 taskId); +static void AnimTask_TranslateMonElliptical_Step(u8 taskId); static void DoHorizontalLunge(struct Sprite *sprite); static void ReverseHorizontalLungeDirection(struct Sprite *sprite); static void DoVerticalDip(struct Sprite *sprite); static void ReverseVerticalDipDirection(struct Sprite *sprite); static void SlideMonToOriginalPos(struct Sprite *sprite); -static void SlideMonToOriginalPosStep(struct Sprite *sprite); +static void SlideMonToOriginalPos_Step(struct Sprite *sprite); static void SlideMonToOffset(struct Sprite *sprite); -static void sub_8099394(struct Sprite *sprite); -static void sub_809946C(struct Sprite *sprite); -static void AnimTask_WindUpLungePart1(u8 taskId); -static void AnimTask_WindUpLungePart2(u8 taskId); -static void sub_80996B8(u8 taskId); -static void AnimTask_SwayMonStep(u8 taskId); -static void AnimTask_ScaleMonAndRestoreStep(u8 taskId); -static void sub_8099B54(u8 taskId); -static void sub_8099CB8(u8 taskId); +static void SlideMonToOffsetAndBack(struct Sprite *sprite); +static void SlideMonToOffsetAndBack_End(struct Sprite *sprite); +static void AnimTask_WindUpLunge_Step1(u8 taskId); +static void AnimTask_WindUpLunge_Step2(u8 taskId); +static void AnimTask_SlideOffScreen_Step(u8 taskId); +static void AnimTask_SwayMon_Step(u8 taskId); +static void AnimTask_ScaleMonAndRestore_Step(u8 taskId); +static void AnimTask_RotateMonSpriteToSide_Step(u8 taskId); +static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId); const struct SpriteTemplate gHorizontalLungeSpriteTemplate = { @@ -81,7 +81,7 @@ const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8099394, + .callback = SlideMonToOffsetAndBack, }; // Task to facilitate simple shaking of a pokemon's picture in battle. @@ -95,24 +95,24 @@ void AnimTask_ShakeMon(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xFF) - DestroyAnimVisualTask(taskId); - else + if (spriteId == SPRITE_NONE) { - gSprites[spriteId].x2 = gBattleAnimArgs[1]; - gSprites[spriteId].y2 = gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[4]; - gTasks[taskId].data[3] = gBattleAnimArgs[4]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMonStep; - gTasks[taskId].func(taskId); + DestroyAnimVisualTask(taskId); + return; } + gSprites[spriteId].x2 = gBattleAnimArgs[1]; + gSprites[spriteId].y2 = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = AnimTask_ShakeMon_Step; + gTasks[taskId].func(taskId); } -static void AnimTask_ShakeMonStep(u8 taskId) +static void AnimTask_ShakeMon_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -152,7 +152,7 @@ void AnimTask_ShakeMon2(u8 taskId) if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) { spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xFF) + if (spriteId == SPRITE_NONE) abort = TRUE; } else if (gBattleAnimArgs[0] != 8) @@ -178,21 +178,23 @@ void AnimTask_ShakeMon2(u8 taskId) } else spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + if (abort) - DestroyAnimVisualTask(taskId); - else { - gSprites[spriteId].x2 = gBattleAnimArgs[1]; - gSprites[spriteId].y2 = gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[4]; - gTasks[taskId].data[3] = gBattleAnimArgs[4]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMon2Step; - gTasks[taskId].func(taskId); + DestroyAnimVisualTask(taskId); + return; } + + gSprites[spriteId].x2 = gBattleAnimArgs[1]; + gSprites[spriteId].y2 = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = AnimTask_ShakeMon2Step; + gTasks[taskId].func(taskId); } static void AnimTask_ShakeMon2Step(u8 taskId) @@ -231,25 +233,25 @@ void AnimTask_ShakeMonInPlace(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xFF) - DestroyAnimVisualTask(taskId); - else + if (spriteId == SPRITE_NONE) { - gSprites[spriteId].x2 += gBattleAnimArgs[1]; - gSprites[spriteId].y2 += gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = gBattleAnimArgs[3]; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; - gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; - gTasks[taskId].func = AnimTask_ShakeMonInPlaceStep; - gTasks[taskId].func(taskId); + DestroyAnimVisualTask(taskId); + return; } + gSprites[spriteId].x2 += gBattleAnimArgs[1]; + gSprites[spriteId].y2 += gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[3]; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; + gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; + gTasks[taskId].func = AnimTask_ShakeMonInPlace_Step; + gTasks[taskId].func(taskId); } -static void AnimTask_ShakeMonInPlaceStep(u8 taskId) +static void AnimTask_ShakeMonInPlace_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -299,22 +301,22 @@ void AnimTask_ShakeAndSinkMon(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].func = AnimTask_ShakeAndSinkMonStep; + gTasks[taskId].func = AnimTask_ShakeAndSinkMon_Step; gTasks[taskId].func(taskId); } -static void AnimTask_ShakeAndSinkMonStep(u8 taskId) +static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; - s16 data1 = gTasks[taskId].data[1]; + s16 x = gTasks[taskId].data[1]; if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) { gTasks[taskId].data[8] = 0; - if (gSprites[spriteId].x2 == data1) - data1 = -data1; - gSprites[spriteId].x2 += data1; + if (gSprites[spriteId].x2 == x) + x = -x; + gSprites[spriteId].x2 += x; } - gTasks[taskId].data[1] = data1; + gTasks[taskId].data[1] = x; gTasks[taskId].data[9] += gTasks[taskId].data[3]; gSprites[spriteId].y2 = gTasks[taskId].data[9] >> 8; if (--gTasks[taskId].data[4] == 0) @@ -342,11 +344,11 @@ void AnimTask_TranslateMonElliptical(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[4] = wavePeriod; - gTasks[taskId].func = AnimTask_TranslateMonEllipticalStep; + gTasks[taskId].func = AnimTask_TranslateMonElliptical_Step; gTasks[taskId].func(taskId); } -static void AnimTask_TranslateMonEllipticalStep(u8 taskId) +static void AnimTask_TranslateMonElliptical_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].x2 = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); @@ -462,19 +464,19 @@ static void SlideMonToOriginalPos(struct Sprite *sprite) sprite->data[1] = 0; sprite->data[7] = gBattleAnimArgs[1]; sprite->data[7] |= spriteId << 8; - sprite->callback = SlideMonToOriginalPosStep; + sprite->callback = SlideMonToOriginalPos_Step; } -static void SlideMonToOriginalPosStep(struct Sprite *sprite) +static void SlideMonToOriginalPos_Step(struct Sprite *sprite) { u8 data7 = sprite->data[7]; - struct Sprite *otherSprite = &gSprites[sprite->data[7] >> 8]; + struct Sprite *monSprite = &gSprites[sprite->data[7] >> 8]; if (sprite->data[0] == 0) { if (data7 == 1 || data7 == 0) - otherSprite->x2 = 0; + monSprite->x2 = 0; if (data7 == 2 || data7 == 0) - otherSprite->y2 = 0; + monSprite->y2 = 0; DestroyAnimSprite(sprite); } else @@ -482,8 +484,8 @@ static void SlideMonToOriginalPosStep(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - otherSprite->x2 = (sprite->data[3] >> 8) + sprite->data[5]; - otherSprite->y2 = (sprite->data[4] >> 8) + sprite->data[6]; + monSprite->x2 = (sprite->data[3] >> 8) + sprite->data[5]; + monSprite->y2 = (sprite->data[4] >> 8) + sprite->data[6]; } } @@ -498,12 +500,12 @@ static void SlideMonToOriginalPosStep(struct Sprite *sprite) static void SlideMonToOffset(struct Sprite *sprite) { u8 battlerId; - u8 spriteId; + u8 monSpriteId; if (gBattleAnimArgs[0] == 0) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; - spriteId = gBattlerSpriteIds[battlerId]; + monSpriteId = gBattlerSpriteIds[battlerId]; if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -511,25 +513,25 @@ static void SlideMonToOffset(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[spriteId].x; - sprite->data[2] = gSprites[spriteId].x + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[spriteId].y; - sprite->data[4] = gSprites[spriteId].y + gBattleAnimArgs[2]; + sprite->data[1] = gSprites[monSpriteId].x; + sprite->data[2] = gSprites[monSpriteId].x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[monSpriteId].y; + sprite->data[4] = gSprites[monSpriteId].y + gBattleAnimArgs[2]; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; sprite->data[4] = 0; - sprite->data[5] = spriteId; + sprite->data[5] = monSpriteId; sprite->invisible = TRUE; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback = TranslateMonSpriteLinearFixedPoint; } -static void sub_8099394(struct Sprite *sprite) +static void SlideMonToOffsetAndBack(struct Sprite *sprite) { u8 battlerId; u8 spriteId; sprite->invisible = TRUE; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; @@ -553,11 +555,11 @@ static void sub_8099394(struct Sprite *sprite) if (gBattleAnimArgs[5] == 0) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); else - StoreSpriteCallbackInData6(sprite, sub_809946C); + StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End); sprite->callback = TranslateMonSpriteLinearFixedPoint; } -static void sub_809946C(struct Sprite *sprite) +static void SlideMonToOffsetAndBack_End(struct Sprite *sprite) { gSprites[sprite->data[5]].x2 = 0; gSprites[sprite->data[5]].y2 = 0; @@ -590,10 +592,10 @@ void AnimTask_WindUpLunge(u8 taskId) gTasks[taskId].data[5] = gBattleAnimArgs[5] * 256 / gBattleAnimArgs[6]; gTasks[taskId].data[6] = gBattleAnimArgs[6]; gTasks[taskId].data[7] = wavePeriod; - gTasks[taskId].func = AnimTask_WindUpLungePart1; + gTasks[taskId].func = AnimTask_WindUpLunge_Step1; } -static void AnimTask_WindUpLungePart1(u8 taskId) +static void AnimTask_WindUpLunge_Step1(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gTasks[taskId].data[11] += gTasks[taskId].data[1]; @@ -601,10 +603,10 @@ static void AnimTask_WindUpLungePart1(u8 taskId) gSprites[spriteId].y2 = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); gTasks[taskId].data[10] += gTasks[taskId].data[7]; if (--gTasks[taskId].data[3] == 0) - gTasks[taskId].func = AnimTask_WindUpLungePart2; + gTasks[taskId].func = AnimTask_WindUpLunge_Step2; } -static void AnimTask_WindUpLungePart2(u8 taskId) +static void AnimTask_WindUpLunge_Step2(u8 taskId) { u8 spriteId; @@ -620,17 +622,18 @@ static void AnimTask_WindUpLungePart2(u8 taskId) } } +// To move a mon off-screen when pushed out by Roar/Whirlwind void AnimTask_SlideOffScreen(u8 taskId) { u8 spriteId; switch (gBattleAnimArgs[0]) { - case 0: - case 1: + case ANIM_ATTACKER: + case ANIM_TARGET: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; - case 2: + case ANIM_ATK_PARTNER: if (!IsBattlerSpriteVisible(gBattleAnimAttacker ^ BIT_FLANK)) { DestroyAnimVisualTask(taskId); @@ -638,7 +641,7 @@ void AnimTask_SlideOffScreen(u8 taskId) } spriteId = gBattlerSpriteIds[gBattleAnimAttacker ^ BIT_FLANK]; break; - case 3: + case ANIM_DEF_PARTNER: if (!IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK)) { DestroyAnimVisualTask(taskId); @@ -655,14 +658,14 @@ void AnimTask_SlideOffScreen(u8 taskId) gTasks[taskId].data[1] = gBattleAnimArgs[1]; else gTasks[taskId].data[1] = -gBattleAnimArgs[1]; - gTasks[taskId].func = sub_80996B8; + gTasks[taskId].func = AnimTask_SlideOffScreen_Step; } -static void sub_80996B8(u8 taskId) +static void AnimTask_SlideOffScreen_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].x2 += gTasks[taskId].data[1]; - if (gSprites[spriteId].x2 + gSprites[spriteId].x < -0x20 || gSprites[spriteId].x2 + gSprites[spriteId].x > 0x110) + if (gSprites[spriteId].x2 + gSprites[spriteId].x < -32 || gSprites[spriteId].x2 + gSprites[spriteId].x > DISPLAY_WIDTH + 32) DestroyAnimVisualTask(taskId); } @@ -690,10 +693,10 @@ void AnimTask_SwayMon(u8 taskId) else gTasks[taskId].data[5] = gBattleAnimTarget; gTasks[taskId].data[12] = 1; - gTasks[taskId].func = AnimTask_SwayMonStep; + gTasks[taskId].func = AnimTask_SwayMon_Step; } -static void AnimTask_SwayMonStep(u8 taskId) +static void AnimTask_SwayMon_Step(u8 taskId) { u8 spriteId; u32 waveIndex; @@ -745,10 +748,10 @@ void AnimTask_ScaleMonAndRestore(u8 taskId) gTasks[taskId].data[4] = spriteId; gTasks[taskId].data[10] = 0x100; gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_ScaleMonAndRestoreStep; + gTasks[taskId].func = AnimTask_ScaleMonAndRestore_Step; } -static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) +static void AnimTask_ScaleMonAndRestore_Step(u8 taskId) { u8 spriteId; gTasks[taskId].data[10] += gTasks[taskId].data[0]; @@ -802,16 +805,17 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId) tmp = gTasks[taskId].data[4]; gTasks[taskId].data[4] = -tmp; } - gTasks[taskId].func = sub_8099B54; + gTasks[taskId].func = AnimTask_RotateMonSpriteToSide_Step; } +// Rotates mon to side and back to original position. For Peck and when a held item activates void AnimTask_RotateMonToSideAndRestore(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, 0); gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = gBattleAnimArgs[0]; - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -831,16 +835,15 @@ void AnimTask_RotateMonToSideAndRestore(u8 taskId) gTasks[taskId].data[7] = 1; if (gTasks[taskId].data[7] ) { - s16 tmp; - tmp = gTasks[taskId].data[3]; + s16 tmp = gTasks[taskId].data[3]; gTasks[taskId].data[3] = -tmp; tmp = gTasks[taskId].data[4]; gTasks[taskId].data[4] = -tmp; } - gTasks[taskId].func = sub_8099B54; + gTasks[taskId].func = AnimTask_RotateMonSpriteToSide_Step; } -static void sub_8099B54(u8 taskId) +static void AnimTask_RotateMonSpriteToSide_Step(u8 taskId) { gTasks[taskId].data[3] += gTasks[taskId].data[4]; SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]); @@ -895,10 +898,10 @@ void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId) gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_8099CB8; + gTasks[taskId].func = AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step; } -static void sub_8099CB8(u8 taskId) +static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; if (++task->data[0] > task->data[1]) From efa422d6fadb6addd769eadf3d867900cb5b3d84 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 13:14:34 -0400 Subject: [PATCH 021/105] Sync battle anim - mons --- include/battle_anim.h | 26 +- include/data.h | 4 + include/palette.h | 2 +- src/battle_anim.c | 4 +- src/battle_anim_dark.c | 2 +- src/battle_anim_effects_1.c | 6 +- src/battle_anim_effects_2.c | 2 +- src/battle_anim_ice.c | 6 +- src/battle_anim_mon_movement.c | 12 +- src/battle_anim_mons.c | 559 ++++++++++++++++++------------- src/battle_anim_status_effects.c | 14 +- src/battle_anim_utility_funcs.c | 14 +- src/palette.c | 4 +- src/trade.c | 2 +- 14 files changed, 386 insertions(+), 271 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index c5c7626f8..cd5785871 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -365,11 +365,11 @@ void TranslateSpriteInCircle(struct Sprite *sprite); void TranslateSpriteInGrowingCircle(struct Sprite *sprite); void TranslateSpriteInEllipse(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite); -void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite); +void ConvertPosDataToTranslateLinearData(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); -void TranslateMonSpriteLinear(struct Sprite *sprite); -void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite); +void TranslateSpriteLinearById(struct Sprite *sprite); +void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite); void TranslateSpriteLinearAndFlicker(struct Sprite *sprite); void DestroySpriteAndMatrix(struct Sprite *sprite); void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite); @@ -398,7 +398,7 @@ void InitAnimBgTilemapBuffer(u32 bgId, const void *src); void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src); u8 GetBattleBgPaletteNum(void); void ToggleBg3Mode(bool8 arg0); -void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite); +void TradeMenuBouncePartySprites(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); void StartAnimLinearTranslation(struct Sprite *sprite); @@ -406,11 +406,11 @@ void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void AnimTranslateLinear_WithFollowup(struct Sprite *sprite); void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite); -void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite); +void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); -void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); +void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); void ResetSpriteRotScale(u8 spriteId); @@ -420,7 +420,7 @@ void TryResetSpriteAffineState(struct Sprite *sprite); u16 ArcTan2Neg(s16 a, s16 b); void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); -u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); +u32 GetBattleMonSpritePalettesMask(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); u8 GetSpritePalIdxByBattler(u8 a1); void AnimSpriteOnMonPos(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); @@ -440,7 +440,7 @@ void *LoadPointerFromVars(s16 lo, s16 hi); void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration); u8 BattleAnimHelper_RunSpriteSquash(struct Task *task); void AnimTask_GetFrustrationPowerLevel(u8 taskId); -void ResetSpritePriorityOfAllVisibleBattlers(void); +void InitPrioritiesForVisibleBattlers(void); u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId); @@ -451,12 +451,12 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat void DestroySpriteAndFreeResources_(struct Sprite *sprite); s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); -u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species); -void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite); -void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite); -void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite); +u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species); +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite); +void AnimTranslateLinearAndFlicker(struct Sprite *sprite); +void AnimSpinningSparkle(struct Sprite *sprite); void AnimTask_AttackerPunchWithTrace(u8 taskId); -void SpriteCB_WeatherBallUp(struct Sprite *sprite); +void AnimWeatherBallUp(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite); // battle_anim_mon_movement.c diff --git a/include/data.h b/include/data.h index 55eda56a4..2fa86fc0d 100644 --- a/include/data.h +++ b/include/data.h @@ -14,6 +14,10 @@ struct MonCoords u8 y_offset; }; +#define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8)) +#define GET_MON_COORDS_WIDTH(size)((size >> 4) * 8) +#define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 8) + extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[][13]; extern const u16 gUnknown_8251CB8[]; diff --git a/include/palette.h b/include/palette.h index 55054b63d..c510a5d2f 100644 --- a/include/palette.h +++ b/include/palette.h @@ -78,7 +78,7 @@ void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4); void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7); bool32 sub_807185C(u8 var); void sub_8071898(void); -void ResetPaletteStructByUid(u16 a1); +void PaletteStruct_ResetById(u16 a1); void ResetPaletteStruct(u8 paletteNum); #endif // GUARD_PALETTE_H diff --git a/src/battle_anim.c b/src/battle_anim.c index 26246bf5b..855059a32 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1823,7 +1823,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo { s32 i; - ResetSpritePriorityOfAllVisibleBattlers(); + InitPrioritiesForVisibleBattlers(); UpdateOamPriorityInAllHealthboxes(0); for (i = 0; i < MAX_BATTLERS_COUNT; i++) { @@ -2128,7 +2128,7 @@ static void ScriptCmd_end(void) if (!continuousAnim) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256); - ResetSpritePriorityOfAllVisibleBattlers(); + InitPrioritiesForVisibleBattlers(); UpdateOamPriorityInAllHealthboxes(1); gAnimScriptActive = FALSE; } diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index 1923a9dea..7b0a81bb3 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -802,7 +802,7 @@ void AnimTask_MetallicShine(u8 taskId) else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species); + newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species); GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index d03206ded..3e22541be 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4418,7 +4418,7 @@ static void AnimBowMon_Step1(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback); - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; } static void AnimBowMon_Step1_Callback(struct Sprite* sprite) @@ -4448,7 +4448,7 @@ static void AnimBowMon_Step2(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4); - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; } static void AnimBowMon_Step3(struct Sprite* sprite) @@ -4996,7 +4996,7 @@ void AnimTask_FadeScreenBlue(u8 taskId) gTasks[taskId].data[7] = 13; gTasks[taskId].data[8] = 14; gTasks[taskId].data[9] = 15; - b = SelectBattlerSpritePalettes(1, 1, 1, 1); + b = GetBattleMonSpritePalettesMask(1, 1, 1, 1); c = a | b; StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void *)c); b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index ab870f792..17e58280e 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1747,7 +1747,7 @@ void AnimCoinThrow(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = r6; sprite->data[4] = r7; - sprite->callback = BattleAnim_InitAndRunLinearTranslationWithDuration; + sprite->callback = InitAnimLinearTranslationWithSpeedAndPos; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index f5e4a32dc..f70edfb83 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -531,7 +531,7 @@ static void AnimUnusedIceCrystalThrow(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[2] + targetX; sprite->data[3] = gBattleAnimArgs[1] + attackerY; sprite->data[4] = gBattleAnimArgs[3] + targetY; - SetupLinearTranslationWithFixedDuration(sprite); + ConvertPosDataToTranslateLinearData(sprite); // won't match with while loop for (; (targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32); targetX += sprite->data[1], targetY += sprite->data[2]) @@ -548,7 +548,7 @@ static void AnimUnusedIceCrystalThrow(struct Sprite *sprite) sprite->data[2] = targetX; sprite->data[3] = attackerY; sprite->data[4] = targetY; - SetupLinearTranslationWithFixedDuration(sprite); + ConvertPosDataToTranslateLinearData(sprite); sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[6]; sprite->callback = AnimUnusedIceCrystalThrow_Step; @@ -686,7 +686,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite) sprite->x2 = sprite->y2 = 0; for (i = 0; i < 8; ++i) sprite->data[i] = tempDataHolder[i]; - sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed; + sprite->callback = InitAnimFastLinearTranslationWithSpeedAndPos; StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); } diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index f7a8703ca..16114456f 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -397,14 +397,14 @@ static void DoHorizontalLunge(struct Sprite *sprite) sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; } static void ReverseHorizontalLungeDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[1] = -sprite->data[1]; - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -424,14 +424,14 @@ static void DoVerticalDip(struct Sprite *sprite) sprite->data[3] = spriteId; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; } static void ReverseVerticalDipDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[2] = -sprite->data[2]; - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -523,7 +523,7 @@ static void SlideMonToOffset(struct Sprite *sprite) sprite->data[5] = monSpriteId; sprite->invisible = TRUE; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateMonSpriteLinearFixedPoint; + sprite->callback = TranslateSpriteLinearByIdFixedPoint; } static void SlideMonToOffsetAndBack(struct Sprite *sprite) @@ -556,7 +556,7 @@ static void SlideMonToOffsetAndBack(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); else StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End); - sprite->callback = TranslateMonSpriteLinearFixedPoint; + sprite->callback = TranslateSpriteLinearByIdFixedPoint; } static void SlideMonToOffsetAndBack_End(struct Sprite *sprite) diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 75fd70ae4..c0a7848b7 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -20,30 +20,30 @@ static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3); static void PlayerThrowBall_AnimTranslateLinear_WithFollowup(struct Sprite *sprite); -static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite); -static bool8 Dummy_ReturnFalse(void); +static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite); +static bool8 ShouldRotScaleSpeciesBeFlipped(void); static void AnimThrowProjectile_Step(struct Sprite *sprite); static void AnimTask_AlphaFadeIn_Step(u8 taskId); static void AnimTask_BlendMonInAndOutSetup(struct Task *task); -static void AnimTask_BlendMonInAndOutStep(u8 taskId); +static void AnimTask_BlendMonInAndOut_Step(u8 taskId); static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId); -static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId); -static void SpriteCB_PunchTrace(struct Sprite *sprite); -static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite); +static void CreateBattlerTrace(struct Task *task, u8 taskId); +static void AnimBattlerTrace(struct Sprite *sprite); +static void AnimWeatherBallUp_Step(struct Sprite *sprite); static EWRAM_DATA union AffineAnimCmd *sAnimTaskAffineAnim = NULL; -UNUSED static EWRAM_DATA u32 gUnknown_2037F2C = 0; // not used +static EWRAM_DATA u32 sUnused = 0; -static const struct UCoords8 sBattlerCoords[][4] = +static const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] = { - { + { // Single battle { 72, 80 }, { 176, 40 }, { 48, 40 }, { 112, 80 }, }, - { + { // Double battle { 32, 80 }, { 200, 40 }, { 90, 88 }, @@ -52,36 +52,40 @@ static const struct UCoords8 sBattlerCoords[][4] = }; // One entry for each of the four Castform forms. -const struct MonCoords gCastformFrontSpriteCoords[] = +const struct MonCoords gCastformFrontSpriteCoords[NUM_CASTFORM_FORMS] = { - { .size = 0x44, .y_offset = 17 }, // NORMAL - { .size = 0x66, .y_offset = 9 }, // SUN - { .size = 0x46, .y_offset = 9 }, // RAIN - { .size = 0x86, .y_offset = 8 }, // HAIL + [CASTFORM_NORMAL] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, + [CASTFORM_FIRE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, + [CASTFORM_WATER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, + [CASTFORM_ICE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, }; -static const u8 sCastformElevations[] = +static const u8 sCastformElevations[NUM_CASTFORM_FORMS] = { - 13, // NORMAL - 14, // SUN - 13, // RAIN - 13, // HAIL + [CASTFORM_NORMAL] = 13, + [CASTFORM_FIRE] = 14, + [CASTFORM_WATER] = 13, + [CASTFORM_ICE] = 13, }; // Y position of the backsprite for each of the four Castform forms. -static const u8 sCastformBackSpriteYCoords[] = +static const u8 sCastformBackSpriteYCoords[NUM_CASTFORM_FORMS] = { - 0, // NORMAL - 0, // SUN - 0, // RAIN - 0, // HAIL + [CASTFORM_NORMAL] = 0, + [CASTFORM_FIRE] = 0, + [CASTFORM_WATER] = 0, + [CASTFORM_ICE] = 0, }; -static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] = +// Placeholders for pokemon sprites to be created for a move animation effect (e.g. Role Play / Snatch) +#define TAG_MOVE_EFFECT_MON_1 55125 +#define TAG_MOVE_EFFECT_MON_2 55126 + +static const struct SpriteTemplate sSpriteTemplates_MoveEffectMons[] = { { - .tileTag = 55125, - .paletteTag = 55125, + .tileTag = TAG_MOVE_EFFECT_MON_1, + .paletteTag = TAG_MOVE_EFFECT_MON_1, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, @@ -89,8 +93,8 @@ static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] = .callback = SpriteCallbackDummy, }, { - .tileTag = 55126, - .paletteTag = 55126, + .tileTag = TAG_MOVE_EFFECT_MON_2, + .paletteTag = TAG_MOVE_EFFECT_MON_2, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, @@ -99,10 +103,10 @@ static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] = } }; -static const struct SpriteSheet sMoveAnimAdtlSprSheets[] = +static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] = { - { gMiscBlank_Gfx, 0x800, 55125 }, - { gMiscBlank_Gfx, 0x800, 55126 }, // unused + { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1 }, + { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2 }, }; u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) @@ -252,8 +256,8 @@ static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3) { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) y += 8; - if (y > 104) - y = 104; + if (y > DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8) + y = DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8; } return y; } @@ -346,7 +350,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler) } else { - return 0xFF; + return SPRITE_NONE; } } else if (animBattler == ANIM_TARGET) @@ -358,13 +362,13 @@ u8 GetAnimBattlerSpriteId(u8 animBattler) } else { - return 0xFF; + return SPRITE_NONE; } } else if (animBattler == ANIM_ATK_PARTNER) { if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - return 0xFF; + return SPRITE_NONE; else return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; } @@ -373,7 +377,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler) if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; else - return 0xFF; + return SPRITE_NONE; } } @@ -390,20 +394,40 @@ static void SetCallbackToStoredInData6(struct Sprite *sprite) sprite->callback = (SpriteCallback)callback; } +// Sprite data for TranslateSpriteInCircle/Ellipse and related +#define sCirclePos data[0] +#define sAmplitude data[1] +#define sCircleSpeed data[2] +#define sDuration data[3] + +// TranslateSpriteInGrowingCircle +#define sAmplitudeSpeed data[4] +#define sAmplitudeChange data[5] + +// TranslateSpriteInEllipse +#define sAmplitudeX sAmplitude +#define sAmplitudeY data[4] + +// TranslateSpriteInLissajousCurve +#define sCirclePosX sCirclePos +#define sCircleSpeedX sCircleSpeed +#define sCirclePosY data[4] +#define sCircleSpeedY data[5] + // x = a * sin(theta0 + dtheta * t) // y = a * cos(theta0 + dtheta * t) void TranslateSpriteInCircle(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], sprite->data[1]); - sprite->y2 = Cos(sprite->data[0], sprite->data[1]); - sprite->data[0] += sprite->data[2]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePos, sprite->sAmplitude); + sprite->y2 = Cos(sprite->sCirclePos, sprite->sAmplitude); + sprite->sCirclePos += sprite->sCircleSpeed; + if (sprite->sCirclePos >= 0x100) + sprite->sCirclePos -= 0x100; + else if (sprite->sCirclePos < 0) + sprite->sCirclePos += 0x100; + sprite->sDuration--; } else { @@ -415,17 +439,17 @@ void TranslateSpriteInCircle(struct Sprite *sprite) // y = (a0 + da * t) * cos(theta0 + dtheta * t) void TranslateSpriteInGrowingCircle(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->y2 = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->data[0] += sprite->data[2]; - sprite->data[5] += sprite->data[4]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePos, (sprite->sAmplitudeChange >> 8) + sprite->sAmplitude); + sprite->y2 = Cos(sprite->sCirclePos, (sprite->sAmplitudeChange >> 8) + sprite->sAmplitude); + sprite->sCirclePos += sprite->sCircleSpeed; + sprite->sAmplitudeChange += sprite->sAmplitudeSpeed; + if (sprite->sCirclePos >= 0x100) + sprite->sCirclePos -= 0x100; + else if (sprite->sCirclePos < 0) + sprite->sCirclePos += 0x100; + sprite->sDuration--; } else { @@ -433,26 +457,30 @@ void TranslateSpriteInGrowingCircle(struct Sprite *sprite) } } -// not used +// Unused +// Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc. // x = alpl * sin(alpha0 + dalpha * t) // y = ampl * cos(beta0 + dbeta * t) -static void TranslateSpriteInLissajousCurveOverDuration(struct Sprite *sprite) +static void TranslateSpriteInLissajousCurve(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], sprite->data[1]); - sprite->y2 = Cos(sprite->data[4], sprite->data[1]); - sprite->data[0] += sprite->data[2]; - sprite->data[4] += sprite->data[5]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - if (sprite->data[4] >= 0x100) - sprite->data[4] -= 0x100; - else if (sprite->data[4] < 0) - sprite->data[4] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePosX, sprite->sAmplitude); + sprite->y2 = Cos(sprite->sCirclePosY, sprite->sAmplitude); + sprite->sCirclePosX += sprite->sCircleSpeedX; + sprite->sCirclePosY += sprite->sCircleSpeedY; + + if (sprite->sCirclePosX >= 0x100) + sprite->sCirclePosX -= 0x100; + else if (sprite->sCirclePosX < 0) + sprite->sCirclePosX += 0x100; + + if (sprite->sCirclePosY >= 0x100) + sprite->sCirclePosY -= 0x100; + else if (sprite->sCirclePosY < 0) + sprite->sCirclePosY += 0x100; + + sprite->sDuration--; } else { @@ -464,16 +492,16 @@ static void TranslateSpriteInLissajousCurveOverDuration(struct Sprite *sprite) // y = b * cos(theta0 + dtheta * t) void TranslateSpriteInEllipse(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], sprite->data[1]); - sprite->y2 = Cos(sprite->data[0], sprite->data[4]); - sprite->data[0] += sprite->data[2]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePos, sprite->sAmplitudeX); + sprite->y2 = Cos(sprite->sCirclePos, sprite->sAmplitudeY); + sprite->sCirclePos += sprite->sCircleSpeed; + if (sprite->sCirclePos >= 0x100) + sprite->sCirclePos -= 0x100; + else if (sprite->sCirclePos < 0) + sprite->sCirclePos += 0x100; + sprite->sDuration--; } else { @@ -481,6 +509,19 @@ void TranslateSpriteInEllipse(struct Sprite *sprite) } } +#undef sCirclePos +#undef sAmplitude +#undef sCircleSpeed +#undef sDuration +#undef sAmplitudeSpeed +#undef sAmplitudeChange +#undef sAmplitudeX +#undef sAmplitudeY +#undef sCirclePosX +#undef sCircleSpeedX +#undef sCirclePosY +#undef sCircleSpeedY + // Simply waits until the sprite's data[0] hits zero. // This is used to let sprite anims or affine anims to run for a designated // duration. @@ -492,34 +533,46 @@ void WaitAnimForDuration(struct Sprite *sprite) SetCallbackToStoredInData6(sprite); } -static void SetupAndStartSpriteLinearTranslation(struct Sprite *sprite) +// Sprite data for ConvertPosDataToTranslateLinearData +#define sStepsX data[0] +#define sStartX data[1] +#define sTargetX data[2] +#define sStartY data[3] +#define sTargetY data[4] + +// Sprite data for TranslateSpriteLinear +#define sMoveSteps data[0] +#define sSpeedX data[1] +#define sSpeedY data[2] + +static void AnimPosToTranslateLinear(struct Sprite *sprite) { - SetupLinearTranslationWithFixedDuration(sprite); + ConvertPosDataToTranslateLinearData(sprite); sprite->callback = TranslateSpriteLinear; sprite->callback(sprite); } -void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite) +void ConvertPosDataToTranslateLinearData(struct Sprite *sprite) { s16 old; - s32 xDiff; + int xDiff; - if (sprite->data[1] > sprite->data[2]) - sprite->data[0] = -sprite->data[0]; - xDiff = sprite->data[2] - sprite->data[1]; - old = sprite->data[0]; - sprite->data[0] = abs(xDiff / sprite->data[0]); - sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0]; - sprite->data[1] = old; + if (sprite->sStartX > sprite->sTargetX) + sprite->sStepsX = -sprite->sStepsX; + xDiff = sprite->sTargetX - sprite->sStartX; + old = sprite->sStepsX; + sprite->sMoveSteps = abs(xDiff / sprite->sStepsX); + sprite->sSpeedY = (sprite->sTargetY - sprite->sStartY) / sprite->sMoveSteps; + sprite->sSpeedX = old; } void TranslateSpriteLinear(struct Sprite *sprite) { - if (sprite->data[0] > 0) + if (sprite->sMoveSteps > 0) { - --sprite->data[0]; - sprite->x2 += sprite->data[1]; - sprite->y2 += sprite->data[2]; + sprite->sMoveSteps--; + sprite->x2 += sprite->sSpeedX; + sprite->y2 += sprite->sSpeedY; } else { @@ -561,17 +614,18 @@ static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) UpdateMonIconFrame(sprite); } -// not used -static void SetupAndStartSpriteLinearTranslationToTarget(struct Sprite *sprite) +// Unused +static void TranslateSpriteToBattleTargetPos(struct Sprite *sprite) { sprite->data[1] = sprite->x + sprite->x2; sprite->data[3] = sprite->y + sprite->y2; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - sprite->callback = SetupAndStartSpriteLinearTranslation; + sprite->callback = AnimPosToTranslateLinear; } -void TranslateMonSpriteLinear(struct Sprite *sprite) +// Same as TranslateSpriteLinear but takes an id to specify which sprite to move +void TranslateSpriteLinearById(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -585,7 +639,7 @@ void TranslateMonSpriteLinear(struct Sprite *sprite) } } -void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite) +void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -628,20 +682,26 @@ void DestroySpriteAndMatrix(struct Sprite *sprite) DestroyAnimSprite(sprite); } -// not used +// Unused static void SetupAndStartSpriteLinearTranslationToAttacker(struct Sprite *sprite) { - sprite->data[1] = sprite->x + sprite->x2; - sprite->data[3] = sprite->y + sprite->y2; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - sprite->callback = SetupAndStartSpriteLinearTranslation; + sprite->sStartX = sprite->x + sprite->x2; + sprite->sStartY = sprite->y + sprite->y2; + sprite->sTargetX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->sTargetY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->callback = AnimPosToTranslateLinear; } -// not used -static void SpriteResetPaletteStructAndDestroy(struct Sprite *sprite) +#undef sStepsX +#undef sStartX +#undef sTargetX +#undef sStartY +#undef sTargetY + +// Unused +static void EndUnkPaletteAnim(struct Sprite *sprite) { - ResetPaletteStructByUid(sprite->data[5]); + PaletteStruct_ResetById(sprite->data[5]); DestroySpriteAndMatrix(sprite); } @@ -809,11 +869,14 @@ bool8 IsDoubleBattle(void) return IS_DOUBLE_BATTLE(); } +#define BG_ANIM_PAL_1 8 +#define BG_ANIM_PAL_2 9 + void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData) { animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer; animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer; - animBgData->paletteId = 8; + animBgData->paletteId = BG_ANIM_PAL_1; animBgData->bgId = 1; animBgData->tilesOffset = 0x200; animBgData->unused = 0; @@ -829,7 +892,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId) { animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer; animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer; - animBgData->paletteId = 9; + animBgData->paletteId = BG_ANIM_PAL_2; animBgData->bgId = 2; animBgData->tilesOffset = 0x300; animBgData->unused = 0; @@ -842,14 +905,14 @@ void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 u animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - animBgData->paletteId = 8; + animBgData->paletteId = BG_ANIM_PAL_1; animBgData->bgId = 1; animBgData->tilesOffset = 0x200; animBgData->unused = 0; } else { - animBgData->paletteId = 9; + animBgData->paletteId = BG_ANIM_PAL_2; animBgData->bgId = 2; animBgData->tilesOffset = 0x300; animBgData->unused = 0; @@ -888,12 +951,16 @@ void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src) u8 GetBattleBgPaletteNum(void) { + /* + if (IsContest()) + return 1; + */ return 2; } -void ToggleBg3Mode(bool8 arg0) +void ToggleBg3Mode(bool8 largeScreenSize) { - if (!arg0) + if (!largeScreenSize) { SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 0); SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 1); @@ -905,7 +972,7 @@ void ToggleBg3Mode(bool8 arg0) } } -void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite) +void TradeMenuBouncePartySprites(struct Sprite *sprite) { sprite->data[1] = sprite->x; sprite->data[3] = sprite->y; @@ -1019,7 +1086,7 @@ void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite) InitAnimLinearTranslation(sprite); } -void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite) +void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite) { sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; @@ -1058,7 +1125,7 @@ void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; InitAnimFastLinearTranslation(sprite); - sprite->callback = SpriteCB_RunAnimFastLinearTranslation; + sprite->callback = AnimFastTranslateLinearWaitEnd; sprite->callback(sprite); } @@ -1088,7 +1155,7 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite) return FALSE; } -static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite) +static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite) { if (AnimFastTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); @@ -1102,12 +1169,12 @@ void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) InitAnimFastLinearTranslation(sprite); } -void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) +void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite) { sprite->data[1] = sprite->x; sprite->data[3] = sprite->y; InitAnimFastLinearTranslationWithSpeed(sprite); - sprite->callback = SpriteCB_RunAnimFastLinearTranslation; + sprite->callback = AnimFastTranslateLinearWaitEnd; sprite->callback(sprite); } @@ -1120,7 +1187,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) src.xScale = xScale; src.yScale = yScale; src.rotation = rotation; - if (Dummy_ReturnFalse()) + if (ShouldRotScaleSpeciesBeFlipped()) src.xScale = -src.xScale; i = gSprites[spriteId].oam.matrixNum; ObjAffineSet(&src, &matrix, 1, 2); @@ -1130,8 +1197,18 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) gOamMatrices[i].d = matrix.d; } -static bool8 Dummy_ReturnFalse(void) +// Pokémon in Contests (except Unown) should be flipped. +static bool8 ShouldRotScaleSpeciesBeFlipped(void) { + /* + if (IsContest()) + { + if (gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].data[2] == SPECIES_UNOWN) + return FALSE; + else + return TRUE; + } + */ return FALSE; } @@ -1185,7 +1262,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x src.xScale = xScale; src.yScale = yScale; src.rotation = rotation; - if (Dummy_ReturnFalse()) + if (ShouldRotScaleSpeciesBeFlipped()) src.xScale = -src.xScale; i = sprite->oam.matrixNum; ObjAffineSet(&src, &matrix, 1, 2); @@ -1242,14 +1319,14 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) } } -u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7) +u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2) { u32 selectedPalettes = 0; u32 shift; if (battleBackground) { - selectedPalettes = 0xe; + selectedPalettes = 0xe; // Palettes 1, 2, and 3 } if (attacker) { @@ -1277,27 +1354,25 @@ u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, selectedPalettes |= 1 << shift; } } - if (a6) - { - selectedPalettes |= 0x100; - } - if (a7) - { - selectedPalettes |= 0x200; - } + if (anim1) + selectedPalettes |= 1 << BG_ANIM_PAL_1; + + if (anim2) + selectedPalettes |= 1 << BG_ANIM_PAL_2; + return selectedPalettes; } -u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight) +u32 GetBattleMonSpritePalettesMask(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight) { - u32 var = 0; + u32 selectedPalettes = 0; u32 shift; if (playerLeft) { if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) { - var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); + selectedPalettes |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); } } if (playerRight) @@ -1305,7 +1380,7 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT))) { shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } if (foeLeft) @@ -1313,7 +1388,7 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))) { shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } if (foeRight) @@ -1321,18 +1396,18 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) { shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } - return var; + return selectedPalettes; } -u8 GetSpritePalIdxByBattler(u8 a1) +u8 GetSpritePalIdxByBattler(u8 battler) { - return a1; + return battler; } -// not used +// Unused static u8 GetSpritePalIdxByPosition(u8 position) { return GetBattlerAtPosition(position); @@ -1451,7 +1526,7 @@ s16 CloneBattlerSpriteWithBlend(u8 animBattler) u16 i; u8 spriteId = GetAnimBattlerSpriteId(animBattler); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { for (i = 0; i < MAX_SPRITES; ++i) { @@ -1473,6 +1548,7 @@ void DestroySpriteWithActiveSheet(struct Sprite *sprite) DestroySprite(sprite); } +// Only used to fade Moonlight moon sprite in void AnimTask_AlphaFadeIn(u8 taskId) { s16 v1 = 0, v2 = 0; @@ -1553,10 +1629,10 @@ static void AnimTask_BlendMonInAndOutSetup(struct Task *task) task->data[5] = gBattleAnimArgs[3]; task->data[6] = 0; task->data[7] = gBattleAnimArgs[4]; - task->func = AnimTask_BlendMonInAndOutStep; + task->func = AnimTask_BlendMonInAndOut_Step; } -static void AnimTask_BlendMonInAndOutStep(u8 taskId) +static void AnimTask_BlendMonInAndOut_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1591,6 +1667,7 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId) } } +// See AnimTask_BlendMonInAndOut. Same, but ANIM_TAG_* instead of mon void AnimTask_BlendPalInAndOutByTag(u8 taskId) { u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); @@ -1691,12 +1768,12 @@ bool8 RunAffineAnimFromTaskData(struct Task *task) // matrix's scale in the y dimension. void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) { - s32 var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2; + s32 var = MON_PIC_HEIGHT - GetBattlerYDeltaFromSpriteId(spriteId) * 2; u16 matrix = gSprites[spriteId].oam.matrixNum; - s32 var2 = (var << 8) / gOamMatrices[matrix].d; + s32 var2 = SAFE_DIV(var << 8, gOamMatrices[matrix].d); - if (var2 > 128) - var2 = 128; + if (var2 > MON_PIC_HEIGHT * 2) + var2 = MON_PIC_HEIGHT * 2; gSprites[spriteId].y2 = (var - var2) / 2; } @@ -1704,12 +1781,12 @@ void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) // matrix's scale in the y dimension. void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId) { - s32 var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; + s32 var = MON_PIC_HEIGHT - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; u16 matrix = gSprites[spriteId].oam.matrixNum; s32 var2 = SAFE_DIV((var << 8), gOamMatrices[matrix].d); - if (var2 > 128) - var2 = 128; + if (var2 > MON_PIC_HEIGHT * 2) + var2 = MON_PIC_HEIGHT * 2; gSprites[spriteId].y2 = (var - var2) / 2; } @@ -1744,7 +1821,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) } } } - return 64; + return MON_PIC_HEIGHT; } void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr) @@ -1758,16 +1835,16 @@ void *LoadPointerFromVars(s16 lo, s16 hi) return (void *)((u16)lo | ((u16)hi << 16)); } -void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration) +void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScaleStart, s16 yScaleStart, s16 xScaleEnd, s16 yScaleEnd, u16 duration) { task->data[8] = duration; task->data[15] = spriteId; - task->data[9] = xScale0; - task->data[10] = yScale0; - task->data[13] = xScale1; - task->data[14] = yScale1; - task->data[11] = (xScale1 - xScale0) / duration; - task->data[12] = (yScale1 - yScale0) / duration; + task->data[9] = xScaleStart; + task->data[10] = yScaleStart; + task->data[13] = xScaleEnd; + task->data[14] = yScaleEnd; + task->data[11] = (xScaleEnd - xScaleStart) / duration; + task->data[12] = (yScaleEnd - yScaleStart) / duration; } u8 BattleAnimHelper_RunSpriteSquash(struct Task *task) @@ -1804,12 +1881,12 @@ void AnimTask_GetFrustrationPowerLevel(u8 taskId) powerLevel = 2; else powerLevel = 3; - gBattleAnimArgs[7] = powerLevel; + gBattleAnimArgs[ARG_RET_ID] = powerLevel; DestroyAnimVisualTask(taskId); } -// not used -static void SetOamPriorityOfAllVisibleBattlers(u8 priority) +// Unused +static void SetPriorityForVisibleBattlers(u8 priority) { if (IsBattlerSpriteVisible(gBattleAnimTarget)) gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority; @@ -1821,7 +1898,7 @@ static void SetOamPriorityOfAllVisibleBattlers(u8 priority) gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority; } -void ResetSpritePriorityOfAllVisibleBattlers(void) +void InitPrioritiesForVisibleBattlers(void) { s32 i; @@ -1871,11 +1948,12 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) return 1; } +// Create pokemon sprite to be used for a move animation effect (e.g. Role Play / Snatch) u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxys) { u8 spriteId; - u16 sheet = LoadSpriteSheet(&sMoveAnimAdtlSprSheets[templateId]); - u16 palette = AllocSpritePalette(sSpriteTemplates_AdditionalForAnim[templateId].paletteTag); + u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[templateId]); + u16 palette = AllocSpritePalette(sSpriteTemplates_MoveEffectMons[templateId].paletteTag); if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->multiUseBuffer == NULL) gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000); @@ -1914,9 +1992,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer); if (!isBackpic) - spriteId = CreateSprite(&sSpriteTemplates_AdditionalForAnim[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority); else - spriteId = CreateSprite(&sSpriteTemplates_AdditionalForAnim[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority); return spriteId; } @@ -2005,17 +2083,17 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) switch (attr) { case BATTLER_COORD_ATTR_HEIGHT: - return (coords->size & 0xf) * 8; + return GET_MON_COORDS_HEIGHT(coords->size); case BATTLER_COORD_ATTR_WIDTH: - return (coords->size >> 4) * 8; + return GET_MON_COORDS_WIDTH(coords->size); case BATTLER_COORD_ATTR_LEFT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - (GET_MON_COORDS_WIDTH(coords->size) / 2); case BATTLER_COORD_ATTR_RIGHT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + (GET_MON_COORDS_WIDTH(coords->size) / 2); case BATTLER_COORD_ATTR_TOP: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - (GET_MON_COORDS_HEIGHT(coords->size) / 2); case BATTLER_COORD_ATTR_BOTTOM: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + (GET_MON_COORDS_HEIGHT(coords->size) / 2); case BATTLER_COORD_ATTR_RAW_BOTTOM: ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31; return ret - coords->y_offset; @@ -2056,7 +2134,7 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x *y = (battlerY + partnerY) / 2; } -u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species) +u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species) { u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); @@ -2069,7 +2147,7 @@ u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species) return newSpriteId; } -void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite) +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2091,7 +2169,8 @@ void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite) +// Used by three different unused battle anim sprite templates. +void AnimTranslateLinearAndFlicker(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -2112,7 +2191,8 @@ void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite) +// Used by Detect/Disable +void AnimSpinningSparkle(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2124,26 +2204,43 @@ void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// Task and sprite data for AnimTask_AttackerPunchWithTrace +#define tBattlerSpriteId data[0] +#define tMoveSpeed data[1] +#define tState data[2] +#define tCounter data[3] +#define tPaletteNum data[4] +#define tNumTracesActive data[5] +#define tPriority data[6] + +#define sActiveTime data[0] +#define sTaskId data[1] +#define sSpriteId data[2] + void AnimTask_AttackerPunchWithTrace(u8 taskId) { u16 src; u16 dest; struct Task *task = &gTasks[taskId]; - task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[1] = ((GetBattlerSide(gBattleAnimAttacker)) != B_SIDE_PLAYER) ? -8 : 8; - task->data[2] = 0; - task->data[3] = 0; - gSprites[task->data[0]].x2 -= task->data[0]; - task->data[4] = AllocSpritePalette(10097); - task->data[5] = 0; - dest = (task->data[4] + 0x10) * 0x10; - src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10; - task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - if (task->data[6] == 20 || task->data[6] == 40) - task->data[6] = 2; + task->tBattlerSpriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->tMoveSpeed = (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) ? -8 : 8; + task->tState = 0; + task->tCounter = 0; + gSprites[task->tBattlerSpriteId].x2 -= task->tBattlerSpriteId; + task->tPaletteNum = AllocSpritePalette(ANIM_TAG_BENT_SPOON); + task->tNumTracesActive = 0; + + dest = (task->tPaletteNum + 16) * 16; + src = (gSprites[task->tBattlerSpriteId].oam.paletteNum + 0x10) * 0x10; + + // Set trace's priority based on battler's subpriority + task->tPriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); + if (task->tPriority == 20 || task->tPriority == 40) + task->tPriority = 2; else - task->data[6] = 3; + task->tPriority = 3; + CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); task->func = AnimTask_AttackerPunchWithTrace_Step; @@ -2152,28 +2249,30 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[2]) + switch (task->tState) { case 0: - PunchAnim_CreateTraceSprite(task, taskId); - gSprites[task->data[0]].x2 += task->data[1]; - if (++task->data[3] == 5) + // Move forward + CreateBattlerTrace(task, taskId); + gSprites[task->tBattlerSpriteId].x2 += task->tMoveSpeed; + if (++task->tCounter == 5) { - --task->data[3]; - ++task->data[2]; + task->tCounter--; + task->tState++; } break; case 1: - PunchAnim_CreateTraceSprite(task, taskId); - gSprites[task->data[0]].x2 -= task->data[1]; - if (--task->data[3] == 0) + // Move back (do same number of traces as before) + CreateBattlerTrace(task, taskId); + gSprites[task->tBattlerSpriteId].x2 -= task->tMoveSpeed; + if (--task->tCounter == 0) { - gSprites[task->data[0]].x2 = 0; - ++task->data[2]; + gSprites[task->tBattlerSpriteId].x2 = 0; + task->tState++; } break; case 2: - if (!task->data[5]) + if (task->tNumTracesActive == 0) { FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); DestroyAnimVisualTask(taskId); @@ -2182,33 +2281,45 @@ static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId) } } -static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId) +static void CreateBattlerTrace(struct Task *task, u8 taskId) { s16 spriteId = CloneBattlerSpriteWithBlend(0); - if (spriteId >= 0) { - gSprites[spriteId].oam.priority = task->data[6]; - gSprites[spriteId].oam.paletteNum = task->data[4]; - gSprites[spriteId].data[0] = 8; - gSprites[spriteId].data[1] = taskId; - gSprites[spriteId].data[2] = spriteId; - gSprites[spriteId].x2 = gSprites[task->data[0]].x2; - gSprites[spriteId].callback = SpriteCB_PunchTrace; - ++task->data[5]; + gSprites[spriteId].oam.priority = task->tPriority; + gSprites[spriteId].oam.paletteNum = task->tPaletteNum; + gSprites[spriteId].sActiveTime = 8; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sSpriteId = spriteId; + gSprites[spriteId].x2 = gSprites[task->tBattlerSpriteId].x2; + gSprites[spriteId].callback = AnimBattlerTrace; + task->tNumTracesActive++; } } -static void SpriteCB_PunchTrace(struct Sprite *sprite) +// Just waits until destroyed +static void AnimBattlerTrace(struct Sprite *sprite) { - if (--sprite->data[0] == 0) + if (--sprite->sActiveTime == 0) { - --gTasks[sprite->data[1]].data[5]; + gTasks[sprite->sTaskId].tNumTracesActive--; DestroySpriteWithActiveSheet(sprite); } } -void SpriteCB_WeatherBallUp(struct Sprite *sprite) +#undef tBattlerSpriteId +#undef tMoveSpeed +#undef tState +#undef tCounter +#undef tPaletteNum +#undef tNumTracesActive +#undef tPriority + +#undef sActiveTime +#undef sTaskId +#undef sSpriteId + +void AnimWeatherBallUp(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2217,10 +2328,10 @@ void SpriteCB_WeatherBallUp(struct Sprite *sprite) else sprite->data[0] = -10; sprite->data[1] = -40; - sprite->callback = SpriteCB_WeatherBallUp_Step; + sprite->callback = AnimWeatherBallUp_Step; } -static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite) +static void AnimWeatherBallUp_Step(struct Sprite *sprite) { sprite->data[2] += sprite->data[0]; sprite->data[3] += sprite->data[1]; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 4abcb083a..3e5ed87fa 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -43,7 +43,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF3F8 = .anims = sSpriteAnimTable_83BF3F4, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, + .callback = AnimTranslateLinearAndFlicker, }; const struct SpriteTemplate gSpriteTemplate_83BF410 = @@ -54,7 +54,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 = .anims = sSpriteAnimTable_83BF3F4, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker, + .callback = AnimTranslateLinearAndFlicker_Flipped, }; static const union AnimCmd sUnknown_83BF428[] = @@ -76,7 +76,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate = .anims = sSpriteAnimTable_83BF430, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_WeatherBallUp, + .callback = AnimWeatherBallUp, }; const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = @@ -113,7 +113,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 = .anims = sSpriteAnimTable_83BF47C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_TrackOffsetFromAttackerAndWaitAnim, + .callback = AnimSpinningSparkle, }; const struct SpriteTemplate gSpriteTemplate_83BF498 = @@ -124,7 +124,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, + .callback = AnimTranslateLinearAndFlicker, }; static const union AnimCmd sUnknown_83BF4B0[] = @@ -160,7 +160,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 = .anims = sSpriteAniimTable_83BF4C8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, + .callback = AnimTranslateLinearAndFlicker, }; static const union AnimCmd sUnknown_83BF4EC[] = @@ -194,7 +194,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 = .anims = sSpriteAnimTable_83BF4F4, .images = NULL, .affineAnims = sSpriteAffineAnimTable_83BF510, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker, + .callback = AnimTranslateLinearAndFlicker_Flipped, }; static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクãŒã‚ª-ãƒ-ã—ã¾ã—ãŸ"); diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 4a44031db..638ac7a6e 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -54,7 +54,7 @@ void AnimTask_BlendSelected(u8 taskId) { u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); - selectedPalettes |= SelectBattlerSpritePalettes( + selectedPalettes |= GetBattleMonSpritePalettesMask( (gBattleAnimArgs[0] >> 7) & 1, (gBattleAnimArgs[0] >> 8) & 1, (gBattleAnimArgs[0] >> 9) & 1, @@ -330,7 +330,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId) else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species); + newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species); GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap); if (IsContest()) @@ -446,11 +446,11 @@ static void StatsChangeAnimation_Step2(u8 taskId) u8 battlerSpriteId; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1]; - spriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); + spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); if (sAnimStatsChangeData->data[3]) { battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2]; - newSpriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); + newSpriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); } GetBattleAnimBg1Data(&animBgData); if (sAnimStatsChangeData->data[0] == 0) @@ -580,7 +580,7 @@ static void StatsChangeAnimation_Step3(u8 taskId) void AnimTask_Flash(u8 taskId) { - u32 selectedPalettes = SelectBattlerSpritePalettes(1, 1, 1, 1); + u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1); sub_80BB790(selectedPalettes, 0); gTasks[taskId].data[14] = selectedPalettes >> 16; @@ -753,9 +753,9 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); - spriteId = CreateCloneOfSpriteInWindowMode(battler1, gBattlerSpriteIds[battler1], species); + spriteId = CreateInvisibleSpriteCopy(battler1, gBattlerSpriteIds[battler1], species); if (arg4) - newSpriteId = CreateCloneOfSpriteInWindowMode(battler2, gBattlerSpriteIds[battler2], species); + newSpriteId = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species); GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap); if (IsContest()) diff --git a/src/palette.c b/src/palette.c index 014199a7a..ebb64bb55 100644 --- a/src/palette.c +++ b/src/palette.c @@ -319,7 +319,7 @@ static void sub_80709B4(struct PaletteStruct *a1) return; if (val > 2) return; - ResetPaletteStructByUid(a1->base->uid); + PaletteStruct_ResetById(a1->base->uid); } } else @@ -328,7 +328,7 @@ static void sub_80709B4(struct PaletteStruct *a1) } } -void ResetPaletteStructByUid(u16 a1) +void PaletteStruct_ResetById(u16 a1) { u8 paletteNum = GetPaletteNumByUid(a1); if (paletteNum != 16) diff --git a/src/trade.c b/src/trade.c index 392a23061..c5a580b1b 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2140,7 +2140,7 @@ static void HandleRedrawTradeMenuOnSide(u8 side) gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon); sTradeMenuResourcesPtr->menuRedrawState[side]++; - StartSpriteLinearTranslationFromCurrentPos(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); + TradeMenuBouncePartySprites(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, side * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); From a1fcfa2f26204531f063e9f147d726c330c2553b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 13:30:22 -0400 Subject: [PATCH 022/105] Sync battle anim - normal --- data/battle_anim_scripts.s | 86 +++--- include/battle_anim.h | 2 +- src/battle_anim_normal.c | 453 +++++++++++++++++++------------- src/battle_anim_utility_funcs.c | 6 +- 4 files changed, 314 insertions(+), 233 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 8cb6c3502..f456f5cce 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1299,7 +1299,7 @@ Move_REVERSAL:: createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0 waitforvisualfinish delay 30 - createvisualtask AnimTask_CurseBlendEffect, 2, 31, 3, 2, 0, 10, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 31, 3, 2, 0, 10, RGB_WHITE delay 10 playsewithpan SE_M_REVERSAL, 192 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 @@ -1873,7 +1873,7 @@ Move_SAFEGUARD:: createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, waitforvisualfinish playsewithpan SE_SHINY, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 10, 0, 2, 0, 10, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 10, 0, 2, 0, 10, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -1965,7 +1965,7 @@ Move_PAY_DAY:: Move_OUTRAGE:: loadspritegfx ANIM_TAG_SMALL_EMBER loopsewithpan SE_M_DRAGON_RAGE, 192, 8, 3 - createvisualtask AnimTask_CurseBlendEffect, 2, 7, 2, 5, 3, 8, 430 + createvisualtask AnimTask_BlendColorCycle, 2, 7, 2, 5, 3, 8, 430 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 5, 4 delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 @@ -2012,25 +2012,25 @@ Move_SPARK:: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_SPARK_2 delay 0 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, 23551 playsewithpan SE_M_THUNDERBOLT2, 192 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 delay 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 delay 0 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551 delay 10 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, 23551 playsewithpan SE_M_THUNDERBOLT2, 192 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 delay 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1 delay 0 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551 delay 20 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 7, 7, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 7, 7, 23551 playsewithpan SE_M_THUNDERBOLT2, 192 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 @@ -2042,14 +2042,14 @@ Move_SPARK:: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 delay 4 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 playsewithpan SE_M_HYPER_BEAM, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 4, -31, 2, 0, 6, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, 4, -31, 2, 0, 6, 23551 call ElectricityEffect waitforvisualfinish end @@ -2080,7 +2080,7 @@ Move_ATTRACT:: createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 112, 256, 90 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 200, 272, 90 delay 75 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 4, 4, 0, 10, 28479 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 4, 4, 0, 10, 28479 end Move_GROWTH:: @@ -2091,7 +2091,7 @@ Move_GROWTH:: end GrowthEffect:: - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE playsewithpan SE_M_TAKE_DOWN, 192 createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0 return @@ -3193,7 +3193,7 @@ Move_SPITE:: playsewithpan SE_M_PSYBEAM, 192 waitbgfadein monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 6, 0, 8, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 6, 0, 8, RGB_WHITE createvisualtask AnimTask_SpiteTargetShadow, 2 loopsewithpan SE_M_PSYBEAM, 63, 20, 3 waitforvisualfinish @@ -3280,7 +3280,7 @@ Move_ENDURE:: playsewithpan SE_M_DRAGON_RAGE, 192 call EndureEffect delay 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 call EndureEffect delay 8 @@ -4722,7 +4722,7 @@ Move_MIND_READER:: createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5, delay 40 playsewithpan SE_M_LEER, 63 - createvisualtask AnimTask_CurseBlendEffect, 2, 1, 1, 2, 0, 10, 0 + createvisualtask AnimTask_BlendColorCycle, 2, 1, 1, 2, 0, 10, 0 call MindReaderEyeSpikeEffect waitforvisualfinish clearmonbg 4 @@ -4805,7 +4805,7 @@ Move_CONFUSION:: call SetPsychicBackground setalpha 8, 8 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE waitforvisualfinish playsewithpan SE_M_SUPERSONIC, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1 @@ -4822,7 +4822,7 @@ Move_PSYCHIC:: call SetPsychicBackground setalpha 8, 8 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, 767 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, 767 waitforvisualfinish loopsewithpan SE_M_SUPERSONIC, 63, 10, 3 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 @@ -4848,7 +4848,7 @@ FutureSight:: call SetPsychicBackground setalpha 8, 8 playsewithpan SE_M_SUPERSONIC, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -5244,7 +5244,7 @@ Move_SMOG:: call SmogCloud delay 120 loopsewithpan SE_M_TOXIC, 63, 18, 2 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 26650 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 26650 delay 10 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1 waitforvisualfinish @@ -5552,7 +5552,7 @@ SolarBeamEnd:: SolarBeamSetUp:: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 1, 4, 0, 11, 12287 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 1, 4, 0, 11, 12287 playsewithpan SE_M_MEGA_KICK, 192 call SolarBeamAbsorbEffect waitforvisualfinish @@ -6032,7 +6032,7 @@ Move_LEECH_LIFE:: Move_SYNTHESIS:: loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_SPARKLE_2 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 16, 19451 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 16, 19451 playsewithpan SE_M_MEGA_KICK, 192 call GrantingStarsEffect waitforvisualfinish @@ -6072,7 +6072,7 @@ Move_SLUDGE:: createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 2, 0, 12, 31774 call PoisonBubblesEffect waitforvisualfinish end @@ -6090,7 +6090,7 @@ Move_SLUDGE_BOMB:: call SludgeBombProjectile call SludgeBombProjectile createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 2, 0, 12, 31774 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 @@ -6135,7 +6135,7 @@ Move_ACID:: delay 15 createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1 createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 20, 2, 2, 0, 12, 31774 + createvisualtask AnimTask_BlendColorCycle, 2, 20, 2, 2, 0, 12, 31774 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55 playsewithpan SE_M_BUBBLE, 63 delay 10 @@ -7053,7 +7053,7 @@ Move_MIST:: call MistCloud call MistCloud delay 32 - createvisualtask AnimTask_CurseBlendEffect, 2, 10, 8, 2, 0, 14, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 10, 8, 2, 0, 14, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -7224,7 +7224,7 @@ Move_POISON_GAS:: createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 loopsewithpan SE_M_MIST, 63, 28, 6 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 6, 2, 0, 12, 26650 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 6, 2, 0, 12, 26650 waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER @@ -7259,7 +7259,7 @@ Move_PSYBEAM:: call PsybeamRings call PsybeamRings createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 32351 call PsybeamRings call PsybeamRings call PsybeamRings @@ -7285,7 +7285,7 @@ Move_HYPNOSIS:: call HypnosisRings call HypnosisRings call HypnosisRings - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 32351 waitforvisualfinish delay 1 call UnsetPsychicBg @@ -7306,7 +7306,7 @@ Move_PSYWAVE:: createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, -64, 63, 2, 9, 0, 10 call PsywaveRings call PsywaveRings - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 4, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 4, 0, 12, 32351 call PsywaveRings call PsywaveRings call PsywaveRings @@ -7443,7 +7443,7 @@ Move_NIGHT_SHADE:: createvisualtask AnimTask_NightShadeClone, 5, 85 delay 70 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 12, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 2, 0, 13, 0 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 2, 0, 13, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 @@ -7505,7 +7505,7 @@ Move_FOCUS_ENERGY:: playsewithpan SE_M_DRAGON_RAGE, 192 call EndureEffect delay 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_WHITE createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 call EndureEffect delay 8 @@ -7519,7 +7519,7 @@ Move_BIDE:: BattleAnimScript_Bide_Setup:: loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 waitforvisualfinish end @@ -7697,7 +7697,7 @@ Move_RECOVER:: monbg ANIM_ATK_PARTNER setalpha 12, 8 loopsewithpan SE_M_MEGA_KICK, 192, 13, 3 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 6, 0, 11, 12287 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, 12287 call RecoverAbsorbEffect call RecoverAbsorbEffect call RecoverAbsorbEffect @@ -7738,7 +7738,7 @@ Move_MIMIC:: setarg 7, 65535 waitforvisualfinish playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 11, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 11, RGB_WHITE waitforvisualfinish clearmonbg_23 3 blendoff @@ -7807,7 +7807,7 @@ CurseStats:: CurseStats1:: playsewithpan SE_M_DRAGON_RAGE, 192 createvisualtask AnimTask_SetUpCurseBackground, 5, - createvisualtask AnimTask_CurseBlendEffect, 5, 2, 4, 2, 0, 10, 31 + createvisualtask AnimTask_BlendColorCycle, 5, 2, 4, 2, 0, 10, 31 return Move_SOFT_BOILED:: @@ -8055,7 +8055,7 @@ PresentHeal:: Move_BATON_PASS:: loadspritegfx ANIM_TAG_POKEBALL playsewithpan SE_M_BATON_PASS, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 31, 1, 2, 0, 11, 31455 + createvisualtask AnimTask_BlendColorCycle, 2, 31, 1, 2, 0, 11, 31455 createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2, end @@ -8303,7 +8303,7 @@ Move_WISH:: Move_STOCKPILE:: loadspritegfx ANIM_TAG_GRAY_ORB playsewithpan SE_M_MEGA_KICK, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 8, 1, 0, 12, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, 2, 8, 1, 0, 12, RGB_WHITE createvisualtask AnimTask_StockpileDeformMon, 5, call StockpileAbsorb call StockpileAbsorb @@ -8469,7 +8469,7 @@ Move_SWEET_SCENT:: call SweetScentEffect createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0 setpan 63 - createvisualtask AnimTask_CurseBlendEffect, 2, 20, 1, 5, 5, 13, 22207 + createvisualtask AnimTask_BlendColorCycle, 2, 20, 1, 5, 5, 13, 22207 call SweetScentEffect waitforvisualfinish end @@ -8898,7 +8898,7 @@ Move_REVENGE:: playsewithpan SE_M_TAKE_DOWN, 192 createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 4, 2, 8, 31 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 4, 2, 8, 31 waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SCRATCH loadspritegfx ANIM_TAG_PURPLE_SWIPE @@ -8928,7 +8928,7 @@ Move_POISON_FANG:: delay 10 createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 4, 0, 12, 26650 + createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 4, 0, 12, 26650 call PoisonBubblesEffect waitforvisualfinish end @@ -9703,7 +9703,7 @@ Move_PSYCHO_BOOST:: createvisualtask AnimTask_FadeScreenToWhite, 5, waitbgfadein delay 6 - createvisualtask AnimTask_CurseBlendEffect, 2, 1, 2, 8, 0, 10, 0 + createvisualtask AnimTask_BlendColorCycle, 2, 1, 2, 8, 0, 10, 0 delay 0 monbgprio_28 0 setalpha 8, 8 @@ -10438,7 +10438,7 @@ UnsetSolarBeamBg:: Status_Poison:: loopsewithpan SE_M_TOXIC, 63, 13, 6 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 18, 2 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 12, 31774 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 12, 31774 end Status_Confusion:: @@ -10858,7 +10858,7 @@ General_FocusPunchSetUp:: playsewithpan SE_M_DRAGON_RAGE, 192 call EndureEffect delay 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 call EndureEffect delay 8 diff --git a/include/battle_anim.h b/include/battle_anim.h index cd5785871..ffff805d6 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -478,7 +478,7 @@ void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId); extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; -u32 UnpackSelectedBattleAnimPalettes(s16 selector); +u32 UnpackSelectedBattlePalettes(s16 selector); void AnimTask_CurseBlendEffect(u8 taskId); void AnimTask_BlendColorCycleExclude(u8 taskId); void AnimTask_BlendColorCycleByTag(u8 taskId); diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index 09efc5354..a76ad1fa2 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -8,7 +8,7 @@ static void AnimConfusionDuck(struct Sprite *sprite); static void AnimSimplePaletteBlend(struct Sprite *sprite); static void AnimComplexPaletteBlend(struct Sprite *sprite); -static void sub_80B9B8C(struct Sprite *sprite); +static void AnimCirclingSparkle(struct Sprite *sprite); static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite); static void AnimHitSplatBasic(struct Sprite *sprite); static void AnimHitSplatHandleInvert(struct Sprite *sprite); @@ -17,22 +17,22 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite); static void AnimCrossImpact(struct Sprite *sprite); static void AnimFlashingHitSplat(struct Sprite *sprite); static void AnimHitSplatPersistent(struct Sprite *sprite); -static void AnimConfusionDuckStep(struct Sprite *sprite); -static void AnimSimplePaletteBlendStep(struct Sprite *sprite); -static void sub_80B9AD0(struct Sprite *sprite); -static void sub_80B9B5C(struct Sprite *sprite); -static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); -static void sub_80B9C7C(u8 taskId); -static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); -static void sub_80B9DF0(u8 taskId); -static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); -static void sub_80B9F04(u8 taskId); -static void sub_80B9FD8(u8 taskId); -static void sub_80BA090(u8 taskId); -static void sub_80BA3CC(void); -static void sub_80BA320(struct Sprite *sprite); -static void sub_80BA4D0(u8 taskId); -static void sub_80BA7BC(struct Sprite *sprite); +static void AnimConfusionDuck_Step(struct Sprite *sprite); +static void AnimSimplePaletteBlend_Step(struct Sprite *sprite); +static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite); +static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite); +static void BlendColorCycle(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); +static void AnimTask_BlendColorCycleLoop(u8 taskId); +static void BlendColorCycleExclude(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); +static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId); +static void BlendColorCycleByTag(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); +static void AnimTask_BlendColorCycleByTagLoop(u8 taskId); +static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId); +static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId); +static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); +static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite); +static void AnimTask_ShakeBattleTerrain_Step(u8 taskId); +static void AnimFlashingHitSplat_Step(struct Sprite *sprite); static const union AnimCmd sAnim_ConfusionDuck_0[] = @@ -92,7 +92,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = .callback = AnimComplexPaletteBlend, }; -static const union AnimCmd gUnknown_83E7B54[] = +static const union AnimCmd sAnim_CirclingSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -102,20 +102,21 @@ static const union AnimCmd gUnknown_83E7B54[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7B6C[] = +static const union AnimCmd *const sAnims_CirclingSparkle[] = { - gUnknown_83E7B54, + sAnim_CirclingSparkle, }; -const struct SpriteTemplate gUnknown_83E7B70 = +// Unused +static const struct SpriteTemplate sCirclingSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E7B6C, + .anims = sAnims_CirclingSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B9B8C, + .callback = AnimCirclingSparkle, }; const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = @@ -275,11 +276,11 @@ static void AnimConfusionDuck(struct Sprite *sprite) StartSpriteAnim(sprite, 1); } sprite->data[3] = gBattleAnimArgs[4]; - sprite->callback = AnimConfusionDuckStep; + sprite->callback = AnimConfusionDuck_Step; sprite->callback(sprite); } -static void AnimConfusionDuckStep(struct Sprite *sprite) +static void AnimConfusionDuck_Step(struct Sprite *sprite) { sprite->x2 = Cos(sprite->data[0], 30); sprite->y2 = Sin(sprite->data[0], 10); @@ -300,36 +301,36 @@ static void AnimConfusionDuckStep(struct Sprite *sprite) // arg 4: blend color static void AnimSimplePaletteBlend(struct Sprite *sprite) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); sprite->invisible = TRUE; - sprite->callback = AnimSimplePaletteBlendStep; + sprite->callback = AnimSimplePaletteBlend_Step; } // Unpacks a bitfield and returns a bitmask of its selected palettes. // Bits 0-6 of the selector parameter result in the following palettes being selected: -// 0: battle background palettes (BG palettes 1, 2, and 3) -// 1: gBattleAnimAttacker OBJ palette -// 2: gBattleAnimTarget OBJ palette -// 3: gBattleAnimAttacker partner OBJ palette -// 4: gBattleAnimTarget partner OBJ palette -// 5: BG palette 4 -// 6: BG palette 5 -u32 UnpackSelectedBattleAnimPalettes(s16 selector) +// 0: F_PAL_BG, battle background palettes (BG palettes 1, 2, and 3) +// 1: F_PAL_ATTACKER, gBattleAnimAttacker OBJ palette +// 2: F_PAL_TARGET, gBattleAnimTarget OBJ palette +// 3: F_PAL_ATK_PARTNER, gBattleAnimAttacker partner OBJ palette +// 4: F_PAL_DEF_PARTNER, gBattleAnimTarget partner OBJ palette +// 5: F_PAL_ANIM_1, BG palette 8 +// 6: F_PAL_ANIM_2, BG palette 9 +u32 UnpackSelectedBattlePalettes(s16 selector) { u8 battleBackground = selector & 1; u8 attacker = (selector >> 1) & 1; u8 target = (selector >> 2) & 1; u8 attackerPartner = (selector >> 3) & 1; u8 targetPartner = (selector >> 4) & 1; - u8 arg5 = (selector >> 5) & 1; - u8 arg6 = (selector >> 6) & 1; + u8 anim1 = (selector >> 5) & 1; + u8 anim2 = (selector >> 6) & 1; - return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); + return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, anim1, anim2); } -static void AnimSimplePaletteBlendStep(struct Sprite *sprite) +static void AnimSimplePaletteBlend_Step(struct Sprite *sprite) { if (!gPaletteFade.active) DestroyAnimSprite(sprite); @@ -347,13 +348,13 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; sprite->data[6] = gBattleAnimArgs[6]; sprite->data[7] = gBattleAnimArgs[0]; - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]); BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]); sprite->invisible = TRUE; - sprite->callback = sub_80B9AD0; + sprite->callback = AnimComplexPaletteBlend_Step1; } -static void sub_80B9AD0(struct Sprite *sprite) +static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite) { u32 selectedPalettes; @@ -366,10 +367,10 @@ static void sub_80B9AD0(struct Sprite *sprite) return; if (sprite->data[2] == 0) { - sprite->callback = sub_80B9B5C; + sprite->callback = AnimComplexPaletteBlend_Step2; return; } - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]); if (sprite->data[1] & 0x100) BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]); else @@ -379,19 +380,19 @@ static void sub_80B9AD0(struct Sprite *sprite) --sprite->data[2]; } -static void sub_80B9B5C(struct Sprite *sprite) +static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite) { u32 selectedPalettes; if (!gPaletteFade.active) { - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]); BlendPalettes(selectedPalettes, 0, 0); DestroyAnimSprite(sprite); } } -static void sub_80B9B8C(struct Sprite *sprite) +static void AnimCirclingSparkle(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -406,53 +407,71 @@ static void sub_80B9B8C(struct Sprite *sprite) sprite->callback(sprite); } -void AnimTask_CurseBlendEffect(u8 taskId) +// Task data for AnimTask_BlendColorCycle, AnimTask_BlendColorCycleExclude, and AnimTask_BlendColorCycleByTag +#define tPalSelector data[0] // AnimTask_BlendColorCycle +#define tPalTag data[0] // AnimTask_BlendColorCycleByTag +#define tDelay data[1] +#define tNumBlends data[2] +#define tInitialBlendY data[3] +#define tTargetBlendY data[4] +#define tBlendColor data[5] +#define tRestoreBlend data[8] +#define tPalSelectorHi data[9] +#define tPalSelectorLo data[10] + +// Blends mon/screen to designated color or back alternately tNumBlends times +// Many uses of this task only set a tNumBlends of 2, which has the effect of blending to a color and back once +void AnimTask_BlendColorCycle(u8 taskId) { - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - sub_80B9C2C(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_80B9C7C; + gTasks[taskId].tPalSelector = gBattleAnimArgs[0]; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = FALSE; + BlendColorCycle(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleLoop; } -static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].data[0]); - - BeginNormalPaletteFade(selectedPalettes, - gTasks[taskId].data[1], - initialBlendAmount, - targetBlendAmount, - gTasks[taskId].data[5]); - --gTasks[taskId].data[2]; - gTasks[taskId].data[8] ^= 1; + u32 selectedPalettes = UnpackSelectedBattlePalettes(gTasks[taskId].tPalSelector); + BeginNormalPaletteFade( + selectedPalettes, + gTasks[taskId].tDelay, + startBlendAmount, + targetBlendAmount, + gTasks[taskId].tBlendColor); + + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_80B9C7C(u8 taskId) +static void AnimTask_BlendColorCycleLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; - + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_80B9C2C(taskId, initialBlendAmount, targetBlendAmount); + + BlendColorCycle(taskId, startBlendAmount, targetBlendAmount); } else { @@ -461,64 +480,73 @@ static void sub_80B9C7C(u8 taskId) } } +// See AnimTask_BlendColorCycle. Same, but excludes Attacker and Target void AnimTask_BlendColorCycleExclude(u8 taskId) { - s32 battler; + int battler; u32 selectedPalettes = 0; gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - for (battler = 0; battler < gBattlersCount; ++battler) + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = 0; + + for (battler = 0; battler < gBattlersCount; battler++) + { if (battler != gBattleAnimAttacker && battler != gBattleAnimTarget) selectedPalettes |= 1 << (battler + 16); + } + if (gBattleAnimArgs[0] == 1) selectedPalettes |= 0xE; - gTasks[taskId].data[9] = selectedPalettes >> 16; - gTasks[taskId].data[10] = selectedPalettes & 0xFF; - sub_80B9DA0(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_80B9DF0; + + gTasks[taskId].tPalSelectorHi = selectedPalettes >> 16; + gTasks[taskId].tPalSelectorLo = selectedPalettes & 0xFF; + BlendColorCycleExclude(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleExcludeLoop; } -static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycleExclude(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u32 selectedPalettes = ((u16)gTasks[taskId].data[9] << 16) | (u16)gTasks[taskId].data[10]; - - BeginNormalPaletteFade(selectedPalettes, - gTasks[taskId].data[1], - initialBlendAmount, - targetBlendAmount, - gTasks[taskId].data[5]); - --gTasks[taskId].data[2]; - gTasks[taskId].data[8] ^= 1; + u32 selectedPalettes = ((u16)gTasks[taskId].tPalSelectorHi << 16) | (u16)gTasks[taskId].tPalSelectorLo; + BeginNormalPaletteFade( + selectedPalettes, + gTasks[taskId].tDelay, + startBlendAmount, + targetBlendAmount, + gTasks[taskId].tBlendColor); + + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_80B9DF0(u8 taskId) +static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; - + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_80B9DA0(taskId, initialBlendAmount, targetBlendAmount); + + BlendColorCycleExclude(taskId, startBlendAmount, targetBlendAmount); } else { @@ -527,56 +555,59 @@ static void sub_80B9DF0(u8 taskId) } } +// See AnimTask_BlendColorCycle. Same, but selects palette by ANIM_TAG_* void AnimTask_BlendColorCycleByTag(u8 taskId) { - u8 paletteIndex; + gTasks[taskId].tPalTag = gBattleAnimArgs[0]; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = FALSE; - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - sub_80B9EA8(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_80B9F04; + BlendColorCycleByTag(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleByTagLoop; } -static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycleByTag(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].data[0]); - - BeginNormalPaletteFade(1 << (paletteIndex + 16), - gTasks[taskId].data[1], - initialBlendAmount, - targetBlendAmount, - gTasks[taskId].data[5]); - --gTasks[taskId].data[2]; - gTasks[taskId].data[8] ^= 1; + u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].tPalTag); + BeginNormalPaletteFade( + 1 << (paletteIndex + 16), + gTasks[taskId].tDelay, + startBlendAmount, + targetBlendAmount, + gTasks[taskId].tBlendColor); + + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_80B9F04(u8 taskId) +static void AnimTask_BlendColorCycleByTagLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; - + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_80B9EA8(taskId, initialBlendAmount, targetBlendAmount); + + BlendColorCycleByTag(taskId, startBlendAmount, targetBlendAmount); } else { @@ -585,6 +616,18 @@ static void sub_80B9F04(u8 taskId) } } +#undef tPalSelector +#undef tPalTag +#undef tDelay +#undef tNumBlends +#undef tInitialBlendY +#undef tTargetBlendY +#undef tBlendColor +#undef tRestoreBlend +#undef tPalSelectorHi +#undef tPalSelectorLo + +// Flashes the specified anim tag with given color. Used e.g. to flash the particles red in Hyper Beam void AnimTask_FlashAnimTagWithColor(u8 taskId) { u8 paletteIndex; @@ -603,10 +646,10 @@ void AnimTask_FlashAnimTagWithColor(u8 taskId) gBattleAnimArgs[4], gBattleAnimArgs[4], gBattleAnimArgs[3]); - gTasks[taskId].func = sub_80B9FD8; + gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step1; } -static void sub_80B9FD8(u8 taskId) +static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId) { u32 selectedPalettes; @@ -619,7 +662,7 @@ static void sub_80B9FD8(u8 taskId) return; if (gTasks[taskId].data[2] == 0) { - gTasks[taskId].func = sub_80BA090; + gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step2; return; } selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16); @@ -640,7 +683,7 @@ static void sub_80B9FD8(u8 taskId) --gTasks[taskId].data[2]; } -static void sub_80BA090(u8 taskId) +static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId) { u32 selectedPalettes; @@ -659,7 +702,7 @@ void AnimTask_InvertScreenColor(u8 taskId) u8 targetBattler = gBattleAnimTarget; if (gBattleAnimArgs[0] & 0x100) - selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); if (gBattleAnimArgs[1] & 0x100) selectedPalettes |= (0x10000 << attackerBattler); if (gBattleAnimArgs[2] & 0x100) @@ -668,8 +711,16 @@ void AnimTask_InvertScreenColor(u8 taskId) DestroyAnimVisualTask(taskId); } -// not used -static void sub_80BA16C(u8 taskId) +// Unused +#define tTimer data[0] +#define tLength data[1] +#define tFlagsScenery data[2] +#define tFlagsAttacker data[3] +#define tFlagsTarget data[4] +#define tColorR data[5] +#define tColorG data[6] +#define tColorB data[7] +static void AnimTask_TintPalettes(u8 taskId) { u8 attackerBattler; u8 targetBattler; @@ -708,6 +759,15 @@ static void sub_80BA16C(u8 taskId) } } +#undef tTimer +#undef tLength +#undef tFlagsScenery +#undef tFlagsAttacker +#undef tFlagsTarget +#undef tColorR +#undef tColorG +#undef tColorB + static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) { u16 var0; @@ -737,11 +797,11 @@ static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[3]; var0 = sprite->data[5] - 2; if (var0 < 2) - sub_80BA3CC(); - sprite->callback = sub_80BA320; + AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(); + sprite->callback = AnimShakeMonOrBattleTerrain_Step; } -static void sub_80BA320(struct Sprite *sprite) +static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite) { u8 i; u16 var0; @@ -766,58 +826,70 @@ static void sub_80BA320(struct Sprite *sprite) var0 = sprite->data[5] - 2; if (var0 < 2) for (i = 0; i < gBattlersCount; ++i) - gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = FALSE; DestroyAnimSprite(sprite); } } -static void sub_80BA3CC(void) +static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE; if (gBattleAnimArgs[4] == 2) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE; } else { if (gBattleAnimArgs[4] == 0) - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE; else - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE; } } +// Task data for AnimTask_ShakeBattleTerrain +#define tXOffset data[0] +#define tYOffset data[1] +#define tNumShakes data[2] +#define tTimer data[3] +#define tShakeDelay data[8] + +// Can shake battle terrain back and forth on the X or down and back to original pos on Y (cant shake up from orig pos) +// arg0: x offset of shake +// arg1: y offset of shake +// arg2: number of shakes +// arg3: time between shakes void AnimTask_ShakeBattleTerrain(u8 taskId) { - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[8] = gBattleAnimArgs[3]; + gTasks[taskId].tXOffset = gBattleAnimArgs[0]; + gTasks[taskId].tYOffset = gBattleAnimArgs[1]; + gTasks[taskId].tNumShakes = gBattleAnimArgs[2]; + gTasks[taskId].tTimer = gBattleAnimArgs[3]; + gTasks[taskId].tShakeDelay = gBattleAnimArgs[3]; gBattle_BG3_X = gBattleAnimArgs[0]; gBattle_BG3_Y = gBattleAnimArgs[1]; - gTasks[taskId].func = sub_80BA4D0; + gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step; gTasks[taskId].func(taskId); } -static void sub_80BA4D0(u8 taskId) +static void AnimTask_ShakeBattleTerrain_Step(u8 taskId) { - if (gTasks[taskId].data[3] == 0) + if (gTasks[taskId].tTimer == 0) { - if (gBattle_BG3_X == gTasks[taskId].data[0]) - gBattle_BG3_X = -gTasks[taskId].data[0]; + if (gBattle_BG3_X == gTasks[taskId].tXOffset) + gBattle_BG3_X = -gTasks[taskId].tXOffset; else - gBattle_BG3_X = gTasks[taskId].data[0]; + gBattle_BG3_X = gTasks[taskId].tXOffset; - if (gBattle_BG3_Y == -gTasks[taskId].data[1]) + if (gBattle_BG3_Y == -gTasks[taskId].tYOffset) gBattle_BG3_Y = 0; else - gBattle_BG3_Y = -gTasks[taskId].data[1]; + gBattle_BG3_Y = -gTasks[taskId].tYOffset; - gTasks[taskId].data[3] = gTasks[taskId].data[8]; - if (--gTasks[taskId].data[2] == 0) + gTasks[taskId].tTimer = gTasks[taskId].tShakeDelay; + if (--gTasks[taskId].tNumShakes == 0) { gBattle_BG3_X = 0; gBattle_BG3_Y = 0; @@ -826,26 +898,33 @@ static void sub_80BA4D0(u8 taskId) } else { - --gTasks[taskId].data[3]; + gTasks[taskId].tTimer--; } } +#undef tXOffset +#undef tYOffset +#undef tNumShakes +#undef tTimer +#undef tShakeDelay + static void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// Same as basic hit splat but takes a length of time to persist for (arg4) static void AnimHitSplatPersistent(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; @@ -853,6 +932,8 @@ static void AnimHitSplatPersistent(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer); } +// For paired hit splats whose position is inverted when used by the opponent on the player. +// Used by Twineedle and Spike Cannon static void AnimHitSplatHandleInvert(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest()) @@ -865,8 +946,8 @@ static void AnimHitSplatRandom(struct Sprite *sprite) if (gBattleAnimArgs[1] == -1) gBattleAnimArgs[1] = Random() & 3; StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]); - if (gBattleAnimArgs[0] == 0) - InitSpritePosToAnimAttacker(sprite, 0); + if (gBattleAnimArgs[0] == ANIM_ATTACKER) + InitSpritePosToAnimAttacker(sprite, FALSE); else InitSpritePosToAnimTarget(sprite, FALSE); sprite->x2 += (Random() % 48) - 24; @@ -889,8 +970,8 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite) static void AnimCrossImpact(struct Sprite *sprite) { - if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + if (gBattleAnimArgs[2] == ANIM_ATTACKER) + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -901,14 +982,14 @@ static void AnimCrossImpact(struct Sprite *sprite) static void AnimFlashingHitSplat(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); - if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + if (gBattleAnimArgs[2] == ANIM_ATTACKER) + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_80BA7BC; + sprite->callback = AnimFlashingHitSplat_Step; } -static void sub_80BA7BC(struct Sprite *sprite) +static void AnimFlashingHitSplat_Step(struct Sprite *sprite) { sprite->invisible ^= 1; if (sprite->data[0]++ > 12) diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 638ac7a6e..5814daa1a 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -52,7 +52,7 @@ const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, RE // 10: Enemy battler right void AnimTask_BlendSelected(u8 taskId) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); selectedPalettes |= GetBattleMonSpritePalettesMask( (gBattleAnimArgs[0] >> 7) & 1, @@ -79,7 +79,7 @@ void AnimTask_BlendExcept(u8 taskId) u8 animBattlers[2]; animBattlers[1] = 0xFF; - selectedPalettes = UnpackSelectedBattleAnimPalettes(1); + selectedPalettes = UnpackSelectedBattlePalettes(1); switch (gBattleAnimArgs[0]) { case 2: @@ -122,7 +122,7 @@ void AnimTask_BlendExcept(u8 taskId) void AnimTask_SetCamouflageBlend(u8 taskId) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); switch (gBattleTerrain) { From 96ecc82c9816977a64816b328a06c22e2995c720 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 13:52:24 -0400 Subject: [PATCH 023/105] Sync battle anim - poison, psychic --- src/battle_anim_poison.c | 24 +++++----- src/battle_anim_psychic.c | 97 +++++++++++++++++++++------------------ 2 files changed, 65 insertions(+), 56 deletions(-) diff --git a/src/battle_anim_poison.c b/src/battle_anim_poison.c index 1a617aeaf..1b1934071 100644 --- a/src/battle_anim_poison.c +++ b/src/battle_anim_poison.c @@ -7,10 +7,10 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite); static void AnimSludgeBombHitParticle(struct Sprite *sprite); static void AnimAcidPoisonDroplet(struct Sprite *sprite); static void AnimBubbleEffect(struct Sprite *sprite); -static void sub_80B1684(struct Sprite *sprite); -static void sub_80B1728(struct Sprite *sprite); -static void sub_80B1798(struct Sprite *sprite); -static void AnimBubbleEffectStep(struct Sprite *sprite); +static void AnimSludgeProjectile_Step(struct Sprite *sprite); +static void AnimAcidPoisonBubble_Step(struct Sprite *sprite); +static void AnimSludgeBombHitParticle_Step(struct Sprite *sprite); +static void AnimBubbleEffect_Step(struct Sprite *sprite); static const union AnimCmd sAnim_ToxicBubble[] = { @@ -194,10 +194,10 @@ static void AnimSludgeProjectile(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[5] = -30; InitAnimArcTranslation(sprite); - sprite->callback = sub_80B1684; + sprite->callback = AnimSludgeProjectile_Step; } -static void sub_80B1684(struct Sprite *sprite) +static void AnimSludgeProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -218,10 +218,10 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite) sprite->data[4] = l2 + gBattleAnimArgs[5]; sprite->data[5] = -30; InitAnimArcTranslation(sprite); - sprite->callback = sub_80B1728; + sprite->callback = AnimAcidPoisonBubble_Step; } -static void sub_80B1728(struct Sprite *sprite) +static void AnimAcidPoisonBubble_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -237,10 +237,10 @@ static void AnimSludgeBombHitParticle(struct Sprite *sprite) InitSpriteDataForLinearTranslation(sprite); sprite->data[5] = sprite->data[1] / gBattleAnimArgs[2]; sprite->data[6] = sprite->data[2] / gBattleAnimArgs[2]; - sprite->callback = sub_80B1798; + sprite->callback = AnimSludgeBombHitParticle_Step; } -static void sub_80B1798(struct Sprite *sprite) +static void AnimSludgeBombHitParticle_Step(struct Sprite *sprite) { TranslateSpriteLinearFixedPoint(sprite); sprite->data[1] -= sprite->data[5]; @@ -284,10 +284,10 @@ static void AnimBubbleEffect(struct Sprite *sprite) sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; } - sprite->callback = AnimBubbleEffectStep; + sprite->callback = AnimBubbleEffect_Step; } -static void AnimBubbleEffectStep(struct Sprite *sprite) +static void AnimBubbleEffect_Step(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF; sprite->x2 = Sin(sprite->data[0], 4); diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 97e1714ba..5125001f0 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -12,18 +12,18 @@ static void AnimQuestionMark(struct Sprite *sprite); static void AnimRedX(struct Sprite *sprite); static void AnimSkillSwapOrb(struct Sprite *sprite); static void AnimPsychoBoost(struct Sprite *sprite); -static void sub_80B300C(struct Sprite *sprite); -static void sub_80B3044(struct Sprite *sprite); -static void sub_80B30B0(struct Sprite *sprite); -static void sub_80B3168(struct Sprite *sprite); -static void sub_80B3384(struct Sprite *sprite); -static void sub_80B33B8(struct Sprite *sprite); -static void sub_80B3454(u8 taskId); -static void sub_80B34DC(u8 taskId); -static void sub_80B3618(u8 taskId); -static void sub_80B3980(u8 taskId); -static void sub_80B3B78(u8 taskId); -static void sub_80B3D78(u8 taskId); +static void AnimDefensiveWall_Step2(struct Sprite *sprite); +static void AnimDefensiveWall_Step3(struct Sprite *sprite); +static void AnimDefensiveWall_Step4(struct Sprite *sprite); +static void AnimDefensiveWall_Step5(struct Sprite *sprite); +static void AnimQuestionMark_Step1(struct Sprite *sprite); +static void AnimQuestionMark_Step2(struct Sprite *sprite); +static void AnimTask_MeditateStretchAttacker_Step(u8 taskId); +static void AnimTask_Teleport_Step(u8 taskId); +static void AnimTask_ImprisonOrbs_Step(u8 taskId); +static void AnimTask_SkillSwap_Step(u8 taskId); +static void AnimTask_ExtrasensoryDistortion_Step(u8 taskId); +static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId); static const union AffineAnimCmd sAffineAnim_PsychUpSpiral[] = { @@ -415,6 +415,7 @@ const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate = .callback = AnimPsychoBoost, }; +// For the rectangular wall sprite used by Reflect, Mirror Coat, etc static void AnimDefensiveWall(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) @@ -459,20 +460,22 @@ static void AnimDefensiveWall(struct Sprite *sprite) if (IsContest()) sprite->y += 9; sprite->data[0] = 256 + IndexOfSpritePaletteTag(gBattleAnimArgs[2]) * 16; - sprite->callback = sub_80B300C; - sub_80B300C(sprite); + sprite->callback = AnimDefensiveWall_Step2; + sprite->callback(sprite); } -static void sub_80B300C(struct Sprite *sprite) +// AnimDefensiveWall_Step1 is removed in FRLG from the removal of Contest handling + +static void AnimDefensiveWall_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[3], 16 - sprite->data[3])); if (sprite->data[3] == 13) - sprite->callback = sub_80B3044; + sprite->callback = AnimDefensiveWall_Step3; else ++sprite->data[3]; } -static void sub_80B3044(struct Sprite *sprite) +static void AnimDefensiveWall_Step3(struct Sprite *sprite) { u16 color; u16 startOffset; @@ -487,11 +490,11 @@ static void sub_80B3044(struct Sprite *sprite) gPlttBufferFaded[startOffset + i] = gPlttBufferFaded[startOffset + i - 1]; gPlttBufferFaded[startOffset + 1] = color; if (++sprite->data[2] == 16) - sprite->callback = sub_80B30B0; + sprite->callback = AnimDefensiveWall_Step4; } } -static void sub_80B30B0(struct Sprite *sprite) +static void AnimDefensiveWall_Step4(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[3], 16 - sprite->data[3])); if (--sprite->data[3] == -1) @@ -508,11 +511,11 @@ static void sub_80B30B0(struct Sprite *sprite) gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; } sprite->invisible = TRUE; - sprite->callback = sub_80B3168; + sprite->callback = AnimDefensiveWall_Step5; } } -static void sub_80B3168(struct Sprite *sprite) +static void AnimDefensiveWall_Step5(struct Sprite *sprite) { if (!IsContest()) { @@ -531,13 +534,14 @@ static void sub_80B3168(struct Sprite *sprite) sprite->callback = DestroyAnimSprite; } +// Animates the sparkle that appears during Reflect or Light Screen/Mirror Coat static void AnimWallSparkle(struct Sprite *sprite) { if (sprite->data[0] == 0) { - int arg3 = gBattleAnimArgs[3]; + bool32 ignoreOffsets = gBattleAnimArgs[3]; bool8 respectMonPicOffsets = FALSE; - if (arg3 == 0) + if (!ignoreOffsets) respectMonPicOffsets = TRUE; if (!IsContest() && IsDoubleBattle()) { @@ -589,6 +593,7 @@ static void AnimBentSpoon(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } +// Used by Amnesia static void AnimQuestionMark(struct Sprite *sprite) { s16 x = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2; @@ -600,20 +605,20 @@ static void AnimQuestionMark(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + y; if (sprite->y < 16) sprite->y = 16; - StoreSpriteCallbackInData6(sprite, sub_80B3384); + StoreSpriteCallbackInData6(sprite, AnimQuestionMark_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_80B3384(struct Sprite *sprite) +static void AnimQuestionMark_Step1(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; sprite->affineAnims = sAffineAnims_QuestionMark; sprite->data[0] = 0; InitSpriteAffineAnim(sprite); - sprite->callback = sub_80B33B8; + sprite->callback = AnimQuestionMark_Step2; } -static void sub_80B33B8(struct Sprite *sprite) +static void AnimQuestionMark_Step2(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -640,10 +645,10 @@ void AnimTask_MeditateStretchAttacker(u8 taskId) task->data[0] = spriteId; PrepareAffineAnimInTaskData(task, spriteId, sAffineAnim_MeditateStretchAttacker); - task->func = sub_80B3454; + task->func = AnimTask_MeditateStretchAttacker_Step; } -static void sub_80B3454(u8 taskId) +static void AnimTask_MeditateStretchAttacker_Step(u8 taskId) { if (!RunAffineAnimFromTaskData(&gTasks[taskId])) DestroyAnimVisualTask(taskId); @@ -659,10 +664,10 @@ void AnimTask_Teleport(u8 taskId) task->data[2] = 0; task->data[3] = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 4 : 8; PrepareAffineAnimInTaskData(task, task->data[0], sAffineAnim_Teleport); - task->func = sub_80B34DC; + task->func = AnimTask_Teleport_Step; } -static void sub_80B34DC(u8 taskId) +static void AnimTask_Teleport_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -682,7 +687,7 @@ static void sub_80B34DC(u8 taskId) else { gSprites[task->data[0]].invisible = TRUE; - gSprites[task->data[0]].x = 272; + gSprites[task->data[0]].x = DISPLAY_WIDTH + 32; ResetSpriteRotScale(task->data[0]); DestroyAnimVisualTask(taskId); } @@ -704,10 +709,10 @@ void AnimTask_ImprisonOrbs(u8 taskId) task->data[12] = var0 > var1 ? var0 : var1; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); - task->func = sub_80B3618; + task->func = AnimTask_ImprisonOrbs_Step; } -static void sub_80B3618(u8 taskId) +static void AnimTask_ImprisonOrbs_Step(u8 taskId) { u16 i; u8 spriteId; @@ -757,7 +762,7 @@ static void sub_80B3618(u8 taskId) if (++task->data[1] == 32) { for (i = 8; i < 13; ++i) - if (task->data[i] != 64) + if (task->data[i] != MAX_SPRITES) DestroySprite(&gSprites[task->data[i]]); ++task->data[0]; } @@ -773,7 +778,7 @@ static void sub_80B3618(u8 taskId) } } -static void sub_80B37A4(struct Sprite *sprite) +static void AnimRedX_Step(struct Sprite *sprite) { if (sprite->data[1] > sprite->data[0] - 10) sprite->invisible = sprite->data[1] & 1; @@ -790,7 +795,7 @@ static void AnimRedX(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } sprite->data[0] = gBattleAnimArgs[1]; - sprite->callback = sub_80B37A4; + sprite->callback = AnimRedX_Step; } void AnimTask_SkillSwap(u8 taskId) @@ -799,7 +804,7 @@ void AnimTask_SkillSwap(u8 taskId) if (IsContest()) { - if (gBattleAnimArgs[0] == 1) + if (gBattleAnimArgs[0] == ANIM_TARGET) { task->data[10] = -10; task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_RIGHT) - 8; @@ -836,10 +841,10 @@ void AnimTask_SkillSwap(u8 taskId) } } task->data[1] = 6; - task->func = sub_80B3980; + task->func = AnimTask_SkillSwap_Step; } -static void sub_80B3980(u8 taskId) +static void AnimTask_SkillSwap_Step(u8 taskId) { u8 spriteId; struct Task *task = &gTasks[taskId]; @@ -881,6 +886,8 @@ static void AnimSkillSwapOrb(struct Sprite *sprite) } } +// The scanline effect that distorts the target during Extrasensory by segmenting the mon vertically and shifting the slices +// arg0: Stage. Stage 0 is a slight right distortion, 1 is a medium left distortion, and 2 is a severe right distortion void AnimTask_ExtrasensoryDistortion(u8 taskId) { s16 i; @@ -932,10 +939,10 @@ void AnimTask_ExtrasensoryDistortion(u8 taskId) scanlineParams.initState = 1; scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = sub_80B3B78; + task->func = AnimTask_ExtrasensoryDistortion_Step; } -static void sub_80B3B78(u8 taskId) +static void AnimTask_ExtrasensoryDistortion_Step(u8 taskId) { s16 sineIndex, i; struct Task *task = &gTasks[taskId]; @@ -969,6 +976,8 @@ static void sub_80B3B78(u8 taskId) } } +// Creates a cloned transparent sprite of the battler that grows and then shrinks back to original size. Used by Extrasensory +// arg0: battler void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) { s16 spriteId; @@ -998,10 +1007,10 @@ void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) task->data[13] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); task->data[14] = matrixNum; task->data[15] = spriteId; - task->func = sub_80B3D78; + task->func = AnimTask_TransparentCloneGrowAndShrink_Step; } -static void sub_80B3D78(u8 taskId) +static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; From f47680654770c200a41ea51e0973a48fca7d3aed Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 14:18:30 -0400 Subject: [PATCH 024/105] Sync battle anim - rock --- src/battle_anim_rock.c | 152 ++++++++++++++++++++--------------------- 1 file changed, 73 insertions(+), 79 deletions(-) diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 2690e4237..d7b8057ef 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -8,21 +8,21 @@ static void AnimFallingRock(struct Sprite *sprite); static void AnimRockFragment(struct Sprite *sprite); -static void AnimDirtParticleAcrossScreen(struct Sprite *sprite); +static void AnimFlyingSandCrescent(struct Sprite *sprite); static void AnimRaiseSprite(struct Sprite *sprite); -static void sub_80B4D00(u8 taskId); +static void AnimTask_Rollout_Step(u8 taskId); static void AnimRolloutParticle(struct Sprite *sprite); static void AnimRockTomb(struct Sprite *sprite); static void AnimRockBlastRock(struct Sprite *sprite); static void AnimRockScatter(struct Sprite *sprite); static void AnimParticleInVortex(struct Sprite *sprite); -static void sub_80B46B4(struct Sprite *sprite); -static void sub_80B47C4(struct Sprite *sprite); -static void sub_80B490C(u8 taskId); -static void sub_80B4E70(struct Task *task); -static u8 sub_80B4FB8(void); -static void sub_80B5024(struct Sprite *sprite); -static void sub_80B50F8(struct Sprite *sprite); +static void AnimFallingRock_Step(struct Sprite *sprite); +static void AnimParticleInVortex_Step(struct Sprite *sprite); +static void AnimTask_LoadSandstormBackground_Step(u8 taskId); +static void CreateRolloutDirtSprite(struct Task *task); +static u8 GetRolloutCounter(void); +static void AnimRockTomb_Step(struct Sprite *sprite); +static void AnimRockScatter_Step(struct Sprite *sprite); static const union AnimCmd sAnim_FlyingRock_0[] = { @@ -125,7 +125,7 @@ const struct SpriteTemplate gFlyingSandCrescentSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimDirtParticleAcrossScreen, + .callback = AnimFlyingSandCrescent, }; static const struct Subsprite sFlyingSandSubsprites[] = @@ -133,16 +133,16 @@ static const struct Subsprite sFlyingSandSubsprites[] = { .x = -16, .y = 0, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .tileOffset = 0, .priority = 1, }, { .x = 16, .y = 0, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .tileOffset = 8, .priority = 1, }, @@ -153,37 +153,37 @@ static const struct SubspriteTable sFlyingSandSubspriteTable[] = { NELEMS(sFlyingSandSubsprites), sFlyingSandSubsprites }, }; -static const union AnimCmd sAnim_BasicRock_0[] = +static const union AnimCmd sAnim_Rock_Biggest[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_BasicRock_1[] = +static const union AnimCmd sAnim_Rock_Bigger[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_WeatherBallRockDown_0[] = +static const union AnimCmd sAnim_Rock_Big[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_WeatherBallRockDown_1[] = +static const union AnimCmd sAnim_Rock_Small[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_TwisterRock_0[] = +static const union AnimCmd sAnim_Rock_Smaller[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_TwisterRock_1[] = +static const union AnimCmd sAnim_Rock_Smallest[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END, @@ -191,20 +191,12 @@ static const union AnimCmd sAnim_TwisterRock_1[] = static const union AnimCmd *const sAnims_BasicRock[] = { - sAnim_BasicRock_0, - sAnim_BasicRock_1, -}; - -static const union AnimCmd *const sAnims_WeatherBallRockDown[] = -{ - sAnim_WeatherBallRockDown_0, - sAnim_WeatherBallRockDown_1, -}; - -static const union AnimCmd *const sAnims_TwisterRock[] = -{ - sAnim_TwisterRock_0, - sAnim_TwisterRock_1, + sAnim_Rock_Biggest, + sAnim_Rock_Bigger, + sAnim_Rock_Big, + sAnim_Rock_Small, + sAnim_Rock_Smaller, + sAnim_Rock_Smallest, }; const struct SpriteTemplate gAncientPowerRockSpriteTemplate = @@ -229,7 +221,7 @@ const struct SpriteTemplate gRolloutMudSpriteTemplate = .callback = AnimRolloutParticle, }; -const struct SpriteTemplate gUnknown_83E74F0 = +const struct SpriteTemplate gRolloutRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, @@ -296,7 +288,7 @@ const struct SpriteTemplate gTwisterRockSpriteTemplate = .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_TwisterRock, + .anims = &sAnims_BasicRock[4], .images = NULL, .affineAnims = sAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, @@ -307,7 +299,7 @@ const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate = .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = sAnims_WeatherBallRockDown, + .anims = &sAnims_BasicRock[2], .images = NULL, .affineAnims = sAffineAnims_BasicRock, .callback = AnimWeatherBallDown, @@ -327,12 +319,12 @@ static void AnimFallingRock(struct Sprite *sprite) sprite->data[3] = 16; sprite->data[4] = -70; sprite->data[5] = gBattleAnimArgs[2]; - StoreSpriteCallbackInData6(sprite, sub_80B46B4); + StoreSpriteCallbackInData6(sprite, AnimFallingRock_Step); sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } -static void sub_80B46B4(struct Sprite *sprite) +static void AnimFallingRock_Step(struct Sprite *sprite) { sprite->x += sprite->data[5]; sprite->data[0] = 192; @@ -345,6 +337,7 @@ static void sub_80B46B4(struct Sprite *sprite) sprite->callback(sprite); } +// Animates the rock particles that are shown on the impact for Rock Blast / Rock Smash static void AnimRockFragment(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[5]); @@ -366,6 +359,7 @@ static void AnimRockFragment(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } +// Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb static void AnimParticleInVortex(struct Sprite *sprite) { if (gBattleAnimArgs[6] == 0) @@ -376,10 +370,10 @@ static void AnimParticleInVortex(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_80B47C4; + sprite->callback = AnimParticleInVortex_Step; } -static void sub_80B47C4(struct Sprite *sprite) +static void AnimParticleInVortex_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->y2 = -(sprite->data[4] >> 8); @@ -416,10 +410,10 @@ void AnimTask_LoadSandstormBackground(u8 taskId) if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; gTasks[taskId].data[0] = var0; - gTasks[taskId].func = sub_80B490C; + gTasks[taskId].func = AnimTask_LoadSandstormBackground_Step; } -static void sub_80B490C(u8 taskId) +static void AnimTask_LoadSandstormBackground_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -487,7 +481,7 @@ static void sub_80B490C(u8 taskId) // arg 1: projectile speed // arg 2: y pixel drop // arg 3: ??? unknown (possibly a color bit) -static void AnimDirtParticleAcrossScreen(struct Sprite *sprite) +static void AnimFlyingSandCrescent(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -518,7 +512,7 @@ static void AnimDirtParticleAcrossScreen(struct Sprite *sprite) sprite->data[4] &= 0xFF; if (sprite->data[5] == 0) { - if (sprite->x + sprite->x2 > 272) + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 32) { sprite->callback = DestroyAnimSprite; } @@ -550,23 +544,23 @@ static void AnimRaiseSprite(struct Sprite *sprite) void AnimTask_Rollout(u8 taskId) { u16 var0, var1, var2, var3; - u8 var4; + u8 rolloutCounter; s32 var5; s16 pan1, pan2; struct Task *task; task = &gTasks[taskId]; - var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 24; - var2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - var3 = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 24; + var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 24; + var2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + var3 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 24; if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget) var3 = var1; - var4 = sub_80B4FB8(); - if (var4 == 1) + rolloutCounter = GetRolloutCounter(); + if (rolloutCounter == 1) task->data[8] = 32; else - task->data[8] = 48 - (var4 * 8); + task->data[8] = 48 - (rolloutCounter * 8); task->data[0] = 0; task->data[11] = 0; task->data[9] = 0; @@ -585,12 +579,12 @@ void AnimTask_Rollout(u8 taskId) pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[13] = pan1; task->data[14] = (pan2 - pan1) / task->data[8]; - task->data[1] = var4; + task->data[1] = rolloutCounter; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = sub_80B4D00; + task->func = AnimTask_Rollout_Step; } -static void sub_80B4D00(u8 taskId) +static void AnimTask_Rollout_Step(u8 taskId) { struct Task *task; @@ -634,7 +628,7 @@ static void sub_80B4D00(u8 taskId) if (++task->data[9] >= task->data[10]) { task->data[9] = 0; - sub_80B4E70(task); + CreateRolloutDirtSprite(task); task->data[13] += task->data[14]; PlaySE12WithPanning(SE_M_DIG, task->data[13]); } @@ -650,10 +644,10 @@ static void sub_80B4D00(u8 taskId) } } -static void sub_80B4E70(struct Task *task) +static void CreateRolloutDirtSprite(struct Task *task) { const struct SpriteTemplate *spriteTemplate; - s32 var0; + s32 tileOffset; u16 x, y; u8 spriteId; @@ -661,20 +655,20 @@ static void sub_80B4E70(struct Task *task) { case 1: spriteTemplate = &gRolloutMudSpriteTemplate; - var0 = 0; + tileOffset = 0; break; case 2: case 3: - spriteTemplate = &gUnknown_83E74F0; - var0 = 80; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 80; break; case 4: - spriteTemplate = &gUnknown_83E74F0; - var0 = 64; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 64; break; case 5: - spriteTemplate = &gUnknown_83E74F0; - var0 = 48; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 48; break; default: return; @@ -689,7 +683,7 @@ static void sub_80B4E70(struct Task *task) gSprites[spriteId].data[2] = ((task->data[12] * 20) + x) + (task->data[1] * 3); gSprites[spriteId].data[4] = y; gSprites[spriteId].data[5] = -16 - (task->data[1] * 2); - gSprites[spriteId].oam.tileNum += var0; + gSprites[spriteId].oam.tileNum += tileOffset; InitAnimArcTranslation(&gSprites[spriteId]); ++task->data[11]; } @@ -700,15 +694,15 @@ static void AnimRolloutParticle(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { - u8 taskId = FindTaskIdByFunc(sub_80B4D00); + u8 taskId = FindTaskIdByFunc(AnimTask_Rollout_Step); - if (taskId != TAIL_SENTINEL) + if (taskId != TASK_NONE) --gTasks[taskId].data[11]; DestroySprite(sprite); } } -static u8 sub_80B4FB8(void) +static u8 GetRolloutCounter(void) { u8 retVal = gAnimDisableStructPtr->rolloutTimerStartValue - gAnimDisableStructPtr->rolloutTimer; u8 var0 = retVal - 1; @@ -726,11 +720,11 @@ static void AnimRockTomb(struct Sprite *sprite) sprite->data[3] -= gBattleAnimArgs[2]; sprite->data[0] = 3; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_80B5024; + sprite->callback = AnimRockTomb_Step; sprite->invisible = TRUE; } -static void sub_80B5024(struct Sprite *sprite) +static void AnimRockTomb_Step(struct Sprite *sprite) { sprite->invisible = FALSE; if (sprite->data[3] != 0) @@ -758,18 +752,18 @@ static void AnimRockBlastRock(struct Sprite *sprite) static void AnimRockScatter(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; sprite->data[5] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[3]); - sprite->callback = sub_80B50F8; + sprite->callback = AnimRockScatter_Step; } -static void sub_80B50F8(struct Sprite *sprite) +static void AnimRockScatter_Step(struct Sprite *sprite) { sprite->data[0] += 8; sprite->data[3] += sprite->data[1]; @@ -783,11 +777,11 @@ static void sub_80B50F8(struct Sprite *sprite) void AnimTask_GetSeismicTossDamageLevel(u8 taskId) { if (gAnimMoveDmg < 33) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if ((u32)gAnimMoveDmg - 33 < 33) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = 1; if (gAnimMoveDmg > 65) - gBattleAnimArgs[7] = 2; + gBattleAnimArgs[ARG_RET_ID] = 2; DestroyAnimVisualTask(taskId); } From 8601b4fff39cce00d6143782ed1957121cafa74e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 14:27:42 -0400 Subject: [PATCH 025/105] Sync battle anim - smokescreen --- data/battle_anim_smokescreen.s | 55 ---------- include/graphics.h | 4 + ld_script.txt | 2 +- src/battle_anim_smokescreen.c | 182 +++++++++++++++++++++++++++------ src/graphics.c | 2 +- 5 files changed, 159 insertions(+), 86 deletions(-) delete mode 100644 data/battle_anim_smokescreen.s diff --git a/data/battle_anim_smokescreen.s b/data/battle_anim_smokescreen.s deleted file mode 100644 index 3a4a46558..000000000 --- a/data/battle_anim_smokescreen.s +++ /dev/null @@ -1,55 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .align 2 - -gSmokescreenImpactSpriteSheet:: - obj_tiles gSmokescreenImpactTiles, 0x0180, 55019 - -gSmokescreenImpactSpritePalette:: - obj_pal gSmokescreenImpactPalette, 55019 - -gOamData_835099C:: - .4byte 0x40000000, 0x00000400 - -gAnimCmd_82509A4:: - obj_image_anim_frame 0, 4 - obj_image_anim_frame 4, 4 - obj_image_anim_frame 8, 4 - obj_image_anim_end - -gAnimCmd_82509B4:: - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - -gAnimCmd_82509C4:: - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_end - -gAnimCmd_82509D4:: - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_end - -gSpriteAnimTable_82509E4:: - .4byte gAnimCmd_82509A4 - .4byte gAnimCmd_82509B4 - .4byte gAnimCmd_82509C4 - .4byte gAnimCmd_82509D4 - -gSmokescreenImpactSpriteTemplate:: - spr_template 55019, 55019, gOamData_835099C, gSpriteAnimTable_82509E4, NULL, gDummySpriteAffineAnimTable, SpriteCB_DestroySprite - -gSpriteSheet_EnemyShadow:: - obj_tiles gFile_graphics_battle_interface_enemy_mon_shadow_sheet, 0x0080, 55129 - -gOamData_8250A14:: - .4byte 0x40004000, 0x00000c00 - -gSpriteTemplate_EnemyShadow:: - spr_template 55129, 55039, gOamData_8250A14, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCB_SetInvisible diff --git a/include/graphics.h b/include/graphics.h index f26373307..d520741dc 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3687,6 +3687,10 @@ extern const u32 gBattleStatMask8_Pal[]; extern const u32 gBattleStatMask1_Tilemap[]; extern const u32 gBattleStatMask2_Tilemap[]; +extern const u32 gSmokescreenImpactTiles[]; +extern const u32 gSmokescreenImpactPalette[]; +extern const u32 gEnemyMonShadow_Gfx[]; + // battle anim particle gfx extern const u32 gBattleAnimSpriteGfx_Bone[]; extern const u32 gBattleAnimSpriteGfx_Spark[]; diff --git a/ld_script.txt b/ld_script.txt index 7006d3094..e3048c656 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -409,7 +409,7 @@ SECTIONS { src/battle_util.o(.rodata); src/battle_script_commands.o(.rodata); src/battle_controller_player.o(.rodata); - data/battle_anim_smokescreen.o(.rodata); + src/battle_anim_smokescreen.o(.rodata); src/battle_controller_opponent.o(.rodata); src/battle_controller_link_opponent.o(.rodata); src/pokemon.o(.rodata); diff --git a/src/battle_anim_smokescreen.c b/src/battle_anim_smokescreen.c index c1d30a347..821884baa 100644 --- a/src/battle_anim_smokescreen.c +++ b/src/battle_anim_smokescreen.c @@ -1,73 +1,197 @@ #include "global.h" +#include "battle_gfx_sfx_util.h" #include "decompress.h" +#include "graphics.h" #include "util.h" -static void SmokescreenImpact_Callback(struct Sprite *sprite); +#define TAG_SMOKESCREEN 55019 -extern const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet; -extern const struct CompressedSpritePalette gSmokescreenImpactSpritePalette; -extern const struct SpriteTemplate gSmokescreenImpactSpriteTemplate; +#define PALTAG_SHADOW 55039 +#define GFXTAG_SHADOW 55129 -u8 SmokescreenImpact(s16 x, s16 y, u8 a3) +static void SpriteCB_SmokescreenImpactMain(struct Sprite *); +static void SpriteCB_SmokescreenImpact(struct Sprite *); + +static const struct CompressedSpriteSheet sSmokescreenImpactSpriteSheet = +{ + .data = gSmokescreenImpactTiles, .size = 0x180, .tag = TAG_SMOKESCREEN +}; + +static const struct CompressedSpritePalette sSmokescreenImpactSpritePalette = +{ + .data = gSmokescreenImpactPalette, .tag = TAG_SMOKESCREEN +}; + +static const struct OamData sOamData_SmokescreenImpact = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AnimCmd sAnim_SmokescreenImpact_0[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(8, 4), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_SmokescreenImpact_1[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(4, 4, .hFlip = TRUE), + ANIMCMD_FRAME(8, 4, .hFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_SmokescreenImpact_2[] = +{ + ANIMCMD_FRAME(0, 4, .vFlip = TRUE), + ANIMCMD_FRAME(4, 4, .vFlip = TRUE), + ANIMCMD_FRAME(8, 4, .vFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_SmokescreenImpact_3[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_FRAME(4, 4, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_FRAME(8, 4, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnims_SmokescreenImpact[] = +{ + sAnim_SmokescreenImpact_0, + sAnim_SmokescreenImpact_1, + sAnim_SmokescreenImpact_2, + sAnim_SmokescreenImpact_3, +}; + +static const struct SpriteTemplate sSmokescreenImpactSpriteTemplate = +{ + .tileTag = TAG_SMOKESCREEN, + .paletteTag = TAG_SMOKESCREEN, + .oam = &sOamData_SmokescreenImpact, + .anims = sAnims_SmokescreenImpact, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SmokescreenImpact +}; + +const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow = +{ + .data = gEnemyMonShadow_Gfx, .size = 0x80, .tag = GFXTAG_SHADOW +}; + +static const struct OamData sOamData_EnemyShadow = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct SpriteTemplate gSpriteTemplate_EnemyShadow = +{ + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, + .oam = &sOamData_EnemyShadow, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SetInvisible +}; + +#define sActiveSprites data[0] +#define sPersist data[1] + +#define sMainSpriteId data[0] + +u8 SmokescreenImpact(s16 x, s16 y, bool8 persist) { u8 mainSpriteId; u8 spriteId1, spriteId2, spriteId3, spriteId4; struct Sprite *mainSprite; - if (GetSpriteTileStartByTag(gSmokescreenImpactSpriteSheet.tag) == 0xFFFF) + if (GetSpriteTileStartByTag(sSmokescreenImpactSpriteSheet.tag) == 0xFFFF) { - LoadCompressedSpriteSheetUsingHeap(&gSmokescreenImpactSpriteSheet); - LoadCompressedSpritePaletteUsingHeap(&gSmokescreenImpactSpritePalette); + LoadCompressedSpriteSheetUsingHeap(&sSmokescreenImpactSpriteSheet); + LoadCompressedSpritePaletteUsingHeap(&sSmokescreenImpactSpritePalette); } - mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback); + mainSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_SmokescreenImpactMain); mainSprite = &gSprites[mainSpriteId]; - mainSprite->data[1] = a3; + mainSprite->sPersist = persist; - spriteId1 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); - gSprites[spriteId1].data[0] = mainSpriteId; - mainSprite->data[0]++; + // Top left sprite + spriteId1 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); + gSprites[spriteId1].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; AnimateSprite(&gSprites[spriteId1]); - spriteId2 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y - 16, 2); - gSprites[spriteId2].data[0] = mainSpriteId; - mainSprite->data[0]++; + // Top right sprite + spriteId2 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y - 16, 2); + gSprites[spriteId2].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; StartSpriteAnim(&gSprites[spriteId2], 1); AnimateSprite(&gSprites[spriteId2]); - spriteId3 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y, 2); - gSprites[spriteId3].data[0] = mainSpriteId; - mainSprite->data[0]++; + // Bottom left sprite + spriteId3 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y, 2); + gSprites[spriteId3].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; StartSpriteAnim(&gSprites[spriteId3], 2); AnimateSprite(&gSprites[spriteId3]); - spriteId4 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y, 2); - gSprites[spriteId4].data[0] = mainSpriteId; - mainSprite->data[0]++; + // Bottom right sprite + spriteId4 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y, 2); + gSprites[spriteId4].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; StartSpriteAnim(&gSprites[spriteId4], 3); AnimateSprite(&gSprites[spriteId4]); return mainSpriteId; } -static void SmokescreenImpact_Callback(struct Sprite *sprite) +static void SpriteCB_SmokescreenImpactMain(struct Sprite *sprite) { - if (!sprite->data[0]) + if (sprite->sActiveSprites == 0) { - FreeSpriteTilesByTag(gSmokescreenImpactSpriteSheet.tag); - FreeSpritePaletteByTag(gSmokescreenImpactSpritePalette.tag); - if (!sprite->data[1]) + FreeSpriteTilesByTag(sSmokescreenImpactSpriteSheet.tag); + FreeSpritePaletteByTag(sSmokescreenImpactSpritePalette.tag); + if (!sprite->sPersist) DestroySprite(sprite); else sprite->callback = SpriteCallbackDummy; } } -void SpriteCB_DestroySprite(struct Sprite *sprite) +static void SpriteCB_SmokescreenImpact(struct Sprite *sprite) { if (sprite->animEnded) { - gSprites[sprite->data[0]].data[0]--; + gSprites[sprite->sMainSpriteId].sActiveSprites--; DestroySprite(sprite); } } diff --git a/src/graphics.c b/src/graphics.c index b7694f158..85405cc35 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1021,7 +1021,7 @@ const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimBgPalette_MuddyWater[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); -const u32 gFile_graphics_battle_interface_enemy_mon_shadow_sheet[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); +const u32 gEnemyMonShadow_Gfx[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); const u32 gFile_graphics_battle_interface_ball_status_bar_sheet[] = INCBIN_U32("graphics/battle_interface/ball_status_bar.4bpp.lz"); From 4e106d86e361d3329874eb01da96c96a588d15f2 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 14:44:26 -0400 Subject: [PATCH 026/105] Sync battle anim - sound tasks --- data/battle_anim_scripts.s | 4 +- src/battle_anim_sound_tasks.c | 89 +++++++++++++++++++++-------------- 2 files changed, 56 insertions(+), 37 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index f456f5cce..d88c65b87 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -891,7 +891,7 @@ Move_TWINEEDLE:: Move_FIRE_BLAST:: loadspritegfx ANIM_TAG_SMALL_EMBER - createsoundtask sub_80DCE10, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 + createsoundtask SoundTask_FireBlast, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 call FireBlastRing call FireBlastRing call FireBlastRing @@ -8656,7 +8656,7 @@ Move_HYPER_VOICE:: end HyperVoiceEffect:: - createvisualtask sub_80DD334, 5 + createvisualtask SoundTask_PlayCryWithEcho, 5 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 8, 0, 1023 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, 0, 0 createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 4b660fb7a..87dc92b15 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -6,14 +6,21 @@ #include "constants/battle_anim.h" #include "constants/sound.h" -static void sub_80DCE78(u8 taskId); -static void sub_80DCEE4(u8 taskId); -static void sub_80DCFE8(u8 taskId); -static void sub_80DD270(u8 taskId); -static void sub_80DD390(u8 taskId); -static void sub_80DD4D4(u8 taskId); +static void SoundTask_FireBlast_Step1(u8 taskId); +static void SoundTask_FireBlast_Step2(u8 taskId); +static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId); +static void SoundTask_PlayDoubleCry_Step(u8 taskId); +static void SoundTask_PlayCryWithEcho_Step(u8 taskId); +static void SoundTask_AdjustPanningVar_Step(u8 taskId); -void sub_80DCE10(u8 taskId) +// Loops the specified sound effect and pans from the +// attacker to the target. The second specified sound effect +// is played at the very end. This task is effectively +// hardcoded to the move FIRE_BLAST due to the baked-in +// durations. +// arg 0: looped sound effect +// arg 1: ending sound effect +void SoundTask_FireBlast(u8 taskId) { s8 pan1, pan2, panIncrement; @@ -26,10 +33,10 @@ void sub_80DCE10(u8 taskId) gTasks[taskId].data[3] = pan2; gTasks[taskId].data[4] = panIncrement; gTasks[taskId].data[10] = 10; - gTasks[taskId].func = sub_80DCE78; + gTasks[taskId].func = SoundTask_FireBlast_Step1; } -static void sub_80DCE78(u8 taskId) +static void SoundTask_FireBlast_Step1(u8 taskId) { s16 pan = gTasks[taskId].data[2]; s8 panIncrement = gTasks[taskId].data[4]; @@ -38,7 +45,7 @@ static void sub_80DCE78(u8 taskId) { gTasks[taskId].data[10] = 5; gTasks[taskId].data[11] = 0; - gTasks[taskId].func = sub_80DCEE4; + gTasks[taskId].func = SoundTask_FireBlast_Step2; } else { @@ -52,7 +59,7 @@ static void sub_80DCE78(u8 taskId) } } -static void sub_80DCEE4(u8 taskId) +static void SoundTask_FireBlast_Step2(u8 taskId) { if (++gTasks[taskId].data[10] == 6) { @@ -88,11 +95,11 @@ void SoundTask_LoopSEAdjustPanning(u8 taskId) gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = sourcePan; gTasks[taskId].data[12] = r9; - gTasks[taskId].func = sub_80DCFE8; - sub_80DCFE8(taskId); + gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step; + gTasks[taskId].func(taskId); } -static void sub_80DCFE8(u8 taskId) +static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId) { if (gTasks[taskId].data[12]++ == gTasks[taskId].data[6]) { @@ -131,6 +138,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId) battlerId = BATTLE_PARTNER(gBattleAnimAttacker); else battlerId = BATTLE_PARTNER(gBattleAnimTarget); + // Check if battler is visible. if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) && !IsBattlerSpriteVisible(battlerId)) @@ -182,7 +190,7 @@ void SoundTask_PlayDoubleCry(u8 taskId) PlayCry_ByMode(species, pan, CRY_MODE_GROWL_1); else // DOUBLE_CRY_ROAR PlayCry_ByMode(species, pan, CRY_MODE_ROAR_1); - gTasks[taskId].func = sub_80DD270; + gTasks[taskId].func = SoundTask_PlayDoubleCry_Step; } else { @@ -190,7 +198,7 @@ void SoundTask_PlayDoubleCry(u8 taskId) } } -static void sub_80DD270(u8 taskId) +static void SoundTask_PlayDoubleCry_Step(u8 taskId) { u16 species = gTasks[taskId].data[1]; s8 pan = gTasks[taskId].data[2]; @@ -199,7 +207,7 @@ static void sub_80DD270(u8 taskId) { ++gTasks[taskId].data[9]; } - else if (gTasks[taskId].data[0] == TAIL_SENTINEL) + else if (gTasks[taskId].data[0] == DOUBLE_CRY_GROWL) { if (!IsCryPlaying()) { @@ -207,10 +215,13 @@ static void sub_80DD270(u8 taskId) DestroyAnimVisualTask(taskId); } } - else if (!IsCryPlaying()) + else // DOUBLE_CRY_ROAR { - PlayCry_ByMode(species, pan, CRY_MODE_ROAR_2); - DestroyAnimVisualTask(taskId); + if (!IsCryPlaying()) + { + PlayCry_ByMode(species, pan, CRY_MODE_ROAR_2); + DestroyAnimVisualTask(taskId); + } } } @@ -222,19 +233,21 @@ void SoundTask_WaitForCry(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD334(u8 taskId) +#define tSpecies data[1] +#define tPan data[2] +#define tState data[9] + +void SoundTask_PlayCryWithEcho(u8 taskId) { u16 species; - s8 pan; - - pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); species = gAnimBattlerSpecies[gBattleAnimAttacker]; - gTasks[taskId].data[1] = species; - gTasks[taskId].data[2] = pan; + gTasks[taskId].tSpecies = species; + gTasks[taskId].tPan = pan; if (species != SPECIES_NONE) { PlayCry_ByMode(species, pan, CRY_MODE_ECHO_START); - gTasks[taskId].func = sub_80DD390; + gTasks[taskId].func = SoundTask_PlayCryWithEcho_Step; } else { @@ -242,23 +255,27 @@ void sub_80DD334(u8 taskId) } } -static void sub_80DD390(u8 taskId) +static void SoundTask_PlayCryWithEcho_Step(u8 taskId) { - if (gTasks[taskId].data[9] < 2) + if (gTasks[taskId].tState < 2) { - ++gTasks[taskId].data[9]; + gTasks[taskId].tState++; } else if (!IsCryPlaying()) { - u16 species = gTasks[taskId].data[1]; - s8 pan = gTasks[taskId].data[2]; + u16 species = gTasks[taskId].tSpecies; + s8 pan = gTasks[taskId].tPan; PlayCry_ByMode(species, pan, CRY_MODE_ECHO_END); DestroyAnimVisualTask(taskId); } } +#undef tSpecies +#undef tPan +#undef tState + void SoundTask_PlaySE1WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; @@ -277,6 +294,8 @@ void SoundTask_PlaySE2WithPanning(u8 taskId) DestroyAnimVisualTask(taskId); } +// Adjusts panning and assigns it to gAnimCustomPanning. Doesnt play sound. +// Used by Confuse Ray and Will-O-Wisp (see uses of gAnimCustomPanning) void SoundTask_AdjustPanningVar(u8 taskId) { s8 targetPan = gBattleAnimArgs[1]; @@ -292,11 +311,11 @@ void SoundTask_AdjustPanningVar(u8 taskId) gTasks[taskId].data[5] = r9; gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = sourcePan; - gTasks[taskId].func = sub_80DD4D4; - sub_80DD4D4(taskId); + gTasks[taskId].func = SoundTask_AdjustPanningVar_Step; + gTasks[taskId].func(taskId); } -static void sub_80DD4D4(u8 taskId) +static void SoundTask_AdjustPanningVar_Step(u8 taskId) { u16 oldPan, panIncrement = gTasks[taskId].data[3]; From c0b0e87f688fa89fcf8d41110348e9feddf4b280 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 15:14:30 -0400 Subject: [PATCH 027/105] Sync battle anim - status effects --- data/battle_anim_scripts.s | 4 +- include/graphics.h | 4 +- src/battle_anim_special.c | 4 +- src/battle_anim_status_effects.c | 160 ++++++++++++++++--------------- src/graphics.c | 4 +- 5 files changed, 90 insertions(+), 86 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index d88c65b87..faf540352 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1744,7 +1744,7 @@ Move_DETECT:: createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB_WHITE delay 18 playsewithpan SE_M_DETECT, 192 - createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 20, -20 + createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 20, -20 waitforvisualfinish delay 10 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 9, 0, 0 @@ -7681,7 +7681,7 @@ Move_DISABLE:: monbgprio_28 1 setalpha 8, 8 playsewithpan SE_M_DETECT, 192 - createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 24, -16 + createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish createvisualtask AnimTask_GrowAndGreyscale, 5, loopsewithpan SE_M_BIND, 63, 15, 4 diff --git a/include/graphics.h b/include/graphics.h index d520741dc..2f0af329a 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4219,8 +4219,8 @@ extern const u32 gBattleAnimSpritePal_WhipHit[]; extern const u32 gBattleAnimSpritePal_BlueRing2[]; // battle anim task -extern const u32 gUnknown_D2EC24_Gfx[]; -extern const u32 gUnknown_D2EC24_Tilemap[]; +extern const u32 gUnusedLevelupAnimationGfx[]; +extern const u32 gUnusedLevelupAnimationTilemap[]; extern const u32 gCureBubblesGfx[]; extern const u32 gCureBubblesPal[]; extern const u32 gCureBubblesTilemap[]; diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 677200b90..e7dbe6394 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -442,8 +442,8 @@ UNUSED void AnimTask_UnusedLevelUpHealthBox(u8 taskId) gSprites[spriteId3].callback = SpriteCallbackDummy; gSprites[spriteId4].callback = SpriteCallbackDummy; GetBattleAnimBg1Data(&animBgData); - AnimLoadCompressedBgTilemap(animBgData.bgId, gUnknown_D2EC24_Tilemap); - AnimLoadCompressedBgGfx(animBgData.bgId, gUnknown_D2EC24_Gfx, animBgData.tilesOffset); + AnimLoadCompressedBgTilemap(animBgData.bgId, gUnusedLevelupAnimationTilemap); + AnimLoadCompressedBgGfx(animBgData.bgId, gUnusedLevelupAnimationGfx, animBgData.tilesOffset); LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32); gBattle_BG1_X = -gSprites[spriteId3].x + 32; gBattle_BG1_Y = -gSprites[spriteId3].y - 32; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 3e5ed87fa..8307d1786 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -9,19 +9,17 @@ #include "constants/battle_anim.h" #include "constants/pokemon.h" -// Function Declarations -static u8 sub_8078178(u8 battlerId, bool8 b); -static void sub_80782BC(u8 taskId); -static void sub_80784D8(u8 taskId); -static void sub_8078528(u8 taskId); -static void sub_80785D8(u8 taskId); -static void sub_807862C(u8 taskId); +static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 b); +static void Task_UpdateFlashingCircleImpacts(u8 taskId); +static void AnimTask_FrozenIceCube_Step1(u8 taskId); +static void AnimTask_FrozenIceCube_Step2(u8 taskId); +static void AnimTask_FrozenIceCube_Step3(u8 taskId); +static void AnimTask_FrozenIceCube_Step4(u8 taskId); static void Task_DoStatusAnimation(u8 taskId); -static void sub_807834C(struct Sprite *sprite); -static void sub_8078380(struct Sprite *sprite); +static void AnimFlashingCircleImpact(struct Sprite *sprite); +static void AnimFlashingCircleImpact_Step(struct Sprite *sprite); -// Data -static const union AnimCmd sUnknown_83BF3E0[] = +static const union AnimCmd sAnim_FlickeringOrb[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(4, 3), @@ -30,42 +28,44 @@ static const union AnimCmd sUnknown_83BF3E0[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_83BF3F4[] = +static const union AnimCmd *const sAnims_FlickeringOrb[] = { - sUnknown_83BF3E0 + sAnim_FlickeringOrb }; -const struct SpriteTemplate gSpriteTemplate_83BF3F8 = +// Unused +static const struct SpriteTemplate sFlickeringOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_83BF3F4, + .anims = sAnims_FlickeringOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimTranslateLinearAndFlicker, }; -const struct SpriteTemplate gSpriteTemplate_83BF410 = +// Unused +static const struct SpriteTemplate sFlickeringOrbFlippedSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_83BF3F4, + .anims = sAnims_FlickeringOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimTranslateLinearAndFlicker_Flipped, }; -static const union AnimCmd sUnknown_83BF428[] = +static const union AnimCmd sAnim_WeatherBallNormal[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_83BF430[] = +static const union AnimCmd *const sAnims_WeatherBallNormal[] = { - sUnknown_83BF428 + sAnim_WeatherBallNormal }; const struct SpriteTemplate gWeatherBallUpSpriteTemplate = @@ -73,7 +73,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate = .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_83BF430, + .anims = sAnims_WeatherBallNormal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWeatherBallUp, @@ -84,13 +84,13 @@ const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_83BF430, + .anims = sAnims_WeatherBallNormal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWeatherBallDown, }; -static const union AnimCmd sUnknown_83BF464[] = +static const union AnimCmd sAnim_SpinningSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -100,23 +100,24 @@ static const union AnimCmd sUnknown_83BF464[] = ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_83BF47C[] = +static const union AnimCmd *const sAnims_SpinningSparkle[] = { - sUnknown_83BF464 + sAnim_SpinningSparkle }; -const struct SpriteTemplate gSpriteTemplate_83BF480 = +const struct SpriteTemplate gSpinningSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_83BF47C, + .anims = sAnims_SpinningSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpinningSparkle, }; -const struct SpriteTemplate gSpriteTemplate_83BF498 = +// Unused +static const struct SpriteTemplate sFlickeringFootSpriteTemplate = { .tileTag = ANIM_TAG_MONSTER_FOOT, .paletteTag = ANIM_TAG_MONSTER_FOOT, @@ -127,92 +128,95 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 = .callback = AnimTranslateLinearAndFlicker, }; -static const union AnimCmd sUnknown_83BF4B0[] = +static const union AnimCmd sAnim_FlickeringImpact_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd sUnknown_83BF4B8[] = +static const union AnimCmd sAnim_FlickeringImpact_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd sUnknown_83BF4C0[] = +static const union AnimCmd sAnim_FlickeringImpact_2[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAniimTable_83BF4C8[] = +static const union AnimCmd *const sAnims_FlickeringImpact[] = { - sUnknown_83BF4B0, - sUnknown_83BF4B8, - sUnknown_83BF4C0 + sAnim_FlickeringImpact_0, + sAnim_FlickeringImpact_1, + sAnim_FlickeringImpact_2 }; -const struct SpriteTemplate gSpriteTemplate_83BF4D4 = +// Unused +static const struct SpriteTemplate sFlickeringImpactSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAniimTable_83BF4C8, + .anims = sAnims_FlickeringImpact, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimTranslateLinearAndFlicker, }; -static const union AnimCmd sUnknown_83BF4EC[] = +static const union AnimCmd sAnim_FlickeringShrinkOrb[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_83BF4F4[] = +static const union AnimCmd *const sAnims_FlickeringShrinkOrb[] = { - sUnknown_83BF4EC + sAnim_FlickeringShrinkOrb }; -static const union AffineAnimCmd sUnknown_83BF4F8[] = +static const union AffineAnimCmd sAffineAnim_FlickeringShrinkOrb[] = { AFFINEANIMCMD_FRAME(96, 96, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 1), AFFINEANIMCMD_JUMP(1) }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_83BF510[] = +static const union AffineAnimCmd *const sAffineAnims_FlickeringShrinkOrb[] = { - sUnknown_83BF4F8 + sAffineAnim_FlickeringShrinkOrb }; -const struct SpriteTemplate gSpriteTemplate_83BF514 = +// Unused +static const struct SpriteTemplate sFlickeringShrinkOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sSpriteAnimTable_83BF4F4, + .anims = sAnims_FlickeringShrinkOrb, .images = NULL, - .affineAnims = sSpriteAffineAnimTable_83BF510, + .affineAnims = sAffineAnims_FlickeringShrinkOrb, .callback = AnimTranslateLinearAndFlicker_Flipped, }; -static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクãŒã‚ª-ãƒ-ã—ã¾ã—ãŸ"); +// Presumably some debug text +static const u8 sText_TaskOver[] = _("TASK OVER\nタスクãŒã‚ª-ãƒ-ã—ã¾ã—ãŸ"); -static const struct Subsprite sSubsprites_83BF544[] = +static const struct Subsprite sFrozenIceCubeSubsprites[] = { - {.x = -16, .y = -16, .shape = SPRITE_SHAPE(8x8), .size = 3, .tileOffset = 0, .priority = 2}, - {.x = -16, .y = 48, .shape = SPRITE_SHAPE(16x8), .size = 3, .tileOffset = 64, .priority = 2}, - {.x = 48, .y = -16, .shape = SPRITE_SHAPE(8x16), .size = 3, .tileOffset = 96, .priority = 2}, - {.x = 48, .y = 48, .shape = SPRITE_SHAPE(8x8), .size = 2, .tileOffset = 128, .priority = 2}, + {.x = -16, .y = -16, .shape = SPRITE_SHAPE(64x64), .size = SPRITE_SIZE(64x64), .tileOffset = 0, .priority = 2}, + {.x = -16, .y = 48, .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .tileOffset = 64, .priority = 2}, + {.x = 48, .y = -16, .shape = SPRITE_SHAPE(32x64), .size = SPRITE_SIZE(32x64), .tileOffset = 96, .priority = 2}, + {.x = 48, .y = 48, .shape = SPRITE_SHAPE(32x32), .size = SPRITE_SIZE(32x32), .tileOffset = 128, .priority = 2}, }; -static const struct SubspriteTable sUnknown_83BF554[] = +static const struct SubspriteTable sFrozenIceCubeSubspriteTable[] = { - {NELEMS(sSubsprites_83BF544), sSubsprites_83BF544}, + {NELEMS(sFrozenIceCubeSubsprites), sFrozenIceCubeSubsprites}, }; -static const struct SpriteTemplate sUnknown_83BF55C = +static const struct SpriteTemplate sFrozenIceCubeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CUBE, .paletteTag = ANIM_TAG_ICE_CUBE, @@ -223,7 +227,7 @@ static const struct SpriteTemplate sUnknown_83BF55C = .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate sUnknown_83BF574 = +static const struct SpriteTemplate sFlashingCircleImpactSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_IMPACT, .paletteTag = ANIM_TAG_CIRCLE_IMPACT, @@ -231,14 +235,14 @@ static const struct SpriteTemplate sUnknown_83BF574 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807834C, + .callback = AnimFlashingCircleImpact, }; -// Functions -static u8 sub_8078178(u8 battlerId, bool8 b) +// Unused +static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 b) { u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; - u8 taskId = CreateTask(sub_80782BC, 10); + u8 taskId = CreateTask(Task_UpdateFlashingCircleImpacts, 10); u8 spriteId2; u8 i; @@ -250,7 +254,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b) gTasks[taskId].data[1] = RGB_RED; for (i = 0; i < 10; i++) { - spriteId2 = CreateSprite(&sUnknown_83BF574, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0); + spriteId2 = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0); gSprites[spriteId2].data[0] = i * 51; gSprites[spriteId2].data[1] = -256; gSprites[spriteId2].invisible = TRUE; @@ -263,7 +267,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b) gTasks[taskId].data[1] = RGB_BLUE; for (i = 0; i < 10; i++) { - spriteId2 = CreateSprite(&sUnknown_83BF574, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0); + spriteId2 = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0); gSprites[spriteId2].data[0] = i * 51; gSprites[spriteId2].data[1] = 256; gSprites[spriteId2].invisible = TRUE; @@ -275,7 +279,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b) return taskId; } -static void sub_80782BC(u8 taskId) +static void Task_UpdateFlashingCircleImpacts(u8 taskId) { if (gTasks[taskId].data[2] == 2) { @@ -308,13 +312,13 @@ static void sub_80782BC(u8 taskId) } } -static void sub_807834C(struct Sprite *sprite) +static void AnimFlashingCircleImpact(struct Sprite *sprite) { if (sprite->data[6] == 0) { sprite->invisible = FALSE; - sprite->callback = sub_8078380; - sub_8078380(sprite); + sprite->callback = AnimFlashingCircleImpact_Step; + sprite->callback(sprite); } else { @@ -322,7 +326,7 @@ static void sub_807834C(struct Sprite *sprite) } } -static void sub_8078380(struct Sprite *sprite) +static void AnimFlashingCircleImpact_Step(struct Sprite *sprite) { sprite->x2 = Cos(sprite->data[0], 32); sprite->y2 = Sin(sprite->data[0], 8); @@ -354,21 +358,21 @@ void AnimTask_FrozenIceCube(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); - spriteId = CreateSprite(&sUnknown_83BF55C, x, y, 4); - if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == TAG_NONE) + spriteId = CreateSprite(&sFrozenIceCubeSpriteTemplate, x, y, 4); + if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) gSprites[spriteId].invisible = TRUE; - SetSubspriteTables(&gSprites[spriteId], sUnknown_83BF554); + SetSubspriteTables(&gSprites[spriteId], sFrozenIceCubeSubspriteTable); gTasks[taskId].data[15] = spriteId; - gTasks[taskId].func = sub_80784D8; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step1; } -static void sub_80784D8(u8 taskId) +static void AnimTask_FrozenIceCube_Step1(u8 taskId) { gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] == 10) { - gTasks[taskId].func = sub_8078528; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step2; gTasks[taskId].data[1] = 0; } else @@ -379,7 +383,7 @@ static void sub_80784D8(u8 taskId) } } -static void sub_8078528(u8 taskId) +static void AnimTask_FrozenIceCube_Step2(u8 taskId) { u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE); @@ -405,19 +409,19 @@ static void sub_8078528(u8 taskId) if (gTasks[taskId].data[4] == 2) { gTasks[taskId].data[1] = 9; - gTasks[taskId].func = sub_80785D8; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step3; } } } } } -static void sub_80785D8(u8 taskId) +static void AnimTask_FrozenIceCube_Step3(u8 taskId) { gTasks[taskId].data[1]--; if (gTasks[taskId].data[1] == -1) { - gTasks[taskId].func = sub_807862C; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step4; gTasks[taskId].data[1] = 0; } else @@ -428,7 +432,7 @@ static void sub_80785D8(u8 taskId) } } -static void sub_807862C(u8 taskId) +static void AnimTask_FrozenIceCube_Step4(u8 taskId) { gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] == 37) diff --git a/src/graphics.c b/src/graphics.c index 85405cc35..705288081 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -915,8 +915,8 @@ const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); -const u32 gUnknown_D2EC24_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz"); -const u32 gUnknown_D2EC24_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz"); +const u32 gUnusedLevelupAnimationGfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz"); +const u32 gUnusedLevelupAnimationTilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz"); const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); From 5813cb43c2e75e915eb03c35a124ae3a5f5fb2c3 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 17 Aug 2022 15:57:46 -0400 Subject: [PATCH 028/105] Sync battle anim.c --- data/battle_anim_scripts.s | 16 +- include/constants/battle_anim.h | 4 +- include/graphics.h | 4 +- src/battle_anim.c | 1920 +++---------------------------- src/battle_anim_utility_funcs.c | 95 +- src/battle_anim_water.c | 51 +- src/data/battle_anim.h | 1625 ++++++++++++++++++++++++++ src/graphics.c | 4 +- 8 files changed, 1859 insertions(+), 1860 deletions(-) create mode 100644 src/data/battle_anim.h diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index faf540352..85691c3a6 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2783,7 +2783,7 @@ Move_AGILITY:: monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 4, 4 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 10 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 10 playsewithpan SE_M_DOUBLE_TEAM, 192 delay 12 playsewithpan SE_M_DOUBLE_TEAM, 192 @@ -2805,7 +2805,7 @@ Move_QUICK_ATTACK:: monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 3 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 playsewithpan SE_M_JUMP_KICK, 192 delay 4 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 @@ -4438,7 +4438,7 @@ Move_AERIAL_ACE:: monbg 1 setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 3 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 playsewithpan SE_M_RAZOR_WIND2, 192 delay 5 @@ -7806,7 +7806,7 @@ CurseStats:: CurseStats1:: playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_SetUpCurseBackground, 5, + createvisualtask AnimTask_DrawFallingWhiteLinesOnAttacker, 5, createvisualtask AnimTask_BlendColorCycle, 5, 2, 4, 2, 0, 10, 31 return @@ -9167,13 +9167,13 @@ ReturnStrongest:: createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 waitforvisualfinish delay 2 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 0 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, 0 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 @@ -9181,7 +9181,7 @@ ReturnStrongest:: createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish call ReturnStrongestHit call ReturnStrongestHit @@ -9209,7 +9209,7 @@ ReturnStrongestHit:: createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish return diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 3ea251966..57d7c4abd 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -276,7 +276,7 @@ #define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266) #define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267) #define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268) -#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 269) +#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 269) #define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270) #define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271) #define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272) @@ -318,7 +318,7 @@ #define SOUND_PAN_TARGET 63 // move background ids -#define BG_DARK_ 0 // the same as BG_DARK but is unused +#define BG_NONE 0 // the same as BG_DARK #define BG_DARK 1 #define BG_GHOST 2 #define BG_PSYCHIC 3 diff --git a/include/graphics.h b/include/graphics.h index 2f0af329a..78efad0cf 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3912,7 +3912,7 @@ extern const u32 gBattleAnimSpriteGfx_Pokeball[]; extern const u32 gBattleAnimSpriteGfx_Spotlight[]; extern const u32 gBattleAnimSpriteGfx_LetterZ[]; extern const u32 gBattleAnimSpriteGfx_RapidSpin[]; -extern const u32 gBattleAnimSpriteGfx_TriForceTriangle[]; +extern const u32 gBattleAnimSpriteGfx_TriAttackTriangle[]; extern const u32 gBattleAnimSpriteGfx_WispOrb[]; extern const u32 gBattleAnimSpriteGfx_WispFire[]; extern const u32 gBattleAnimSpriteGfx_GoldStars[]; @@ -4165,7 +4165,7 @@ extern const u32 gBattleAnimSpritePal_JaggedMusicNote[]; extern const u32 gBattleAnimSpritePal_Pokeball[]; extern const u32 gBattleAnimSpritePal_LetterZ[]; extern const u32 gBattleAnimSpritePal_RapidSpin[]; -extern const u32 gBattleAnimSpritePal_TriForceTriangle[]; +extern const u32 gBattleAnimSpritePal_TriAttackTriangle[]; extern const u32 gBattleAnimSpritePal_WispOrb[]; extern const u32 gBattleAnimSpritePal_GoldStars[]; extern const u32 gBattleAnimSpritePal_EclipsingOrb[]; diff --git a/src/battle_anim.c b/src/battle_anim.c index 855059a32..0fb2dfbf9 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -13,7 +13,6 @@ #define ANIM_SPRITE_INDEX_COUNT 8 -// RAM EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL; EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL; @@ -32,13 +31,12 @@ EWRAM_DATA static u16 sSoundAnimFramesToWait = 0; EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0}; EWRAM_DATA u8 gAnimMoveTurn = 0; EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; -EWRAM_DATA static u16 sAnimMoveIndex = 0; +EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused. EWRAM_DATA u8 gBattleAnimAttacker = 0; EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gAnimCustomPanning = 0; -// Function Declarations static void AddSpriteIndex(u16 index); static void ClearSpriteIndex(u16 index); static void WaitAnimFrameCount(void); @@ -53,1731 +51,107 @@ static void Task_LoopAndPlaySE(u8 taskId); static void Task_WaitAndPlaySE(u8 taskId); static void sub_807331C(u8 taskId); -static void ScriptCmd_loadspritegfx(void); -static void ScriptCmd_unloadspritegfx(void); -static void ScriptCmd_createsprite(void); -static void ScriptCmd_createvisualtask(void); -static void ScriptCmd_delay(void); -static void ScriptCmd_waitforvisualfinish(void); -static void ScriptCmd_hang1(void); -static void ScriptCmd_hang2(void); -static void ScriptCmd_end(void); -static void ScriptCmd_playse(void); -static void ScriptCmd_monbg(void); -static void ScriptCmd_clearmonbg(void); -static void ScriptCmd_setalpha(void); -static void ScriptCmd_blendoff(void); -static void ScriptCmd_call(void); -static void ScriptCmd_return(void); -static void ScriptCmd_setarg(void); -static void ScriptCmd_choosetwoturnanim(void); -static void ScriptCmd_jumpifmoveturn(void); -static void ScriptCmd_goto(void); -static void ScriptCmd_fadetobg(void); -static void ScriptCmd_restorebg(void); -static void ScriptCmd_waitbgfadeout(void); -static void ScriptCmd_waitbgfadein(void); -static void ScriptCmd_changebg(void); -static void ScriptCmd_playsewithpan(void); -static void ScriptCmd_setpan(void); -static void ScriptCmd_panse_1B(void); -static void ScriptCmd_loopsewithpan(void); -static void ScriptCmd_waitplaysewithpan(void); -static void ScriptCmd_setbldcnt(void); -static void ScriptCmd_createsoundtask(void); -static void ScriptCmd_waitsound(void); -static void ScriptCmd_jumpargeq(void); -static void ScriptCmd_monbg_22(void); -static void ScriptCmd_clearmonbg_23(void); -static void ScriptCmd_jumpifcontest(void); -static void ScriptCmd_fadetobgfromset(void); -static void ScriptCmd_panse_26(void); -static void ScriptCmd_panse_27(void); -static void ScriptCmd_monbgprio_28(void); -static void ScriptCmd_monbgprio_29(void); -static void ScriptCmd_monbgprio_2A(void); -static void ScriptCmd_invisible(void); -static void ScriptCmd_visible(void); -static void ScriptCmd_doublebattle_2D(void); -static void ScriptCmd_doublebattle_2E(void); -static void ScriptCmd_stopsound(void); - -// Data -const struct OamData gOamData_AffineOff_ObjNormal_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct CompressedSpriteSheet gBattleAnimPicTable[] = -{ - {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, - {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, - {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, - {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, - {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, - {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, - {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, - {gBattleAnimSpriteGfx_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpriteGfx_Spark2, 0x0180, ANIM_TAG_SPARK_2}, - {gBattleAnimSpriteGfx_Orange, 0x0080, ANIM_TAG_ORANGE}, - {gBattleAnimSpriteGfx_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpriteGfx_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpriteGfx_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpriteGfx_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpriteGfx_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpriteGfx_Conversion, 0x0080, ANIM_TAG_CONVERSION}, - {gBattleAnimSpriteGfx_Glass, 0x0400, ANIM_TAG_GLASS}, - {gBattleAnimSpriteGfx_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT}, - {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT_2}, - {gBattleAnimSpriteGfx_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpriteGfx_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpriteGfx_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, - {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpriteGfx_Fire, 0x1000, ANIM_TAG_FIRE}, - {gBattleAnimSpriteGfx_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpriteGfx_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpriteGfx_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpriteGfx_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpriteGfx_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpriteGfx_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpriteGfx_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpriteGfx_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpriteGfx_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpriteGfx_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpriteGfx_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, - {gBattleAnimSpriteGfx_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, - {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpriteGfx_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpriteGfx_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpriteGfx_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpriteGfx_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpriteGfx_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, - {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, - {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, - {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, - {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, - {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, - {gBattleAnimSpriteGfx_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpriteGfx_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpriteGfx_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpriteGfx_Duck, 0x0180, ANIM_TAG_DUCK}, - {gBattleAnimSpriteGfx_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpriteGfx_Alert, 0x0700, ANIM_TAG_ALERT}, - {gBattleAnimSpriteGfx_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpriteGfx_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpriteGfx_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpriteGfx_Shock, 0x0C00, ANIM_TAG_SHOCK}, - {gBattleAnimSpriteGfx_Bell2, 0x0A00, ANIM_TAG_BELL_2}, - {gBattleAnimSpriteGfx_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpriteGfx_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpriteGfx_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpriteGfx_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpriteGfx_Reticle, 0x0280, ANIM_TAG_RETICLE}, - {gBattleAnimSpriteGfx_Breath, 0x0200, ANIM_TAG_BREATH}, - {gBattleAnimSpriteGfx_Anger, 0x0080, ANIM_TAG_ANGER}, - {gBattleAnimSpriteGfx_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpriteGfx_Vine, 0x0A00, ANIM_TAG_VINE}, - {gBattleAnimSpriteGfx_Sword2, 0x0200, ANIM_TAG_SWORD_2}, - {gBattleAnimSpriteGfx_Clapping, 0x0180, ANIM_TAG_CLAPPING}, - {gBattleAnimSpriteGfx_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpriteGfx_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, - {gBattleAnimSpriteGfx_String2, 0x0A00, ANIM_TAG_STRING_2}, - {gBattleAnimSpriteGfx_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpriteGfx_Petal, 0x0380, ANIM_TAG_PETAL}, - {gBattleAnimSpriteGfx_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpriteGfx_Web, 0x0200, ANIM_TAG_WEB}, - {gBattleAnimSpriteGfx_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpriteGfx_Coin, 0x0200, ANIM_TAG_COIN}, - {gBattleAnimSpriteGfx_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpriteGfx_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpriteGfx_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpriteGfx_Fangs, 0x0400, ANIM_TAG_FANGS}, - {gBattleAnimSpriteGfx_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpriteGfx_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpriteGfx_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpriteGfx_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpriteGfx_Seed2, 0x0020, ANIM_TAG_SEED_2}, - {gBattleAnimSpriteGfx_Sprout, 0x0e00, ANIM_TAG_SPROUT}, - {gBattleAnimSpriteGfx_RedWand, 0x0080, ANIM_TAG_RED_WAND}, - {gBattleAnimSpriteGfx_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpriteGfx_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpriteGfx_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpriteGfx_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpriteGfx_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpriteGfx_Vine2, 0x0a00, ANIM_TAG_VINE_2}, - {gBattleAnimSpriteGfx_Teeth, 0x0600, ANIM_TAG_TEETH}, - {gBattleAnimSpriteGfx_Bone2, 0x0800, ANIM_TAG_BONE_2}, - {gBattleAnimSpriteGfx_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpriteGfx_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpriteGfx_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpriteGfx_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpriteGfx_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpriteGfx_Tongue, 0x0280, ANIM_TAG_TONGUE}, - {gBattleAnimSpriteGfx_Smoke, 0x0100, ANIM_TAG_SMOKE}, - {gBattleAnimSpriteGfx_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpriteGfx_Impact, 0x0200, ANIM_TAG_IMPACT}, - {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, - {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, - {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, - {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, - {gBattleAnimSpriteGfx_Orbs, 0x0180, ANIM_TAG_ORBS}, - {gBattleAnimSpriteGfx_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, - {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, - {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, - {gBattleAnimSpriteGfx_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpriteGfx_Needle, 0x0080, ANIM_TAG_NEEDLE}, - {gBattleAnimSpriteGfx_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpriteGfx_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpriteGfx_SparkH, 0x0200, ANIM_TAG_SPARK_H}, - {gBattleAnimSpriteGfx_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpriteGfx_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpriteGfx_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpriteGfx_Lick, 0x0500, ANIM_TAG_LICK}, - {gBattleAnimSpriteGfx_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpriteGfx_String, 0x0400, ANIM_TAG_STRING}, - {gBattleAnimSpriteGfx_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpriteGfx_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpriteGfx_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH}, - {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, - {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, - {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpriteGfx_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpriteGfx_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpriteGfx_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpriteGfx_Moon, 0x0800, ANIM_TAG_MOON}, - {gBattleAnimSpriteGfx_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, - {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, - {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpriteGfx_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, - {gBattleAnimSpriteGfx_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpriteGfx_Bell, 0x0600, ANIM_TAG_BELL}, - {gBattleAnimSpriteGfx_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpriteGfx_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpriteGfx_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpriteGfx_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpriteGfx_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteGfx_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpriteGfx_Finger2, 0x0600, ANIM_TAG_FINGER_2}, - {gBattleAnimSpriteGfx_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, - {gBattleAnimSpriteGfx_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, - {gBattleAnimSpriteGfx_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpriteGfx_Angel, 0x0200, ANIM_TAG_ANGEL}, - {gBattleAnimSpriteGfx_Devil, 0x0400, ANIM_TAG_DEVIL}, - {gBattleAnimSpriteGfx_Swipe, 0x0a00, ANIM_TAG_SWIPE}, - {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, - {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, - {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_ATTACK_TRIANGLE}, - {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpriteGfx_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, - {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpriteGfx_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpriteGfx_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpriteGfx_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpriteGfx_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpriteGfx_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpriteGfx_XSign, 0x0800, ANIM_TAG_X_SIGN}, - {gBattleAnimSpriteGfx_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpriteGfx_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpriteGfx_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpriteGfx_RedBall, 0x0200, ANIM_TAG_RED_BALL}, - {gBattleAnimSpriteGfx_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpriteGfx_Meteor, 0x0800, ANIM_TAG_METEOR}, - {gBattleAnimSpriteGfx_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpriteGfx_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpriteGfx_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpriteGfx_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpriteGfx_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpriteGfx_Hail, 0x0080, ANIM_TAG_HAIL}, - {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpriteGfx_SafariBait, 0x0080, ANIM_TAG_SAFARI_BAIT}, - {gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH}, - {gBattleAnimSpriteGfx_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpriteGfx_Gem1, 0x0800, ANIM_TAG_GEM_1}, - {gBattleAnimSpriteGfx_Gem2, 0x0800, ANIM_TAG_GEM_2}, - {gBattleAnimSpriteGfx_Gem3, 0x0800, ANIM_TAG_GEM_3}, - {gBattleAnimSpriteGfx_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpriteGfx_Recycle, 0x0800, ANIM_TAG_RECYCLE}, - {gBattleAnimSpriteGfx_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpriteGfx_Protect, 0x0800, ANIM_TAG_PROTECT}, - {gBattleAnimSpriteGfx_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpriteGfx_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpriteGfx_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpriteGfx_Bird, 0x0800, ANIM_TAG_BIRD}, - {gBattleAnimSpriteGfx_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH_2}, - {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, -}; - -const struct CompressedSpritePalette gBattleAnimPaletteTable[] = -{ - {gBattleAnimSpritePal_Bone, ANIM_TAG_BONE}, - {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK}, - {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, - {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, - {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, - {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, - {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, - {gBattleAnimSpritePal_IceCube, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpritePal_Spark2, ANIM_TAG_SPARK_2}, - {gBattleAnimSpritePal_Orange, ANIM_TAG_ORANGE}, - {gBattleAnimSpritePal_YellowBall, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpritePal_LockOn, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpritePal_TiedBag, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, - {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, - {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, - {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, - {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpritePal_ClosingEye, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpritePal_WavingHand, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, - {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE}, - {gBattleAnimSpritePal_Fire, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpritePal_ClawSlash, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpritePal_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpritePal_IceChunk, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpritePal_Glass2, ANIM_TAG_GLASS_2}, - {gBattleAnimSpritePal_PinkHeart2, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpritePal_SapDrip, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePal_SapDrip2, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePal_Sparkle1, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpritePal_Sparkle2, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpritePal_YellowUnk, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, - {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, - {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, - {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, - {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, - {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, - {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpritePal_SleepPowder, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpritePal_StunSpore, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POWDER}, - {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpritePal_MusicNotes, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpritePal_Duck, ANIM_TAG_DUCK}, - {gBattleAnimSpritePal_MudSand, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpritePal_Alert, ANIM_TAG_ALERT}, - {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK}, - {gBattleAnimSpritePal_Bell2, ANIM_TAG_BELL_2}, - {gBattleAnimSpritePal_PinkGlove, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpritePal_BlueLines, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpritePal_Impact3, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpritePal_Impact2, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpritePal_Reticle, ANIM_TAG_RETICLE}, - {gBattleAnimSpritePal_Breath, ANIM_TAG_BREATH}, - {gBattleAnimSpritePal_Anger, ANIM_TAG_ANGER}, - {gBattleAnimSpritePal_Snowball, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpritePal_Vine, ANIM_TAG_VINE}, - {gBattleAnimSpritePal_Sword2, ANIM_TAG_SWORD_2}, - {gBattleAnimSpritePal_Clapping, ANIM_TAG_CLAPPING}, - {gBattleAnimSpritePal_RedTube, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpritePal_Amnesia, ANIM_TAG_AMNESIA}, - {gBattleAnimSpritePal_String2, ANIM_TAG_STRING_2}, - {gBattleAnimSpritePal_Pencil2, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpritePal_Petal, ANIM_TAG_PETAL}, - {gBattleAnimSpritePal_BentSpoon, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpritePal_String2, ANIM_TAG_WEB}, - {gBattleAnimSpritePal_MilkBottle, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpritePal_Coin, ANIM_TAG_COIN}, - {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpritePal_FreshEgg, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpritePal_Fangs, ANIM_TAG_FANGS}, - {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpritePal_Seed2, ANIM_TAG_SEED_2}, - {gBattleAnimSpritePal_Seed2, ANIM_TAG_SPROUT}, - {gBattleAnimSpritePal_RedWand, ANIM_TAG_RED_WAND}, - {gBattleAnimSpritePal_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpritePal_WaterColumn, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpritePal_MudUnk, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpritePal_RainDrops, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpritePal_FurySwipes, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpritePal_Vine2, ANIM_TAG_VINE_2}, - {gBattleAnimSpritePal_Teeth, ANIM_TAG_TEETH}, - {gBattleAnimSpritePal_Bone2, ANIM_TAG_BONE_2}, - {gBattleAnimSpritePal_WhiteBag, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpritePal_Unknown, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, - {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, - {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, - {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, - {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, - {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, - {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, - {gBattleAnimSpritePal_Orbs, ANIM_TAG_ORBS}, - {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, - {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, - {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, - {gBattleAnimSpritePal_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpritePal_Needle, ANIM_TAG_NEEDLE}, - {gBattleAnimSpritePal_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpritePal_GoldRing, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpritePal_PurpleRing, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpritePal_BlueRing, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpritePal_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpritePal_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpritePal_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpritePal_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpritePal_BlackBall2, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpritePal_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK_H}, - {gBattleAnimSpritePal_YellowStar, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpritePal_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpritePal_ShadowBall, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpritePal_Lick, ANIM_TAG_LICK}, - {gBattleAnimSpritePal_VoidLines, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpritePal_String, ANIM_TAG_STRING}, - {gBattleAnimSpritePal_String, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpritePal_String, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpritePal_Lightbulb, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpritePal_Slash, ANIM_TAG_SLASH}, - {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, - {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, - {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpritePal_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpritePal_FangAttack, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpritePal_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpritePal_Moon, ANIM_TAG_MOON}, - {gBattleAnimSpritePal_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpritePal_Spiral, ANIM_TAG_SPIRAL}, - {gBattleAnimSpritePal_SnoreZ, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpritePal_Explosion, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpritePal_Nail, ANIM_TAG_NAIL}, - {gBattleAnimSpritePal_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpritePal_WarmRock, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpritePal_BreakingEgg, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpritePal_ThinRing, ANIM_TAG_THIN_RING}, - {gBattleAnimSpritePal_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpritePal_Bell, ANIM_TAG_BELL}, - {gBattleAnimSpritePal_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpritePal_SpeedDust, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpritePal_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpritePal_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER_2}, - {gBattleAnimSpritePal_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpritePal_RedHeart, ANIM_TAG_RED_HEART}, - {gBattleAnimSpritePal_RedOrb, ANIM_TAG_RED_ORB}, - {gBattleAnimSpritePal_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpritePal_PinkHeart, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpritePal_Angel, ANIM_TAG_ANGEL}, - {gBattleAnimSpritePal_Devil, ANIM_TAG_DEVIL}, - {gBattleAnimSpritePal_Swipe, ANIM_TAG_SWIPE}, - {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, - {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, - {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_ATTACK_TRIANGLE}, - {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpritePal_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpritePal_GrayOrb, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpritePal_BlueOrb, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpritePal_RedOrb2, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, - {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpritePal_Finger, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpritePal_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_X_SIGN}, - {gBattleAnimSpritePal_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpritePal_PawPrint, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpritePal_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpritePal_RedBall, ANIM_TAG_RED_BALL}, - {gBattleAnimSpritePal_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpritePal_Meteor, ANIM_TAG_METEOR}, - {gBattleAnimSpritePal_FlatRock, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpritePal_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpritePal_BrownOrb, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpritePal_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpritePal_FlyingDirt, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpritePal_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpritePal_Hail, ANIM_TAG_HAIL}, - {gBattleAnimSpritePal_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpritePal_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpritePal_SafariBait, ANIM_TAG_SAFARI_BAIT}, - {gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH}, - {gBattleAnimSpritePal_Splash, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_1}, - {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_2}, - {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_3}, - {gBattleAnimSpritePal_SlamHit2, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpritePal_Recycle, ANIM_TAG_RECYCLE}, - {gBattleAnimSpritePal_RedParticles, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpritePal_Protect, ANIM_TAG_PROTECT}, - {gBattleAnimSpritePal_DirtMound, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpritePal_Shock3, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpritePal_WeatherBall, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpritePal_Bird, ANIM_TAG_BIRD}, - {gBattleAnimSpritePal_CrossImpact, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpritePal_Slash2, ANIM_TAG_SLASH_2}, - {gBattleAnimSpritePal_WhipHit, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, -}; - -const struct BattleAnimBackground gBattleAnimBackgroundTable[] = -{ - [BG_DARK_] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, - [BG_DARK] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, - [BG_GHOST] = {gBattleAnimBgImage_Ghost, gBattleAnimBgPalette_Ghost, gBattleAnimBgTilemap_Ghost}, - [BG_PSYCHIC] = {gBattleAnimBgImage_Psychic, gBattleAnimBgPalette_Psychic, gBattleAnimBgTilemap_Psychic}, - [BG_IMPACT_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactOpponent}, - [BG_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactPlayer}, - [BG_IMPACT_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactContests}, - [BG_DRILL] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_Drill}, - [BG_DRILL_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_DrillContests}, - [BG_HIGHSPEED_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedOpponent}, - [BG_HIGHSPEED_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedPlayer}, - [BG_THUNDER] = {gBattleAnimBgImage_Thunder, gBattleAnimBgPalette_Thunder, gBattleAnimBgTilemap_Thunder}, - [BG_GUILLOTINE_OPPONENT] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineOpponent}, - [BG_GUILLOTINE_PLAYER] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotinePlayer}, - [BG_GUILLOTINE_CONTESTS] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineContests}, - [BG_ICE] = {gBattleAnimBgImage_Ice, gBattleAnimBgPalette_Ice, gBattleAnimBgTilemap_Ice}, - [BG_COSMIC] = {gBattleAnimBgImage_Cosmic, gBattleAnimBgPalette_Cosmic, gBattleAnimBgTilemap_Cosmic}, - [BG_IN_AIR] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_InAir, gBattleAnimBgTilemap_InAir}, - [BG_SKY] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_Drill}, - [BG_SKY_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_DrillContests}, - [BG_AURORA] = {gBattleAnimBgImage_Aurora, gBattleAnimBgPalette_Aurora, gBattleAnimBgTilemap_Aurora}, - [BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure}, - [BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent}, - [BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer}, - [BG_SOLAR_BEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactOpponent}, - [BG_SOLAR_BEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactPlayer}, - [BG_SOLAR_BEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactContests}, -}; +static void Cmd_loadspritegfx(void); +static void Cmd_unloadspritegfx(void); +static void Cmd_createsprite(void); +static void Cmd_createvisualtask(void); +static void Cmd_delay(void); +static void Cmd_waitforvisualfinish(void); +static void Cmd_hang1(void); +static void Cmd_hang2(void); +static void Cmd_end(void); +static void Cmd_playse(void); +static void Cmd_monbg(void); +static void Cmd_clearmonbg(void); +static void Cmd_setalpha(void); +static void Cmd_blendoff(void); +static void Cmd_call(void); +static void Cmd_return(void); +static void Cmd_setarg(void); +static void Cmd_choosetwoturnanim(void); +static void Cmd_jumpifmoveturn(void); +static void Cmd_goto(void); +static void Cmd_fadetobg(void); +static void Cmd_restorebg(void); +static void Cmd_waitbgfadeout(void); +static void Cmd_waitbgfadein(void); +static void Cmd_changebg(void); +static void Cmd_playsewithpan(void); +static void Cmd_setpan(void); +static void Cmd_panse_1B(void); +static void Cmd_loopsewithpan(void); +static void Cmd_waitplaysewithpan(void); +static void Cmd_setbldcnt(void); +static void Cmd_createsoundtask(void); +static void Cmd_waitsound(void); +static void Cmd_jumpargeq(void); +static void Cmd_monbg_22(void); +static void Cmd_clearmonbg_23(void); +static void Cmd_jumpifcontest(void); +static void Cmd_fadetobgfromset(void); +static void Cmd_panse_26(void); +static void Cmd_panse_27(void); +static void Cmd_monbgprio_28(void); +static void Cmd_monbgprio_29(void); +static void Cmd_monbgprio_2A(void); +static void Cmd_invisible(void); +static void Cmd_visible(void); +static void Cmd_doublebattle_2D(void); +static void Cmd_doublebattle_2E(void); +static void Cmd_stopsound(void); + +#include "data/battle_anim.h" static void (*const sScriptCmdTable[])(void) = { - ScriptCmd_loadspritegfx, - ScriptCmd_unloadspritegfx, - ScriptCmd_createsprite, - ScriptCmd_createvisualtask, - ScriptCmd_delay, - ScriptCmd_waitforvisualfinish, - ScriptCmd_hang1, - ScriptCmd_hang2, - ScriptCmd_end, - ScriptCmd_playse, - ScriptCmd_monbg, - ScriptCmd_clearmonbg, - ScriptCmd_setalpha, - ScriptCmd_blendoff, - ScriptCmd_call, - ScriptCmd_return, - ScriptCmd_setarg, - ScriptCmd_choosetwoturnanim, - ScriptCmd_jumpifmoveturn, - ScriptCmd_goto, - ScriptCmd_fadetobg, - ScriptCmd_restorebg, - ScriptCmd_waitbgfadeout, - ScriptCmd_waitbgfadein, - ScriptCmd_changebg, - ScriptCmd_playsewithpan, - ScriptCmd_setpan, - ScriptCmd_panse_1B, - ScriptCmd_loopsewithpan, - ScriptCmd_waitplaysewithpan, - ScriptCmd_setbldcnt, - ScriptCmd_createsoundtask, - ScriptCmd_waitsound, - ScriptCmd_jumpargeq, - ScriptCmd_monbg_22, - ScriptCmd_clearmonbg_23, - ScriptCmd_jumpifcontest, - ScriptCmd_fadetobgfromset, - ScriptCmd_panse_26, - ScriptCmd_panse_27, - ScriptCmd_monbgprio_28, - ScriptCmd_monbgprio_29, - ScriptCmd_monbgprio_2A, - ScriptCmd_invisible, - ScriptCmd_visible, - ScriptCmd_doublebattle_2D, - ScriptCmd_doublebattle_2E, - ScriptCmd_stopsound + Cmd_loadspritegfx, + Cmd_unloadspritegfx, + Cmd_createsprite, + Cmd_createvisualtask, + Cmd_delay, + Cmd_waitforvisualfinish, + Cmd_hang1, + Cmd_hang2, + Cmd_end, + Cmd_playse, + Cmd_monbg, + Cmd_clearmonbg, + Cmd_setalpha, + Cmd_blendoff, + Cmd_call, + Cmd_return, + Cmd_setarg, + Cmd_choosetwoturnanim, + Cmd_jumpifmoveturn, + Cmd_goto, + Cmd_fadetobg, + Cmd_restorebg, + Cmd_waitbgfadeout, + Cmd_waitbgfadein, + Cmd_changebg, + Cmd_playsewithpan, + Cmd_setpan, + Cmd_panse_1B, + Cmd_loopsewithpan, + Cmd_waitplaysewithpan, + Cmd_setbldcnt, + Cmd_createsoundtask, + Cmd_waitsound, + Cmd_jumpargeq, + Cmd_monbg_22, + Cmd_clearmonbg_23, + Cmd_jumpifcontest, + Cmd_fadetobgfromset, + Cmd_panse_26, + Cmd_panse_27, + Cmd_monbgprio_28, + Cmd_monbgprio_29, + Cmd_monbgprio_2A, + Cmd_invisible, + Cmd_visible, + Cmd_doublebattle_2D, + Cmd_doublebattle_2E, + Cmd_stopsound }; // Functions @@ -1937,7 +311,7 @@ static void RunAnimScriptCommand(void) } while (sAnimFramesToWait == 0 && gAnimScriptActive); } -static void ScriptCmd_loadspritegfx(void) +static void Cmd_loadspritegfx(void) { u16 index; @@ -1951,7 +325,7 @@ static void ScriptCmd_loadspritegfx(void) gAnimScriptCallback = WaitAnimFrameCount; } -static void ScriptCmd_unloadspritegfx(void) +static void Cmd_unloadspritegfx(void) { u16 index; @@ -1968,7 +342,7 @@ static void ScriptCmd_unloadspritegfx(void) // flags: // - bits 0-6: subpriority mod (signed) // - bit 7: target if set else attacker -static void ScriptCmd_createsprite(void) +static void Cmd_createsprite(void) { s32 i; const struct SpriteTemplate *template; @@ -2022,7 +396,7 @@ static void ScriptCmd_createsprite(void) gAnimVisualTaskCount++; } -static void ScriptCmd_createvisualtask(void) +static void Cmd_createvisualtask(void) { TaskFunc taskFunc; u8 taskPriority; @@ -2052,7 +426,7 @@ static void ScriptCmd_createvisualtask(void) gAnimVisualTaskCount++; } -static void ScriptCmd_delay(void) +static void Cmd_delay(void) { sBattleAnimScriptPtr++; sAnimFramesToWait = sBattleAnimScriptPtr[0]; @@ -2062,7 +436,7 @@ static void ScriptCmd_delay(void) gAnimScriptCallback = WaitAnimFrameCount; } -static void ScriptCmd_waitforvisualfinish(void) +static void Cmd_waitforvisualfinish(void) { if (gAnimVisualTaskCount == 0) { @@ -2075,15 +449,15 @@ static void ScriptCmd_waitforvisualfinish(void) } } -static void ScriptCmd_hang1(void) +static void Cmd_hang1(void) { } -static void ScriptCmd_hang2(void) +static void Cmd_hang2(void) { } -static void ScriptCmd_end(void) +static void Cmd_end(void) { s32 i; bool32 continuousAnim = FALSE; @@ -2134,7 +508,7 @@ static void ScriptCmd_end(void) } } -static void ScriptCmd_playse(void) +static void Cmd_playse(void) { sBattleAnimScriptPtr++; PlaySE(T1_READ_16(sBattleAnimScriptPtr)); @@ -2150,7 +524,7 @@ static void ScriptCmd_playse(void) #define t2_MON_IN_BG2 5 #define t2_MONBG_BATTLER 6 -static void ScriptCmd_monbg(void) +static void Cmd_monbg(void) { bool8 toBG_2; u8 taskId; @@ -2382,7 +756,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) } } -static void ScriptCmd_clearmonbg(void) +static void Cmd_clearmonbg(void) { u8 animBattlerId; u8 battlerId; @@ -2444,7 +818,7 @@ static void sub_807331C(u8 taskId) } } -static void ScriptCmd_monbg_22(void) +static void Cmd_monbg_22(void) { bool8 toBG_2; u8 battlerId; @@ -2491,7 +865,7 @@ static void ScriptCmd_monbg_22(void) sBattleAnimScriptPtr++; } -static void ScriptCmd_clearmonbg_23(void) +static void Cmd_clearmonbg_23(void) { u8 animBattlerId; u8 battlerId; @@ -2560,7 +934,7 @@ static void sub_8073558(u8 taskId) #undef t2_MON_IN_BG2 #undef t2_MONBG_BATTLER -static void ScriptCmd_setalpha(void) +static void Cmd_setalpha(void) { u16 half1, half2; @@ -2571,7 +945,7 @@ static void ScriptCmd_setalpha(void) SetGpuReg(REG_OFFSET_BLDALPHA, half1 | half2); } -static void ScriptCmd_setbldcnt(void) +static void Cmd_setbldcnt(void) { u16 half1, half2; @@ -2581,26 +955,26 @@ static void ScriptCmd_setbldcnt(void) SetGpuReg(REG_OFFSET_BLDCNT, half1 | half2); } -static void ScriptCmd_blendoff(void) +static void Cmd_blendoff(void) { sBattleAnimScriptPtr++; SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); } -static void ScriptCmd_call(void) +static void Cmd_call(void) { sBattleAnimScriptPtr++; sBattleAnimScriptRetAddr = sBattleAnimScriptPtr + 4; sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); } -static void ScriptCmd_return(void) +static void Cmd_return(void) { sBattleAnimScriptPtr = sBattleAnimScriptRetAddr; } -static void ScriptCmd_setarg(void) +static void Cmd_setarg(void) { const u8 *addr = sBattleAnimScriptPtr; u16 value; @@ -2614,7 +988,7 @@ static void ScriptCmd_setarg(void) gBattleAnimArgs[argId] = value; } -static void ScriptCmd_choosetwoturnanim(void) +static void Cmd_choosetwoturnanim(void) { sBattleAnimScriptPtr++; if (gAnimMoveTurn & 1) @@ -2622,7 +996,7 @@ static void ScriptCmd_choosetwoturnanim(void) sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); } -static void ScriptCmd_jumpifmoveturn(void) +static void Cmd_jumpifmoveturn(void) { u8 toCheck; @@ -2636,7 +1010,7 @@ static void ScriptCmd_jumpifmoveturn(void) sBattleAnimScriptPtr += 4; } -static void ScriptCmd_goto(void) +static void Cmd_goto(void) { sBattleAnimScriptPtr++; sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); @@ -2659,7 +1033,7 @@ static bool8 sub_807378C(u16 a) #define tBackgroundId data[0] #define tState data[10] -static void ScriptCmd_fadetobg(void) +static void Cmd_fadetobg(void) { u8 backgroundId; u8 taskId; @@ -2672,7 +1046,7 @@ static void ScriptCmd_fadetobg(void) sAnimBackgroundFadeState = 1; } -static void ScriptCmd_fadetobgfromset(void) +static void Cmd_fadetobgfromset(void) { u8 bg1, bg2, bg3; u8 taskId; @@ -2741,7 +1115,7 @@ static void LoadDefaultBg(void) DrawMainBattleBackground(); } -static void ScriptCmd_restorebg(void) +static void Cmd_restorebg(void) { u8 taskId; @@ -2754,7 +1128,7 @@ static void ScriptCmd_restorebg(void) #undef tBackgroundId #undef tState -static void ScriptCmd_waitbgfadeout(void) +static void Cmd_waitbgfadeout(void) { if (sAnimBackgroundFadeState == 2) { @@ -2767,7 +1141,7 @@ static void ScriptCmd_waitbgfadeout(void) } } -static void ScriptCmd_waitbgfadein(void) +static void Cmd_waitbgfadein(void) { if (sAnimBackgroundFadeState == 0) { @@ -2780,7 +1154,7 @@ static void ScriptCmd_waitbgfadein(void) } } -static void ScriptCmd_changebg(void) +static void Cmd_changebg(void) { sBattleAnimScriptPtr++; LoadMoveBg(sBattleAnimScriptPtr[0]); @@ -2867,7 +1241,7 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan) return ret; } -static void ScriptCmd_playsewithpan(void) +static void Cmd_playsewithpan(void) { u16 songId; s8 pan; @@ -2879,7 +1253,7 @@ static void ScriptCmd_playsewithpan(void) sBattleAnimScriptPtr += 3; } -static void ScriptCmd_setpan(void) +static void Cmd_setpan(void) { s8 pan; @@ -2896,7 +1270,7 @@ static void ScriptCmd_setpan(void) #define tCurrentPan data[4] #define tFrameCounter data[8] -static void ScriptCmd_panse_1B(void) +static void Cmd_panse_1B(void) { u16 songNum; s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan; @@ -2968,7 +1342,7 @@ static void Task_PanFromInitialToTarget(u8 taskId) } } -static void ScriptCmd_panse_26(void) +static void Cmd_panse_26(void) { u16 songId; s8 currentPan, targetPan, incrementPan; @@ -2995,7 +1369,7 @@ static void ScriptCmd_panse_26(void) sBattleAnimScriptPtr += 6; } -static void ScriptCmd_panse_27(void) +static void Cmd_panse_27(void) { u16 songId; s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan; @@ -3039,7 +1413,7 @@ static void ScriptCmd_panse_27(void) #define tNumberOfPlays data[3] #define tFrameCounter data[8] -static void ScriptCmd_loopsewithpan(void) +static void Cmd_loopsewithpan(void) { u16 songId; s8 panningArg, panning; @@ -3096,7 +1470,7 @@ static void Task_LoopAndPlaySE(u8 taskId) #define tPanning data[1] #define tFramesToWait data[2] -static void ScriptCmd_waitplaysewithpan(void) +static void Cmd_waitplaysewithpan(void) { u16 songId; s8 panningArg, panning; @@ -3132,7 +1506,7 @@ static void Task_WaitAndPlaySE(u8 taskId) #undef tPanning #undef tFramesToWait -static void ScriptCmd_createsoundtask(void) +static void Cmd_createsoundtask(void) { TaskFunc func; u8 numArgs, taskId; @@ -3153,7 +1527,7 @@ static void ScriptCmd_createsoundtask(void) gAnimSoundTaskCount++; } -static void ScriptCmd_waitsound(void) +static void Cmd_waitsound(void) { if (gAnimSoundTaskCount != 0) { @@ -3181,7 +1555,7 @@ static void ScriptCmd_waitsound(void) } } -static void ScriptCmd_jumpargeq(void) +static void Cmd_jumpargeq(void) { u8 argId; s16 valueToCheck; @@ -3196,12 +1570,12 @@ static void ScriptCmd_jumpargeq(void) sBattleAnimScriptPtr += 7; } -static void ScriptCmd_jumpifcontest(void) +static void Cmd_jumpifcontest(void) { sBattleAnimScriptPtr += 5; } -static void ScriptCmd_monbgprio_28(void) +static void Cmd_monbgprio_28(void) { u8 wantedBattler; u8 battlerId; @@ -3223,14 +1597,14 @@ static void ScriptCmd_monbgprio_28(void) } } -static void ScriptCmd_monbgprio_29(void) +static void Cmd_monbgprio_29(void) { sBattleAnimScriptPtr++; SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); } -static void ScriptCmd_monbgprio_2A(void) +static void Cmd_monbgprio_2A(void) { u8 wantedBattler; u8 battlerPosition; @@ -3254,7 +1628,7 @@ static void ScriptCmd_monbgprio_2A(void) } } -static void ScriptCmd_invisible(void) +static void Cmd_invisible(void) { u8 spriteId; @@ -3265,7 +1639,7 @@ static void ScriptCmd_invisible(void) sBattleAnimScriptPtr += 2; } -static void ScriptCmd_visible(void) +static void Cmd_visible(void) { u8 spriteId; @@ -3276,7 +1650,7 @@ static void ScriptCmd_visible(void) sBattleAnimScriptPtr += 2; } -static void ScriptCmd_doublebattle_2D(void) +static void Cmd_doublebattle_2D(void) { u8 wantedBattler; u8 priority; @@ -3311,7 +1685,7 @@ static void ScriptCmd_doublebattle_2D(void) } } -static void ScriptCmd_doublebattle_2E(void) +static void Cmd_doublebattle_2E(void) { u8 wantedBattler; u8 priority; @@ -3338,7 +1712,7 @@ static void ScriptCmd_doublebattle_2E(void) } } -static void ScriptCmd_stopsound(void) +static void Cmd_stopsound(void) { m4aMPlayStop(&gMPlayInfo_SE1); m4aMPlayStop(&gMPlayInfo_SE2); diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 5814daa1a..9b4c8ddfa 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -18,22 +18,22 @@ struct AnimStatsChangeData static void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes); static void AnimTask_BlendSpriteColor_Step2(u8 taskId); -static void Task_WaitHardwarePaletteFade(u8 taskId); -static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId); -static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite); +static void AnimTask_HardwarePaletteFade_Step(u8 taskId); +static void AnimTask_TraceMonBlended_Step(u8 taskId); +static void AnimMonTrace(struct Sprite *sprite); static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId); static void StatsChangeAnimation_Step1(u8 taskId); static void StatsChangeAnimation_Step2(u8 taskId); static void StatsChangeAnimation_Step3(u8 taskId); -static void sub_80BB6CC(u8 taskId); -static void sub_80BB790(u32 selectedPalettes, u16 color); -static void sub_80BB8A4(u8 taskId); -static void sub_80BBC2C(u8 taskId); -static void sub_80BC19C(u8 taskId); +static void AnimTask_Flash_Step(u8 taskId); +static void SetPalettesToColor(u32 selectedPalettes, u16 color); +static void AnimTask_UpdateSlidingBg(u8 taskId); +static void UpdateMonScrollingBgMask(u8 taskId); +static void AnimTask_WaitAndRestoreVisibility(u8 taskId); static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = NULL; -static const u16 sRgbWhite[] = { RGB(31, 31, 31) }; +static const u16 sRgbWhite[] = { RGB_WHITE }; const u8 gBattleAnimRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT }; const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT }; @@ -85,13 +85,13 @@ void AnimTask_BlendExcept(u8 taskId) case 2: selectedPalettes = 0; // fall through - case 0: + case ANIM_ATTACKER: animBattlers[0] = gBattleAnimAttacker; break; case 3: selectedPalettes = 0; // fall through - case 1: + case ANIM_TARGET: animBattlers[0] = gBattleAnimTarget; break; case 4: @@ -217,16 +217,17 @@ void AnimTask_HardwarePaletteFade(u8 taskId) gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); - gTasks[taskId].func = Task_WaitHardwarePaletteFade; + gTasks[taskId].func = AnimTask_HardwarePaletteFade_Step; } -static void Task_WaitHardwarePaletteFade(u8 taskId) +static void AnimTask_HardwarePaletteFade_Step(u8 taskId) { if (!gPaletteFade.active) DestroyAnimVisualTask(taskId); } -void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId) +// Used to leave blended traces of a mon, usually to imply speed as in Agility or Aerial Ace +void AnimTask_TraceMonBlended(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -236,9 +237,9 @@ void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId) task->data[3] = gBattleAnimArgs[2]; task->data[4] = gBattleAnimArgs[3]; task->data[5] = 0; - task->func = Task_DoCloneBattlerSpriteWithBlend; + task->func = AnimTask_TraceMonBlended_Step; } -static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId) +static void AnimTask_TraceMonBlended_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -257,7 +258,7 @@ static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId) gSprites[task->data[6]].data[0] = task->data[3]; gSprites[task->data[6]].data[1] = taskId; gSprites[task->data[6]].data[2] = 5; - gSprites[task->data[6]].callback = Task_FinishCloneBattlerSpriteWithBlend; + gSprites[task->data[6]].callback = AnimMonTrace; ++task->data[5]; } --task->data[4]; @@ -270,7 +271,7 @@ static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId) } } -static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite) +static void AnimMonTrace(struct Sprite *sprite) { if (sprite->data[0]) { @@ -283,7 +284,8 @@ static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite) } } -void AnimTask_SetUpCurseBackground(u8 taskId) +// Only used by Curse for non-Ghost mons +void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) { u16 species; s32 newSpriteId; @@ -582,17 +584,17 @@ void AnimTask_Flash(u8 taskId) { u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1); - sub_80BB790(selectedPalettes, 0); + SetPalettesToColor(selectedPalettes, 0); gTasks[taskId].data[14] = selectedPalettes >> 16; selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; - sub_80BB790(selectedPalettes, 0xFFFF); + SetPalettesToColor(selectedPalettes, 0xFFFF); gTasks[taskId].data[15] = selectedPalettes; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80BB6CC; + gTasks[taskId].func = AnimTask_Flash_Step; } -static void sub_80BB6CC(u8 taskId) +static void AnimTask_Flash_Step(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -637,7 +639,7 @@ static void sub_80BB6CC(u8 taskId) } } -static void sub_80BB790(u32 selectedPalettes, u16 color) +static void SetPalettesToColor(u32 selectedPalettes, u16 color) { u16 i, curOffset, paletteOffset; @@ -665,7 +667,7 @@ void AnimTask_StartSlidingBg(u8 taskId) u8 newTaskId; ToggleBg3Mode(0); - newTaskId = CreateTask(sub_80BB8A4, 5); + newTaskId = CreateTask(AnimTask_UpdateSlidingBg, 5); if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -678,7 +680,7 @@ void AnimTask_StartSlidingBg(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80BB8A4(u8 taskId) +static void AnimTask_UpdateSlidingBg(u8 taskId) { gTasks[taskId].data[10] += gTasks[taskId].data[1]; gTasks[taskId].data[11] += gTasks[taskId].data[2]; @@ -713,6 +715,7 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId) DestroyAnimVisualTask(taskId); } +// For hiding or subsequently revealing all other battlers void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) { u16 battler; @@ -723,7 +726,7 @@ void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) DestroyAnimVisualTask(taskId); } -void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette) +void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 scrollSpeed, u8 battler1, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette) { u16 species; u8 spriteId, newSpriteId = 0; @@ -731,8 +734,8 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar struct BattleAnimBgData animBgData; u8 battler2 = BATTLE_PARTNER(battler1); - if (IsContest() || (arg4 && !IsBattlerSpriteVisible(battler2))) - arg4 = 0; + if (IsContest() || (includePartner && !IsBattlerSpriteVisible(battler2))) + includePartner = FALSE; gBattle_WIN0H = 0; gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR @@ -754,7 +757,7 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); spriteId = CreateInvisibleSpriteCopy(battler1, gBattlerSpriteIds[battler1], species); - if (arg4) + if (includePartner) newSpriteId = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species); GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap); @@ -764,17 +767,17 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar LoadCompressedPalette(palette, animBgData.paletteId * 16, 32); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; - gTasks[taskId].data[1] = arg2; - gTasks[taskId].data[4] = arg5; - gTasks[taskId].data[5] = arg7; - gTasks[taskId].data[6] = arg6; + gTasks[taskId].data[1] = scrollSpeed; + gTasks[taskId].data[4] = numFadeSteps; + gTasks[taskId].data[5] = duration; + gTasks[taskId].data[6] = fadeStepDelay; gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[2] = arg4; + gTasks[taskId].data[2] = includePartner; gTasks[taskId].data[3] = newSpriteId; - gTasks[taskId].func = sub_80BBC2C; + gTasks[taskId].func = UpdateMonScrollingBgMask; } -static void sub_80BBC2C(u8 taskId) +static void UpdateMonScrollingBgMask(u8 taskId) { gTasks[taskId].data[13] += gTasks[taskId].data[1] < 0 ? -gTasks[taskId].data[1] : gTasks[taskId].data[1]; if (gTasks[taskId].data[1] < 0) @@ -856,7 +859,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -874,7 +877,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -892,7 +895,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -907,9 +910,9 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId) void AnimTask_IsContest(u8 taskId) { if (IsContest()) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; DestroyAnimVisualTask(taskId); } @@ -923,9 +926,9 @@ void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId) void AnimTask_IsTargetSameSide(u8 taskId) { if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; DestroyAnimVisualTask(taskId); } @@ -952,12 +955,12 @@ void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId) { gTasks[taskId].data[0] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible; gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible = 1; - gTasks[taskId].func = sub_80BC19C; + gTasks[taskId].func = AnimTask_WaitAndRestoreVisibility; --gAnimVisualTaskCount; } } -static void sub_80BC19C(u8 taskId) +static void AnimTask_WaitAndRestoreVisibility(u8 taskId) { if (gBattleAnimArgs[7] == 0x1000) { diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 75ea6c7fa..03d65358d 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -12,8 +12,6 @@ #include "trig.h" #include "util.h" -#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) - static void AnimRainDrop(struct Sprite *); static void AnimRainDrop_Step(struct Sprite *); static void AnimWaterBubbleProjectile(struct Sprite *); @@ -55,9 +53,8 @@ static void AnimTask_WaterSport_Step(u8); static void CreateWaterSportDroplet(struct Task *); static void CreateWaterPulseRingBubbles(struct Sprite *, s32, s32); -// Both unused? Comment copied from pokeemerald -static const u8 gUnknown_83E44F4[] = INCBIN_U8("graphics/battle_anims/unk_83E44F4.4bpp"); -static const u8 gUnknown_83E4874[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.bin"); +static const u8 sUnusedWater_Gfx[] = INCBIN_U8("graphics/battle_anims/unk_83E44F4.4bpp"); +static const u8 sUnusedWater[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.bin"); static const union AnimCmd sAnim_RainDrop[] = { @@ -488,8 +485,8 @@ void AnimTask_CreateRaindrops(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1) { - x = Random() % 240; - y = Random() % 80; + x = Random() % DISPLAY_WIDTH; + y = Random() % (DISPLAY_HEIGHT / 2); CreateSprite(&gRainDropSpriteTemplate, x, y, 4); } if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) @@ -521,23 +518,23 @@ static void AnimWaterBubbleProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[6]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); sprite->data[5] = spriteId; @@ -599,9 +596,9 @@ static void AnimAuroraBeamRings(struct Sprite *sprite) unkArg = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + unkArg; sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = AnimAuroraBeamRings_Step; sprite->affineAnimPaused = TRUE; @@ -653,9 +650,9 @@ static void AnimToTargetInSinWave(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 30; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; sprite->data[7] = gBattleAnimArgs[3]; @@ -708,8 +705,8 @@ static void AnimHydroCannonCharge(struct Sprite *sprite) { u8 priority; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); sprite->y2 = -10; priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); if (!IsContest()) @@ -755,14 +752,14 @@ static void AnimHydroCannonBeam(struct Sprite *sprite) else animType = FALSE; if ((u8)gBattleAnimArgs[5] == 0) - coordType = 3; + coordType = BATTLER_COORD_Y_PIC_OFFSET; else coordType = 1; InitSpritePosToAnimAttacker(sprite, animType); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -1173,8 +1170,8 @@ static u8 GetWaterSpoutPowerForAnim(void) static void CreateWaterSpoutLaunchDroplets(struct Task *task, u8 taskId) { s16 i; - s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); s16 trigIndex = 172; u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; s16 increment = 4 - task->data[1]; @@ -1347,8 +1344,8 @@ void AnimTask_WaterSport(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1; if (IsContest()) task->data[7] *= -1; @@ -1520,8 +1517,8 @@ static void AnimWaterPulseRingBubble(struct Sprite *sprite) void AnimWaterPulseRing(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[3] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->callback = AnimWaterPulseRing_Step; diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h new file mode 100644 index 000000000..ec8dc3de7 --- /dev/null +++ b/src/data/battle_anim.h @@ -0,0 +1,1625 @@ +const struct OamData gOamData_AffineOff_ObjNormal_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + + +const struct OamData gOamData_AffineOff_ObjNormal_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct CompressedSpriteSheet gBattleAnimPicTable[] = +{ + {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, + {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, + {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, + {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, + {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, + {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, + {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, + {gBattleAnimSpriteGfx_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpriteGfx_Spark2, 0x0180, ANIM_TAG_SPARK_2}, + {gBattleAnimSpriteGfx_Orange, 0x0080, ANIM_TAG_ORANGE}, + {gBattleAnimSpriteGfx_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpriteGfx_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpriteGfx_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpriteGfx_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpriteGfx_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpriteGfx_Conversion, 0x0080, ANIM_TAG_CONVERSION}, + {gBattleAnimSpriteGfx_Glass, 0x0400, ANIM_TAG_GLASS}, + {gBattleAnimSpriteGfx_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT}, + {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT_2}, + {gBattleAnimSpriteGfx_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpriteGfx_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpriteGfx_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, + {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpriteGfx_Fire, 0x1000, ANIM_TAG_FIRE}, + {gBattleAnimSpriteGfx_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpriteGfx_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpriteGfx_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpriteGfx_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpriteGfx_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpriteGfx_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpriteGfx_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpriteGfx_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpriteGfx_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpriteGfx_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpriteGfx_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, + {gBattleAnimSpriteGfx_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, + {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpriteGfx_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpriteGfx_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpriteGfx_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpriteGfx_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpriteGfx_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, + {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, + {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, + {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, + {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, + {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, + {gBattleAnimSpriteGfx_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpriteGfx_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpriteGfx_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpriteGfx_Duck, 0x0180, ANIM_TAG_DUCK}, + {gBattleAnimSpriteGfx_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpriteGfx_Alert, 0x0700, ANIM_TAG_ALERT}, + {gBattleAnimSpriteGfx_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpriteGfx_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpriteGfx_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpriteGfx_Shock, 0x0C00, ANIM_TAG_SHOCK}, + {gBattleAnimSpriteGfx_Bell2, 0x0A00, ANIM_TAG_BELL_2}, + {gBattleAnimSpriteGfx_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpriteGfx_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpriteGfx_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpriteGfx_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpriteGfx_Reticle, 0x0280, ANIM_TAG_RETICLE}, + {gBattleAnimSpriteGfx_Breath, 0x0200, ANIM_TAG_BREATH}, + {gBattleAnimSpriteGfx_Anger, 0x0080, ANIM_TAG_ANGER}, + {gBattleAnimSpriteGfx_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpriteGfx_Vine, 0x0A00, ANIM_TAG_VINE}, + {gBattleAnimSpriteGfx_Sword2, 0x0200, ANIM_TAG_SWORD_2}, + {gBattleAnimSpriteGfx_Clapping, 0x0180, ANIM_TAG_CLAPPING}, + {gBattleAnimSpriteGfx_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpriteGfx_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, + {gBattleAnimSpriteGfx_String2, 0x0A00, ANIM_TAG_STRING_2}, + {gBattleAnimSpriteGfx_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpriteGfx_Petal, 0x0380, ANIM_TAG_PETAL}, + {gBattleAnimSpriteGfx_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpriteGfx_Web, 0x0200, ANIM_TAG_WEB}, + {gBattleAnimSpriteGfx_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpriteGfx_Coin, 0x0200, ANIM_TAG_COIN}, + {gBattleAnimSpriteGfx_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpriteGfx_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpriteGfx_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpriteGfx_Fangs, 0x0400, ANIM_TAG_FANGS}, + {gBattleAnimSpriteGfx_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpriteGfx_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpriteGfx_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpriteGfx_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpriteGfx_Seed2, 0x0020, ANIM_TAG_SEED_2}, + {gBattleAnimSpriteGfx_Sprout, 0x0e00, ANIM_TAG_SPROUT}, + {gBattleAnimSpriteGfx_RedWand, 0x0080, ANIM_TAG_RED_WAND}, + {gBattleAnimSpriteGfx_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpriteGfx_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpriteGfx_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpriteGfx_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpriteGfx_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpriteGfx_Vine2, 0x0a00, ANIM_TAG_VINE_2}, + {gBattleAnimSpriteGfx_Teeth, 0x0600, ANIM_TAG_TEETH}, + {gBattleAnimSpriteGfx_Bone2, 0x0800, ANIM_TAG_BONE_2}, + {gBattleAnimSpriteGfx_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpriteGfx_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpriteGfx_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpriteGfx_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpriteGfx_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpriteGfx_Tongue, 0x0280, ANIM_TAG_TONGUE}, + {gBattleAnimSpriteGfx_Smoke, 0x0100, ANIM_TAG_SMOKE}, + {gBattleAnimSpriteGfx_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpriteGfx_Impact, 0x0200, ANIM_TAG_IMPACT}, + {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, + {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, + {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, + {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, + {gBattleAnimSpriteGfx_Orbs, 0x0180, ANIM_TAG_ORBS}, + {gBattleAnimSpriteGfx_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, + {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, + {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, + {gBattleAnimSpriteGfx_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpriteGfx_Needle, 0x0080, ANIM_TAG_NEEDLE}, + {gBattleAnimSpriteGfx_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpriteGfx_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpriteGfx_SparkH, 0x0200, ANIM_TAG_SPARK_H}, + {gBattleAnimSpriteGfx_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpriteGfx_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpriteGfx_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpriteGfx_Lick, 0x0500, ANIM_TAG_LICK}, + {gBattleAnimSpriteGfx_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpriteGfx_String, 0x0400, ANIM_TAG_STRING}, + {gBattleAnimSpriteGfx_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpriteGfx_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpriteGfx_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH}, + {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, + {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, + {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpriteGfx_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpriteGfx_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpriteGfx_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpriteGfx_Moon, 0x0800, ANIM_TAG_MOON}, + {gBattleAnimSpriteGfx_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, + {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, + {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpriteGfx_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, + {gBattleAnimSpriteGfx_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpriteGfx_Bell, 0x0600, ANIM_TAG_BELL}, + {gBattleAnimSpriteGfx_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpriteGfx_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpriteGfx_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpriteGfx_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpriteGfx_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteGfx_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpriteGfx_Finger2, 0x0600, ANIM_TAG_FINGER_2}, + {gBattleAnimSpriteGfx_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, + {gBattleAnimSpriteGfx_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, + {gBattleAnimSpriteGfx_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpriteGfx_Angel, 0x0200, ANIM_TAG_ANGEL}, + {gBattleAnimSpriteGfx_Devil, 0x0400, ANIM_TAG_DEVIL}, + {gBattleAnimSpriteGfx_Swipe, 0x0a00, ANIM_TAG_SWIPE}, + {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, + {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, + {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpriteGfx_TriAttackTriangle, 0x0800, ANIM_TAG_TRI_ATTACK_TRIANGLE}, + {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpriteGfx_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, + {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpriteGfx_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpriteGfx_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpriteGfx_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpriteGfx_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpriteGfx_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpriteGfx_XSign, 0x0800, ANIM_TAG_X_SIGN}, + {gBattleAnimSpriteGfx_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpriteGfx_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpriteGfx_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpriteGfx_RedBall, 0x0200, ANIM_TAG_RED_BALL}, + {gBattleAnimSpriteGfx_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpriteGfx_Meteor, 0x0800, ANIM_TAG_METEOR}, + {gBattleAnimSpriteGfx_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpriteGfx_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpriteGfx_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpriteGfx_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpriteGfx_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpriteGfx_Hail, 0x0080, ANIM_TAG_HAIL}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpriteGfx_SafariBait, 0x0080, ANIM_TAG_SAFARI_BAIT}, + {gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH}, + {gBattleAnimSpriteGfx_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpriteGfx_Gem1, 0x0800, ANIM_TAG_GEM_1}, + {gBattleAnimSpriteGfx_Gem2, 0x0800, ANIM_TAG_GEM_2}, + {gBattleAnimSpriteGfx_Gem3, 0x0800, ANIM_TAG_GEM_3}, + {gBattleAnimSpriteGfx_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpriteGfx_Recycle, 0x0800, ANIM_TAG_RECYCLE}, + {gBattleAnimSpriteGfx_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpriteGfx_Protect, 0x0800, ANIM_TAG_PROTECT}, + {gBattleAnimSpriteGfx_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpriteGfx_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpriteGfx_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpriteGfx_Bird, 0x0800, ANIM_TAG_BIRD}, + {gBattleAnimSpriteGfx_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH_2}, + {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, +}; + +const struct CompressedSpritePalette gBattleAnimPaletteTable[] = +{ + {gBattleAnimSpritePal_Bone, ANIM_TAG_BONE}, + {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK}, + {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, + {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, + {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, + {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, + {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, + {gBattleAnimSpritePal_IceCube, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpritePal_Spark2, ANIM_TAG_SPARK_2}, + {gBattleAnimSpritePal_Orange, ANIM_TAG_ORANGE}, + {gBattleAnimSpritePal_YellowBall, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpritePal_LockOn, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpritePal_TiedBag, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, + {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, + {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, + {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, + {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpritePal_ClosingEye, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpritePal_WavingHand, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, + {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpritePal_ClawSlash, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpritePal_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpritePal_IceChunk, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpritePal_Glass2, ANIM_TAG_GLASS_2}, + {gBattleAnimSpritePal_PinkHeart2, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpritePal_SapDrip, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePal_SapDrip2, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePal_Sparkle1, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpritePal_Sparkle2, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpritePal_YellowUnk, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, + {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, + {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, + {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, + {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, + {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpritePal_SleepPowder, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpritePal_StunSpore, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POWDER}, + {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpritePal_MusicNotes, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpritePal_Duck, ANIM_TAG_DUCK}, + {gBattleAnimSpritePal_MudSand, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpritePal_Alert, ANIM_TAG_ALERT}, + {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK}, + {gBattleAnimSpritePal_Bell2, ANIM_TAG_BELL_2}, + {gBattleAnimSpritePal_PinkGlove, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpritePal_BlueLines, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpritePal_Impact3, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpritePal_Impact2, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpritePal_Reticle, ANIM_TAG_RETICLE}, + {gBattleAnimSpritePal_Breath, ANIM_TAG_BREATH}, + {gBattleAnimSpritePal_Anger, ANIM_TAG_ANGER}, + {gBattleAnimSpritePal_Snowball, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpritePal_Vine, ANIM_TAG_VINE}, + {gBattleAnimSpritePal_Sword2, ANIM_TAG_SWORD_2}, + {gBattleAnimSpritePal_Clapping, ANIM_TAG_CLAPPING}, + {gBattleAnimSpritePal_RedTube, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpritePal_Amnesia, ANIM_TAG_AMNESIA}, + {gBattleAnimSpritePal_String2, ANIM_TAG_STRING_2}, + {gBattleAnimSpritePal_Pencil2, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpritePal_Petal, ANIM_TAG_PETAL}, + {gBattleAnimSpritePal_BentSpoon, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpritePal_String2, ANIM_TAG_WEB}, + {gBattleAnimSpritePal_MilkBottle, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpritePal_Coin, ANIM_TAG_COIN}, + {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpritePal_FreshEgg, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpritePal_Fangs, ANIM_TAG_FANGS}, + {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpritePal_Seed2, ANIM_TAG_SEED_2}, + {gBattleAnimSpritePal_Seed2, ANIM_TAG_SPROUT}, + {gBattleAnimSpritePal_RedWand, ANIM_TAG_RED_WAND}, + {gBattleAnimSpritePal_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpritePal_WaterColumn, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpritePal_MudUnk, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpritePal_RainDrops, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpritePal_FurySwipes, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpritePal_Vine2, ANIM_TAG_VINE_2}, + {gBattleAnimSpritePal_Teeth, ANIM_TAG_TEETH}, + {gBattleAnimSpritePal_Bone2, ANIM_TAG_BONE_2}, + {gBattleAnimSpritePal_WhiteBag, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpritePal_Unknown, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, + {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, + {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, + {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, + {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, + {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, + {gBattleAnimSpritePal_Orbs, ANIM_TAG_ORBS}, + {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, + {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, + {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, + {gBattleAnimSpritePal_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpritePal_Needle, ANIM_TAG_NEEDLE}, + {gBattleAnimSpritePal_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpritePal_GoldRing, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpritePal_PurpleRing, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpritePal_BlueRing, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpritePal_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpritePal_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpritePal_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpritePal_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpritePal_BlackBall2, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpritePal_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK_H}, + {gBattleAnimSpritePal_YellowStar, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpritePal_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpritePal_ShadowBall, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpritePal_Lick, ANIM_TAG_LICK}, + {gBattleAnimSpritePal_VoidLines, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpritePal_String, ANIM_TAG_STRING}, + {gBattleAnimSpritePal_String, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpritePal_String, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpritePal_Lightbulb, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpritePal_Slash, ANIM_TAG_SLASH}, + {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, + {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, + {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpritePal_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpritePal_FangAttack, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpritePal_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpritePal_Moon, ANIM_TAG_MOON}, + {gBattleAnimSpritePal_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpritePal_Spiral, ANIM_TAG_SPIRAL}, + {gBattleAnimSpritePal_SnoreZ, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpritePal_Explosion, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpritePal_Nail, ANIM_TAG_NAIL}, + {gBattleAnimSpritePal_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpritePal_WarmRock, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpritePal_BreakingEgg, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpritePal_ThinRing, ANIM_TAG_THIN_RING}, + {gBattleAnimSpritePal_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpritePal_Bell, ANIM_TAG_BELL}, + {gBattleAnimSpritePal_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpritePal_SpeedDust, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpritePal_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpritePal_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER_2}, + {gBattleAnimSpritePal_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpritePal_RedHeart, ANIM_TAG_RED_HEART}, + {gBattleAnimSpritePal_RedOrb, ANIM_TAG_RED_ORB}, + {gBattleAnimSpritePal_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpritePal_PinkHeart, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpritePal_Angel, ANIM_TAG_ANGEL}, + {gBattleAnimSpritePal_Devil, ANIM_TAG_DEVIL}, + {gBattleAnimSpritePal_Swipe, ANIM_TAG_SWIPE}, + {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, + {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, + {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpritePal_TriAttackTriangle, ANIM_TAG_TRI_ATTACK_TRIANGLE}, + {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpritePal_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpritePal_GrayOrb, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpritePal_BlueOrb, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpritePal_RedOrb2, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, + {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpritePal_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_X_SIGN}, + {gBattleAnimSpritePal_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpritePal_PawPrint, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpritePal_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpritePal_RedBall, ANIM_TAG_RED_BALL}, + {gBattleAnimSpritePal_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpritePal_Meteor, ANIM_TAG_METEOR}, + {gBattleAnimSpritePal_FlatRock, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpritePal_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpritePal_BrownOrb, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpritePal_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpritePal_FlyingDirt, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpritePal_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpritePal_Hail, ANIM_TAG_HAIL}, + {gBattleAnimSpritePal_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpritePal_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpritePal_SafariBait, ANIM_TAG_SAFARI_BAIT}, + {gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH}, + {gBattleAnimSpritePal_Splash, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_1}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_2}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_3}, + {gBattleAnimSpritePal_SlamHit2, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpritePal_Recycle, ANIM_TAG_RECYCLE}, + {gBattleAnimSpritePal_RedParticles, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpritePal_Protect, ANIM_TAG_PROTECT}, + {gBattleAnimSpritePal_DirtMound, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpritePal_Shock3, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpritePal_WeatherBall, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpritePal_Bird, ANIM_TAG_BIRD}, + {gBattleAnimSpritePal_CrossImpact, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpritePal_Slash2, ANIM_TAG_SLASH_2}, + {gBattleAnimSpritePal_WhipHit, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, +}; + +const struct BattleAnimBackground gBattleAnimBackgroundTable[] = +{ + [BG_NONE] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, + [BG_DARK] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, + [BG_GHOST] = {gBattleAnimBgImage_Ghost, gBattleAnimBgPalette_Ghost, gBattleAnimBgTilemap_Ghost}, + [BG_PSYCHIC] = {gBattleAnimBgImage_Psychic, gBattleAnimBgPalette_Psychic, gBattleAnimBgTilemap_Psychic}, + [BG_IMPACT_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactOpponent}, + [BG_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactPlayer}, + [BG_IMPACT_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactContests}, + [BG_DRILL] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_Drill}, + [BG_DRILL_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_DrillContests}, + [BG_HIGHSPEED_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedOpponent}, + [BG_HIGHSPEED_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedPlayer}, + [BG_THUNDER] = {gBattleAnimBgImage_Thunder, gBattleAnimBgPalette_Thunder, gBattleAnimBgTilemap_Thunder}, + [BG_GUILLOTINE_OPPONENT] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineOpponent}, + [BG_GUILLOTINE_PLAYER] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotinePlayer}, + [BG_GUILLOTINE_CONTESTS] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineContests}, + [BG_ICE] = {gBattleAnimBgImage_Ice, gBattleAnimBgPalette_Ice, gBattleAnimBgTilemap_Ice}, + [BG_COSMIC] = {gBattleAnimBgImage_Cosmic, gBattleAnimBgPalette_Cosmic, gBattleAnimBgTilemap_Cosmic}, + [BG_IN_AIR] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_InAir, gBattleAnimBgTilemap_InAir}, + [BG_SKY] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_Drill}, + [BG_SKY_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_DrillContests}, + [BG_AURORA] = {gBattleAnimBgImage_Aurora, gBattleAnimBgPalette_Aurora, gBattleAnimBgTilemap_Aurora}, + [BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure}, + [BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent}, + [BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer}, + [BG_SOLAR_BEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactOpponent}, + [BG_SOLAR_BEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactPlayer}, + [BG_SOLAR_BEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactContests}, +}; diff --git a/src/graphics.c b/src/graphics.c index 705288081..69ffa7f2c 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -779,8 +779,8 @@ const u32 gBattleAnimSpriteGfx_Roots[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpritePal_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); const u32 gBattleAnimSpriteGfx_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); -const u32 gBattleAnimSpritePal_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePal_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz"); const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); From 57374b796ba75524952087f5486e9db5df40758b Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 8 Aug 2022 10:04:18 -0400 Subject: [PATCH 029/105] Sync src/battle_controllers.c --- include/battle.h | 4 +- include/battle_controllers.h | 20 +- include/battle_main.h | 2 +- include/cable_club.h | 2 +- include/link.h | 2 +- src/battle_controller_link_opponent.c | 8 +- src/battle_controller_link_partner.c | 8 +- src/battle_controller_oak_old_man.c | 2 +- src/battle_controller_opponent.c | 8 +- src/battle_controller_player.c | 14 +- src/battle_controllers.c | 283 +++++++++++++++----------- src/battle_main.c | 27 +-- src/cable_club.c | 14 +- src/link.c | 2 +- src/trade.c | 12 +- src/trade_scene.c | 4 +- 16 files changed, 234 insertions(+), 178 deletions(-) diff --git a/include/battle.h b/include/battle.h index ec98208a9..db406e4b2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -685,8 +685,8 @@ extern u8 *gBattleAnimBgTileBuffer; extern u8 *gBattleAnimBgTilemapBuffer; extern void (*gBattleMainFunc)(void); extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; -extern u32 gUnknown_2022B54; -extern u8 gUnknown_2023DDC; +extern u32 gUnusedFirstBattleVar1; +extern u8 gUnusedFirstBattleVar2; extern u8 gBattlerAttacker; extern u8 gEffectBattler; extern u8 gMultiHitCounter; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b473f5022..b39db340c 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -174,13 +174,13 @@ enum CONTROLLER_CHOSENMONRETURNVALUE, CONTROLLER_ONERETURNVALUE, CONTROLLER_ONERETURNVALUE_DUPLICATE, - CONTROLLER_37, - CONTROLLER_38, - CONTROLLER_39, - CONTROLLER_40, + CONTROLLER_CLEARUNKVAR, + CONTROLLER_SETUNKVAR, + CONTROLLER_CLEARUNKFLAG, + CONTROLLER_TOGGLEUNKFLAG, CONTROLLER_HITANIMATION, - CONTROLLER_42, - CONTROLLER_EFFECTIVENESSSOUND, + CONTROLLER_CANTSWITCH, + CONTROLLER_PLAYSE, CONTROLLER_PLAYFANFAREORBGM, CONTROLLER_FAINTINGCRY, CONTROLLER_INTROSLIDE, @@ -198,12 +198,12 @@ enum CONTROLLER_CMDS_COUNT }; -extern struct UnusedControllerStruct gUnknown_2022870; +extern struct UnusedControllerStruct gUnusedControllerStruct; // general functions void HandleLinkBattleSetup(void); void SetUpBattleVars(void); -void InitBtlControllers(void); +void InitBattleControllers(void); void TryReceiveLinkBattleData(void); void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); @@ -221,7 +221,7 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId); void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr); void BtlController_EmitPrintString(u8 bufferId, u16 stringId); void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId); -void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); +void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId); void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1); void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4); @@ -251,7 +251,7 @@ void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId); void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome); // player controller -void PlayerDummy(void); +void BattleControllerDummy(void); void SetControllerToPlayer(void); void PlayerHandleGetRawMonData(void); void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite); diff --git a/include/battle_main.h b/include/battle_main.h index 009e0e562..d5866c57a 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -82,7 +82,7 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); void SpriteCB_PlayerThrowInit(struct Sprite *sprite); void UpdatePlayerPosInThrowAnim(struct Sprite *sprite); -void BattleDummy(void); +void BeginBattleIntroDummy(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); void FaintClearSetData(void); diff --git a/include/cable_club.h b/include/cable_club.h index d89e8222c..a9a11c334 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -8,7 +8,7 @@ // Exported RAM declarations // Exported ROM declarations -void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId); +void Task_WaitForLinkPlayerConnection(u8 taskId); u8 CreateTask_ReestablishLinkInCableClubRoom(void); void CB2_ReturnFromCableClubBattle(void); bool32 GetSeeingLinkPlayerCardMsg(u8 who); diff --git a/include/link.h b/include/link.h index 47f85bb9d..f195ff56c 100644 --- a/include/link.h +++ b/include/link.h @@ -227,7 +227,7 @@ bool8 IsLinkPlayerDataExchangeComplete(void); u32 GetLinkPlayerTrainerId(u8); void ResetLinkPlayers(void); u8 GetMultiplayerId(void); -u8 bitmask_all_link_players_but_self(void); +u8 BitmaskAllOtherLinkPlayers(void); bool8 SendBlock(u8, const void *, u16); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 839a230ad..803003848 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1449,25 +1449,25 @@ static void LinkOpponentHandleOneReturnValue_Duplicate(void) static void LinkOpponentHandleCmd37(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.field_0 = 0; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleCmd38(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleCmd39(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag_x80 = 0; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleCmd40(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag_x80 ^= 1; LinkOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 7dbfbde65..f8c45c634 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1362,25 +1362,25 @@ static void LinkPartnerHandleOneReturnValue_Duplicate(void) static void LinkPartnerHandleCmd37(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.field_0 = 0; LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleCmd38(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleCmd39(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag_x80 = 0; LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleCmd40(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag_x80 ^= 1; LinkPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index b2c8341ef..a7cfaed6d 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -2094,7 +2094,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; - gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } else { diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 3aa20e0f3..c82f4eb9f 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1548,25 +1548,25 @@ static void OpponentHandleOneReturnValue_Duplicate(void) static void OpponentHandleCmd37(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.field_0 = 0; OpponentBufferExecCompleted(); } static void OpponentHandleCmd38(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; OpponentBufferExecCompleted(); } static void OpponentHandleCmd39(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag_x80 = 0; OpponentBufferExecCompleted(); } static void OpponentHandleCmd40(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag_x80 ^= 1; OpponentBufferExecCompleted(); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 2ebffdc77..007d81cff 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -173,7 +173,7 @@ static const u8 sTargetIdentities[] = { B_POSITION_PLAYER_LEFT, B_POSITION_PLAYE // not used static const u8 gUnknown_8250984[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; -void PlayerDummy(void) +void BattleControllerDummy(void) { } @@ -2523,7 +2523,7 @@ static void PlayerHandleExpUpdate(void) gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; gTasks[taskId].tExpTask_battler = gActiveBattler; - gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } } @@ -2626,25 +2626,25 @@ static void PlayerHandleOneReturnValue_Duplicate(void) static void PlayerHandleCmd37(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.field_0 = 0; PlayerBufferExecCompleted(); } static void PlayerHandleCmd38(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; PlayerBufferExecCompleted(); } static void PlayerHandleCmd39(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag_x80 = 0; PlayerBufferExecCompleted(); } static void PlayerHandleCmd40(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag_x80 ^= 1; PlayerBufferExecCompleted(); } @@ -2720,7 +2720,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; - gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 205c49362..6b03f25d3 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1,25 +1,22 @@ #include "global.h" #include "battle.h" -#include "battle_main.h" #include "battle_ai_script_commands.h" #include "battle_anim.h" -#include "battle_util.h" #include "battle_controllers.h" #include "battle_message.h" +#include "cable_club.h" #include "link.h" #include "link_rfu.h" -#include "cable_club.h" #include "party_menu.h" #include "task.h" #include "util.h" #include "constants/abilities.h" -#include "constants/battle.h" static EWRAM_DATA u8 sLinkSendTaskId = 0; static EWRAM_DATA u8 sLinkReceiveTaskId = 0; -static EWRAM_DATA u8 gUnknown_202286E = 0; -EWRAM_DATA struct UnusedControllerStruct gUnknown_2022870 = {0}; -static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {0}; +static EWRAM_DATA u8 sUnused = 0; // Debug? Never read +EWRAM_DATA struct UnusedControllerStruct gUnusedControllerStruct = {}; // Debug? Unused code that writes to it, never read +static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {}; static void CreateTasksForSendRecvLinkBuffers(void); static void InitLinkBtlControllers(void); @@ -36,7 +33,7 @@ void HandleLinkBattleSetup(void) SetWirelessCommType1(); if (!gReceivedRemoteLinkPlayers) OpenLink(); - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 0); + CreateTask(Task_WaitForLinkPlayerConnection, 0); CreateTasksForSendRecvLinkBuffers(); } } @@ -45,24 +42,28 @@ void SetUpBattleVars(void) { s32 i; - gBattleMainFunc = BattleDummy; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + gBattleMainFunc = BeginBattleIntroDummy; + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - gBattlerControllerFuncs[i] = PlayerDummy; + gBattlerControllerFuncs[i] = BattleControllerDummy; gBattlerPositions[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; } + HandleLinkBattleSetup(); gBattleControllerExecFlags = 0; ClearBattleAnimationVars(); ClearBattleMonForms(); BattleAI_HandleItemUseBeforeAISetup(); - gUnknown_2022B54 = 0; - gUnknown_2023DDC = 0; + + // Below are never read + gUnusedFirstBattleVar1 = 0; + gUnusedFirstBattleVar2 = 0; } -void InitBtlControllers(void) +void InitBattleControllers(void) { s32 i; @@ -70,10 +71,14 @@ void InitBtlControllers(void) InitLinkBtlControllers(); else InitSinglePlayerBtlControllers(); + SetBattlePartyIds(); + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - for (i = 0; i < gBattlersCount; ++i) + { + for (i = 0; i < gBattlersCount; i++) BufferBattlePartyCurrentOrderBySide(i, 0); + } } static void InitSinglePlayerBtlControllers(void) @@ -143,55 +148,71 @@ static void InitLinkBtlControllers(void) if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlersCount = 2; } else { gBattlerControllerFuncs[1] = SetControllerToPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[0] = SetControllerToLinkOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlersCount = 2; } } - else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerControllerFuncs[2] = SetControllerToPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerControllerFuncs[3] = SetControllerToLinkOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlersCount = MAX_BATTLERS_COUNT; } else { gBattlerControllerFuncs[1] = SetControllerToPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[0] = SetControllerToLinkOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerControllerFuncs[3] = SetControllerToPlayer; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; + gBattlerControllerFuncs[2] = SetControllerToLinkOpponent; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; + gBattlersCount = MAX_BATTLERS_COUNT; } } else { multiplayerId = GetMultiplayerId(); + if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) gBattleMainFunc = BeginBattleIntro; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { switch (gLinkPlayers[i].id) { @@ -204,6 +225,7 @@ static void InitLinkBtlControllers(void) BufferBattlePartyCurrentOrderBySide(gLinkPlayers[i].id, 1); break; } + if (i == multiplayerId) { gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToPlayer; @@ -223,7 +245,8 @@ static void InitLinkBtlControllers(void) } else { - if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1)) || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1))) + if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1)) + || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1))) { gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToLinkPartner; switch (gLinkPlayers[i].id) @@ -259,6 +282,7 @@ static void InitLinkBtlControllers(void) } } } + gBattlersCount = MAX_BATTLERS_COUNT; } } @@ -269,7 +293,7 @@ static void SetBattlePartyIds(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < PARTY_SIZE; ++j) { @@ -342,13 +366,19 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size) { switch (bufferId) { - case 0: - for (i = 0; i < size; ++data, ++i) + case BUFFER_A: + for (i = 0; i < size; i++) + { gBattleBufferA[gActiveBattler][i] = *data; + data++; + } break; - case 1: - for (i = 0; i < size; ++data, ++i) + case BUFFER_B: + for (i = 0; i < size; i++) + { gBattleBufferB[gActiveBattler][i] = *data; + data++; + } break; } } @@ -362,12 +392,14 @@ static void CreateTasksForSendRecvLinkBuffers(void) gTasks[sLinkSendTaskId].data[13] = 0; gTasks[sLinkSendTaskId].data[14] = 0; gTasks[sLinkSendTaskId].data[15] = 0; + sLinkReceiveTaskId = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0); gTasks[sLinkReceiveTaskId].data[12] = 0; gTasks[sLinkReceiveTaskId].data[13] = 0; gTasks[sLinkReceiveTaskId].data[14] = 0; gTasks[sLinkReceiveTaskId].data[15] = 0; - gUnknown_202286E = 0; + + sUnused = 0; } enum @@ -380,12 +412,13 @@ enum LINK_BUFF_SIZE_HI, LINK_BUFF_ABSENT_BATTLER_FLAGS, LINK_BUFF_EFFECT_BATTLER, - LINK_BUFF_DATA + LINK_BUFF_DATA, }; void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) { - s32 alignedSize, i; + s32 alignedSize; + s32 i; alignedSize = size - size % 4 + 4; if (gTasks[sLinkSendTaskId].data[14] + alignedSize + LINK_BUFF_DATA + 1 > BATTLE_BUFFER_LINK_SIZE) @@ -401,8 +434,10 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_ABSENT_BATTLER_FLAGS] = gAbsentBattlerFlags; gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_EFFECT_BATTLER] = gEffectBattler; - for (i = 0; i < size; ++i) + + for (i = 0; i < size; i++) gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_DATA + i] = data[i]; + gTasks[sLinkSendTaskId].data[14] = gTasks[sLinkSendTaskId].data[14] + alignedSize + LINK_BUFF_DATA; } @@ -415,12 +450,13 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) { case 0: gTasks[taskId].data[10] = 100; - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; break; case 1: - if (!--gTasks[taskId].data[10]) + gTasks[taskId].data[10]--; + if (gTasks[taskId].data[10] == 0) { - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; if (gReceivedRemoteLinkPlayers) gTasks[taskId].data[11] = 3; } @@ -432,18 +468,18 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) if (IsLinkMaster()) { CheckShouldAdvanceLinkState(); - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; } else { - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; } } break; case 3: if (gTasks[taskId].data[15] != gTasks[taskId].data[14]) { - if (!gTasks[taskId].data[13]) + if (gTasks[taskId].data[13] == 0) { if (gTasks[taskId].data[15] > gTasks[taskId].data[14] && gTasks[taskId].data[15] == gTasks[taskId].data[12]) @@ -452,12 +488,12 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) gTasks[taskId].data[15] = 0; } blockSize = (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8)) + LINK_BUFF_DATA; - SendBlock(bitmask_all_link_players_but_self(), &gLinkBattleSendBuffer[gTasks[taskId].data[15]], blockSize); - ++gTasks[taskId].data[11]; + SendBlock(BitmaskAllOtherLinkPlayers(), &gLinkBattleSendBuffer[gTasks[taskId].data[15]], blockSize); + gTasks[taskId].data[11]++; } else { - --gTasks[taskId].data[13]; + gTasks[taskId].data[13]--; break; } } @@ -472,7 +508,8 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) } break; case 5: - if (!--gTasks[taskId].data[13]) + gTasks[taskId].data[13]--; + if (gTasks[taskId].data[13] == 0) { gTasks[taskId].data[13] = 5; gTasks[taskId].data[11] = 3; @@ -487,10 +524,10 @@ void TryReceiveLinkBattleData(void) s32 j; u8 *recvBuffer; - if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE) && (gLinkPlayers[0].linkType == 0x2211)) + if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE) && (gLinkPlayers[0].linkType == 0x2211)) { LinkRfu_DestroyIdleTask(); - for (i = 0; i < GetLinkPlayerCount(); ++i) + for (i = 0; i < GetLinkPlayerCount(); i++) { if (GetBlockReceivedStatus() & gBitTable[i]) { @@ -498,18 +535,21 @@ void TryReceiveLinkBattleData(void) recvBuffer = (u8 *)gBlockRecvBuffer[i]; { u8 *dest, *src; - u16 r6 = gBlockRecvBuffer[i][2]; + u16 dataSize = gBlockRecvBuffer[i][2]; - if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000) + if (gTasks[sLinkReceiveTaskId].data[14] + 9 + dataSize > 0x1000) { gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14]; gTasks[sLinkReceiveTaskId].data[14] = 0; } + dest = &gLinkBattleRecvBuffer[gTasks[sLinkReceiveTaskId].data[14]]; src = recvBuffer; - for (j = 0; j < r6 + 8; ++j) + + for (j = 0; j < dataSize + 8; j++) dest[j] = src[j]; - gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8; + + gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + dataSize + 8; } } } @@ -532,13 +572,16 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) } battlerId = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ACTIVE_BATTLER]; blockSize = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8); + switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0]) { case 0: if (gBattleControllerExecFlags & gBitTable[battlerId]) return; + memcpy(gBattleBufferA[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA], blockSize); MarkBattlerReceivedLinkData(battlerId); + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { gBattlerAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ATTACKER]; @@ -555,6 +598,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) gBattleControllerExecFlags &= ~(gBitTable[battlerId] << (var * 4)); break; } + gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + LINK_BUFF_DATA; } } @@ -568,7 +612,7 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) { sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA; @@ -585,12 +629,12 @@ void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 b sBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA; sBattleBuffersTransferData[1] = requestId; sBattleBuffersTransferData[2] = monToCheck; - for (i = 0; i < bytes; ++i) + for (i = 0; i < bytes; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes); } -// not used +// Unused static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) { s32 i; @@ -598,7 +642,7 @@ static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, voi sBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA; sBattleBuffersTransferData[1] = monId; sBattleBuffersTransferData[2] = bytes; - for (i = 0; i < bytes; ++i) + for (i = 0; i < bytes; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, bytes + 3); } @@ -664,7 +708,7 @@ void BtlController_EmitFaintAnimation(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitPaletteFade(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE; @@ -674,7 +718,7 @@ static void BtlController_EmitPaletteFade(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitSuccessBallThrowAnim(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM; @@ -691,14 +735,14 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -// not used +// Unused static void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_PAUSE; sBattleBuffersTransferData[1] = toWait; - for (i = 0; i < toWait * 3; ++i) + for (i = 0; i < toWait * 3; i++) sBattleBuffersTransferData[2 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, toWait * 3 + 2); } @@ -742,6 +786,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) sBattleBuffersTransferData[1] = gBattleOutcome; sBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; + stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; stringInfo->originallyUsedMove = gChosenMove; @@ -752,9 +797,10 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) stringInfo->hpScale = gBattleStruct->hpScale; stringInfo->itemEffectBattler = gPotentialItemEffectBattler; stringInfo->moveType = gBattleMoves[gCurrentMove].type; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; - for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; ++i) + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { stringInfo->textBuffs[0][i] = gBattleTextBuff1[i]; stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; @@ -772,6 +818,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; sBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; + stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; stringInfo->originallyUsedMove = gChosenMove; @@ -779,9 +826,10 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.battler; stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; - for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; ++i) + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { stringInfo->textBuffs[0][i] = gBattleTextBuff1[i]; stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; @@ -790,16 +838,17 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct BattleMsgData) + 4); } -void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) +// itemId only relevant for B_ACTION_USE_ITEM +void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId) { sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION; - sBattleBuffersTransferData[1] = arg1; - sBattleBuffersTransferData[2] = arg2; - sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = action; + sBattleBuffersTransferData[2] = itemId; + sBattleBuffersTransferData[3] = (itemId & 0xFF00) >> 8; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitUnknownYesNoBox(u8 bufferId, u32 arg1) // TODO: Does the function name make sense for pokefirered? { sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX; @@ -815,35 +864,35 @@ void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpN sBattleBuffersTransferData[1] = isDoubleBattle; sBattleBuffersTransferData[2] = NoPpNumber; sBattleBuffersTransferData[3] = 0; - for (i = 0; i < sizeof(*movePpData); ++i) + for (i = 0; i < sizeof(*movePpData); i++) sBattleBuffersTransferData[4 + i] = *((u8 *)(movePpData) + i); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4); } -void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1) +void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG; - for (i = 0; i < 3; ++i) - sBattleBuffersTransferData[1 + i] = arg1[i]; + for (i = 0; i < PARTY_SIZE / 2; i++) + sBattleBuffersTransferData[1 + i] = battlePartyOrder[i]; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4) +void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8 *data) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON; sBattleBuffersTransferData[1] = caseId; - sBattleBuffersTransferData[2] = arg2; + sBattleBuffersTransferData[2] = slotId; sBattleBuffersTransferData[3] = abilityId; - for (i = 0; i < 3; ++i) - sBattleBuffersTransferData[4 + i] = arg4[i]; + for (i = 0; i < 3; i++) + sBattleBuffersTransferData[4 + i] = data[i]; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // Only 7 bytes were written. } -// not used +// Unused static void BtlController_EmitCmd23(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_23; @@ -896,7 +945,7 @@ void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6); } -// not used +// Unused static void BtlController_EmitStatusXor(u8 bufferId, u8 b) { sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR; @@ -912,12 +961,12 @@ void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data) sBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER; sBattleBuffersTransferData[2] = size; sBattleBuffersTransferData[3] = (size & 0xFF00) >> 8; - for (i = 0; i < size; ++i) + for (i = 0; i < size; i++) sBattleBuffersTransferData[4 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4); } -// not used +// Unused static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) { s32 i; @@ -929,7 +978,7 @@ static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, voi sBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24; sBattleBuffersTransferData[5] = size; sBattleBuffersTransferData[6] = (size & 0xFF00) >> 8; - for (i = 0; i < size; ++i) + for (i = 0; i < size; i++) sBattleBuffersTransferData[7 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7); } @@ -945,12 +994,12 @@ static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data) // Nonsense loop using songId as a size // Would go out of bounds for any song id after SE_DEOXYS_MOVE (253) - for (i = 0; i < songId; ++i) + for (i = 0; i < songId; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3); } -// not used +// Unused static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) { s32 i; @@ -958,84 +1007,84 @@ static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) sBattleBuffersTransferData[0] = CONTROLLER_32; sBattleBuffersTransferData[1] = size; sBattleBuffersTransferData[2] = (size & 0xFF00) >> 8; - for (i = 0; i < size; ++i) + for (i = 0; i < size; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3); } -void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) +void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16) { sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES; - sBattleBuffersTransferData[1] = arg1; - sBattleBuffersTransferData[2] = arg2; - sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = ret8; + sBattleBuffersTransferData[2] = ret16; + sBattleBuffersTransferData[3] = (ret16 & 0xFF00) >> 8; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c) +void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE; - sBattleBuffersTransferData[1] = b; - for (i = 0; i < 3; ++i) - sBattleBuffersTransferData[2 + i] = c[i]; + sBattleBuffersTransferData[1] = partyId; + for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++) + sBattleBuffersTransferData[2 + i] = battlePartyOrder[i]; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5); } -void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1) +void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret) { sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE; - sBattleBuffersTransferData[1] = arg1; - sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = ret; + sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) +void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret) { sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE; - sBattleBuffersTransferData[1] = b; - sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = ret; + sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used -static void BtlController_EmitCmd37(u8 bufferId) +// Unused +static void BtlController_EmitClearUnkVar(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_37; - sBattleBuffersTransferData[1] = CONTROLLER_37; - sBattleBuffersTransferData[2] = CONTROLLER_37; - sBattleBuffersTransferData[3] = CONTROLLER_37; + sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[2] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[3] = CONTROLLER_CLEARUNKVAR; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used -static void BtlController_EmitCmd38(u8 bufferId, u8 b) +// Unused +static void BtlController_EmitSetUnkVar(u8 bufferId, u8 b) { - sBattleBuffersTransferData[0] = CONTROLLER_38; + sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR; sBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -// not used -static void BtlController_EmitCmd39(u8 bufferId) +// Unused +static void BtlController_EmitClearUnkFlag(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_39; - sBattleBuffersTransferData[1] = CONTROLLER_39; - sBattleBuffersTransferData[2] = CONTROLLER_39; - sBattleBuffersTransferData[3] = CONTROLLER_39; + sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[2] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[3] = CONTROLLER_CLEARUNKFLAG; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used -static void BtlController_EmitCmd40(u8 bufferId) +// Unused +static void BtlController_EmitToggleUnkFlag(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_40; - sBattleBuffersTransferData[1] = CONTROLLER_40; - sBattleBuffersTransferData[2] = CONTROLLER_40; - sBattleBuffersTransferData[3] = CONTROLLER_40; + sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[2] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[3] = CONTROLLER_TOGGLEUNKFLAG; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } @@ -1050,16 +1099,16 @@ void BtlController_EmitHitAnimation(u8 bufferId) void BtlController_EmitCantSwitch(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_42; - sBattleBuffersTransferData[1] = CONTROLLER_42; - sBattleBuffersTransferData[2] = CONTROLLER_42; - sBattleBuffersTransferData[3] = CONTROLLER_42; + sBattleBuffersTransferData[0] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[1] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[2] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[3] = CONTROLLER_CANTSWITCH; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } void BtlController_EmitPlaySE(u8 bufferId, u16 songId) { - sBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYSE; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; @@ -1108,7 +1157,7 @@ void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* h sBattleBuffersTransferData[1] = flags & ~PARTY_SUMM_SKIP_DRAW_DELAY; // If true, skip player side sBattleBuffersTransferData[2] = (flags & PARTY_SUMM_SKIP_DRAW_DELAY) >> 7; // If true, skip delay after drawing. True during intro sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; - for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); ++i) + for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); i++) sBattleBuffersTransferData[4 + i] = *(i + (u8 *)(hpAndStatus)); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct HpAndStatus) * PARTY_SIZE + 4); } diff --git a/src/battle_main.c b/src/battle_main.c index 681230482..d15526438 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -133,7 +133,7 @@ EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; static EWRAM_DATA u32 sFlickerArray[25] = {0}; EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u8 gBattleTerrain = 0; -EWRAM_DATA u32 gUnknown_2022B54 = 0; +EWRAM_DATA u32 gUnusedFirstBattleVar1 = 0; EWRAM_DATA struct MultiBattlePokemonTx gMultiPartnerParty[3] = {0}; EWRAM_DATA u8 *gBattleAnimBgTileBuffer = NULL; EWRAM_DATA u8 *gBattleAnimBgTilemapBuffer = NULL; @@ -185,7 +185,7 @@ EWRAM_DATA u8 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; static EWRAM_DATA u8 sUnusedBattlersArray[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u8 gUnknown_2023DDC = 0; +EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; EWRAM_DATA u16 gSideStatuses[2] = {0}; EWRAM_DATA struct SideTimer gSideTimers[2] = {0}; EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0}; @@ -974,7 +974,7 @@ static void CB2_HandleStartBattle(void) *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 2; BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); + SendBlock(BitmaskAllOtherLinkPlayers(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE] = 2; } if (gWirelessCommType != 0) @@ -1009,7 +1009,7 @@ static void CB2_HandleStartBattle(void) case 3: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gPlayerParty, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1024,7 +1024,7 @@ static void CB2_HandleStartBattle(void) case 7: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1039,7 +1039,7 @@ static void CB2_HandleStartBattle(void) case 11: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1058,7 +1058,7 @@ static void CB2_HandleStartBattle(void) } break; case 15: - InitBtlControllers(); + InitBattleControllers(); gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1141,7 +1141,7 @@ static void CB2_PreInitMultiBattle(void) if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished()) { PrepareOwnMultiPartnerBuffer(); - SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons)); + SendBlock(BitmaskAllOtherLinkPlayers(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons)); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1230,7 +1230,7 @@ static void CB2_HandleStartMultiBattle(void) *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 2; BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); + SendBlock(BitmaskAllOtherLinkPlayers(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE]++; } if (gWirelessCommType) @@ -1281,7 +1281,7 @@ static void CB2_HandleStartMultiBattle(void) case 3: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gDecompressionBuffer, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1344,7 +1344,7 @@ static void CB2_HandleStartMultiBattle(void) case 7: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer + sizeof(struct Pokemon) * 2, sizeof(struct Pokemon)); + SendBlock(BitmaskAllOtherLinkPlayers(), gDecompressionBuffer + sizeof(struct Pokemon) * 2, sizeof(struct Pokemon)); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1417,7 +1417,7 @@ static void CB2_HandleStartMultiBattle(void) } break; case 11: - InitBtlControllers(); + InitBattleControllers(); gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -2184,8 +2184,9 @@ static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite) sprite->callback = SpriteCB_Idle; } -void BattleDummy(void) +void BeginBattleIntroDummy(void) { + } void BeginBattleIntro(void) diff --git a/src/cable_club.c b/src/cable_club.c index e4238bb40..54c80b55d 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -532,7 +532,7 @@ static void Task_ReestablishLinkInCableClubRoom_0(u8 taskId) { OpenLink(); ResetLinkPlayers(); - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 80); + CreateTask(Task_WaitForLinkPlayerConnection, 80); } else if (data[0] > 9) gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_1; @@ -934,20 +934,26 @@ bool32 GetSeeingLinkPlayerCardMsg(u8 who) return TRUE; } -void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId) +#define tTimer data[0] + +void Task_WaitForLinkPlayerConnection(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[0]++; - if (task->data[0] > 300) + + task->tTimer++; + if (task->tTimer > 300) { CloseLink(); SetMainCallback2(CB2_LinkError); DestroyTask(taskId); } + if (gReceivedRemoteLinkPlayers) DestroyTask(taskId); } +#undef tTimer + static void sub_8081AE4(u8 taskId) { if (!gReceivedRemoteLinkPlayers) diff --git a/src/link.c b/src/link.c index b5167198e..1068a3d85 100644 --- a/src/link.c +++ b/src/link.c @@ -982,7 +982,7 @@ u8 GetMultiplayerId(void) return SIO_MULTI_CNT->id; } -u8 bitmask_all_link_players_but_self(void) +u8 BitmaskAllOtherLinkPlayers(void) { u8 mpId; diff --git a/src/trade.c b/src/trade.c index 392a23061..3828711ef 100644 --- a/src/trade.c +++ b/src/trade.c @@ -767,7 +767,7 @@ static void CB2_ReturnFromLinkTrade2(void) gMain.state++; } if (gWirelessCommType == 0) - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 1); + CreateTask(Task_WaitForLinkPlayerConnection, 1); } else { @@ -1692,7 +1692,7 @@ static void CommunicatePlayerSelectedMonForTrade(void) { sTradeMenuResourcesPtr->linkData[0] = 0xAABB; sTradeMenuResourcesPtr->linkData[1] = sTradeMenuResourcesPtr->tradeMenuCursorPosition; - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } else { @@ -1751,7 +1751,7 @@ static void TradeMenuCB_0(void) { for (i = 0; i < 10; i++) sTradeMenuResourcesPtr->linkData[i] = i; - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } } @@ -1864,7 +1864,7 @@ static void CommunicateWhetherMonCanBeTraded(void) sTradeMenuResourcesPtr->linkData[0] = 0xBBBB; if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } break; case 2: @@ -1890,7 +1890,7 @@ static void TradeMenuCB_3(void) if (IsLinkTaskFinished()) { sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } sTradeMenuResourcesPtr->tradeMenuCBnum = 100; PutWindowTilemap(17); @@ -2410,7 +2410,7 @@ static void RunScheduledLinkTasks(void) switch (sTradeMenuResourcesPtr->cron[i].kind) { case 0: - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); break; case 1: PrintTradeErrorOrStatusMessage(TRADESTATMSG_COMMSTANDBY); diff --git a/src/trade_scene.c b/src/trade_scene.c index c3b36db16..29fd00c2f 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -1093,7 +1093,7 @@ static void HandleLinkDataSend(void) case 1: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, 20); sTradeData->scheduleLinkTransfer++; } case 2: @@ -2526,7 +2526,7 @@ static void CB2_WaitAndAckTradeComplete(void) if (mpId == 0 && sTradeData->tradeStatus1 == 1 && sTradeData->tradeStatus2 == 1) { sTradeData->linkData[0] = 0xDCBA; - SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, 20); sTradeData->tradeStatus1 = 2; sTradeData->tradeStatus2 = 2; } From 5f81a9834f5e89fa6b98f9640934481e958297f4 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 12:00:13 -0400 Subject: [PATCH 030/105] GetBattlerSpriteCoord and GetBattlerSpriteCoord2 using BATTLER_COORD_* constants --- src/battle_anim_effects_1.c | 4 +-- src/battle_controller_link_opponent.c | 15 ++++---- src/battle_controller_link_partner.c | 4 +-- src/battle_controller_oak_old_man.c | 2 +- src/battle_controller_opponent.c | 4 +-- src/battle_controller_player.c | 2 +- src/battle_controller_pokedude.c | 4 +-- src/battle_gfx_sfx_util.c | 4 +-- src/bug.c | 36 +++++++++---------- src/dragon.c | 24 ++++++------- src/electric.c | 4 +-- src/fighting.c | 52 +++++++++++++-------------- src/fire.c | 12 +++---- src/flying.c | 30 ++++++++-------- src/ghost.c | 38 ++++++++++---------- src/ground.c | 32 ++++++++--------- src/poison.c | 4 +-- src/psychic.c | 4 +-- src/reshow_battle_screen.c | 4 +-- src/rock.c | 12 +++---- src/water.c | 38 ++++++++++---------- 21 files changed, 165 insertions(+), 164 deletions(-) diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 2d1a6f3cf..ea435eb7a 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3801,8 +3801,8 @@ void AnimAirCutterSlice(struct Sprite* sprite) b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) { - a = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 0) + a) / 2; - b = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 1) + b) / 2; + a = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X) + a) / 2; + b = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y) + b) / 2; } break; case 0: diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 803003848..d6068ca7e 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -772,14 +772,14 @@ static void LinkOpponentHandleSetMonData(void) u8 monToCheck; u8 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { SetLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler]); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) SetLinkOpponentMonData(i); @@ -1010,8 +1010,9 @@ static void LinkOpponentHandleSetRawMonData(void) u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = gBattleBufferA[gActiveBattler][3 + i]; + LinkOpponentBufferExecCompleted(); } @@ -1022,10 +1023,10 @@ static void LinkOpponentHandleLoadMonSprite(void) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); @@ -1051,7 +1052,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; @@ -1066,7 +1067,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) static void LinkOpponentHandleReturnMonToBall(void) { - if (!gBattleBufferA[gActiveBattler][1]) + if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index f8c45c634..01087b681 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -979,7 +979,7 @@ static void LinkPartnerHandleLoadMonSprite(void) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; @@ -1008,7 +1008,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index a7cfaed6d..e3e3ae242 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -2114,7 +2114,7 @@ static void StartSendOutAnim(u8 battlerId) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index c82f4eb9f..cc5921984 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1036,7 +1036,7 @@ static void OpponentHandleLoadMonSprite(void) } SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), y, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; @@ -1068,7 +1068,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 007d81cff..0e65ec0e9 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2105,7 +2105,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 9f27cd1c3..83e3bd3b6 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -1307,7 +1307,7 @@ static void PokedudeHandleLoadMonSprite(void) y = GetBattlerSpriteDefault_Y(gActiveBattler); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), y, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; @@ -1879,7 +1879,7 @@ static void StartSendOutAnim(u8 battlerId) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 327253c04..1ea8f84fd 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -894,12 +894,12 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedSpriteSheetUsingHeap(&gSpriteSheet_EnemyShadow); battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; if (IsDoubleBattle()) { battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; } } diff --git a/src/bug.c b/src/bug.c index 32d2f3b3f..f8f8476f2 100644 --- a/src/bug.c +++ b/src/bug.c @@ -210,11 +210,11 @@ static void AnimMegahornHorn(struct Sprite *sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -231,11 +231,11 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -257,8 +257,8 @@ static void AnimTranslateWebThread(struct Sprite *sprite) sprite->data[3] = sprite->y; if (!gBattleAnimArgs[4]) { - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } else { @@ -377,8 +377,8 @@ static void AnimTranslateStinger(struct Sprite *sprite) } } InitSpritePosToAnimAttacker(sprite, 1); - lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y); rot += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); @@ -402,8 +402,8 @@ static void AnimMissileArc(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); sprite->callback = AnimMissileArcStep; @@ -449,13 +449,13 @@ static void AnimTailGlowOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 18; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 18; } StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; diff --git a/src/dragon.c b/src/dragon.c index cef5d219d..dc663a439 100644 --- a/src/dragon.c +++ b/src/dragon.c @@ -188,8 +188,8 @@ const struct SpriteTemplate gOverheatFlameSpriteTemplate = static void sub_80B725C(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->x -= gBattleAnimArgs[0]; @@ -213,8 +213,8 @@ static void sub_80B725C(struct Sprite *sprite) static void sub_80B72F8(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->x -= gBattleAnimArgs[1]; @@ -239,13 +239,13 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]); sprite->y += gBattleAnimArgs[2]; @@ -265,8 +265,8 @@ static void AnimDragonDanceOrb(struct Sprite *sprite) u16 r5; u16 r0; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = 0; sprite->data[5] = 1; sprite->data[6] = gBattleAnimArgs[0]; @@ -408,8 +408,8 @@ static void AnimOverheatFlame(struct Sprite *sprite) { s32 i, r6 = (gBattleAnimArgs[2] * 3) / 5; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[4]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[4]; sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]); sprite->data[2] = Sin(gBattleAnimArgs[1], r6); sprite->x += sprite->data[1] * gBattleAnimArgs[0]; diff --git a/src/electric.c b/src/electric.c index f6f01a8ef..9ad3a1b13 100644 --- a/src/electric.c +++ b/src/electric.c @@ -659,8 +659,8 @@ static void AnimElectricity(struct Sprite *sprite) void AnimTask_ElectricBolt(u8 taskId) { - gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; - gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; + gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[0]; + gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].func = sub_80AE278; } diff --git a/src/fighting.c b/src/fighting.c index f2c4b687e..fce40f5a9 100644 --- a/src/fighting.c +++ b/src/fighting.c @@ -475,8 +475,8 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) if (gBattleAnimArgs[2] < 0) gBattleAnimArgs[2] = Random() % 5; StartSpriteAnim(sprite, gBattleAnimArgs[2]); - sprite->x = GetBattlerSpriteCoord(battler, 2); - sprite->y = GetBattlerSpriteCoord(battler, 3); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); xMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_WIDTH) / 2; yMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; x = Random() % xMod; @@ -622,8 +622,8 @@ static void AnimStompFootStep(struct Sprite *sprite) if (--sprite->data[0] == -1) { sprite->data[0] = 6; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimStompFootEnd); } @@ -662,13 +662,13 @@ static void AnimBrickBreakWall(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->x += gBattleAnimArgs[1]; sprite->y += gBattleAnimArgs[2]; @@ -713,13 +713,13 @@ static void AnimBrickBreakWallShard(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[3]; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[2]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[3]; } sprite->oam.tileNum += gBattleAnimArgs[1] * 16; sprite->data[0] = 0; @@ -760,8 +760,8 @@ static void AnimSuperpowerOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); sprite->data[7] = gBattleAnimTarget; } @@ -783,9 +783,9 @@ static void sub_80B111C(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDCNT, 0); sprite->data[0] = 16; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], 2); + sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3); + sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; @@ -821,10 +821,10 @@ static void sub_80B11E4(struct Sprite *sprite) } else { - s16 pos0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - s16 pos1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); - s16 pos2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - s16 pos3 = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + s16 pos0 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + s16 pos1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + s16 pos2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + s16 pos3 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = pos2 - pos0; sprite->data[1] = pos3 - pos1; @@ -853,8 +853,8 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_Y_PIC_OFFSET); battler = gBattleAnimTarget; sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -869,9 +869,9 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP); sprite->data[0] = 16; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(battler, 2); + sprite->data[2] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(battler, 3); + sprite->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; @@ -888,8 +888,8 @@ static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; diff --git a/src/fire.c b/src/fire.c index a8f0c8503..e1d003da8 100644 --- a/src/fire.c +++ b/src/fire.c @@ -640,9 +640,9 @@ static void AnimFireRing_Step1(struct Sprite *sprite) { sprite->data[0] = 0x19; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->callback = AnimFireRing_Step2; } @@ -654,8 +654,8 @@ static void AnimFireRing_Step2(struct Sprite *sprite) { sprite->data[0] = 0; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->x2 = sprite->y2 = 0; sprite->callback = AnimFireRing_Step3; sprite->callback(sprite); @@ -1013,9 +1013,9 @@ static void AnimWillOWispOrb(struct Sprite *sprite) sprite->x2 = sprite->y2 = 0; sprite->data[0] = 256; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); BattleAnim_InitLinearTranslationWithDuration(sprite); sprite->callback = sub_80AD690; } diff --git a/src/flying.c b/src/flying.c index b6007a679..ac0e23542 100644 --- a/src/flying.c +++ b/src/flying.c @@ -886,8 +886,8 @@ static void AnimFallingFeather_Step(struct Sprite *sprite) static void sub_80B24C0(struct Sprite *sprite) { sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = TranslateAnimSpriteToTargetMonLocation; } @@ -1034,8 +1034,8 @@ void AnimTask_DrillPeckHitSplats(u8 taskId) gBattleAnimArgs[2] = 1; gBattleAnimArgs[3] = 3; CreateSpriteAndAnimate(&gFlashingHitSplatSpriteTemplate, - GetBattlerSpriteCoord(gBattleAnimTarget, 2), - GetBattlerSpriteCoord(gBattleAnimTarget, 3), + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2), + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET), 3); } gTasks[taskId].data[0] += 8; @@ -1064,7 +1064,7 @@ static void AnimBounceBallLand(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->y2 = -sprite->y - 32; ++sprite->data[0]; break; @@ -1131,13 +1131,13 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) case 0: if (!gBattleAnimArgs[0]) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->data[1] = 512; TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); @@ -1185,13 +1185,13 @@ static void AnimSprayWaterDroplet(struct Sprite *sprite) sprite->oam.matrixNum = ST_OAM_HFLIP; if (gBattleAnimArgs[1] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 32; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32; } sprite->callback = sub_80B2C88; } @@ -1248,8 +1248,8 @@ static void AnimSkyAttackBird(struct Sprite *sprite) s16 posx = sprite->x; s16 posy = sprite->y; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = sprite->x << 4; sprite->data[5] = sprite->y << 4; sprite->data[6] = ((posx - sprite->x) << 4) / 12; diff --git a/src/ghost.c b/src/ghost.c index a531cec44..0a9829032 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -223,9 +223,9 @@ static void AnimConfuseRayBallBounce(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); BattleAnim_InitLinearTranslationWithDuration(sprite); sprite->callback = sub_80B52D0; sprite->data[6] = 16; @@ -398,8 +398,8 @@ static void AnimShadowBall(struct Sprite *sprite) s16 oldPosX = sprite->x; s16 oldPosY = sprite->y; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; @@ -429,8 +429,8 @@ static void AnimShadowBallStep(struct Sprite *sprite) sprite->data[2] -= 1; if (sprite->data[2] > 0) break; - sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = sprite->x << 4; sprite->data[5] = sprite->y << 4; sprite->data[6] = ((sprite->data[1] - sprite->x) << 4) / sprite->data[3]; @@ -445,8 +445,8 @@ static void AnimShadowBallStep(struct Sprite *sprite) sprite->data[3] -= 1; if (sprite->data[3] > 0) break; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] += 1; break; case 3: @@ -740,17 +740,17 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; - battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; + battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28; } else { - battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; - battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; + battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28; } yDiff = battler2Y - battler1Y; sprite->data[0] = battler1X * 16; @@ -798,7 +798,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) task->data[8] = 0; task->data[9] = 16; task->data[10] = gBattleAnimArgs[0]; - baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); baseY = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM); if (!IsContest()) { @@ -811,7 +811,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { - x = GetBattlerSpriteCoord(battler, 2); + x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_BOTTOM); gSprites[spriteId].data[0] = baseX << 4; gSprites[spriteId].data[1] = baseY << 4; @@ -1143,7 +1143,7 @@ void AnimTask_GrudgeFlames(u8 taskId) task->data[0] = 0; task->data[1] = 16; - task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimAttacker); task->data[11] = (GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2) + 8; task->data[7] = 0; diff --git a/src/ground.c b/src/ground.c index 1ed06be1a..e5642d16d 100644 --- a/src/ground.c +++ b/src/ground.c @@ -140,11 +140,11 @@ const struct SpriteTemplate gDirtMoundSpriteTemplate = // a boomerang. After hitting the target mon, it comes back to the user. static void AnimBonemerangProjectile(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = -40; InitAnimArcTranslation(sprite); sprite->callback = AnimBonemerangProjectileStep; @@ -159,8 +159,8 @@ static void AnimBonemerangProjectileStep(struct Sprite *sprite) sprite->y2 = 0; sprite->x2 = 0; sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = 40; InitAnimArcTranslation(sprite); sprite->callback = AnimBonemerangProjectileEnd; @@ -186,8 +186,8 @@ static void AnimBoneHitProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -204,8 +204,8 @@ static void AnimDirtScatter(struct Sprite *sprite) s16 xOffset, yOffset; InitSpritePosToAnimAttacker(sprite, 1); - targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 2); - targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 3); + targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2); + targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); xOffset = Random() & 0x1F; yOffset = Random() & 0x1F; if (xOffset > 16) @@ -229,8 +229,8 @@ static void AnimMudSportDirt(struct Sprite *sprite) ++sprite->oam.tileNum; if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[1] > 0 ? 1 : -1; sprite->callback = AnimMudSportDirtRising; } @@ -500,7 +500,7 @@ static void AnimFissureDirtPlumeParticle(struct Sprite *sprite) xOffset *= -1; gBattleAnimArgs[2] *= -1; } - sprite->x = GetBattlerSpriteCoord(battler, 2) + xOffset; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + xOffset; sprite->y = GetBattlerYCoordWithElevation(battler) + 30; sprite->data[0] = gBattleAnimArgs[5]; sprite->data[2] = sprite->x + gBattleAnimArgs[2]; @@ -530,7 +530,7 @@ static void AnimDigDirtMound(struct Sprite *sprite) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; - sprite->x = GetBattlerSpriteCoord(battler, 0) - 16 + (gBattleAnimArgs[1] * 32); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X) - 16 + (gBattleAnimArgs[1] * 32); sprite->y = GetBattlerYCoordWithElevation(battler) + 32; sprite->oam.tileNum += gBattleAnimArgs[1] * 8; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -697,8 +697,8 @@ void AnimTask_PositionFissureBgOnBattler(u8 taskId) if (gBattleAnimArgs[0] > 1) battler ^= BIT_FLANK; newTask = &gTasks[CreateTask(sub_80B98A8, gBattleAnimArgs[1])]; - newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, 2)) & 0x1FF; - newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, 3)) & 0xFF; + newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2)) & 0x1FF; + newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET)) & 0xFF; gBattle_BG3_X = newTask->data[1]; gBattle_BG3_Y = newTask->data[2]; newTask->data[3] = gBattleAnimArgs[2]; diff --git a/src/poison.c b/src/poison.c index 1a617aeaf..ea592c214 100644 --- a/src/poison.c +++ b/src/poison.c @@ -190,8 +190,8 @@ static void AnimSludgeProjectile(struct Sprite *sprite) StartSpriteAnim(sprite, 2); InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = -30; InitAnimArcTranslation(sprite); sprite->callback = sub_80B1684; diff --git a/src/psychic.c b/src/psychic.c index 1c31bfdca..da5e314ee 100644 --- a/src/psychic.c +++ b/src/psychic.c @@ -596,8 +596,8 @@ static void AnimQuestionMark(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) x = -x; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + x; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + y; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + x; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + y; if (sprite->y < 16) sprite->y = 16; StoreSpriteCallbackInData6(sprite, sub_80B3384); diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 23cb24941..41335700f 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -231,7 +231,7 @@ static void CreateBattlerSprite(u8 battler) if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) return; SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); - gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler)); + gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].data[0] = battler; @@ -265,7 +265,7 @@ static void CreateBattlerSprite(u8 battler) else { SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); - gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler)); + gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].data[0] = battler; diff --git a/src/rock.c b/src/rock.c index 7ec10630a..57a1ed87d 100644 --- a/src/rock.c +++ b/src/rock.c @@ -556,10 +556,10 @@ void AnimTask_Rollout(u8 taskId) struct Task *task; task = &gTasks[taskId]; - var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 24; - var2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - var3 = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 24; + var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 24; + var2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + var3 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 24; if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget) var3 = var1; var4 = sub_80B4FB8(); @@ -758,8 +758,8 @@ static void AnimRockBlastRock(struct Sprite *sprite) static void AnimRockScatter(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[0]; diff --git a/src/water.c b/src/water.c index 75ea6c7fa..12d186027 100644 --- a/src/water.c +++ b/src/water.c @@ -521,23 +521,23 @@ static void AnimWaterBubbleProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[6]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); sprite->data[5] = spriteId; @@ -599,9 +599,9 @@ static void AnimAuroraBeamRings(struct Sprite *sprite) unkArg = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + unkArg; sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = AnimAuroraBeamRings_Step; sprite->affineAnimPaused = TRUE; @@ -653,9 +653,9 @@ static void AnimToTargetInSinWave(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 30; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; sprite->data[7] = gBattleAnimArgs[3]; @@ -708,8 +708,8 @@ static void AnimHydroCannonCharge(struct Sprite *sprite) { u8 priority; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); sprite->y2 = -10; priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); if (!IsContest()) @@ -762,7 +762,7 @@ static void AnimHydroCannonBeam(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -1173,8 +1173,8 @@ static u8 GetWaterSpoutPowerForAnim(void) static void CreateWaterSpoutLaunchDroplets(struct Task *task, u8 taskId) { s16 i; - s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); s16 trigIndex = 172; u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; s16 increment = 4 - task->data[1]; @@ -1347,8 +1347,8 @@ void AnimTask_WaterSport(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1; if (IsContest()) task->data[7] *= -1; @@ -1520,8 +1520,8 @@ static void AnimWaterPulseRingBubble(struct Sprite *sprite) void AnimWaterPulseRing(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[3] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->callback = AnimWaterPulseRing_Step; From e37c78c73f09a6cb11481e84729a835f8cffc998 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 12:10:09 -0400 Subject: [PATCH 031/105] Usage of ST_OAM_AFFINE constants --- src/battle_controller_link_opponent.c | 4 ++-- src/battle_controller_link_partner.c | 4 ++-- src/battle_controller_opponent.c | 4 ++-- src/battle_controller_player.c | 4 ++-- src/battle_controller_pokedude.c | 4 ++-- src/battle_script_commands.c | 2 +- src/battle_transition.c | 4 ++-- src/data/party_menu.h | 8 ++++---- src/daycare.c | 4 ++-- src/flying.c | 2 +- src/menu_indicators.c | 4 ++-- src/pokedex_screen.c | 4 ++-- src/pokemon.c | 2 +- src/trade_scene.c | 4 ++-- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index d6068ca7e..54d031e9f 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1273,7 +1273,7 @@ static void LinkOpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1282,7 +1282,7 @@ static void LinkOpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 01087b681..f00a4fc75 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1185,7 +1185,7 @@ static void LinkPartnerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1194,7 +1194,7 @@ static void LinkPartnerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index cc5921984..6e8190985 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1274,7 +1274,7 @@ static void OpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1283,7 +1283,7 @@ static void OpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 0e65ec0e9..394e72093 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2339,7 +2339,7 @@ static void PlayerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -2348,7 +2348,7 @@ static void PlayerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 83e3bd3b6..4f98f6023 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -1497,7 +1497,7 @@ static void PokedudeDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1506,7 +1506,7 @@ static void PokedudeDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 92dc9ecf4..ef778b516 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -674,7 +674,7 @@ static const u8 sRubyLevelUpStatBoxStats[] = static const struct OamData sOamData_MonIconOnLvlUpBanner = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, diff --git a/src/battle_transition.c b/src/battle_transition.c index 21d732aa5..fc164b1b9 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -478,7 +478,7 @@ static const struct SpriteTemplate sSpriteTemplate_SlidingPokeball = static const struct OamData sOamData_Unused = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -1076,7 +1076,7 @@ bool8 FldEff_Pokeball(void) u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_SlidingPokeball, gFieldEffectArguments[0], gFieldEffectArguments[1], 0); gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].oam.affineMode = 1; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].data[0] = gFieldEffectArguments[2]; gSprites[spriteId].data[1] = gFieldEffectArguments[3]; gSprites[spriteId].data[2] = -1; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 689ee6da5..6c17d080e 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -709,7 +709,7 @@ static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/interface/hold_icons. static const struct OamData sOamData_HeldItem = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -765,7 +765,7 @@ static const struct SpriteTemplate sSpriteTemplate_HeldItem = static const struct OamData sOamData_MenuPokeball = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -822,7 +822,7 @@ static const struct SpriteTemplate sSpriteTemplate_MenuPokeball = static const struct OamData sOamData_MenuPokeballSmall = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -903,7 +903,7 @@ static const struct SpriteTemplate sSpriteTemplate_MenuPokeballSmall = static const struct OamData sOamData_StatusCondition = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, diff --git a/src/daycare.c b/src/daycare.c index f45aaceff..be9a6087b 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -141,7 +141,7 @@ static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); static const struct OamData sOamData_EggHatch = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -221,7 +221,7 @@ static const struct SpriteTemplate sSpriteTemplate_EggHatch = static const struct OamData sOamData_EggShard = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, diff --git a/src/flying.c b/src/flying.c index ac0e23542..88cb0ec27 100644 --- a/src/flying.c +++ b/src/flying.c @@ -539,7 +539,7 @@ void DestroyAnimSpriteAfterTimer(struct Sprite *sprite) if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) { FreeOamMatrix(sprite->oam.matrixNum); - sprite->oam.affineMode = 0; + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; } DestroySprite(sprite); --gAnimVisualTaskCount; diff --git a/src/menu_indicators.c b/src/menu_indicators.c index 33f95705d..86bfcf5fe 100644 --- a/src/menu_indicators.c +++ b/src/menu_indicators.c @@ -82,7 +82,7 @@ static const struct ScrollIndicatorTemplate sScrollIndicatorTemplates[] = static const struct OamData sOamData_ScrollArrowIndicator = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -222,7 +222,7 @@ static const struct Subsprite sSubsprite_RedOutline8 = static const struct OamData sOamData_RedArrowCursor = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index 17f29ac13..2c5662d9f 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -3103,14 +3103,14 @@ u8 DexScreen_DrawMonAreaPage(void) { sPokedexScreenData->windowIds[14] = CreateMonPicSprite_HandleDeoxys(species, SHINY_ODDS, DexScreen_GetDefaultPersonality(species), TRUE, 40, 104, 0, 0xFFFF); gSprites[sPokedexScreenData->windowIds[14]].oam.paletteNum = 2; - gSprites[sPokedexScreenData->windowIds[14]].oam.affineMode = 1; + gSprites[sPokedexScreenData->windowIds[14]].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[sPokedexScreenData->windowIds[14]].oam.matrixNum = 2; gSprites[sPokedexScreenData->windowIds[14]].oam.priority = 1; gSprites[sPokedexScreenData->windowIds[14]].y2 = gPokedexEntries[speciesId].pokemonOffset; SetOamMatrix(2, gPokedexEntries[speciesId].pokemonScale, 0, 0, gPokedexEntries[speciesId].pokemonScale); sPokedexScreenData->windowIds[15] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 80, 104, 0, 0xFFFF); gSprites[sPokedexScreenData->windowIds[15]].oam.paletteNum = 2; - gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = 1; + gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[sPokedexScreenData->windowIds[15]].oam.matrixNum = 1; gSprites[sPokedexScreenData->windowIds[15]].oam.priority = 1; gSprites[sPokedexScreenData->windowIds[15]].y2 = gPokedexEntries[speciesId].trainerOffset; diff --git a/src/pokemon.c b/src/pokemon.c index bf8daac60..066a2a9a0 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1665,7 +1665,7 @@ const u16 gLinkPlayerFacilityClasses[] = static const struct OamData sOakSpeechNidoranFDummyOamData = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, diff --git a/src/trade_scene.c b/src/trade_scene.c index 29fd00c2f..191385b6b 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -1465,7 +1465,7 @@ static bool8 DoTradeAnim_Cable(void) if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0])) { gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = sSpriteAffineAnimTable_PlayerPokePicAlt; - gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3; + gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3); StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0); } @@ -1968,7 +1968,7 @@ static bool8 DoTradeAnim_Wireless(void) if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0])) { gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = sSpriteAffineAnimTable_PlayerPokePicAlt; - gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3; + gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3); StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0); } From 26e8d57ba120a0b1b926a9166b33329844e7ef10 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 12:58:27 -0400 Subject: [PATCH 032/105] Special Trainer IDs --- include/battle.h | 8 ++++---- src/battle_ai_script_commands.c | 4 ++-- src/battle_controller_link_opponent.c | 2 +- src/battle_controller_opponent.c | 4 ++-- src/battle_message.c | 18 +++++++++--------- src/pokemon.c | 2 +- src/union_room_battle.c | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/include/battle.h b/include/battle.h index db406e4b2..7775d5ba2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -29,10 +29,10 @@ (!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) \ && !(gDisableStructs[battler].mimickedMoves & gBitTable[moveSlot])) -#define TRAINER_OPPONENT_3FE 0x3FE -#define TRAINER_OPPONENT_C00 0xC00 -#define TRAINER_LINK_OPPONENT 0x800 -#define SECRET_BASE_OPPONENT 0x400 +// Special Trainer Ids. +#define TRAINER_UNION_ROOM 3072 +#define TRAINER_LINK_OPPONENT 2048 +#define TRAINER_SECRET_BASE 1024 // Battle Actions // These determine what each battler will do in a turn diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index eaa203a54..3c9ff75f0 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -269,7 +269,7 @@ void BattleAI_HandleItemUseBeforeAISetup(void) // Items are allowed to use in ONLY trainer battles. if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) - && (gTrainerBattleOpponent_A != SECRET_BASE_OPPONENT) + && (gTrainerBattleOpponent_A != TRAINER_SECRET_BASE) && !(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_LINK)) ) { @@ -339,7 +339,7 @@ void BattleAI_SetupAIData(void) AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_ROAMING; return; } - else if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)) && (gTrainerBattleOpponent_A != SECRET_BASE_OPPONENT)) + else if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)) && (gTrainerBattleOpponent_A != TRAINER_SECRET_BASE)) { if (gBattleTypeFlags & BATTLE_TYPE_WILD_SCRIPTED) { diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 54d031e9f..3c570ad57 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1135,7 +1135,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) else { xPos = 176; - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { trainerPicId = GetUnionRoomTrainerPic(); } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 6e8190985..6913dfbc2 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1122,7 +1122,7 @@ static void OpponentHandleDrawTrainerPic(void) { u32 trainerPicId; - if (gTrainerBattleOpponent_A == 0x400) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) trainerPicId = GetSecretBaseTrainerPicIndex(); else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) trainerPicId = GetBattleTowerTrainerFrontSpriteId(); @@ -1152,7 +1152,7 @@ static void OpponentHandleTrainerSlide(void) { u32 trainerPicId; - if (gTrainerBattleOpponent_A == 0x400) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) trainerPicId = GetSecretBaseTrainerPicIndex(); else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) trainerPicId = GetBattleTowerTrainerFrontSpriteId(); diff --git a/src/battle_message.c b/src/battle_message.c index a845fe57c..519c03a30 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1499,7 +1499,7 @@ void BufferStringBattle(u16 stringId) } else { - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1WantsToBattle; else stringPtr = sText_LinkTrainerWantsToBattle; @@ -1559,7 +1559,7 @@ void BufferStringBattle(u16 stringId) { if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) stringPtr = sText_Trainer1SentOutPkmn; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn; else stringPtr = sText_LinkTrainerSentOutPkmn; @@ -1611,7 +1611,7 @@ void BufferStringBattle(u16 stringId) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_LinkTrainerMultiSentOutPkmn; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn2; else stringPtr = sText_LinkTrainerSentOutPkmn2; @@ -1644,7 +1644,7 @@ void BufferStringBattle(u16 stringId) stringPtr = sText_GotAwaySafely; else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_TwoWildFled; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = gUnknown_83FE9D4; else stringPtr = sText_WildFled; @@ -1669,7 +1669,7 @@ void BufferStringBattle(u16 stringId) break; } } - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { switch (gBattleTextBuff1[0]) { @@ -1981,9 +1981,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gAbilityNames[sBattlerAbilities[gEffectBattler]]; break; case B_TXT_TRAINER1_CLASS: // trainer class name - if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()]; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) toCpy = gTrainerClassNames[GetUnionRoomTrainerClass()]; else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) toCpy = gTrainerClassNames[GetBattleTowerTrainerClassNameId()]; @@ -1995,14 +1995,14 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_A].trainerClass]; break; case B_TXT_TRAINER1_NAME: // trainer1 name - if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) { for (i = 0; i < (s32)NELEMS(gBattleResources->secretBase->trainerName); i++) text[i] = gBattleResources->secretBase->trainerName[i]; text[i] = EOS; toCpy = text; } - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { toCpy = gLinkPlayers[multiplayerId ^ BIT_SIDE].name; } diff --git a/src/pokemon.c b/src/pokemon.c index 066a2a9a0..60a7a8d0d 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -3796,7 +3796,7 @@ static void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord } } gBattleTypeFlags = 8; - gTrainerBattleOpponent_A = SECRET_BASE_OPPONENT; + gTrainerBattleOpponent_A = TRAINER_SECRET_BASE; } u8 GetSecretBaseTrainerPicIndex(void) diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 56676ab7b..907c9ef8d 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -58,7 +58,7 @@ static void SetUpPartiesAndStartBattle(void) } IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES); CalculatePlayerPartyCount(); - gTrainerBattleOpponent_A = TRAINER_OPPONENT_C00; + gTrainerBattleOpponent_A = TRAINER_UNION_ROOM; SetMainCallback2(CB2_InitBattle); } From 27e81b2fc7884beba97b44a81e18aa81513b4539 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 12:59:38 -0400 Subject: [PATCH 033/105] UnusedControllerStruct --- include/battle_controllers.h | 4 ++-- src/battle_controller_link_opponent.c | 8 ++++---- src/battle_controller_link_partner.c | 8 ++++---- src/battle_controller_opponent.c | 8 ++++---- src/battle_controller_player.c | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b39db340c..1acd317ac 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -108,8 +108,8 @@ enum { struct UnusedControllerStruct { - u8 field_0 : 7; - u8 flag_x80 : 1; + u8 unk:7; + u8 flag:1; }; struct HpAndStatus diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 3c570ad57..741202552 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1450,25 +1450,25 @@ static void LinkOpponentHandleOneReturnValue_Duplicate(void) static void LinkOpponentHandleCmd37(void) { - gUnusedControllerStruct.field_0 = 0; + gUnusedControllerStruct.unk = 0; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleCmd38(void) { - gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleCmd39(void) { - gUnusedControllerStruct.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleCmd40(void) { - gUnusedControllerStruct.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; LinkOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index f00a4fc75..3387395de 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1362,25 +1362,25 @@ static void LinkPartnerHandleOneReturnValue_Duplicate(void) static void LinkPartnerHandleCmd37(void) { - gUnusedControllerStruct.field_0 = 0; + gUnusedControllerStruct.unk = 0; LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleCmd38(void) { - gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleCmd39(void) { - gUnusedControllerStruct.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleCmd40(void) { - gUnusedControllerStruct.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; LinkPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 6913dfbc2..ed88ed9e2 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1548,25 +1548,25 @@ static void OpponentHandleOneReturnValue_Duplicate(void) static void OpponentHandleCmd37(void) { - gUnusedControllerStruct.field_0 = 0; + gUnusedControllerStruct.unk = 0; OpponentBufferExecCompleted(); } static void OpponentHandleCmd38(void) { - gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; OpponentBufferExecCompleted(); } static void OpponentHandleCmd39(void) { - gUnusedControllerStruct.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; OpponentBufferExecCompleted(); } static void OpponentHandleCmd40(void) { - gUnusedControllerStruct.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; OpponentBufferExecCompleted(); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 394e72093..8b4914261 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2626,25 +2626,25 @@ static void PlayerHandleOneReturnValue_Duplicate(void) static void PlayerHandleCmd37(void) { - gUnusedControllerStruct.field_0 = 0; + gUnusedControllerStruct.unk = 0; PlayerBufferExecCompleted(); } static void PlayerHandleCmd38(void) { - gUnusedControllerStruct.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; PlayerBufferExecCompleted(); } static void PlayerHandleCmd39(void) { - gUnusedControllerStruct.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; PlayerBufferExecCompleted(); } static void PlayerHandleCmd40(void) { - gUnusedControllerStruct.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; PlayerBufferExecCompleted(); } From 9205e7ad6731a31f04ed38501b414748ff273f52 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 14:02:08 -0400 Subject: [PATCH 034/105] Uses of DISPLAY_WIDTH --- src/battle_controller_link_partner.c | 4 ++-- src/battle_controller_oak_old_man.c | 2 +- src/battle_controller_opponent.c | 4 ++-- src/battle_controller_player.c | 2 +- src/battle_controller_pokedude.c | 6 +++--- src/battle_controller_safari.c | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 3387395de..cf4e09fa6 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -982,7 +982,7 @@ static void LinkPartnerHandleLoadMonSprite(void) GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); @@ -1076,7 +1076,7 @@ static void LinkPartnerHandleDrawTrainerPic(void) SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index e3e3ae242..dc86622d9 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -1592,7 +1592,7 @@ static void OakOldManHandleDrawTrainerPic(void) 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index ed88ed9e2..d7c3cb8c6 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1039,7 +1039,7 @@ static void OpponentHandleLoadMonSprite(void) GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), y, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1138,7 +1138,7 @@ static void OpponentHandleDrawTrainerPic(void) 176, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 8b4914261..d4896e487 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2191,7 +2191,7 @@ static void PlayerHandleDrawTrainerPic(void) (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 4f98f6023..684f3c467 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -1310,7 +1310,7 @@ static void PokedudeHandleLoadMonSprite(void) GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), y, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1357,7 +1357,7 @@ static void PokedudeHandleDrawTrainerPic(void) 80, (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, 30); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; @@ -1371,7 +1371,7 @@ static void PokedudeHandleDrawTrainerPic(void) 176, (8 - gTrainerFrontPicCoords[tranerPicid].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[tranerPicid].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 6e7b1ee9a..7422ff7db 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -346,7 +346,7 @@ static void SafariHandleDrawTrainerPic(void) (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; From 9020751fc41ea88ceac9776e38dc66a9ee89c8fb Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 14:17:35 -0400 Subject: [PATCH 035/105] triedShinyMonAnim --- src/battle_controller_link_partner.c | 2 +- src/battle_controller_oak_old_man.c | 4 ++-- src/battle_controller_opponent.c | 10 +++++----- src/battle_controller_player.c | 6 +++--- src/battle_controller_pokedude.c | 8 ++++---- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index cf4e09fa6..6512b07b5 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -331,7 +331,7 @@ static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index dc86622d9..9b96c09bb 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -442,9 +442,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index d7c3cb8c6..3bf41a8b8 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -225,9 +225,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) var = FALSE; if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -281,7 +281,7 @@ static void TryShinyAnimAfterMonAnim(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -382,7 +382,7 @@ static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -1026,7 +1026,7 @@ static void OpponentHandleLoadMonSprite(void) { DecompressGhostFrontPic(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); y = GetGhostSpriteDefault_Y(gActiveBattler); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = TRUE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 1; } else diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index d4896e487..312a050ec 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -890,9 +890,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -941,7 +941,7 @@ static void SwitchIn_CleanShinyAnimShowSubstitute(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 684f3c467..487d100ee 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -239,7 +239,7 @@ static void CompleteOnBattlerSpritePosX_0(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -279,7 +279,7 @@ static void SwitchIn_CleanShinyAnimShowSubstitute(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -423,9 +423,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); From 2f03c4a62c0a0048baf43eca67e630c3e83469ce Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Aug 2022 14:17:56 -0400 Subject: [PATCH 036/105] src/battle_controller_link_opponent.c --- src/battle_controller_link_opponent.c | 164 +++++++++++++++----------- 1 file changed, 98 insertions(+), 66 deletions(-) diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 741202552..b610a6e99 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1,4 +1,9 @@ #include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_controllers.h" +#include "battle_interface.h" +#include "battle_message.h" #include "gflib.h" #include "data.h" #include "link.h" @@ -6,11 +11,6 @@ #include "pokeball.h" #include "task.h" #include "util.h" -#include "battle.h" -#include "battle_anim.h" -#include "battle_controllers.h" -#include "battle_interface.h" -#include "battle_message.h" #include "constants/battle_anim.h" #include "constants/songs.h" #include "constants/sound.h" @@ -53,12 +53,12 @@ static void LinkOpponentHandleTwoReturnValues(void); static void LinkOpponentHandleChosenMonReturnValue(void); static void LinkOpponentHandleOneReturnValue(void); static void LinkOpponentHandleOneReturnValue_Duplicate(void); -static void LinkOpponentHandleCmd37(void); -static void LinkOpponentHandleCmd38(void); -static void LinkOpponentHandleCmd39(void); -static void LinkOpponentHandleCmd40(void); +static void LinkOpponentHandleClearUnkVar(void); +static void LinkOpponentHandleSetUnkVar(void); +static void LinkOpponentHandleClearUnkFlag(void); +static void LinkOpponentHandleToggleUnkFlag(void); static void LinkOpponentHandleHitAnimation(void); -static void LinkOpponentHandleCmd42(void); +static void LinkOpponentHandleCantSwitch(void); static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlayFanfare(void); static void LinkOpponentHandleFaintingCry(void); @@ -71,17 +71,17 @@ static void LinkOpponentHandleSpriteInvisibility(void); static void LinkOpponentHandleBattleAnimation(void); static void LinkOpponentHandleLinkStandbyMsg(void); static void LinkOpponentHandleResetActionMoveSelection(void); -static void LinkOpponentHandleCmd55(void); +static void LinkOpponentHandleEndLinkBattle(void); static void LinkOpponentCmdEnd(void); static void LinkOpponentBufferRunCommand(void); static void LinkOpponentBufferExecCompleted(void); +static void SwitchIn_HandleSoundAndEnd(void); static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst); static void SetLinkOpponentMonData(u8 monId); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void LinkOpponentDoMoveAnimation(void); -static void SwitchIn_HandleSoundAndEnd(void); -static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void Task_StartSendOutAnim(u8 taskId); static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite); static void EndDrawPartyStatusSummary(void); @@ -125,12 +125,12 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandleChosenMonReturnValue, LinkOpponentHandleOneReturnValue, LinkOpponentHandleOneReturnValue_Duplicate, - LinkOpponentHandleCmd37, - LinkOpponentHandleCmd38, - LinkOpponentHandleCmd39, - LinkOpponentHandleCmd40, + LinkOpponentHandleClearUnkVar, + LinkOpponentHandleSetUnkVar, + LinkOpponentHandleClearUnkFlag, + LinkOpponentHandleToggleUnkFlag, LinkOpponentHandleHitAnimation, - LinkOpponentHandleCmd42, + LinkOpponentHandleCantSwitch, LinkOpponentHandlePlaySE, LinkOpponentHandlePlayFanfare, LinkOpponentHandleFaintingCry, @@ -143,11 +143,10 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandleBattleAnimation, LinkOpponentHandleLinkStandbyMsg, LinkOpponentHandleResetActionMoveSelection, - LinkOpponentHandleCmd55, + LinkOpponentHandleEndLinkBattle, LinkOpponentCmdEnd }; - static void LinkOpponentDummy(void) { } @@ -161,7 +160,7 @@ static void LinkOpponentBufferRunCommand(void) { if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBattler][0] < NELEMS(sLinkOpponentBufferCommands)) + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkOpponentBufferCommands)) sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkOpponentBufferExecCompleted(); @@ -197,31 +196,31 @@ static void Intro_DelayAndEnd(void) static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool8 var = FALSE; + bool32 healthboxAnimDone = FALSE; - if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))) + if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - var = TRUE; + healthboxAnimDone = TRUE; } else if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == gSprites[gHealthboxSpriteIds[gActiveBattler]].callback) { - var = TRUE; + healthboxAnimDone = TRUE; } if (IsCryPlayingOrClearCrySongs()) - var = FALSE; - if (var) + healthboxAnimDone = FALSE; + if (healthboxAnimDone) { if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } @@ -287,8 +286,8 @@ static void TryShinyAnimAfterMonAnim(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); LinkOpponentBufferExecCompleted(); @@ -301,10 +300,15 @@ static void CompleteOnHealthbarDone(void) s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + if (hpValue != -1) + { UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + } else + { LinkOpponentBufferExecCompleted(); + } } static void HideHealthboxAfterMonFaint(void) @@ -347,9 +351,9 @@ static void DoHitAnimBlinkSpriteEffect(void) } else { - if (!(gSprites[spriteId].data[1] % 4)) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - ++gSprites[spriteId].data[1]; + gSprites[spriteId].data[1]++; } } @@ -359,6 +363,7 @@ static void SwitchIn_ShowSubstitute(void) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd; } } @@ -376,11 +381,14 @@ static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); @@ -392,11 +400,13 @@ static void SwitchIn_ShowHealthbox(void) static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) + { TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); + } if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); @@ -439,14 +449,14 @@ static void LinkOpponentHandleGetMonData(void) u8 monToCheck; s32 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { size += CopyLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) size += CopyLinkOpponentMonData(i, monData + size); @@ -472,7 +482,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES); battleMon.item = GetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM); - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { battleMon.moves[size] = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + size); battleMon.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size); @@ -503,7 +513,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; - for (size = 0; size < sizeof(battleMon); ++size) + for (size = 0; size < sizeof(battleMon); size++) dst[size] = src[size]; break; case REQUEST_SPECIES_BATTLE: @@ -519,14 +529,14 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_MOVES_PP_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { moveData.moves[size] = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + size); moveData.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size); } moveData.ppBonuses = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES); src = (u8 *)(&moveData); - for (size = 0; size < sizeof(moveData); ++size) + for (size = 0; size < sizeof(moveData); size++) dst[size] = src[size]; break; case REQUEST_MOVE1_BATTLE: @@ -539,10 +549,10 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_PP_DATA_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) dst[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size); dst[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES); - ++size; + size++; break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: @@ -803,7 +813,7 @@ static void SetLinkOpponentMonData(u8 monId) SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &battlePokemon->species); SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &battlePokemon->item); - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]); SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + i, &battlePokemon->pp[i]); @@ -842,7 +852,7 @@ static void SetLinkOpponentMonData(u8 monId) SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + i, &moveData->moves[i]); SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + i, &moveData->pp[i]); @@ -1055,13 +1065,18 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], gBattleMonForms[battlerId]); + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } @@ -1103,6 +1118,8 @@ static void DoSwitchOutAnimation(void) } } +#define sSpeedX data[0] + static void LinkOpponentHandleDrawTrainerPic(void) { s16 xPos; @@ -1110,7 +1127,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBattlerPosition(gActiveBattler) & BIT_FLANK) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 152; else // first mon xPos = 200; @@ -1163,13 +1180,14 @@ static void LinkOpponentHandleDrawTrainerPic(void) xPos, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } @@ -1178,6 +1196,8 @@ static void LinkOpponentHandleTrainerSlide(void) LinkOpponentBufferExecCompleted(); } +#undef sSpeedX + static void LinkOpponentHandleTrainerSlideBack(void) { SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); @@ -1195,7 +1215,7 @@ static void LinkOpponentHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { @@ -1263,7 +1283,7 @@ static void LinkOpponentDoMoveAnimation(void) { case 0: if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); @@ -1359,6 +1379,7 @@ static void LinkOpponentHandleHealthBarUpdate(void) LoadBattleBarGfx(0); hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); + if (hpVal != INSTANT_HP_BAR_DROP) { u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); @@ -1372,6 +1393,7 @@ static void LinkOpponentHandleHealthBarUpdate(void) SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } @@ -1448,25 +1470,25 @@ static void LinkOpponentHandleOneReturnValue_Duplicate(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd37(void) +static void LinkOpponentHandleClearUnkVar(void) { gUnusedControllerStruct.unk = 0; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd38(void) +static void LinkOpponentHandleSetUnkVar(void) { gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd39(void) +static void LinkOpponentHandleClearUnkFlag(void) { gUnusedControllerStruct.flag = 0; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd40(void) +static void LinkOpponentHandleToggleUnkFlag(void) { gUnusedControllerStruct.flag ^= 1; LinkOpponentBufferExecCompleted(); @@ -1487,7 +1509,7 @@ static void LinkOpponentHandleHitAnimation(void) } } -static void LinkOpponentHandleCmd42(void) +static void LinkOpponentHandleCantSwitch(void) { LinkOpponentBufferExecCompleted(); } @@ -1500,6 +1522,7 @@ static void LinkOpponentHandlePlaySE(void) pan = SOUND_PAN_ATTACKER; else pan = SOUND_PAN_TARGET; + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkOpponentBufferExecCompleted(); } @@ -1527,18 +1550,23 @@ static void LinkOpponentHandleIntroSlide(void) static void LinkOpponentHandleIntroTrainerBallThrow(void) { - u8 paletteNum, taskId; + u8 taskId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = LinkOpponentDummy; } @@ -1577,7 +1605,7 @@ static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite) static void LinkOpponentHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBattler][1] && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { LinkOpponentBufferExecCompleted(); } @@ -1585,11 +1613,11 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; - if (gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] != 0) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) { - ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++; return; } else @@ -1597,17 +1625,20 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0; } } + gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; - if (gBattleBufferA[gActiveBattler][2]) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0x5D; + + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; LinkOpponentBufferExecCompleted(); @@ -1660,12 +1691,13 @@ static void LinkOpponentHandleResetActionMoveSelection(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd55(void) +static void LinkOpponentHandleEndLinkBattle(void) { if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW) gBattleOutcome = gBattleBufferA[gActiveBattler][1]; else gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW; + FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); From a3c2108af71044e277a7a500819e1f1cd1632114 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 18 Aug 2022 12:31:06 -0400 Subject: [PATCH 037/105] Sync battle anim - flying, header cleanup --- Makefile | 2 +- include/battle_anim.h | 390 ++++--------------------- ld_script.txt | 4 +- src/battle_anim_effects_1.c | 184 ++++++++---- src/battle_anim_effects_2.c | 120 +++++--- src/battle_anim_effects_3.c | 117 +++++--- src/{flying.c => battle_anim_flying.c} | 149 +++++----- 7 files changed, 407 insertions(+), 559 deletions(-) rename src/{flying.c => battle_anim_flying.c} (89%) diff --git a/Makefile b/Makefile index 785d95df7..ec560f765 100644 --- a/Makefile +++ b/Makefile @@ -245,7 +245,7 @@ $(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork $(C_BUILDDIR)/trainer_tower.o: CFLAGS += -ffreestanding -$(C_BUILDDIR)/flying.o: CFLAGS += -ffreestanding +$(C_BUILDDIR)/battle_anim_flying.o: CFLAGS += -ffreestanding $(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet diff --git a/include/battle_anim.h b/include/battle_anim.h index ffff805d6..120935880 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -17,6 +17,36 @@ enum BG_ANIM_SCREEN_BASE_BLOCK }; +enum +{ + BATTLER_COORD_X, + BATTLER_COORD_Y, + BATTLER_COORD_X_2, + BATTLER_COORD_Y_PIC_OFFSET, + BATTLER_COORD_Y_PIC_OFFSET_DEFAULT, +}; + +enum +{ + BATTLER_COORD_ATTR_HEIGHT, + BATTLER_COORD_ATTR_WIDTH, + BATTLER_COORD_ATTR_TOP, + BATTLER_COORD_ATTR_BOTTOM, + BATTLER_COORD_ATTR_LEFT, + BATTLER_COORD_ATTR_RIGHT, + BATTLER_COORD_ATTR_RAW_BOTTOM, +}; + +// battle_anim_status_effects.s +#define STAT_ANIM_PLUS1 15 +#define STAT_ANIM_PLUS2 39 +#define STAT_ANIM_MINUS1 22 +#define STAT_ANIM_MINUS2 46 +#define STAT_ANIM_MULTIPLE_PLUS1 55 +#define STAT_ANIM_MULTIPLE_PLUS2 56 +#define STAT_ANIM_MULTIPLE_MINUS1 57 +#define STAT_ANIM_MULTIPLE_MINUS2 58 + struct BattleAnimBgData { u8 *bgTiles; @@ -62,7 +92,6 @@ extern s32 gAnimMoveDmg; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; extern u8 gAnimCustomPanning; -// battle_anim.c extern const struct OamData gOamData_AffineOff_ObjNormal_8x8; extern const struct OamData gOamData_AffineOff_ObjNormal_16x16; extern const struct OamData gOamData_AffineOff_ObjNormal_32x32; @@ -135,8 +164,27 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_8x16; extern const struct OamData gOamData_AffineDouble_ObjBlend_8x32; extern const struct OamData gOamData_AffineDouble_ObjBlend_16x32; extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64; +extern const struct MonCoords gCastformFrontSpriteCoords[]; extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; +extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; +extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; +extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; +extern const struct SpriteTemplate gWishStarSpriteTemplate; +extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; +extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; +extern const union AffineAnimCmd *const gAffineAnims_Bite[]; +extern const union AffineAnimCmd *const gAffineAnims_Droplet[]; +extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; +extern const union AnimCmd *const gAnims_SmallBubblePair[]; +extern const union AnimCmd *const gAnims_BasicFire[]; +extern const union AnimCmd *const gAnims_WaterMudOrb[]; +extern const union AnimCmd *const gAnims_WaterBubble[]; +extern const union AnimCmd *const gMusicNotesAnimTable[]; +extern const u8 *const gBattleAnims_StatusConditions[]; +extern const u8 *const gBattleAnims_Moves[]; +extern const u16 gMovesWithQuietBGM[]; + void MoveBattlerSpriteToBG(u8 battlerId, u8); void ResetBattleAnimBg(u8); void ClearBattleAnimationVars(void); @@ -152,207 +200,19 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); bool8 IsBattlerSpriteVisible(u8 battlerId); s16 KeepPanInRange(s16 a, s32 oldPan); void RelocateBattleBgPal(u16 paletteNum, u16 *dest, s32 offset, u8 largeScreen); - -// battle_intro.c void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); s32 GetAnimBgAttribute(u8 bgId, u8 attributeId); void HandleIntroSlide(u8 terrain); void BattleIntroSlideEnd(u8 taskId); void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset); - -// battle_anim_effects_1.c -extern const union AnimCmd *const gMusicNotesAnimTable[]; -extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; -void AnimMovePowderParticle(struct Sprite *); -void AnimPowerAbsorptionOrb(struct Sprite *); -void AnimSolarBeamBigOrb(struct Sprite *); -void AnimSolarBeamSmallOrb(struct Sprite *); -void AnimAbsorptionOrb(struct Sprite *); -void AnimHyperBeamOrb(struct Sprite *); -void AnimSporeParticle(struct Sprite *); -void AnimPetalDanceBigFlower(struct Sprite *); -void AnimPetalDanceSmallFlower(struct Sprite *); -void AnimRazorLeafParticle(struct Sprite *); -void AnimLeechSeed(struct Sprite *); -void AnimTranslateLinearSingleSineWave(struct Sprite *); -void AnimMoveTwisterParticle(struct Sprite *); -void AnimConstrictBinding(struct Sprite *); -void AnimMimicOrb(struct Sprite *); -void AnimIngrainRoot(struct Sprite *); -void AnimFrenzyPlantRoot(struct Sprite *); -void AnimIngrainOrb(struct Sprite *); -void AnimPresent(struct Sprite *); -void AnimKnockOffItem(struct Sprite *); -void AnimPresentHealParticle(struct Sprite *); -void AnimItemSteal(struct Sprite *); -void AnimTrickBag(struct Sprite *); -void AnimFlyingParticle(struct Sprite *); -void AnimNeedleArmSpike(struct Sprite *); -void AnimSlidingHit(struct Sprite *); -void AnimWhipHit(struct Sprite *); -void AnimFlickeringPunch(struct Sprite *); -void AnimCuttingSlice(struct Sprite *); -void AnimAirCutterSlice(struct Sprite *); -void AnimCirclingMusicNote(struct Sprite *); -void AnimProtect(struct Sprite *); -void AnimMilkBottle(struct Sprite *); -void AnimGrantingStars(struct Sprite *); -void AnimSparkingStars(struct Sprite *); -void AnimBubbleBurst(struct Sprite *); -void AnimSleepLetterZ(struct Sprite *); -void AnimLockOnTarget(struct Sprite *); -void AnimLockOnMoveTarget(struct Sprite *); -void AnimBowMon(struct Sprite *); -void AnimTipMon(struct Sprite *); -void AnimSlashSlice(struct Sprite *); -void AnimFalseSwipeSlice(struct Sprite *); -void AnimFalseSwipePositionedSlice(struct Sprite *); -void AnimEndureEnergy(struct Sprite *); -void AnimSharpenSphere(struct Sprite *); -void AnimConversion(struct Sprite *); -void AnimConversion2(struct Sprite *); -void AnimMoon(struct Sprite *); -void AnimMoonlightSparkle(struct Sprite *); -void AnimHornHit(struct Sprite *); -void AnimSuperFang(struct Sprite *); -void AnimFlyingMusicNotes(struct Sprite *); -void AnimBellyDrumHand(struct Sprite *); -void AnimSlowFlyingMusicNotes(struct Sprite *); -void AnimThoughtBubble(struct Sprite *); -void AnimMetronomeFinger(struct Sprite *); -void AnimFollowMeFinger(struct Sprite *); -void AnimTauntFinger(struct Sprite *); void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite); -void AnimTask_ShrinkTargetCopy(u8 taskId); - -// battle_anim_effects_2.c -extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; -void AnimCirclingFinger(struct Sprite *); -void AnimBouncingMusicNote(struct Sprite *); -void AnimVibrateBattlerBack(struct Sprite *); -void AnimMovingClamp(struct Sprite *); -void AnimKinesisZapEnergy(struct Sprite *); -void AnimSwordsDanceBlade(struct Sprite *); -void AnimSonicBoomProjectile(struct Sprite *); -void AnimAirWaveProjectile(struct Sprite *); -void AnimVoidLines(struct Sprite *); -void AnimCoinThrow(struct Sprite *); -void AnimFallingCoin(struct Sprite *); -void AnimBulletSeed(struct Sprite *); -void AnimRazorWindTornado(struct Sprite *); -void AnimViceGripPincer(struct Sprite *); -void AnimGuillotinePincer(struct Sprite *); -void AnimBreathPuff(struct Sprite *); -void AnimAngerMark(struct Sprite *); -void AnimPencil(struct Sprite *); -void AnimBlendThinRing(struct Sprite *); -void AnimHyperVoiceRing(struct Sprite *); -void AnimUproarRing(struct Sprite *); -void AnimSoftBoiledEgg(struct Sprite *); -void AnimSpeedDust(struct Sprite *); -void AnimHealBellMusicNote(struct Sprite *); -void AnimMagentaHeart(struct Sprite *); -void AnimRedHeartProjectile(struct Sprite *); -void AnimParticleBurst(struct Sprite *); -void AnimRedHeartRising(struct Sprite *); -void AnimOrbitFast(struct Sprite *); -void AnimOrbitScatter(struct Sprite *); -void AnimSpitUpOrb(struct Sprite *); -void AnimEyeSparkle(struct Sprite *); -void AnimAngel(struct Sprite *); -void AnimPinkHeart(struct Sprite *); -void AnimDevil(struct Sprite *); -void AnimFurySwipes(struct Sprite *); -void AnimMovementWaves(struct Sprite *); -void AnimJaggedMusicNote(struct Sprite *); -void AnimPerishSongMusicNote2(struct Sprite *); -void AnimPerishSongMusicNote(struct Sprite *); -void AnimGuardRing(struct Sprite *); - -// battle_anim_effects_3.c -extern const struct SpriteTemplate gWishStarSpriteTemplate; -extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; -void AnimBlackSmoke(struct Sprite *); -void AnimWhiteHalo(struct Sprite *); -void AnimTealAlert(struct Sprite *); -void AnimMeanLookEye(struct Sprite *); -void AnimSpikes(struct Sprite *); -void AnimLeer(struct Sprite *); -void AnimLetterZ(struct Sprite *); -void AnimFang(struct Sprite *); -void AnimSpotlight(struct Sprite *); -void AnimClappingHand(struct Sprite *); -void AnimClappingHand2(struct Sprite *); -void AnimRapidSpin(struct Sprite *); -void AnimTriAttackTriangle(struct Sprite *); -void AnimBatonPassPokeball(struct Sprite *); -void AnimWishStar(struct Sprite *); -void AnimMiniTwinklingStar(struct Sprite *); -void AnimSwallowBlueOrb(struct Sprite *); -void AnimGreenStar(struct Sprite *); -void AnimWeakFrustrationAngerMark(struct Sprite *); -void AnimSweetScentPetal(struct Sprite *); -void AnimPainSplitProjectile(struct Sprite *); -void AnimFlatterConfetti(struct Sprite *); -void AnimFlatterSpotlight(struct Sprite *); -void AnimReversalOrb(struct Sprite *); -void AnimYawnCloud(struct Sprite *); -void AnimSmokeBallEscapeCloud(struct Sprite *); -void AnimFacadeSweatDrop(struct Sprite *); -void AnimRoarNoiseLine(struct Sprite *); -void AnimGlareEyeDot(struct Sprite *); -void AnimAssistPawprint(struct Sprite *); -void AnimSmellingSaltsHand(struct Sprite *); -void AnimSmellingSaltExclamation(struct Sprite *); -void AnimHelpingHandClap(struct Sprite *); -void AnimForesightMagnifyingGlass(struct Sprite *); -void AnimMeteorMashStar(struct Sprite *); -void AnimBlockX(struct Sprite *); -void AnimUnusedItemBagSteal(struct Sprite *); -void AnimKnockOffStrike(struct Sprite *); -void AnimRecycle(struct Sprite *); - -// battle_anim_special.c void TryShinyAnimation(u8 battler, struct Pokemon *mon); u8 ItemIdToBallId(u16 itemId); u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId); void DoFreeHealthboxPalsForLevelUp(u8 batterId); - -enum -{ - BATTLER_COORD_X, - BATTLER_COORD_Y, - BATTLER_COORD_X_2, - BATTLER_COORD_Y_PIC_OFFSET, - BATTLER_COORD_Y_PIC_OFFSET_DEFAULT, -}; - -enum -{ - BATTLER_COORD_ATTR_HEIGHT, - BATTLER_COORD_ATTR_WIDTH, - BATTLER_COORD_ATTR_TOP, - BATTLER_COORD_ATTR_BOTTOM, - BATTLER_COORD_ATTR_LEFT, - BATTLER_COORD_ATTR_RIGHT, - BATTLER_COORD_ATTR_RAW_BOTTOM, -}; - -// battle_anim_status_effects.s -#define STAT_ANIM_PLUS1 15 -#define STAT_ANIM_PLUS2 39 -#define STAT_ANIM_MINUS1 22 -#define STAT_ANIM_MINUS2 46 -#define STAT_ANIM_MULTIPLE_PLUS1 55 -#define STAT_ANIM_MULTIPLE_PLUS2 56 -#define STAT_ANIM_MULTIPLE_MINUS1 57 -#define STAT_ANIM_MULTIPLE_MINUS2 58 void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); - -// battle_anim_mons.c -extern const struct MonCoords gCastformFrontSpriteCoords[]; u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType); u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType); u8 GetBattlerSpriteDefault_Y(u8 battlerId); @@ -428,9 +288,6 @@ void AnimThrowProjectile(struct Sprite *sprite); void AnimTravelDiagonally(struct Sprite *sprite); s16 CloneBattlerSpriteWithBlend(u8 animBattler); void DestroySpriteWithActiveSheet(struct Sprite *sprite); -void AnimTask_AlphaFadeIn(u8 taskId); -void AnimTask_BlendMonInAndOut(u8 task); -void AnimTask_BlendPalInAndOutByTag(u8 taskId); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); @@ -439,13 +296,9 @@ void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr); void *LoadPointerFromVars(s16 lo, s16 hi); void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration); u8 BattleAnimHelper_RunSpriteSquash(struct Task *task); -void AnimTask_GetFrustrationPowerLevel(u8 taskId); void InitPrioritiesForVisibleBattlers(void); u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId); - -// Returns 2 if player left or opp right -// Returns 1 if player right or opp left u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 ignoreDeoxys); void DestroySpriteAndFreeResources_(struct Sprite *sprite); @@ -455,157 +308,16 @@ u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species); void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite); void AnimTranslateLinearAndFlicker(struct Sprite *sprite); void AnimSpinningSparkle(struct Sprite *sprite); -void AnimTask_AttackerPunchWithTrace(u8 taskId); void AnimWeatherBallUp(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite); - -// battle_anim_mon_movement.c -void AnimTask_ShakeMon(u8 taskId); -void AnimTask_ShakeMon2(u8 taskId); -void AnimTask_ShakeMonInPlace(u8 taskId); -void AnimTask_ShakeAndSinkMon(u8 taskId); -void AnimTask_TranslateMonElliptical(u8 taskId); -void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId); -void AnimTask_WindUpLunge(u8 taskId); -void AnimTask_SlideOffScreen(u8 taskId); -void AnimTask_SwayMon(u8 taskId); -void AnimTask_ScaleMonAndRestore(u8 taskId); -void AnimTask_RotateMonSpriteToSide(u8 taskId); -void AnimTask_RotateMonToSideAndRestore(u8 taskId); -void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId); - -// normal.c -extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; -extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; -extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; +void AnimParticleBurst(struct Sprite *); +void AnimMoveTwisterParticle(struct Sprite *); u32 UnpackSelectedBattlePalettes(s16 selector); -void AnimTask_CurseBlendEffect(u8 taskId); -void AnimTask_BlendColorCycleExclude(u8 taskId); -void AnimTask_BlendColorCycleByTag(u8 taskId); -void AnimTask_FlashAnimTagWithColor(u8 taskId); -void AnimTask_InvertScreenColor(u8 taskId); -void AnimTask_ShakeBattleTerrain(u8 taskId); - -// ground.c -void AnimTask_DigDownMovement(u8 taskId); -void AnimTask_DigUpMovement(u8 taskId); void AnimTask_HorizontalShake(u8 taskId); -void AnimTask_IsPowerOver99(u8 taskId); -void AnimTask_PositionFissureBgOnBattler(u8 taskId); - -// dragon.c -void AnimTask_DragonDanceWaver(u8 taskId); - -// ghost.c -void AnimTask_NightShadeClone(u8 taskId); -void AnimTask_NightmareClone(u8 taskId); -void AnimTask_SpiteTargetShadow(u8 taskId); -void AnimTask_DestinyBondWhiteShadow(u8 taskId); -void AnimTask_CurseStretchingBlackBg(u8 taskId); -void AnimTask_GrudgeFlames(u8 taskId); -void sub_80B6BBC(u8 taskId); - -// rock.c -void AnimTask_LoadSandstormBackground(u8 taskId); -void AnimTask_Rollout(u8 taskId); -void AnimTask_GetSeismicTossDamageLevel(u8 taskId); -void AnimTask_MoveSeismicTossBg(u8 taskId); -void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId); - -// psychic.c -void AnimTask_MeditateStretchAttacker(u8 taskId); -void AnimTask_Teleport(u8 taskId); -void AnimTask_ImprisonOrbs(u8 taskId); -void AnimTask_SkillSwap(u8 taskId); -void AnimTask_ExtrasensoryDistortion(u8 taskId); -void AnimTask_TransparentCloneGrowAndShrink(u8 taskId); - -// dark.c -extern const union AffineAnimCmd *const gAffineAnims_Bite[]; -void AnimTask_AttackerFadeToInvisible(u8 taskId); -void AnimTask_AttackerFadeFromInvisible(u8 taskId); -void AnimTask_InitAttackerFadeFromInvisible(u8 taskId); -void AnimTask_MoveAttackerMementoShadow(u8 taskId); -void AnimTask_MoveTargetMementoShadow(u8 taskId); -void AnimTask_InitMementoShadow(u8 taskId); -void AnimTask_MementoHandleBg(u8 taskId); -void AnimTask_MetallicShine(u8 taskId); -void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId); -void GetIsDoomDesireHitTurn(u8 taskId); - -// flying.c -void AnimTask_AnimateGustTornadoPalette(u8 taskId); void DestroyAnimSpriteAfterTimer(struct Sprite *sprite); -void AnimTask_DrillPeckHitSplats(u8 taskId); - -// poison.c -extern const union AffineAnimCmd *const gAffineAnims_Droplet[]; - -// fighting.c -void AnimTask_MoveSkyUppercutBg(u8 taskId); - -// ice.c -extern const union AnimCmd *const gAnims_SmallBubblePair[]; -void AnimTask_HazeScrollingFog(u8 taskId); -void AnimTask_MistBallFog(u8 taskId); -void AnimTask_Hail(u8 taskId); -void AnimTask_GetRolloutCounter(u8 taskId); - -// electric.c -void AnimTask_ElectricBolt(u8 taskId); -void AnimTask_ElectricChargingParticles(u8 taskId); -void AnimTask_VoltTackleAttackerReappear(u8 taskId); -void AnimTask_VoltTackleBolt(u8 taskId); -void AnimTask_ShockWaveProgressingBolt(u8 taskId); -void AnimTask_ShockWaveLightning(u8 taskId); - -// fire.c -extern const union AnimCmd *const gAnims_BasicFire[]; -void AnimTask_EruptionLaunchRocks(u8 taskId); -void AnimTask_ShakeTargetInPattern(u8 taskId); -void AnimTask_BlendBackground(u8 taskId); -void AnimTask_MoveHeatWaveTargets(u8 taskId); - -// water.c -extern const union AnimCmd *const gAnims_WaterMudOrb[]; -extern const union AnimCmd *const gAnims_WaterBubble[]; void AnimWaterPulseRing(struct Sprite *sprite); - -// smokescreen.c u8 SmokescreenImpact(s16 x, s16 y, u8 a3); - -// battle_anim_utility_funcs.c -void AnimTask_BlendSelected(u8 taskId); -void AnimTask_BlendExcept(u8 taskId); -void AnimTask_SetCamouflageBlend(u8 taskId); -void AnimTask_BlendParticle(u8 taskId); -void AnimTask_HardwarePaletteFade(u8 taskId); -void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId); -void AnimTask_SetUpCurseBackground(u8 taskId); void InitStatsChangeAnimation(u8 taskId); -void AnimTask_BlendNonAttackerPalettes(u8 taskId); -void AnimTask_StartSlidingBg(u8 taskId); -void AnimTask_GetAttackerSide(u8 taskId); -void AnimTask_GetTargetSide(u8 taskId); -void AnimTask_GetTargetIsAttackerPartner(u8 taskId); -void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId); void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette); -void AnimTask_GetBattleTerrain(u8 taskId); -void AnimTask_AllocBackupPalBuffer(u8 taskId); -void AnimTask_FreeBackupPalBuffer(u8 taskId); -void AnimTask_CopyPalUnfadedToBackup(u8 taskId); -void AnimTask_CopyPalUnfadedFromBackup(u8 taskId); -void AnimTask_CopyPalFadedToUnfaded(u8 taskId); -void AnimTask_IsContest(u8 taskId); -void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId); -void AnimTask_IsTargetSameSide(u8 taskId); -void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId); -void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId); -void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId); - -// battle_anim_scripts.s -extern const u8 *const gBattleAnims_StatusConditions[]; -extern const u16 gMovesWithQuietBGM[]; -extern const u8 *const gBattleAnims_Moves[]; #endif // GUARD_BATTLE_ANIM_H diff --git a/ld_script.txt b/ld_script.txt index e3048c656..21538a7ba 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -168,7 +168,7 @@ SECTIONS { src/battle_anim_ice.o(.text); src/battle_anim_fight.o(.text); src/battle_anim_poison.o(.text); - src/flying.o(.text); + src/battle_anim_flying.o(.text); src/battle_anim_psychic.o(.text); src/battle_anim_bug.o(.text); src/battle_anim_rock.o(.text); @@ -480,7 +480,7 @@ SECTIONS { src/battle_anim_ice.o(.rodata); src/battle_anim_fight.o(.rodata); src/battle_anim_poison.o(.rodata); - src/flying.o(.rodata); + src/battle_anim_flying.o(.rodata); src/battle_anim_psychic.o(.rodata); src/battle_anim_bug.o(.rodata); src/battle_anim_rock.o(.rodata); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 3e22541be..c4df329a3 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -14,25 +14,47 @@ struct { s16 targetY; } static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read. +static void AnimMovePowderParticle(struct Sprite *); static void AnimMovePowderParticle_Step(struct Sprite *); +static void AnimSolarBeamSmallOrb(struct Sprite *); static void AnimSolarBeamSmallOrb_Step(struct Sprite *); +static void AnimSolarBeamBigOrb(struct Sprite *); +static void AnimPowerAbsorptionOrb(struct Sprite *); +static void AnimAbsorptionOrb(struct Sprite *); static void AnimAbsorptionOrb_Step(struct Sprite *); +static void AnimHyperBeamOrb(struct Sprite *); static void AnimHyperBeamOrb_Step(struct Sprite *); +static void AnimMimicOrb(struct Sprite *); +static void AnimLeechSeed(struct Sprite *); static void AnimLeechSeed_Step(struct Sprite *); static void AnimLeechSeedSprouts(struct Sprite *); +static void AnimSporeParticle(struct Sprite *); static void AnimSporeParticle_Step(struct Sprite *); +static void AnimPetalDanceBigFlower(struct Sprite *); static void AnimPetalDanceBigFlower_Step(struct Sprite *); +static void AnimPetalDanceSmallFlower(struct Sprite *); static void AnimPetalDanceSmallFlower_Step(struct Sprite *); +static void AnimRazorLeafParticle(struct Sprite *); static void AnimRazorLeafParticle_Step1(struct Sprite *); static void AnimRazorLeafParticle_Step2(struct Sprite *); +static void AnimIngrainRoot(struct Sprite *); +static void AnimFrenzyPlantRoot(struct Sprite *); +static void AnimIngrainOrb(struct Sprite *); +static void AnimTranslateLinearSingleSineWave(struct Sprite *); static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *); static void AnimMoveTwisterParticle_Step(struct Sprite *); +static void AnimConstrictBinding(struct Sprite *); static void AnimConstrictBinding_Step1(struct Sprite *); static void AnimConstrictBinding_Step2(struct Sprite *); static void AnimTask_DuplicateAndShrinkToPos_Step1(u8); static void AnimTask_DuplicateAndShrinkToPos_Step2(u8); +static void AnimKnockOffItem(struct Sprite *); +static void AnimPresent(struct Sprite *); +static void AnimPresentHealParticle(struct Sprite *); +static void AnimItemSteal(struct Sprite *); static void AnimItemSteal_Step3(struct Sprite *); static void AnimRootFlickerOut(struct Sprite *); +static void AnimTrickBag(struct Sprite *); static void AnimTrickBag_Step1(struct Sprite *); static void AnimTrickBag_Step2(struct Sprite *); static void AnimTrickBag_Step3(struct Sprite *); @@ -40,52 +62,88 @@ static void AnimTask_LeafBlade_Step(u8); static s16 LeafBladeGetPosFactor(struct Sprite *); static void AnimTask_LeafBlade_Step2(struct Task *, u8); static void AnimTask_LeafBlade_Step2_Callback(struct Sprite *); +static void AnimFlyingParticle(struct Sprite *); static void AnimFlyingParticle_Step(struct Sprite *); +static void AnimNeedleArmSpike(struct Sprite *); static void AnimNeedleArmSpike_Step(struct Sprite *); static void AnimSlice_Step(struct Sprite *); +static void AnimCirclingMusicNote(struct Sprite *); static void AnimCirclingMusicNote_Step(struct Sprite *); +static void AnimProtect(struct Sprite *); static void AnimProtect_Step(struct Sprite *); +static void AnimMilkBottle(struct Sprite *); static void AnimMilkBottle_Step1(struct Sprite *); static void AnimMilkBottle_Step2(struct Sprite *, int, int); +static void AnimBubbleBurst(struct Sprite *); static void AnimBubbleBurst_Step(struct Sprite *); +static void AnimSleepLetterZ(struct Sprite *); static void AnimSleepLetterZ_Step(struct Sprite *); +static void AnimLockOnTarget(struct Sprite *); static void AnimLockOnTarget_Step1(struct Sprite *); static void AnimLockOnTarget_Step2(struct Sprite *); static void AnimLockOnTarget_Step3(struct Sprite *); static void AnimLockOnTarget_Step4(struct Sprite *); static void AnimLockOnTarget_Step5(struct Sprite *); static void AnimLockOnTarget_Step6(struct Sprite *); +static void AnimLockOnMoveTarget(struct Sprite *); +static void AnimBowMon(struct Sprite *); static void AnimBowMon_Step1(struct Sprite *); static void AnimBowMon_Step1_Callback(struct Sprite *); static void AnimBowMon_Step2(struct Sprite *); static void AnimBowMon_Step3(struct Sprite *); static void AnimBowMon_Step4(struct Sprite *); static void AnimBowMon_Step3_Callback(struct Sprite *); +static void AnimTipMon(struct Sprite *sprite); static void AnimTipMon_Step(struct Sprite *); static void AnimTask_SkullBashPositionSet(u8); static void AnimTask_SkullBashPositionReset(u8); +static void AnimSlashSlice(struct Sprite *); +static void AnimFalseSwipeSlice(struct Sprite *); static void AnimFalseSwipeSlice_Step1(struct Sprite *); static void AnimFalseSwipeSlice_Step2(struct Sprite *); static void AnimFalseSwipeSlice_Step3(struct Sprite *); +static void AnimFalseSwipePositionedSlice(struct Sprite *); +static void AnimEndureEnergy(struct Sprite *); static void AnimEndureEnergy_Step(struct Sprite *); +static void AnimSharpenSphere(struct Sprite *); static void AnimSharpenSphere_Step(struct Sprite *); -static void AnimConversion2Step(struct Sprite *); +static void AnimConversion(struct Sprite *); +static void AnimConversion2(struct Sprite *); +static void AnimConversion2_Step(struct Sprite *); +static void AnimMoon(struct Sprite *); static void AnimMoon_Step(struct Sprite *); +static void AnimMoonlightSparkle(struct Sprite *); static void AnimMoonlightSparkle_Step(struct Sprite *); +static void AnimHornHit(struct Sprite *); static void AnimHornHit_Step(struct Sprite *); static void AnimTask_DoubleTeam_Step(u8); static void AnimDoubleTeam(struct Sprite *); -static void AnimWavyMusicNotes(struct Sprite* sprite); +static void AnimWavyMusicNotes(struct Sprite *); static void AnimWavyMusicNotes_CalcVelocity(s16, s16, s16 *, s16 *, s8); static void AnimWavyMusicNotes_Step(struct Sprite *); +static void AnimFlyingMusicNotes(struct Sprite *); static void AnimFlyingMusicNotes_Step(struct Sprite *); +static void AnimSlowFlyingMusicNotes(struct Sprite *); static void AnimSlowFlyingMusicNotes_Step(struct Sprite *); +static void AnimThoughtBubble(struct Sprite *); static void AnimThoughtBubble_Step(struct Sprite *); +static void AnimMetronomeFinger(struct Sprite *); static void AnimMetronomeFinger_Step(struct Sprite *); +static void AnimFollowMeFinger(struct Sprite *); static void AnimFollowMeFinger_Step1(struct Sprite *); static void AnimFollowMeFinger_Step2(struct Sprite *); +static void AnimTauntFinger(struct Sprite *); static void AnimTauntFinger_Step1(struct Sprite *); static void AnimTauntFinger_Step2(struct Sprite *); +static void AnimBellyDrumHand(struct Sprite *); +static void AnimSuperFang(struct Sprite *); +static void AnimGrantingStars(struct Sprite *); +static void AnimSparklingStars(struct Sprite *); +static void AnimCuttingSlice(struct Sprite *); +static void AnimAirCutterSlice(struct Sprite *); +static void AnimFlickeringPunch(struct Sprite *); +static void AnimSlidingHit(struct Sprite *); +static void AnimWhipHit(struct Sprite *); static const u8 sUnused[] = {2, 4, 1, 3}; @@ -1385,7 +1443,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate = .anims = sGrantingStarsAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSparkingStars, + .callback = AnimSparklingStars, }; static const union AnimCmd sAnim_BubbleBurst[] = @@ -2166,7 +2224,7 @@ const struct SpriteTemplate gTauntFingerSpriteTemplate = // arg 3: vertical movement speed (sub-pixel value) // arg 4: wave amplitude // arg 5: wave speed -void AnimMovePowderParticle(struct Sprite* sprite) +static void AnimMovePowderParticle(struct Sprite* sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -2206,7 +2264,7 @@ static void AnimMovePowderParticle_Step(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: duration -void AnimPowerAbsorptionOrb(struct Sprite* sprite) +static void AnimPowerAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -2221,7 +2279,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: sprite anim number -void AnimSolarBeamBigOrb(struct Sprite* sprite) +static void AnimSolarBeamBigOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[3]); @@ -2238,7 +2296,7 @@ void AnimSolarBeamBigOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: initial wave offset -void AnimSolarBeamSmallOrb(struct Sprite* sprite) +static void AnimSolarBeamSmallOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -2296,7 +2354,7 @@ void AnimTask_CreateSmallSolarBeamOrbs(u8 taskId) // arg 1: initial y pixel offset // arg 2: wave amplitude // arg 3: wave period (lower means faster wave) -void AnimAbsorptionOrb(struct Sprite* sprite) +static void AnimAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2315,7 +2373,7 @@ static void AnimAbsorptionOrb_Step(struct Sprite* sprite) // Moves an orb in a wave-like fashion towards the target mon. The wave's // properties and the sprite anim are randomly determined. -void AnimHyperBeamOrb(struct Sprite* sprite) +static void AnimHyperBeamOrb(struct Sprite* sprite) { u16 speed; u16 animNum = Random(); @@ -2368,7 +2426,7 @@ static void AnimHyperBeamOrb_Step(struct Sprite* sprite) // arg 3: target y pixel offset // arg 4: duration // arg 5: wave amplitude -void AnimLeechSeed(struct Sprite* sprite) +static void AnimLeechSeed(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2410,7 +2468,7 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite) // arg 2: initial wave offset // arg 3: duration // arg 4: blend (0 = off, 1 = on) -void AnimSporeParticle(struct Sprite* sprite) +static void AnimSporeParticle(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -2472,7 +2530,7 @@ void AnimTask_SporeDoubleBattle(u8 taskId) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -void AnimPetalDanceBigFlower(struct Sprite* sprite) +static void AnimPetalDanceBigFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2510,7 +2568,7 @@ static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -void AnimPetalDanceSmallFlower(struct Sprite* sprite) +static void AnimPetalDanceSmallFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2545,7 +2603,7 @@ static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite) // arg 0: upward x delta per frame // arg 1: upward y delta per frame // arg 2: upward duration -void AnimRazorLeafParticle(struct Sprite* sprite) +static void AnimRazorLeafParticle(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2608,7 +2666,7 @@ static void AnimRazorLeafParticle_Step2(struct Sprite* sprite) // arg 4: translation duration // arg 5: wave amplitude // arg 6: target between double battle opponents (boolean) -void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2722,7 +2780,7 @@ static void AnimMoveTwisterParticle_Step(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: affine anim num // arg 3: num squeezes -void AnimConstrictBinding(struct Sprite* sprite) +static void AnimConstrictBinding(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->affineAnimPaused = TRUE; @@ -2833,7 +2891,7 @@ static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId) // Moves an orb from the target mon to the attacking mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimMimicOrb(struct Sprite* sprite) +static void AnimMimicOrb(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -2867,7 +2925,7 @@ void AnimMimicOrb(struct Sprite* sprite) // arg 2: sprite subpriority offset // arg 3: sprite anim num // arg 4: duration -void AnimIngrainRoot(struct Sprite* sprite) +static void AnimIngrainRoot(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -2892,7 +2950,7 @@ void AnimIngrainRoot(struct Sprite* sprite) // arg 3: sprite subpriority offset // arg 4: sprite anum num // arg 5: duration -void AnimFrenzyPlantRoot(struct Sprite *sprite) +static void AnimFrenzyPlantRoot(struct Sprite *sprite) { s16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); s16 attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2930,7 +2988,7 @@ static void AnimRootFlickerOut(struct Sprite* sprite) // arg 2: horizontal velocity // arg 3: wave amplitude // arg 4: duration -void AnimIngrainOrb(struct Sprite* sprite) +static void AnimIngrainOrb(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -3017,7 +3075,7 @@ static void AnimItemSteal_Step1(struct Sprite* sprite) } } -void AnimPresent(struct Sprite* sprite) +static void AnimPresent(struct Sprite* sprite) { s16 targetX; s16 targetY; @@ -3065,7 +3123,7 @@ static void AnimKnockOffOpponentsItem(struct Sprite* sprite) } } -void AnimKnockOffItem(struct Sprite* sprite) +static void AnimKnockOffItem(struct Sprite* sprite) { s16 targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); @@ -3097,7 +3155,7 @@ void AnimKnockOffItem(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: vertical velocity // arg 3: unused -void AnimPresentHealParticle(struct Sprite* sprite) +static void AnimPresentHealParticle(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -3111,7 +3169,7 @@ void AnimPresentHealParticle(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimItemSteal(struct Sprite* sprite) +static void AnimItemSteal(struct Sprite* sprite) { s16 attackerX; s16 attackerY; @@ -3166,7 +3224,7 @@ static void AnimItemSteal_Step3(struct Sprite* sprite) // Moves a bag in a circular motion. // arg 0: y position // arg 1: initial wave offset -void AnimTrickBag(struct Sprite* sprite) +static void AnimTrickBag(struct Sprite* sprite) { int a; int b; @@ -3536,7 +3594,7 @@ static void AnimTask_LeafBlade_Step2_Callback(struct Sprite* sprite) } } -void AnimFlyingParticle(struct Sprite* sprite) +static void AnimFlyingParticle(struct Sprite* sprite) { u8 battler; @@ -3638,7 +3696,7 @@ void AnimTask_CycleMagicalLeafPal(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimNeedleArmSpike(struct Sprite* sprite) +static void AnimNeedleArmSpike(struct Sprite* sprite) { u8 a; u8 b; @@ -3716,7 +3774,7 @@ static void AnimWhipHit_WaitEnd(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSlidingHit(struct Sprite* sprite) +static void AnimSlidingHit(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -3733,7 +3791,7 @@ void AnimSlidingHit(struct Sprite* sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimWhipHit(struct Sprite* sprite) +static void AnimWhipHit(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) StartSpriteAnim(sprite, 1); @@ -3743,7 +3801,7 @@ void AnimWhipHit(struct Sprite* sprite) sprite->y += gBattleAnimArgs[1]; } -void AnimFlickeringPunch(struct Sprite* sprite) +static void AnimFlickeringPunch(struct Sprite* sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -3761,7 +3819,7 @@ void AnimFlickeringPunch(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right -void AnimCuttingSlice(struct Sprite* sprite) +static void AnimCuttingSlice(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); @@ -3787,7 +3845,7 @@ void AnimCuttingSlice(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -void AnimAirCutterSlice(struct Sprite* sprite) +static void AnimAirCutterSlice(struct Sprite* sprite) { u8 a; u8 b; @@ -3892,7 +3950,7 @@ static void UnusedFlickerAnim(struct Sprite* sprite) } } -void AnimCirclingMusicNote(struct Sprite* sprite) +static void AnimCirclingMusicNote(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3925,7 +3983,7 @@ static void AnimCirclingMusicNote_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimProtect(struct Sprite* sprite) +static void AnimProtect(struct Sprite* sprite) { if (IsContest()) gBattleAnimArgs[1] += 8; @@ -3988,7 +4046,7 @@ static void AnimProtect_Step(struct Sprite *sprite) } } -void AnimMilkBottle(struct Sprite* sprite) +static void AnimMilkBottle(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 0xFFE8; @@ -4098,7 +4156,7 @@ static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2) sprite->data[3] = 0; } -void AnimGrantingStars(struct Sprite* sprite) +static void AnimGrantingStars(struct Sprite* sprite) { if (!gBattleAnimArgs[2]) SetSpriteCoordsToAnimAttackerCoords(sprite); @@ -4112,7 +4170,7 @@ void AnimGrantingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -void AnimSparkingStars(struct Sprite* sprite) +static void AnimSparklingStars(struct Sprite* sprite) { u8 battler; @@ -4150,7 +4208,7 @@ void AnimSparkingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -void AnimBubbleBurst(struct Sprite* sprite) +static void AnimBubbleBurst(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -4181,7 +4239,7 @@ static void AnimBubbleBurst_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSleepLetterZ(struct Sprite* sprite) +static void AnimSleepLetterZ(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -4211,7 +4269,7 @@ static void AnimSleepLetterZ_Step(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void AnimLockOnTarget(struct Sprite* sprite) +static void AnimLockOnTarget(struct Sprite* sprite) { sprite->x -= 32; sprite->y -= 32; @@ -4358,7 +4416,7 @@ static void AnimLockOnTarget_Step6(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimLockOnMoveTarget(struct Sprite* sprite) +static void AnimLockOnMoveTarget(struct Sprite* sprite) { sprite->oam.affineParam = gBattleAnimArgs[0]; if ((s16)sprite->oam.affineParam == 1) @@ -4390,7 +4448,7 @@ void AnimLockOnMoveTarget(struct Sprite* sprite) sprite->callback(sprite); } -void AnimBowMon(struct Sprite* sprite) +static void AnimBowMon(struct Sprite* sprite) { sprite->invisible = TRUE; sprite->data[0] = 0; @@ -4493,7 +4551,7 @@ static void AnimBowMon_Step4(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimTipMon(struct Sprite *sprite) +static void AnimTipMon(struct Sprite *sprite) { sprite->data[0] = 0; sprite->callback = AnimTipMon_Step; @@ -4684,7 +4742,7 @@ static void AnimTask_SkullBashPositionReset(u8 taskId) } } -void AnimSlashSlice(struct Sprite* sprite) +static void AnimSlashSlice(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4703,7 +4761,7 @@ void AnimSlashSlice(struct Sprite* sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -void AnimFalseSwipeSlice(struct Sprite* sprite) +static void AnimFalseSwipeSlice(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); @@ -4711,7 +4769,7 @@ void AnimFalseSwipeSlice(struct Sprite* sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -void AnimFalseSwipePositionedSlice(struct Sprite* sprite) +static void AnimFalseSwipePositionedSlice(struct Sprite* sprite) { sprite->x = sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0 + gBattleAnimArgs[0]; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); @@ -4751,7 +4809,7 @@ static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite) } } -void AnimEndureEnergy(struct Sprite* sprite) +static void AnimEndureEnergy(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4782,7 +4840,7 @@ static void AnimEndureEnergy_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSharpenSphere(struct Sprite* sprite) +static void AnimSharpenSphere(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - 12; @@ -4819,7 +4877,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimConversion(struct Sprite* sprite) +static void AnimConversion(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4859,15 +4917,15 @@ void AnimTask_ConversionAlphaBlend(u8 taskId) } } -void AnimConversion2(struct Sprite* sprite) +static void AnimConversion2(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->animPaused = TRUE; sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = AnimConversion2Step; + sprite->callback = AnimConversion2_Step; } -static void AnimConversion2Step(struct Sprite* sprite) +static void AnimConversion2_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -4923,7 +4981,7 @@ static void AnimTask_ShowBattlersHealthbox(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimMoon(struct Sprite* sprite) +static void AnimMoon(struct Sprite* sprite) { if (IsContest()) { @@ -4948,7 +5006,7 @@ static void AnimMoon_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimMoonlightSparkle(struct Sprite* sprite) +static void AnimMoonlightSparkle(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; sprite->y = gBattleAnimArgs[1]; @@ -5085,7 +5143,7 @@ void AnimTask_FadeScreenBlue_Step(u8 taskId) } } -void AnimHornHit(struct Sprite* sprite) +static void AnimHornHit(struct Sprite* sprite) { if (gBattleAnimArgs[2] < 2) gBattleAnimArgs[2] = 2; @@ -5222,7 +5280,7 @@ static void AnimDoubleTeam(struct Sprite* sprite) } } -void AnimSuperFang(struct Sprite* sprite) +static void AnimSuperFang(struct Sprite* sprite) { StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback = RunStoredCallbackWhenAnimEnds; @@ -5353,7 +5411,7 @@ static void AnimWavyMusicNotes_Step(struct Sprite* sprite) } } -void AnimFlyingMusicNotes(struct Sprite* sprite) +static void AnimFlyingMusicNotes(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; @@ -5389,7 +5447,7 @@ static void AnimFlyingMusicNotes_Step(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void AnimBellyDrumHand(struct Sprite* sprite) +static void AnimBellyDrumHand(struct Sprite* sprite) { s16 a; @@ -5410,7 +5468,7 @@ void AnimBellyDrumHand(struct Sprite* sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimSlowFlyingMusicNotes(struct Sprite* sprite) +static void AnimSlowFlyingMusicNotes(struct Sprite* sprite) { s16 xDiff; u8 index; @@ -5463,7 +5521,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; } -void AnimThoughtBubble(struct Sprite* sprite) +static void AnimThoughtBubble(struct Sprite* sprite) { u8 animNum; u8 battler; @@ -5492,7 +5550,7 @@ static void AnimThoughtBubble_Step(struct Sprite* sprite) } } -void AnimMetronomeFinger(struct Sprite* sprite) +static void AnimMetronomeFinger(struct Sprite* sprite) { u8 battler; @@ -5517,7 +5575,7 @@ static void AnimMetronomeFinger_Step(struct Sprite* sprite) } } -void AnimFollowMeFinger(struct Sprite* sprite) +static void AnimFollowMeFinger(struct Sprite* sprite) { u8 battler; @@ -5576,7 +5634,7 @@ static void AnimFollowMeFinger_Step2(struct Sprite* sprite) sprite->x2 = (x1 >> 3) + (x2 >> 1); } -void AnimTauntFinger(struct Sprite* sprite) +static void AnimTauntFinger(struct Sprite* sprite) { u8 battler; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 17e58280e..68a5825a4 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -11,16 +11,24 @@ #include "util.h" #include "constants/songs.h" +static void AnimBouncingMusicNote(struct Sprite *); static void AnimBouncingMusicNote_Step(struct Sprite *); +static void AnimMovingClamp(struct Sprite *); static void AnimMovingClamp_Step(struct Sprite *); static void AnimMovingClamp_End(struct Sprite *); static void AnimTask_Withdraw_Step(u8); +static void AnimSwordsDanceBlade(struct Sprite *); static void AnimSwordsDanceBlade_Step(struct Sprite *); +static void AnimVoidLines(struct Sprite *); static void AnimVoidLines_Step(struct Sprite *); +static void AnimFallingCoin(struct Sprite *); static void AnimFallingCoin_Step(struct Sprite *); +static void AnimBulletSeed(struct Sprite *); static void AnimBulletSeed_Step1(struct Sprite *); static void AnimBulletSeed_Step2(struct Sprite *); +static void AnimViceGripPincer(struct Sprite *); static void AnimViceGripPincer_Step(struct Sprite *); +static void AnimGuillotinePincer(struct Sprite *); static void AnimGuillotinePincer_Step1(struct Sprite *); static void AnimGuillotinePincer_Step2(struct Sprite *); static void AnimGuillotinePincer_Step3(struct Sprite *); @@ -33,7 +41,9 @@ static void AnimTask_GrowAndShrink_Step(u8); static void AnimTask_ThrashMoveMonHorizontal_Step(u8); static void AnimTask_ThrashMoveMonVertical_Step(u8); static void AnimTask_SketchDrawMon_Step(u8); +static void AnimPencil(struct Sprite *); static void AnimPencil_Step(struct Sprite *); +static void AnimSoftBoiledEgg(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *); static void AnimSoftBoiledEgg_Step3(struct Sprite *); @@ -47,17 +57,47 @@ static void AnimTask_ExtremeSpeedMonReappear_Step(u8); static void AnimTask_SpeedDust_Step(u8); static void AnimTask_FakeOut_Step1(u8); static void AnimTask_FakeOut_Step2(u8); +static void AnimRedHeartProjectile(struct Sprite *); static void AnimRedHeartProjectile_Step(struct Sprite *); +static void AnimRedHeartRising(struct Sprite *); static void AnimRedHeartRising_Step(struct Sprite *); static void AnimTask_HeartsBackground_Step(u8); static void AnimTask_ScaryFace_Step(u8); +static void AnimOrbitFast(struct Sprite *); static void AnimOrbitFast_Step(struct Sprite *); +static void AnimOrbitScatter(struct Sprite *); static void AnimOrbitScatter_Step(struct Sprite *); +static void AnimMovementWaves(struct Sprite *); static void AnimMovementWaves_Step(struct Sprite *); static void AnimTask_UproarDistortion_Step(u8); +static void AnimJaggedMusicNote(struct Sprite *); static void AnimJaggedMusicNote_Step(struct Sprite *); +static void AnimPerishSongMusicNote2(struct Sprite *); +static void AnimPerishSongMusicNote(struct Sprite *); static void AnimPerishSongMusicNote_Step1(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *); +static void AnimCirclingFinger(struct Sprite *); +static void AnimVibrateBattlerBack(struct Sprite *); +static void AnimKinesisZapEnergy(struct Sprite *); +static void AnimSonicBoomProjectile(struct Sprite *); +static void AnimAirWaveProjectile(struct Sprite *); +static void AnimCoinThrow(struct Sprite *); +static void AnimRazorWindTornado(struct Sprite *); +static void AnimBreathPuff(struct Sprite *); +static void AnimAngerMark(struct Sprite *); +static void AnimBlendThinRing(struct Sprite *); +static void AnimHyperVoiceRing(struct Sprite *); +static void AnimUproarRing(struct Sprite *); +static void AnimSpeedDust(struct Sprite *); +static void AnimHealBellMusicNote(struct Sprite *); +static void AnimMagentaHeart(struct Sprite *); +static void AnimSpitUpOrb(struct Sprite *); +static void AnimEyeSparkle(struct Sprite *); +static void AnimAngel(struct Sprite *); +static void AnimPinkHeart(struct Sprite *); +static void AnimDevil(struct Sprite *); +static void AnimFurySwipes(struct Sprite *); +static void AnimGuardRing(struct Sprite *); // Unused static const struct SpriteTemplate sCirclingFingerSpriteTemplate = @@ -1216,7 +1256,7 @@ const struct SpriteTemplate gGuardRingSpriteTemplate = #define sMoveSteps data[3] #define sAmplitudeY data[4] -void AnimCirclingFinger(struct Sprite *sprite) +static void AnimCirclingFinger(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1235,7 +1275,7 @@ void AnimCirclingFinger(struct Sprite *sprite) #undef sMoveSteps #undef sAmplitudeY -void AnimBouncingMusicNote(struct Sprite *sprite) +static void AnimBouncingMusicNote(struct Sprite *sprite) { u8 battler; @@ -1286,7 +1326,7 @@ static void AnimVibrateBattlerBack_Step(struct Sprite *sprite) sprite->data[0]--; } -void AnimVibrateBattlerBack(struct Sprite *sprite) +static void AnimVibrateBattlerBack(struct Sprite *sprite) { u8 spriteId; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -1305,7 +1345,7 @@ void AnimVibrateBattlerBack(struct Sprite *sprite) sprite->invisible = TRUE; } -void AnimMovingClamp(struct Sprite *sprite) +static void AnimMovingClamp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -1390,7 +1430,7 @@ static void AnimTask_Withdraw_Step(u8 taskId) // arg 0: x pixel offset // arg 1: y pixel offset // arg 2: vertical flip -void AnimKinesisZapEnergy(struct Sprite *sprite) +static void AnimKinesisZapEnergy(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -1418,7 +1458,7 @@ void AnimKinesisZapEnergy(struct Sprite *sprite) // Animates a sword that rises into the air after a brief pause. // arg 0: x pixel offset // arg 1: y pixel offset -void AnimSwordsDanceBlade(struct Sprite *sprite) +static void AnimSwordsDanceBlade(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; @@ -1441,7 +1481,7 @@ static void AnimSwordsDanceBlade_Step(struct Sprite *sprite) // arg 2: target x pixel offset // arg 3: target y pixel offset // arg 4: duration -void AnimSonicBoomProjectile(struct Sprite *sprite) +static void AnimSonicBoomProjectile(struct Sprite *sprite) { s16 targetXPos; s16 targetYPos; @@ -1517,7 +1557,7 @@ static void AnimAirWaveProjectile_Step1(struct Sprite *sprite) } } -void AnimAirWaveProjectile(struct Sprite *sprite) +static void AnimAirWaveProjectile(struct Sprite *sprite) { s16 a; s16 b; @@ -1701,7 +1741,7 @@ void AnimTask_AirCutterProjectile(u8 taskId) gTasks[taskId].func = AirCutterProjectile_Step1; } -void AnimVoidLines(struct Sprite *sprite) +static void AnimVoidLines(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4); @@ -1728,7 +1768,7 @@ static void AnimVoidLines_Step(struct Sprite *sprite) } } -void AnimCoinThrow(struct Sprite *sprite) +static void AnimCoinThrow(struct Sprite *sprite) { s16 r6; s16 r7; @@ -1751,7 +1791,7 @@ void AnimCoinThrow(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimFallingCoin(struct Sprite *sprite) +static void AnimFallingCoin(struct Sprite *sprite) { sprite->data[2] = -16; sprite->y += 8; @@ -1776,7 +1816,7 @@ static void AnimFallingCoin_Step(struct Sprite *sprite) } } -void AnimBulletSeed(struct Sprite *sprite) +static void AnimBulletSeed(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 20; @@ -1836,7 +1876,7 @@ static void AnimBulletSeed_Step2(struct Sprite *sprite) // arg 4: initial wave offset // arg 5: wave period (higher means faster wave) // arg 6: duration -void AnimRazorWindTornado(struct Sprite *sprite) +static void AnimRazorWindTornado(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -1854,7 +1894,7 @@ void AnimRazorWindTornado(struct Sprite *sprite) // Animates a single pincer line that extends towards the center of the target mon. // arg 0: invert -void AnimViceGripPincer(struct Sprite *sprite) +static void AnimViceGripPincer(struct Sprite *sprite) { s16 startXOffset = 32; s16 startYOffset = -32; @@ -1887,7 +1927,7 @@ static void AnimViceGripPincer_Step(struct Sprite *sprite) // Animates a single pincer line that extends towards the center of the target mon, and then back out. // arg 0: animation id -void AnimGuillotinePincer(struct Sprite *sprite) +static void AnimGuillotinePincer(struct Sprite *sprite) { s16 startXOffset = 32; s16 startYOffset = -32; @@ -2214,7 +2254,7 @@ static void AnimTask_GrowAndShrink_Step(u8 taskId) // Animates a little puff of the mon's breath. // Used by MOVE_SWAGGER and MOVE_BULK_UP // No args. -void AnimBreathPuff(struct Sprite *sprite) +static void AnimBreathPuff(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2242,7 +2282,7 @@ void AnimBreathPuff(struct Sprite *sprite) // arg 0: target mon (0 = attacker, 1 = target) // arg 1: x pixel offset // arg 2: y pixel offset -void AnimAngerMark(struct Sprite *sprite) +static void AnimAngerMark(struct Sprite *sprite) { u8 battler; @@ -2444,7 +2484,7 @@ static void AnimTask_SketchDrawMon_Step(u8 taskId) } } -void AnimPencil(struct Sprite *sprite) +static void AnimPencil(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) - 16; sprite->y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16; @@ -2517,7 +2557,7 @@ static void AnimPencil_Step(struct Sprite *sprite) } } -void AnimBlendThinRing(struct Sprite *sprite) +static void AnimBlendThinRing(struct Sprite *sprite) { u8 battler = 0; u16 sp0 = 0; @@ -2557,7 +2597,7 @@ static void AnimHyperVoiceRing_WaitEnd(struct Sprite *sprite) } } -void AnimHyperVoiceRing(struct Sprite *sprite) +static void AnimHyperVoiceRing(struct Sprite *sprite) { u16 startX = 0; u16 startY = 0; @@ -2642,7 +2682,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite) sprite->callback(sprite); } -void AnimUproarRing(struct Sprite *sprite) +static void AnimUproarRing(struct Sprite *sprite) { u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); @@ -2656,7 +2696,7 @@ void AnimUproarRing(struct Sprite *sprite) sprite->callback(sprite); } -void AnimSoftBoiledEgg(struct Sprite *sprite) +static void AnimSoftBoiledEgg(struct Sprite *sprite) { s16 r1; @@ -2983,7 +3023,7 @@ static void AnimTask_SpeedDust_Step(u8 taskId) } } -void AnimSpeedDust(struct Sprite *sprite) +static void AnimSpeedDust(struct Sprite *sprite) { sprite->invisible = gTasks[sprite->data[0]].data[5]; if (sprite->animEnded) @@ -3028,7 +3068,7 @@ static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) sprite->oam.paletteNum = IndexOfSpritePaletteTag(gMusicNotePaletteTagsTable[b >> 1]); } -void AnimHealBellMusicNote(struct Sprite *sprite) +static void AnimHealBellMusicNote(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3042,7 +3082,7 @@ void AnimHealBellMusicNote(struct Sprite *sprite) SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); } -void AnimMagentaHeart(struct Sprite *sprite) +static void AnimMagentaHeart(struct Sprite *sprite) { if (++sprite->data[0] == 1) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -3150,7 +3190,7 @@ void AnimTask_StretchAttackerUp(u8 taskId) } } -void AnimRedHeartProjectile(struct Sprite *sprite) +static void AnimRedHeartProjectile(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 95; @@ -3197,7 +3237,7 @@ void AnimParticleBurst(struct Sprite *sprite) } } -void AnimRedHeartRising(struct Sprite *sprite) +static void AnimRedHeartRising(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; sprite->y = DISPLAY_HEIGHT; @@ -3398,7 +3438,7 @@ static void AnimTask_ScaryFace_Step(u8 taskId) // Used by MOVE_HIDDEN_POWER // arg 0: duration // arg 1: initial wave offset -void AnimOrbitFast(struct Sprite *sprite) +static void AnimOrbitFast(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -3449,7 +3489,7 @@ static void AnimOrbitFast_Step(struct Sprite *sprite) // Moves orbs away from the mon, based on where they are in their orbit. // Used in MOVE_HIDDEN_POWER. // arg 0: initial wave offset -void AnimOrbitScatter(struct Sprite *sprite) +static void AnimOrbitScatter(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -3475,7 +3515,7 @@ static void AnimSpitUpOrb_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimSpitUpOrb(struct Sprite *sprite) +static void AnimSpitUpOrb(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -3491,13 +3531,13 @@ static void AnimEyeSparkle_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimEyeSparkle(struct Sprite *sprite) +static void AnimEyeSparkle(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->callback = AnimEyeSparkle_Step; } -void AnimAngel(struct Sprite *sprite) +static void AnimAngel(struct Sprite *sprite) { s16 var0; @@ -3536,7 +3576,7 @@ static void AnimPinkHeart_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPinkHeart(struct Sprite *sprite) +static void AnimPinkHeart(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3562,7 +3602,7 @@ void AnimPinkHeart(struct Sprite *sprite) } } -void AnimDevil(struct Sprite *sprite) +static void AnimDevil(struct Sprite *sprite) { if (sprite->data[3] == 0) { @@ -3591,7 +3631,7 @@ void AnimDevil(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimFurySwipes(struct Sprite *sprite) +static void AnimFurySwipes(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3606,7 +3646,7 @@ void AnimFurySwipes(struct Sprite *sprite) } } -void AnimMovementWaves(struct Sprite *sprite) +static void AnimMovementWaves(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -3662,7 +3702,7 @@ static void AnimTask_UproarDistortion_Step(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimJaggedMusicNote(struct Sprite *sprite) +static void AnimJaggedMusicNote(struct Sprite *sprite) { int var1; u8 battler = !gBattleAnimArgs[0] ? gBattleAnimAttacker : gBattleAnimTarget; @@ -3700,7 +3740,7 @@ static void AnimJaggedMusicNote_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPerishSongMusicNote2(struct Sprite *sprite) +static void AnimPerishSongMusicNote2(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -3715,7 +3755,7 @@ void AnimPerishSongMusicNote2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPerishSongMusicNote(struct Sprite *sprite) +static void AnimPerishSongMusicNote(struct Sprite *sprite) { int index; int var2; @@ -3791,7 +3831,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite) } } -void AnimGuardRing(struct Sprite *sprite) +static void AnimGuardRing(struct Sprite *sprite) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 74737beec..d0493ef96 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -15,60 +15,99 @@ #include "constants/songs.h" #include "constants/weather.h" +static void AnimBlackSmoke(struct Sprite *); static void AnimBlackSmoke_Step(struct Sprite *); +static void AnimWhiteHalo(struct Sprite *); static void AnimWhiteHalo_Step1(struct Sprite *); static void AnimWhiteHalo_Step2(struct Sprite *); +static void AnimMeanLookEye(struct Sprite *); static void AnimMeanLookEye_Step1(struct Sprite *); static void AnimMeanLookEye_Step2(struct Sprite *); static void AnimMeanLookEye_Step3(struct Sprite *); static void AnimMeanLookEye_Step4(struct Sprite *); static void SetPsychicBackground_Step(u8); static void FadeScreenToWhite_Step(u8); +static void AnimSpikes(struct Sprite *); static void AnimSpikes_Step1(struct Sprite *); static void AnimSpikes_Step2(struct Sprite *); +static void AnimSpotlight(struct Sprite *); static void AnimSpotlight_Step1(struct Sprite *); static void AnimSpotlight_Step2(struct Sprite *); +static void AnimClappingHand(struct Sprite *); static void AnimClappingHand_Step(struct Sprite *); +static void AnimClappingHand2(struct Sprite *); +static void AnimRapidSpin(struct Sprite *); static void AnimRapidSpin_Step(struct Sprite *); static void RapinSpinMonElevation_Step(u8); static void TormentAttacker_Step(u8); static void TormentAttacker_Callback(struct Sprite *); +static void AnimWishStar(struct Sprite *); static void AnimWishStar_Step(struct Sprite *); +static void AnimMiniTwinklingStar(struct Sprite *); static void AnimMiniTwinklingStar_Step(struct Sprite *); +static void AnimGreenStar(struct Sprite *); static void AnimGreenStar_Step1(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *); static void AnimTask_RockMonBackAndForth_Step(u8); +static void AnimSweetScentPetal(struct Sprite *); static void AnimSweetScentPetal_Step(struct Sprite *); static void AnimTask_FlailMovement_Step(u8); +static void AnimFlatterConfetti(struct Sprite *); static void AnimFlatterConfetti_Step(struct Sprite *); +static void AnimFlatterSpotlight(struct Sprite *); static void AnimFlatterSpotlight_Step(struct Sprite *); +static void AnimReversalOrb(struct Sprite *); static void AnimReversalOrb_Step(struct Sprite *); static void AnimTask_RolePlaySilhouette_Step1(u8); static void AnimTask_RolePlaySilhouette_Step2(u8); static void AnimTask_AcidArmor_Step(u8); static void AnimTask_DeepInhale_Step(u8); +static void AnimYawnCloud(struct Sprite *); static void AnimYawnCloud_Step(struct Sprite *); static void AnimTask_SquishAndSweatDroplets_Step(u8); static void CreateSweatDroplets(u8, bool8); static void AnimTask_FacadeColorBlend_Step(u8); +static void AnimRoarNoiseLine(struct Sprite *); static void AnimRoarNoiseLine_Step(struct Sprite *); static void AnimTask_GlareEyeDots_Step(u8); static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *); static void AnimTask_BarrageBall_Step(u8); +static void AnimSmellingSaltsHand(struct Sprite *); static void AnimSmellingSaltsHand_Step(struct Sprite *); static void AnimTask_SmellingSaltsSquish_Step(u8); +static void AnimSmellingSaltExclamation(struct Sprite *); static void AnimSmellingSaltExclamation_Step(struct Sprite *); +static void AnimHelpingHandClap(struct Sprite *); static void AnimHelpingHandClap_Step(struct Sprite *); static void AnimTask_HelpingHandAttackerMovement_Step(u8); +static void AnimForesightMagnifyingGlass(struct Sprite *); static void AnimForesightMagnifyingGlass_Step(struct Sprite *); static void AnimTask_MonToSubstituteDoll(u8); +static void AnimBlockX(struct Sprite *); static void AnimBlockX_Step(struct Sprite *); static void AnimTask_OdorSleuthMovementWaitFinish(u8); static void MoveOdorSleuthClone(struct Sprite *); static void AnimTask_TeeterDanceMovement_Step(u8); +static void AnimRecycle(struct Sprite *); static void AnimRecycle_Step(struct Sprite *); static void AnimTask_SlackOffSquish_Step(u8); +static void AnimTealAlert(struct Sprite *); +static void AnimLeer(struct Sprite *); +static void AnimLetterZ(struct Sprite *); +static void AnimFang(struct Sprite *); +static void AnimTriAttackTriangle(struct Sprite *); +static void AnimBatonPassPokeball(struct Sprite *); +static void AnimSwallowBlueOrb(struct Sprite *); +static void AnimWeakFrustrationAngerMark(struct Sprite *); +static void AnimPainSplitProjectile(struct Sprite *); +static void AnimSmokeBallEscapeCloud(struct Sprite *); +static void AnimFacadeSweatDrop(struct Sprite *); +static void AnimGlareEyeDot(struct Sprite *); +static void AnimAssistPawprint(struct Sprite *); +static void AnimMeteorMashStar(struct Sprite *); +static void AnimUnusedItemBagSteal(struct Sprite *); +static void AnimKnockOffStrike(struct Sprite *); static const union AnimCmd sScratchAnimCmds[] = { @@ -1129,7 +1168,7 @@ static const union AffineAnimCmd sSlackOffSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -void AnimBlackSmoke(struct Sprite *sprite) +static void AnimBlackSmoke(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -1166,7 +1205,7 @@ void AnimTask_SmokescreenImpact(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimWhiteHalo(struct Sprite *sprite) +static void AnimWhiteHalo(struct Sprite *sprite) { sprite->data[0] = 90; sprite->callback = WaitAnimForDuration; @@ -1193,7 +1232,7 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTealAlert(struct Sprite *sprite) +static void AnimTealAlert(struct Sprite *sprite) { u16 rotation; u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); @@ -1213,7 +1252,7 @@ void AnimTealAlert(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimMeanLookEye(struct Sprite *sprite) +static void AnimMeanLookEye(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -1371,7 +1410,7 @@ static void FadeScreenToWhite_Step(u8 taskId) DestroyTask(taskId); } -void AnimSpikes(struct Sprite *sprite) +static void AnimSpikes(struct Sprite *sprite) { u16 x; u16 y; @@ -1409,7 +1448,7 @@ static void AnimSpikes_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimLeer(struct Sprite *sprite) +static void AnimLeer(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1418,7 +1457,7 @@ void AnimLeer(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimLetterZ(struct Sprite *sprite) +static void AnimLetterZ(struct Sprite *sprite) { int var0; @@ -1456,7 +1495,7 @@ void AnimLetterZ(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimFang(struct Sprite *sprite) +static void AnimFang(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1482,7 +1521,7 @@ void AnimTask_IsHealingMove(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimSpotlight(struct Sprite *sprite) +static void AnimSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -1545,7 +1584,7 @@ static void AnimSpotlight_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimClappingHand(struct Sprite *sprite) +static void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { @@ -1604,7 +1643,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimClappingHand2(struct Sprite *sprite) +static void AnimClappingHand2(struct Sprite *sprite) { sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->data[3] = 255; @@ -1645,7 +1684,7 @@ void AnimTask_RemoveSpotlight(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimRapidSpin(struct Sprite *sprite) +static void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -1946,7 +1985,7 @@ static void TormentAttacker_Callback(struct Sprite *sprite) } } -void AnimTriAttackTriangle(struct Sprite *sprite) +static void AnimTriAttackTriangle(struct Sprite *sprite) { if (sprite->data[0] == 0) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -1992,7 +2031,7 @@ void AnimTask_DefenseCurlDeformMon(u8 taskId) } } -void AnimBatonPassPokeball(struct Sprite *sprite) +static void AnimBatonPassPokeball(struct Sprite *sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -2035,7 +2074,7 @@ void AnimBatonPassPokeball(struct Sprite *sprite) } } -void AnimWishStar(struct Sprite *sprite) +static void AnimWishStar(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->x = -16; @@ -2073,7 +2112,7 @@ static void AnimWishStar_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimMiniTwinklingStar(struct Sprite *sprite) +static void AnimMiniTwinklingStar(struct Sprite *sprite) { u8 rand; s8 y; @@ -2148,7 +2187,7 @@ void AnimTask_SpitUpDeformMon(u8 taskId) } } -void AnimSwallowBlueOrb(struct Sprite *sprite) +static void AnimSwallowBlueOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2363,7 +2402,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) } } -void AnimGreenStar(struct Sprite *sprite) +static void AnimGreenStar(struct Sprite *sprite) { s16 xOffset; u8 spriteId1; @@ -2574,7 +2613,7 @@ void AnimTask_StrongFrustrationGrowAndShrink(u8 taskId) // Animates an anger mark near the mon's head. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimWeakFrustrationAngerMark(struct Sprite *sprite) +static void AnimWeakFrustrationAngerMark(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -2699,7 +2738,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId) // arg 0: initial y pixel offset // arg 1: sprite anim num // arg 2: unused -void AnimSweetScentPetal(struct Sprite *sprite) +static void AnimSweetScentPetal(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2835,7 +2874,7 @@ static void AnimTask_FlailMovement_Step(u8 taskId) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: which battler -void AnimPainSplitProjectile(struct Sprite *sprite) +static void AnimPainSplitProjectile(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -2931,7 +2970,7 @@ void AnimTask_PainSplitMovement(u8 taskId) // Move a piece of confetti in a slightly-random speed across the screen. // arg 0: which battler the confetti starts from -void AnimFlatterConfetti(struct Sprite *sprite) +static void AnimFlatterConfetti(struct Sprite *sprite) { u8 tileOffset; int rand1; @@ -2988,7 +3027,7 @@ static void AnimFlatterConfetti_Step(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: duration of fully-opened spotlight -void AnimFlatterSpotlight(struct Sprite *sprite) +static void AnimFlatterSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -3037,7 +3076,7 @@ static void AnimFlatterSpotlight_Step(struct Sprite *sprite) // Spins an orb around the attacking mon, while its path radius grows and shrinks. // arg 0: duration // arg 1: initial wave offset -void AnimReversalOrb(struct Sprite *sprite) +static void AnimReversalOrb(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -3417,7 +3456,7 @@ static void UpdateYawnCloudPosition(struct Sprite *sprite) // Drifts a cloud in a wavy path towards the target mon. // arg 0: which affine anim -void AnimYawnCloud(struct Sprite *sprite) +static void AnimYawnCloud(struct Sprite *sprite) { s16 destX = sprite->x; s16 destY = sprite->y; @@ -3455,7 +3494,7 @@ static void AnimYawnCloud_Step(struct Sprite *sprite) // arg 1: initial x pixel offset // arg 2: initial y pixel offset // arg 3: ? -void AnimSmokeBallEscapeCloud(struct Sprite *sprite) +static void AnimSmokeBallEscapeCloud(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[3]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); @@ -3731,7 +3770,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 lowerDroplets) } } -void AnimFacadeSweatDrop(struct Sprite *sprite) +static void AnimFacadeSweatDrop(struct Sprite *sprite) { sprite->x += sprite->sVelocX; sprite->y += sprite->sVelocY; @@ -3797,7 +3836,7 @@ void AnimTask_StatusClearedEffect(u8 taskId) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: which direction (0 = upward, 1 = downward, 2 = horizontal) -void AnimRoarNoiseLine(struct Sprite *sprite) +static void AnimRoarNoiseLine(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -3978,7 +4017,7 @@ static void GetGlareEyeDotCoords(s16 startX, s16 startY, s16 endX, s16 endY, u8 *y = y2 >> 8; } -void AnimGlareEyeDot(struct Sprite *sprite) +static void AnimGlareEyeDot(struct Sprite *sprite) { if (++sprite->sTimer > 36) { @@ -4009,7 +4048,7 @@ void AnimGlareEyeDot(struct Sprite *sprite) // arg 2: destination x position // arg 3: destination y position // arg 4: duration -void AnimAssistPawprint(struct Sprite *sprite) +static void AnimAssistPawprint(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; sprite->y = gBattleAnimArgs[1]; @@ -4096,7 +4135,7 @@ static void AnimTask_BarrageBall_Step(u8 taskId) // arg 0: which battler // arg 1: horizontal flip // arg 2: num squishes -void AnimSmellingSaltsHand(struct Sprite *sprite) +static void AnimSmellingSaltsHand(struct Sprite *sprite) { u8 battler; @@ -4219,7 +4258,7 @@ static void AnimTask_SmellingSaltsSquish_Step(u8 taskId) // arg 0: which mon // arg 1: blink delay // arg 2: number of blinks -void AnimSmellingSaltExclamation(struct Sprite *sprite) +static void AnimSmellingSaltExclamation(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -4257,7 +4296,7 @@ static void AnimSmellingSaltExclamation_Step(struct Sprite *sprite) // Claps a hand several times. // arg 0: which hand // arg 1: -void AnimHelpingHandClap(struct Sprite *sprite) +static void AnimHelpingHandClap(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4469,7 +4508,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) // Moves a magnifying glass around in straight lines. // arg 0: magnifying glass target mon -void AnimForesightMagnifyingGlass(struct Sprite *sprite) +static void AnimForesightMagnifyingGlass(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -4615,7 +4654,7 @@ static void AnimMeteorMashStar_Step(struct Sprite *sprite) // arg 2: destination x pixel offset // arg 3: destination y pixel offset // arg 4: duration -void AnimMeteorMashStar(struct Sprite *sprite) +static void AnimMeteorMashStar(struct Sprite *sprite) { s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); @@ -4729,7 +4768,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) // Moves down an X that flickers and disappears. // No args. -void AnimBlockX(struct Sprite *sprite) +static void AnimBlockX(struct Sprite *sprite) { s16 y; @@ -5060,7 +5099,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } -void AnimUnusedItemBagSteal(struct Sprite *sprite) +static void AnimUnusedItemBagSteal(struct Sprite *sprite) { switch (sprite->data[7]) { @@ -5241,7 +5280,7 @@ static void AnimKnockOffStrike_Step(struct Sprite *sprite) // Animates a strike that swipes downard at the target mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimKnockOffStrike(struct Sprite *sprite) +static void AnimKnockOffStrike(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { @@ -5264,7 +5303,7 @@ void AnimKnockOffStrike(struct Sprite *sprite) // Gradually fades a rotating recyle arrow sprite in and back out. // No args. -void AnimRecycle(struct Sprite *sprite) +static void AnimRecycle(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); diff --git a/src/flying.c b/src/battle_anim_flying.c similarity index 89% rename from src/flying.c rename to src/battle_anim_flying.c index b6007a679..d3daecc67 100644 --- a/src/flying.c +++ b/src/battle_anim_flying.c @@ -11,29 +11,29 @@ static void AnimAirWaveCrescent(struct Sprite *sprite); static void AnimFlyBallUp(struct Sprite *sprite); static void AnimFlyBallAttack(struct Sprite *sprite); static void AnimFallingFeather(struct Sprite *sprite); -static void sub_80B24C0(struct Sprite *sprite); -static void sub_80B2514(struct Sprite *sprite); +static void AnimUnusedBubbleThrow(struct Sprite *sprite); +static void AnimUnusedFeather(struct Sprite *sprite); static void AnimWhirlwindLine(struct Sprite *sprite); static void AnimBounceBallShrink(struct Sprite *sprite); static void AnimBounceBallLand(struct Sprite *sprite); static void AnimDiveBall(struct Sprite *sprite); static void AnimDiveWaterSplash(struct Sprite *sprite); static void AnimSprayWaterDroplet(struct Sprite *sprite); -static void sub_80B2CE4(struct Sprite *sprite); +static void AnimUnusedFlashingLight(struct Sprite *sprite); static void AnimSkyAttackBird(struct Sprite *sprite); -static void sub_80B190C(struct Sprite *sprite); -static void sub_80B198C(u8 taskId); -static void sub_80B1A9C(struct Sprite *sprite); -static void sub_80B1BF8(struct Sprite *sprite); -static void sub_80B1CC0(struct Sprite *sprite); +static void AnimEllipticalGust_Step(struct Sprite *sprite); +static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId); +static void AnimGustToTarget_Step(struct Sprite *sprite); +static void AnimFlyBallUp_Step(struct Sprite *sprite); +static void AnimFlyBallAttack_Step(struct Sprite *sprite); static void AnimFallingFeather_Step(struct Sprite *sprite); -static void sub_80B268C(struct Sprite *sprite); -static void sub_80B2820(struct Sprite *sprite); -static void sub_80B2A50(struct Sprite *sprite); -static void sub_80B2AB0(struct Sprite *sprite); -static void sub_80B2C88(struct Sprite *sprite); -static void sub_80B2CF8(struct Sprite *sprite); -static void sub_80B2E20(struct Sprite *sprite); +static void AnimUnusedFeather_Step(struct Sprite *sprite); +static void AnimWhirlwindLine_Step(struct Sprite *sprite); +static void AnimDiveBall_Step1(struct Sprite *sprite); +static void AnimDiveBall_Step2(struct Sprite *sprite); +static void AnimSprayWaterDroplet_Step(struct Sprite *sprite); +static void AnimUnusedFlashingLight_Step(struct Sprite *sprite); +static void AnimSkyAttackBird_Step(struct Sprite *sprite); const struct SpriteTemplate gEllipticalGustSpriteTemplate = { @@ -177,10 +177,9 @@ const struct SpriteTemplate gFallingFeatherSpriteTemplate = .callback = AnimFallingFeather, }; -// not used -static const u16 gUnknown_83E6C18[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal"); +static const u16 sUnusedPal[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal"); -const struct SpriteTemplate gUnknown_83E6C38 = +static const struct SpriteTemplate sUnusedBubbleThrowSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -188,10 +187,10 @@ const struct SpriteTemplate gUnknown_83E6C38 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B24C0, + .callback = AnimUnusedBubbleThrow, }; -const struct SpriteTemplate gUnknown_83E6C50 = +static const struct SpriteTemplate sUnusedFeatherSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, @@ -199,7 +198,7 @@ const struct SpriteTemplate gUnknown_83E6C50 = .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2514, + .callback = AnimUnusedFeather, }; static const union AnimCmd sAnim_WhirlwindLines[] = @@ -301,8 +300,7 @@ const struct SpriteTemplate gDiveBallSpriteTemplate = .callback = AnimDiveBall, }; -// not used -static const union AffineAnimCmd gUnknown_83E6D58[] = +static const union AffineAnimCmd sAnim_Unused[] = { AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12), @@ -310,10 +308,9 @@ static const union AffineAnimCmd gUnknown_83E6D58[] = AFFINEANIMCMD_END, }; -// not used -static const union AffineAnimCmd *const gUnknown_83E6D80[] = +static const union AffineAnimCmd *const sAnims_Unused[] = { - gUnknown_83E6D58, + sAnim_Unused, }; const struct SpriteTemplate gDiveWaterSplashSpriteTemplate = @@ -338,7 +335,7 @@ const struct SpriteTemplate gSprayWaterDropletSpriteTemplate = .callback = AnimSprayWaterDroplet, }; -const struct SpriteTemplate gUnknown_83E6DAC = +static const struct SpriteTemplate sUnusedFlashingLightSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, @@ -346,7 +343,7 @@ const struct SpriteTemplate gUnknown_83E6DAC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2CE4, + .callback = AnimUnusedFlashingLight, }; const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = @@ -365,11 +362,11 @@ static void AnimEllipticalGust(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, FALSE); sprite->y += 20; sprite->data[1] = 191; - sprite->callback = sub_80B190C; + sprite->callback = AnimEllipticalGust_Step; sprite->callback(sprite); } -static void sub_80B190C(struct Sprite *sprite) +static void AnimEllipticalGust_Step(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[1], 32); sprite->y2 = Cos(sprite->data[1], 8); @@ -379,15 +376,16 @@ static void sub_80B190C(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Animates the palette on the gust tornado to make it look like its spinning void AnimTask_AnimateGustTornadoPalette(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[0]; gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_GUST); - gTasks[taskId].func = sub_80B198C; + gTasks[taskId].func = AnimTask_AnimateGustTornadoPalette_Step; } -static void sub_80B198C(u8 taskId) +static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId) { u8 data2; u16 temp; @@ -423,10 +421,10 @@ static void AnimGustToTarget(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, sub_80B1A9C); + StoreSpriteCallbackInData6(sprite, AnimGustToTarget_Step); } -static void sub_80B1A9C(struct Sprite *sprite) +static void AnimGustToTarget_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); @@ -472,11 +470,11 @@ static void AnimFlyBallUp(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_80B1BF8; + sprite->callback = AnimFlyBallUp_Step; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -static void sub_80B1BF8(struct Sprite *sprite) +static void AnimFlyBallUp_Step(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -495,7 +493,7 @@ static void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->x = 272; + sprite->x = DISPLAY_WIDTH + 32; sprite->y = -32; StartSpriteAffineAnim(sprite, 1); } @@ -510,10 +508,10 @@ static void AnimFlyBallAttack(struct Sprite *sprite) sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); - sprite->callback = sub_80B1CC0; + sprite->callback = AnimFlyBallAttack_Step; } -static void sub_80B1CC0(struct Sprite *sprite) +static void AnimFlyBallAttack_Step(struct Sprite *sprite) { sprite->data[0] = 1; AnimTranslateLinear(sprite); @@ -524,8 +522,8 @@ static void sub_80B1CC0(struct Sprite *sprite) sprite->data[3] &= 0xFF; } if (sprite->x + sprite->x2 < -32 - || sprite->x + sprite->x2 > 272 - || sprite->y + sprite->y2 > 160) + || sprite->x + sprite->x2 > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT) { gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE; DestroyAnimSprite(sprite); @@ -883,7 +881,7 @@ static void AnimFallingFeather_Step(struct Sprite *sprite) } } -static void sub_80B24C0(struct Sprite *sprite) +static void AnimUnusedBubbleThrow(struct Sprite *sprite) { sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); @@ -891,7 +889,7 @@ static void sub_80B24C0(struct Sprite *sprite) sprite->callback = TranslateAnimSpriteToTargetMonLocation; } -static void sub_80B2514(struct Sprite *sprite) +static void AnimUnusedFeather(struct Sprite *sprite) { u8 matrixNum; s16 rn, sinVal; @@ -935,10 +933,10 @@ static void sub_80B2514(struct Sprite *sprite) sprite->animNum = 1; sprite->hFlip = TRUE; } - sprite->callback = sub_80B268C; + sprite->callback = AnimUnusedFeather_Step; } -static void sub_80B268C(struct Sprite *sprite) +static void AnimUnusedFeather_Step(struct Sprite *sprite) { struct FeatherDanceData fData; struct FeatherDanceData *tData = (struct FeatherDanceData *)sprite->data; @@ -992,12 +990,12 @@ static void AnimWhirlwindLine(struct Sprite *sprite) u16 arg; u8 mult; - if (!gBattleAnimArgs[2]) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); - if ((!gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - || (gBattleAnimArgs[2] == 1 && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)) + if ((gBattleAnimArgs[2] == ANIM_ATTACKER && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + || (gBattleAnimArgs[2] == ANIM_TARGET && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)) sprite->x += 8; SeekSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->x -= 32; @@ -1007,10 +1005,10 @@ static void AnimWhirlwindLine(struct Sprite *sprite) sprite->x2 += mult * arg; sprite->data[0] = arg; sprite->data[7] = gBattleAnimArgs[3]; - sprite->callback = sub_80B2820; + sprite->callback = AnimWhirlwindLine_Step; } -static void sub_80B2820(struct Sprite *sprite) +static void AnimWhirlwindLine_Step(struct Sprite *sprite) { sprite->x2 += sprite->data[1] >> 8; if (++sprite->data[0] == 6) @@ -1064,7 +1062,7 @@ static void AnimBounceBallLand(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->y2 = -sprite->y - 32; ++sprite->data[0]; break; @@ -1089,11 +1087,11 @@ static void AnimDiveBall(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_80B2A50; + sprite->callback = AnimDiveBall_Step1; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -static void sub_80B2A50(struct Sprite *sprite) +static void AnimDiveBall_Step1(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -1108,11 +1106,11 @@ static void sub_80B2A50(struct Sprite *sprite) { sprite->invisible = TRUE; if (sprite->data[3]++ > 20) - sprite->callback = sub_80B2AB0; + sprite->callback = AnimDiveBall_Step2; } } -static void sub_80B2AB0(struct Sprite *sprite) +static void AnimDiveBall_Step2(struct Sprite *sprite) { sprite->y2 += sprite->data[2] >> 8; if (sprite->y + sprite->y2 > -32) @@ -1131,13 +1129,13 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) case 0: if (!gBattleAnimArgs[0]) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->data[1] = 512; TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); @@ -1166,6 +1164,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) } } +// Launches a water droplet away from the specified battler. Used by Astonish and Dive static void AnimSprayWaterDroplet(struct Sprite *sprite) { s32 v1 = 0x1FF & Random(); @@ -1185,18 +1184,18 @@ static void AnimSprayWaterDroplet(struct Sprite *sprite) sprite->oam.matrixNum = ST_OAM_HFLIP; if (gBattleAnimArgs[1] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 32; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32; } - sprite->callback = sub_80B2C88; + sprite->callback = AnimSprayWaterDroplet_Step; } -static void sub_80B2C88(struct Sprite *sprite) +static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1216,14 +1215,14 @@ static void sub_80B2C88(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B2CE4(struct Sprite *sprite) +static void AnimUnusedFlashingLight(struct Sprite *sprite) { sprite->data[6] = 0; sprite->data[7] = 64; - sprite->callback = sub_80B2CF8; + sprite->callback = AnimUnusedFlashingLight_Step; } -static void sub_80B2CF8(struct Sprite *sprite) +static void AnimUnusedFlashingLight_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1248,8 +1247,8 @@ static void AnimSkyAttackBird(struct Sprite *sprite) s16 posx = sprite->x; s16 posy = sprite->y; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = sprite->x << 4; sprite->data[5] = sprite->y << 4; sprite->data[6] = ((posx - sprite->x) << 4) / 12; @@ -1257,22 +1256,22 @@ static void AnimSkyAttackBird(struct Sprite *sprite) rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y); rotation += 49152; TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); - sprite->callback = sub_80B2E20; + sprite->callback = AnimSkyAttackBird_Step; } -static void sub_80B2E20(struct Sprite *sprite) +static void AnimSkyAttackBird_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; sprite->x = sprite->data[4] >> 4; sprite->y = sprite->data[5] >> 4; - if (sprite->x > 285 || sprite->x < -45 + if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45 || sprite->y > 157 || sprite->y < -45) DestroySpriteAndMatrix(sprite); } -// not used -static void sub_80B2E64(u8 taskId) +// Unused +static void AnimTask_SetAttackerVisibility(u8 taskId) { if (gBattleAnimArgs[0] == 0) { From 17b2faa1828789c651a97f4d136cb3966feecc04 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 18 Aug 2022 14:42:26 -0400 Subject: [PATCH 038/105] Sync battle anim - scripts --- asm/macros/battle_anim_script.inc | 92 +- constants/gba_constants.inc | 23 + data/battle_anim_scripts.s | 6718 +++++++++++++-------------- include/constants/battle_anim.h | 117 +- include/constants/rgb.h | 25 + include/gba/defines.h | 14 - include/global.h | 1 + src/battle_anim_dark.c | 2 +- src/battle_anim_effects_1.c | 12 +- src/battle_anim_effects_2.c | 12 +- src/battle_anim_mon_movement.c | 2 +- src/battle_anim_special.c | 2 +- src/battle_anim_utility_funcs.c | 4 +- src/battle_controller_oak_old_man.c | 4 +- src/battle_controller_safari.c | 4 +- 15 files changed, 3541 insertions(+), 3491 deletions(-) create mode 100644 include/constants/rgb.h diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index 5426cdfba..15c48c39f 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -14,7 +14,7 @@ .byte 0x02 .4byte \template .if \anim_battler == ANIM_TARGET - .byte 0x80 | (\subpriority_offset & 0x7F) + .byte ANIMSPRITE_IS_TARGET | (\subpriority_offset & 0x7F) .else .byte (\subpriority_offset & 0x7F) .endif @@ -34,20 +34,20 @@ .Lcreatetask_\@_2: .endm - .macro delay param0:req + .macro delay frames:req .byte 0x4 - .byte \param0 + .byte \frames .endm .macro waitforvisualfinish .byte 0x5 .endm - .macro hang1 + .macro nop .byte 0x6 .endm - .macro hang2 + .macro nop2 .byte 0x7 .endm @@ -79,30 +79,30 @@ .byte 0xd .endm - .macro call param0:req + .macro call ptr:req .byte 0xe - .4byte \param0 + .4byte \ptr .endm .macro return .byte 0xf .endm - .macro setarg param0:req, param1:req + .macro setarg argId:req, value:req .byte 0x10 - .byte \param0 - .2byte \param1 + .byte \argId + .2byte \value .endm - .macro choosetwoturnanim param0:req, param1:req + .macro choosetwoturnanim ptr1:req, ptr2:req .byte 0x11 - .4byte \param0 - .4byte \param1 + .4byte \ptr1 + .4byte \ptr2 .endm - .macro jumpifmoveturn param0:req, ptr:req + .macro jumpifmoveturn value:req, ptr:req .byte 0x12 - .byte \param0 + .byte \value .4byte \ptr .endm @@ -144,13 +144,13 @@ .byte \pan .endm - .macro panse_1B se:req, param1:req, param2:req, param3:req, param4:req + .macro panse se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req .byte 0x1b .2byte \se - .byte \param1 - .byte \param2 - .byte \param3 - .byte \param4 + .byte \currentPan + .byte \targetPan + .byte \incrementPan + .byte \delay .endm .macro loopsewithpan se:req, pan:req, wait:req, times:req @@ -168,9 +168,9 @@ .byte \wait .endm - .macro setbldcnt param0:req + .macro setbldcnt bldcnt:req .byte 0x1e - .2byte \param0 + .2byte \bldcnt .endm .macro createsoundtask addr:req, argv:vararg @@ -186,19 +186,19 @@ .byte 0x20 .endm - .macro jumpargeq param0:req, param1:req, ptr:req + .macro jumpargeq argId:req, value:req, ptr:req .byte 0x21 - .byte \param0 - .2byte \param1 + .byte \argId + .2byte \value .4byte \ptr .endm - .macro monbg_22 battler:req + .macro monbg_static battler:req .byte 0x22 .byte \battler .endm - .macro clearmonbg_23 battler:req + .macro clearmonbg_static battler:req .byte 0x23 .byte \battler .endm @@ -208,41 +208,41 @@ .4byte \ptr .endm - .macro fadetobgfromset param0:req, param1:req, param2:req + .macro fadetobgfromset bgOpponent:req, bgPlayer:req, bgContest:req .byte 0x25 - .byte \param0 - .byte \param1 - .byte \param2 + .byte \bgOpponent + .byte \bgPlayer + .byte \bgContest .endm - .macro panse_26 se:req, param1:req, param2:req, param3:req, param4:req + .macro panse_adjustnone se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req .byte 0x26 .2byte \se - .byte \param1 - .byte \param2 - .byte \param3 - .byte \param4 + .byte \currentPan + .byte \targetPan + .byte \incrementPan + .byte \delay .endm - .macro panse_27 se:req, param1:req, param2:req, param3:req, param4:req + .macro panse_adjustall se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req .byte 0x27 .2byte \se - .byte \param1 - .byte \param2 - .byte \param3 - .byte \param4 + .byte \currentPan + .byte \targetPan + .byte \incrementPan + .byte \delay .endm - .macro monbgprio_28 battler:req + .macro splitbgprio battler:req .byte 0x28 .byte \battler .endm - .macro monbgprio_29 + .macro splitbgprio_all .byte 0x29 .endm - .macro monbgprio_2A battler:req + .macro splitbgprio_foes battler:req .byte 0x2a .byte \battler .endm @@ -257,12 +257,12 @@ .byte \battler .endm - .macro doublebattle_2D battler:req + .macro teamattack_moveback battler:req .byte 0x2d .byte \battler .endm - .macro doublebattle_2E battler:req + .macro teamattack_movefwd battler:req .byte 0x2e .byte \battler .endm diff --git a/constants/gba_constants.inc b/constants/gba_constants.inc index 9d59c8fcd..3ff857ee8 100644 --- a/constants/gba_constants.inc +++ b/constants/gba_constants.inc @@ -488,3 +488,26 @@ .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE + +@ BLDCNT + + .set BLDCNT_TGT1_BG0, 1 << 0 + .set BLDCNT_TGT1_BG1, 1 << 1 + .set BLDCNT_TGT1_BG2, 1 << 2 + .set BLDCNT_TGT1_BG3, 1 << 3 + .set BLDCNT_TGT1_OBJ, 1 << 4 + .set BLDCNT_TGT1_BD, 1 << 5 + .set BLDCNT_TGT1_ALL, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD + + .set BLDCNT_EFFECT_NONE, 0 << 6 + .set BLDCNT_EFFECT_BLEND, 1 << 6 + .set BLDCNT_EFFECT_LIGHTEN, 2 << 6 + .set BLDCNT_EFFECT_DARKEN, 3 << 6 + + .set BLDCNT_TGT2_BG0, 1 << 8 + .set BLDCNT_TGT2_BG1, 1 << 9 + .set BLDCNT_TGT2_BG2, 1 << 10 + .set BLDCNT_TGT2_BG3, 1 << 11 + .set BLDCNT_TGT2_OBJ, 1 << 12 + .set BLDCNT_TGT2_BD, 1 << 13 + .set BLDCNT_TGT2_ALL, BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 85691c3a6..0b8743f76 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,40 +1,12 @@ #include "constants/battle.h" #include "constants/battle_anim.h" +#include "constants/rgb.h" #include "constants/songs.h" #include "constants/sound.h" #include "constants/moves.h" .include "asm/macros.inc" .include "asm/macros/battle_anim_script.inc" - -#define FALSE 0 -#define TRUE 1 - -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) -#define RGB_BLACK 0x0000 -#define RGB_WHITE 0x7FFF -#define RGB_WHITEALPHA 0xFFFF - -// BLDCNT -// Bits 0-5 select layers for the 1st target -#define BLDCNT_TGT1_BG0 (1 << 0) -#define BLDCNT_TGT1_BG1 (1 << 1) -#define BLDCNT_TGT1_BG2 (1 << 2) -#define BLDCNT_TGT1_BG3 (1 << 3) -#define BLDCNT_TGT1_OBJ (1 << 4) -#define BLDCNT_TGT1_BD (1 << 5) -// Bits 6-7 select the special effect -#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect -#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) -#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY) -#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY) -// Bits 8-13 select layers for the 2nd target -#define BLDCNT_TGT2_BG0 (1 << 8) -#define BLDCNT_TGT2_BG1 (1 << 9) -#define BLDCNT_TGT2_BG2 (1 << 10) -#define BLDCNT_TGT2_BG3 (1 << 11) -#define BLDCNT_TGT2_OBJ (1 << 12) -#define BLDCNT_TGT2_BD (1 << 13) -#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) + .include "constants/constants.inc" .section script_data, "aw", %progbits @@ -314,7 +286,7 @@ gBattleAnims_Moves:: .4byte Move_FOCUS_PUNCH .4byte Move_SMELLING_SALT .4byte Move_FOLLOW_ME - .4byte Move_ANCIENT_POWER + .4byte Move_NATURE_POWER .4byte Move_CHARGE .4byte Move_TAUNT .4byte Move_HELPING_HAND @@ -402,97 +374,101 @@ gBattleAnims_Moves:: .4byte Move_WATER_PULSE .4byte Move_DOOM_DESIRE .4byte Move_PSYCHO_BOOST - .4byte Move_COUNT + .4byte Move_COUNT @ cannot be reached, because last move is Psycho Boost + .align 2 gBattleAnims_StatusConditions:: - .4byte Status_Poison - .4byte Status_Confusion - .4byte Status_Burn - .4byte Status_Infatuation - .4byte Status_Sleep - .4byte Status_Paralysis - .4byte Status_Freeze - .4byte Status_Curse - .4byte Status_Nightmare + .4byte Status_Poison @ B_ANIM_STATUS_PSN + .4byte Status_Confusion @ B_ANIM_STATUS_CONFUSION + .4byte Status_Burn @ B_ANIM_STATUS_BRN + .4byte Status_Infatuation @ B_ANIM_STATUS_INFATUATION + .4byte Status_Sleep @ B_ANIM_STATUS_SLP + .4byte Status_Paralysis @ B_ANIM_STATUS_PRZ + .4byte Status_Freeze @ B_ANIM_STATUS_FRZ + .4byte Status_Curse @ B_ANIM_STATUS_CURSED + .4byte Status_Nightmare @ B_ANIM_STATUS_NIGHTMARE + .align 2 gBattleAnims_General:: - .4byte General_CastformChange - .4byte General_StatsChange - .4byte General_SubstituteFade - .4byte General_SubstituteAppear - .4byte General_BaitThrow - .4byte General_ItemKnockoff - .4byte General_TurnTrap - .4byte General_ItemEffect - .4byte General_SmokeballEscape - .4byte General_HangedOn - .4byte General_Rain - .4byte General_Sun - .4byte General_Sandstorm - .4byte General_Hail - .4byte General_LeechSeedDrain - .4byte General_MonHit - .4byte General_ItemSteal - .4byte General_SnatchMove - .4byte General_FutureSightHit - .4byte General_DoomDesireHit - .4byte General_FocusPunchSetUp - .4byte General_IngrainHeal - .4byte General_WishHeal - .4byte General_MonScared - .4byte General_GhostGetOut - .4byte General_SilphScoped - .4byte General_SafariRockThrow - .4byte General_SafariReaction + .4byte General_CastformChange @ B_ANIM_CASTFORM_CHANGE + .4byte General_StatsChange @ B_ANIM_STATS_CHANGE + .4byte General_SubstituteFade @ B_ANIM_SUBSTITUTE_FADE + .4byte General_SubstituteAppear @ B_ANIM_SUBSTITUTE_APPEAR + .4byte General_BaitThrow @ B_ANIM_BAIT_THROW + .4byte General_ItemKnockoff @ B_ANIM_ITEM_KNOCKOFF + .4byte General_TurnTrap @ B_ANIM_TURN_TRAP + .4byte General_HeldItemEffect @ B_ANIM_HELD_ITEM_EFFECT + .4byte General_SmokeballEscape @ B_ANIM_SMOKEBALL_ESCAPE + .4byte General_FocusBand @ B_ANIM_FOCUS_BAND + .4byte General_Rain @ B_ANIM_RAIN_CONTINUES + .4byte General_Sun @ B_ANIM_SUN_CONTINUES + .4byte General_Sandstorm @ B_ANIM_SANDSTORM_CONTINUES + .4byte General_Hail @ B_ANIM_HAIL_CONTINUES + .4byte General_LeechSeedDrain @ B_ANIM_LEECH_SEED_DRAIN + .4byte General_MonHit @ B_ANIM_MON_HIT + .4byte General_ItemSteal @ B_ANIM_ITEM_STEAL + .4byte General_SnatchMove @ B_ANIM_SNATCH_MOVE + .4byte General_FutureSightHit @ B_ANIM_FUTURE_SIGHT_HIT + .4byte General_DoomDesireHit @ B_ANIM_DOOM_DESIRE_HIT + .4byte General_FocusPunchSetUp @ B_ANIM_FOCUS_PUNCH_SETUP + .4byte General_IngrainHeal @ B_ANIM_INGRAIN_HEAL + .4byte General_WishHeal @ B_ANIM_WISH_HEAL + .4byte General_MonScared @ B_ANIM_MON_SCARED + .4byte General_GhostGetOut @ B_ANIM_GHOST_GET_OUT + .4byte General_SilphScoped @ B_ANIM_SILPH_SCOPED + .4byte General_SafariRockThrow @ B_ANIM_ROCK_THROW + .4byte General_SafariReaction @ B_ANIM_SAFARI_REACTION + .align 2 gBattleAnims_Special:: - .4byte Special_LevelUp - .4byte Special_SwitchOutPlayerMon - .4byte Special_SwitchOutOpponentMon - .4byte Special_BallThrow - .4byte Special_SafariBallThrow - .4byte Special_SubstituteToMon - .4byte Special_MonToSubstitute + .4byte Special_LevelUp @ B_ANIM_LVL_UP + .4byte Special_SwitchOutPlayerMon @ B_ANIM_SWITCH_OUT_PLAYER_MON + .4byte Special_SwitchOutOpponentMon @ B_ANIM_SWITCH_OUT_OPPONENT_MON + .4byte Special_BallThrow @ B_ANIM_BALL_THROW + .4byte Special_BallThrowWithTrainer @ B_ANIM_BALL_THROW_WITH_TRAINER + .4byte Special_SubstituteToMon @ B_ANIM_SUBSTITUTE_TO_MON + .4byte Special_MonToSubstitute @ B_ANIM_MON_TO_SUBSTITUTE -Move_NONE:: -Move_POUND:: -Move_MIRROR_MOVE:: +Move_NONE: +Move_MIRROR_MOVE: +Move_POUND: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_DOUBLE_SLAP:: +Move_DOUBLE_SLAP: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 choosetwoturnanim DoubleSlapLeft, DoubleSlapRight -DoubleSlapContinue:: - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + +DoubleSlapContinue: + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -DoubleSlapLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 +DoubleSlapLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 goto DoubleSlapContinue -DoubleSlapRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, 1, 2 +DoubleSlapRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, ANIM_TARGET, 2 goto DoubleSlapContinue -Move_POISON_POWDER:: +Move_POISON_POWDER: loadspritegfx ANIM_TAG_POISON_POWDER loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_M_POISON_POWDER, 63, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -514,9 +490,9 @@ Move_POISON_POWDER:: waitforvisualfinish end -Move_STUN_SPORE:: +Move_STUN_SPORE: loadspritegfx ANIM_TAG_STUN_SPORE - loopsewithpan SE_M_POISON_POWDER, 63, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -538,9 +514,9 @@ Move_STUN_SPORE:: waitforvisualfinish end -Move_SLEEP_POWDER:: +Move_SLEEP_POWDER: loadspritegfx ANIM_TAG_SLEEP_POWDER - loopsewithpan SE_M_POISON_POWDER, 63, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -562,26 +538,26 @@ Move_SLEEP_POWDER:: waitforvisualfinish end -Move_SWIFT:: +Move_SWIFT: loadspritegfx ANIM_TAG_YELLOW_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 5, 22, -18, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, -10, 22, 15, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 18, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 18, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 12, 1 delay 5 waitforvisualfinish @@ -589,62 +565,62 @@ Move_SWIFT:: blendoff end -Move_STRENGTH:: +Move_STRENGTH: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_ShakeAndSinkMon, 5, 0, 2, 0, 96, 30 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_ATTACKER, 2, 0, 96, 30 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 4 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 1, 18, 6, 2, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 18, 6, 2, 4 delay 4 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 16, 12, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 16, 12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, -12, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, -12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 3, 4, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 3, 4, ANIM_TARGET, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_TACKLE:: +Move_TACKLE: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_BODY_SLAM:: +Move_BODY_SLAM: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER waitforvisualfinish delay 11 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 26, 0, 0, 5 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, 1, 0 - loopsewithpan SE_M_MEGA_KICK2, 63, 10, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 10, 2 delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 6 @@ -655,12 +631,12 @@ Move_BODY_SLAM:: blendoff end -Move_SUPERSONIC:: +Move_SUPERSONIC: loadspritegfx ANIM_TAG_GOLD_RING monbg ANIM_ATK_PARTNER - monbgprio_2A 0 + splitbgprio_foes ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 8, 1 call SupersonicRing call SupersonicRing call SupersonicRing @@ -672,140 +648,142 @@ Move_SUPERSONIC:: blendoff end -SupersonicRing:: - playsewithpan SE_M_SUPERSONIC, 192 - createsprite gSupersonicWaveSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 +SupersonicRing: + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER + createsprite gSupersonicRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return -Move_SCREECH:: +Move_SCREECH: loadspritegfx ANIM_TAG_PURPLE_RING - createvisualtask AnimTask_ShakeMon2, 2, 0, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 3, 0, 2, 1 call ScreechRing call ScreechRing delay 16 - createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, ANIM_TARGET waitforvisualfinish end -ScreechRing:: - playsewithpan SE_M_SCREECH, 192 - createsprite gScreechWaveSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 +ScreechRing: + playsewithpan SE_M_SCREECH, SOUND_PAN_ATTACKER + createsprite gScreechRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return -Move_FLAME_WHEEL:: +Move_FLAME_WHEEL: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 0 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 4 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 8 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 12 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 16 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 20 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 24 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 4 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 8, 1 - createvisualtask AnimTask_BlendMonInAndOut, 3, 1, 31, 12, 1, 1 - playsewithpan SE_M_FLAME_WHEEL2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 8, 1 + createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET call FireSpreadEffect delay 7 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 9 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end + +FlameWheel1: @ Unused createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 50 delay 4 return -Move_PIN_MISSILE:: +Move_PIN_MISSILE: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_ICICLE_SPEAR:: +Move_ICICLE_SPEAR: loadspritegfx ANIM_TAG_ICICLE_SPEAR loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_ICY_WIND, 192 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_TAKE_DOWN:: +Move_TAKE_DOWN: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_WindUpLunge, 5, 0, -24, 8, 23, 10, 40, 10 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -24, 8, 23, 10, 40, 10 delay 35 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 10, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, 1, 0 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 10, RGB_BLACK, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 0, 0, 4 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 waitforvisualfinish delay 2 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 @@ -816,32 +794,32 @@ Move_TAKE_DOWN:: blendoff end -Move_DOUBLE_EDGE:: +Move_DOUBLE_EDGE: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_SWIFT, 192 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 4, 2, RGB_WHITE, 10, 0, 0 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 4, 2, RGB_WHITE, 10, RGB_BLACK, 0 waitforvisualfinish delay 10 - playsewithpan SE_M_SWAGGER, 192 - waitplaysewithpan SE_M_SWAGGER, 192, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 2, 4 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 8 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 16, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 16, 16, RGB_WHITE createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 4, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_WHITE + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 @@ -849,57 +827,57 @@ Move_DOUBLE_EDGE:: waitforvisualfinish end -Move_POISON_STING:: +Move_POISON_STING: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 5, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish call PoisonBubblesEffect waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_TWINEEDLE:: +Move_TWINEEDLE: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_M_RAZOR_WIND2, 192, 6, 2 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 6, 2 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 10, -4, 0, -4, 20 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 12, 10, 12, 20 delay 20 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 1, 3 - loopsewithpan SE_M_HORN_ATTACK, 63, 5, 2 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 2 delay 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 10, 12, 1, 3 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_FIRE_BLAST:: +Move_FIRE_BLAST: loadspritegfx ANIM_TAG_SMALL_EMBER createsoundtask SoundTask_FireBlast, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 call FireBlastRing call FireBlastRing call FireBlastRing delay 24 - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 8, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 0, 8, RGB_BLACK waitforvisualfinish delay 19 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 20, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 20, 1 call FireBlastCross delay 3 call FireBlastCross @@ -918,11 +896,11 @@ Move_FIRE_BLAST:: delay 3 call FireBlastCross waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 2, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 2, 8, 0, RGB_BLACK waitforvisualfinish end -FireBlastRing:: +FireBlastRing: createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 51 createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 102 @@ -931,7 +909,7 @@ FireBlastRing:: delay 5 return -FireBlastCross:: +FireBlastCross: createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 10, 0, -2 createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 13, -2, 0 createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 13, 2, 0 @@ -939,205 +917,205 @@ FireBlastCross:: createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 15, 2, 2 return -Move_LEECH_SEED:: +Move_LEECH_SEED: loadspritegfx ANIM_TAG_SEED - playsewithpan SE_M_POISON_POWDER, 192 + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 0, 24, 35, -32 delay 8 - playsewithpan SE_M_POISON_POWDER, 192 + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, -16, 24, 35, -40 delay 8 - playsewithpan SE_M_POISON_POWDER, 192 + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 16, 24, 35, -37 delay 12 - loopsewithpan SE_M_TAIL_WHIP, 63, 10, 8 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 10, 8 waitforvisualfinish end -Move_EMBER:: +Move_EMBER: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_M_EMBER, 192, 5, 2 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 5, 2 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, -16, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 16, 24, 20, 1 delay 16 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call EmberFireHit call EmberFireHit call EmberFireHit end -EmberFireHit:: - createsprite gEmberFlareSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 +EmberFireHit: + createsprite gEmberFlareSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, ANIM_TARGET, 1 delay 4 return -Move_MEGA_PUNCH:: +Move_MEGA_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET delay 2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_M_MEGA_KICK, 63 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 50 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, RGB_WHITE delay 50 call SetImpactBackground - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 22, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 0, RGB_WHITE + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 2 restorebg waitbgfadein end -SetImpactBackground:: +SetImpactBackground: delay 2 - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, SetImpactContestsBG - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, SetImpactOpponentBG - jumpargeq 7, 1, SetImpactPlayerBG -SetImpactBackgroundRet:: + createvisualtask AnimTask_IsContest, 2 + jumprettrue SetImpactContestsBG + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse SetImpactOpponentBG + jumprettrue SetImpactPlayerBG +SetImpactBackgroundRet: return -SetImpactOpponentBG:: - changebg 4 +SetImpactOpponentBG: + changebg BG_IMPACT_OPPONENT goto SetImpactBackgroundRet -SetImpactPlayerBG:: - changebg 5 +SetImpactPlayerBG: + changebg BG_IMPACT_PLAYER goto SetImpactBackgroundRet -SetImpactContestsBG:: - changebg 6 +SetImpactContestsBG: + changebg BG_IMPACT_CONTESTS goto SetImpactBackgroundRet -Move_MEGA_KICK:: +Move_MEGA_KICK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET delay 2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_M_MEGA_KICK, 63 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 50 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, RGB_WHITE delay 50 - playsewithpan SE_M_MEGA_KICK2, 63 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET call SetImpactBackground - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 22, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 0, RGB_WHITE + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 2 restorebg waitbgfadein end -Move_COMET_PUNCH:: +Move_COMET_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 choosetwoturnanim CometPunchLeft, CometPunchRight -CometPunchContinue:: - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_COMET_PUNCH, 63 +CometPunchContinue: + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -CometPunchLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, -8, 1, 2 +CometPunchLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, -8, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -8, 0, 8, 1, 0 goto CometPunchContinue -CometPunchRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, -8, 1, 2 +CometPunchRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, -8, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 8, 0, 8, 1, 0 goto CometPunchContinue -Move_SONIC_BOOM:: +Move_SONIC_BOOM: loadspritegfx ANIM_TAG_AIR_WAVE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 call SonicBoomProjectile call SonicBoomProjectile call SonicBoomProjectile - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 10, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 10, 1 call SonicBoomHit waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -SonicBoomProjectile:: - playsewithpan SE_M_RAZOR_WIND2, 192 +SonicBoomProjectile: + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gSonicBoomSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 15 delay 4 return -SonicBoomHit:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 2 +SonicBoomHit: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 delay 4 return -Move_THUNDER_SHOCK:: +Move_THUNDER_SHOCK: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -44, 0 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 0, 13, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 0, 13, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 13, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 13, 0, RGB_BLACK waitforvisualfinish delay 20 call ElectricityEffect waitforvisualfinish delay 20 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 0, RGB_BLACK waitforvisualfinish end -Move_THUNDERBOLT:: +Move_THUNDERBOLT: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_SHOCK_3 loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 24, -52, 0 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, -24, -52, 0 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, 0, -60, 1 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 0, 13, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 0, 13, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 13, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 13, 0, RGB_BLACK waitforvisualfinish delay 20 createsprite gThunderboltOrbSpriteTemplate, ANIM_TARGET, 3, 44, 0, 0, 3 @@ -1149,128 +1127,129 @@ Move_THUNDERBOLT:: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 - playsewithpan SE_M_HYPER_BEAM, 63 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 0 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 2, 2, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 2, 2, RGB_BLACK delay 6 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 6, RGB_BLACK delay 6 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 2, 2, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 2, 2, RGB_BLACK delay 6 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 6, RGB_BLACK waitforvisualfinish delay 20 - waitplaysewithpan SE_M_THUNDERBOLT2, 63, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish delay 20 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 0, RGB_BLACK waitforvisualfinish end -Move_THUNDER_WAVE:: +Move_THUNDER_WAVE: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_SPARK_2 loadspritegfx ANIM_TAG_SPARK_H - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -48, 0 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 20 - loopsewithpan SE_M_THUNDERBOLT2, 63, 10, 4 + loopsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 10, 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 0 delay 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 16 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 0, RGB_BLACK waitforvisualfinish end -Move_BEAT_UP:: +Move_BEAT_UP: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 choosetwoturnanim BeatUpLeft, BeatUpRight -BeatUpContinue:: + +BeatUpContinue: waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -BeatUpLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, 1, 2 +BeatUpLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -20, -12, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, 1, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 8, 8, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue -BeatUpRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, 1, 2 +BeatUpRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 12, -12, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 0, 1, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -12, 8, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue -Move_STOMP:: +Move_STOMP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gStompFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -32, 15 delay 19 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, 1, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 4, 9, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 4, 9, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_TAIL_WHIP:: - loopsewithpan SE_M_TAIL_WHIP, 192, 24, 3 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 4, 2, 3 +Move_TAIL_WHIP: + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 3 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 2, 3 waitforvisualfinish end -Move_CUT:: +Move_CUT: loadspritegfx ANIM_TAG_CUT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_CUT, 63 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 delay 5 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_HIDDEN_POWER:: +Move_HIDDEN_POWER: loadspritegfx ANIM_TAG_RED_ORB - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, 0, 0 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 waitforvisualfinish delay 30 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 20479, 12, 5, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 31, 19), 12, 5, 1 delay 4 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, 0, 0 - playsewithpan SE_M_REVERSAL, 192 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1278,9 +1257,9 @@ Move_HIDDEN_POWER:: createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 168 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 210 delay 52 - setarg 7, 65535 - playsewithpan SE_M_REFLECT, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, 0, 0 + setarg 7, 0xFFFF + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 32 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 64 @@ -1291,17 +1270,17 @@ Move_HIDDEN_POWER:: createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 224 end -Move_REVERSAL:: +Move_REVERSAL: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_DETECT, 192 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 3, RGB_WHITE, 8, RGB_BLACK, 0 waitforvisualfinish delay 30 - createvisualtask AnimTask_BlendColorCycle, 2, 31, 3, 2, 0, 10, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 2, 0, 10, RGB_WHITE delay 10 - playsewithpan SE_M_REVERSAL, 192 + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1312,14 +1291,14 @@ Move_REVERSAL:: delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 8 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, 0, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_WHITE, 8, RGB_BLACK, 0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 end -Move_PURSUIT:: +Move_PURSUIT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET fadetobg BG_DARK @@ -1327,7 +1306,8 @@ Move_PURSUIT:: delay 0 setalpha 12, 8 choosetwoturnanim PursuitNormal, PursuitOnSwitchout -PursuitContinue:: + +PursuitContinue: waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1336,27 +1316,27 @@ PursuitContinue:: waitbgfadein end -PursuitNormal:: - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 6, 1, 0 +PursuitNormal: + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue -PursuitOnSwitchout:: - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 6, 1, 0 +PursuitOnSwitchout: + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue -Move_SPIKE_CANNON:: +Move_SPIKE_CANNON: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_WindUpLunge, 5, 0, -4, 0, 4, 6, 8, 4 + createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -4, 0, 4, 6, 8, 4 waitforvisualfinish - loopsewithpan SE_M_RAZOR_WIND2, 192, 5, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 5, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 10, -8, -8, -8, 20 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 0, 0, 20 @@ -1365,57 +1345,57 @@ Move_SPIKE_CANNON:: createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 7, 1 - loopsewithpan SE_M_HORN_ATTACK, 63, 5, 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 7, 1 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 3 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SWORDS_DANCE:: +Move_SWORDS_DANCE: loadspritegfx ANIM_TAG_SWORD monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_M_SWORDS_DANCE, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 16, 6, 1, 4 + playsewithpan SE_M_SWORDS_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 16, 6, 1, 4 createsprite gSwordsDanceBladeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 22 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10005, 2, 2, 32754, 16, 0, 0 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_SWORD, 2, 2, RGB(18, 31, 31), 16, 0, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff delay 1 end -Move_PSYCH_UP:: +Move_PSYCH_UP: loadspritegfx ANIM_TAG_SPIRAL monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, 0 + createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, RGB_BLACK setalpha 12, 8 - loopsewithpan SE_M_PSYBEAM2, 192, 5, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 5, 10 createsprite gPsychUpSpiralSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 - createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, ANIM_ATTACKER delay 127 delay 4 - playsewithpan SE_M_PSYBEAM, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 - createvisualtask AnimTask_BlendSelected, 9, 2, 2, 10, 0, RGB(31, 31, 0) + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 9, F_PAL_ATTACKER, 2, 10, 0, RGB_YELLOW delay 30 clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end -Move_DIZZY_PUNCH:: +Move_DIZZY_PUNCH: loadspritegfx ANIM_TAG_DUCK loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, 16, 8, 20, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, 1, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, ANIM_TARGET, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 128, -16 @@ -1425,8 +1405,8 @@ Move_DIZZY_PUNCH:: delay 10 call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, -16, -8, 20, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 128, -16 @@ -1434,89 +1414,89 @@ Move_DIZZY_PUNCH:: createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -128, -22 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -384, -31 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -DizzyPunchLunge:: +DizzyPunchLunge: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 7, 1 return -Move_FIRE_SPIN:: +Move_FIRE_SPIN: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_M_SACRED_FIRE2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 47, 1 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 call FireSpinEffect call FireSpinEffect call FireSpinEffect waitforvisualfinish end -FireSpinEffect:: - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 +FireSpinEffect: + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, -50, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, -50, ANIM_TARGET delay 2 return -Move_FURY_CUTTER:: +Move_FURY_CUTTER: loadspritegfx ANIM_TAG_CUT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_IsFuryCutterHitRight, 2, - jumpargeq 7, 0, FuryCutterLeft + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_IsFuryCutterHitRight, 2 + jumpretfalse FuryCutterLeft goto FuryCutterRight -FuryCutterContinue:: - createvisualtask AnimTask_GetFuryCutterHitCount, 2, - jumpargeq 7, 1, FuryCutterContinue2 - jumpargeq 7, 2, FuryCutterMedium - jumpargeq 7, 3, FuryCutterStrong +FuryCutterContinue: + createvisualtask AnimTask_GetFuryCutterHitCount, 2 + jumpreteq 1, FuryCutterContinue2 + jumpreteq 2, FuryCutterMedium + jumpreteq 3, FuryCutterStrong goto FuryCutterStrongest -FuryCutterContinue2:: +FuryCutterContinue2: delay 5 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -FuryCutterLeft:: +FuryCutterLeft: createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 goto FuryCutterContinue -FuryCutterRight:: +FuryCutterRight: createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 1 goto FuryCutterContinue -FuryCutterMedium:: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 10505, 4, 0, 0 +FuryCutterMedium: + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 -FuryCutterStrong:: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, 10505, 4, 0, 0 +FuryCutterStrong: + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 3, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 -FuryCutterStrongest:: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, 10505, 4, 0, 0 +FuryCutterStrongest: + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 3, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 -Move_SELF_DESTRUCT:: +Move_SELF_DESTRUCT: loadspritegfx ANIM_TAG_EXPLOSION - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 9, RGB_RED createvisualtask AnimTask_ShakeMon2, 5, 4, 6, 0, 38, 1 createvisualtask AnimTask_ShakeMon2, 5, 5, 6, 0, 38, 1 createvisualtask AnimTask_ShakeMon2, 5, 6, 6, 0, 38, 1 @@ -1525,74 +1505,74 @@ Move_SELF_DESTRUCT:: call SelfDestructExplode call SelfDestructExplode waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 9, 0, RGB_RED end -SelfDestructExplode:: - playsewithpan SE_M_SELF_DESTRUCT, 192 +SelfDestructExplode: + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return -Move_SLAM:: +Move_SLAM: loadspritegfx ANIM_TAG_SLAM_HIT loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_COMET_PUNCH, 192 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 3, 0, 4 delay 1 createsprite gSlamHitSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 3 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 waitforvisualfinish delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_VINE_WHIP:: +Move_VINE_WHIP: loadspritegfx ANIM_TAG_WHIP_HIT - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 6 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, 0, 0 delay 6 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 1 end -Move_DRILL_PECK:: +Move_DRILL_PECK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_WHIRLWIND_LINES createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 2 - loopsewithpan SE_M_HORN_ATTACK, 63, 4, 8 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 4, 8 createvisualtask AnimTask_DrillPeckHitSplats, 5 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 waitforvisualfinish createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 waitforvisualfinish @@ -1600,37 +1580,37 @@ Move_DRILL_PECK:: waitforvisualfinish end -Move_WATERFALL:: +Move_WATERFALL: loadspritegfx ANIM_TAG_WATER_IMPACT loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 23, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 delay 5 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, ANIM_ATTACKER waitforvisualfinish delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 5 @@ -1641,49 +1621,49 @@ Move_WATERFALL:: blendoff end -RisingWaterHitEffect:: - playsewithpan SE_M_WATERFALL, 63 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 17, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, 1, 1 +RisingWaterHitEffect: + playsewithpan SE_M_WATERFALL, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 17, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 15, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 15, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 15 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 15 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 10, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 10, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 10 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 10 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 5 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 5 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 0 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 0 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -5, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -5, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -5 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -5 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -10 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -10 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -15 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -15 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -20, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -20, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -20 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -20 return -Move_EXPLOSION:: +Move_EXPLOSION: loadspritegfx ANIM_TAG_EXPLOSION - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 9, 8474, 8, 0, 8 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 8 createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1 @@ -1692,251 +1672,252 @@ Move_EXPLOSION:: call Explosion1 call Explosion1 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 1, 16, 16, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 1, 16, 16, RGB_WHITE delay 50 - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 16, 0, RGB_WHITE end -Explosion1:: - playsewithpan SE_M_EXPLOSION, 192 +Explosion1: + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return -Move_DEFENSE_CURL:: +Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB - loopsewithpan SE_M_TRI_ATTACK, 192, 18, 3 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 0 - createvisualtask AnimTask_DefenseCurlDeformMon, 5, + loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 + createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish end -Move_PROTECT:: +Move_PROTECT: loadspritegfx ANIM_TAG_PROTECT monbg ANIM_ATK_PARTNER - monbgprio_28 0 - waitplaysewithpan SE_M_REFLECT, 192, 16 - createsprite gProtectWallSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 + splitbgprio ANIM_ATTACKER + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 16 + createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER end -Move_DETECT:: +Move_DETECT: loadspritegfx ANIM_TAG_SPARKLE_4 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 9, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 9, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 9, RGB_WHITE delay 18 - playsewithpan SE_M_DETECT, 192 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 20, -20 waitforvisualfinish delay 10 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 9, 0, 0 - createvisualtask AnimTask_BlendSelected, 10, 2, 2, 9, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 9, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 9, 0, RGB_WHITE waitforvisualfinish end -Move_FRUSTRATION:: +Move_FRUSTRATION: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ANGER monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_GetFrustrationPowerLevel, 1, - jumpargeq 7, 0, Frustration_Strongest - jumpargeq 7, 1, Frustration_Strong - jumpargeq 7, 2, Frustration_Medium + createvisualtask AnimTask_GetFrustrationPowerLevel, 1 + jumpreteq 0, Frustration_Strongest + jumpreteq 1, Frustration_Strong + jumpreteq 2, Frustration_Medium goto Frustration_Weak -Frustration_Continue:: + +Frustration_Continue: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Frustration_Strongest:: - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 0, 9, RGB(31, 0, 0) +Frustration_Strongest: + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 0, 9, RGB_RED waitforvisualfinish delay 20 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 10 - createvisualtask AnimTask_SwayMon, 5, 0, 16, 6144, 8, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 16, 6144, 8, ANIM_ATTACKER delay 5 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 30, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 30, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 9, 0, RGB_RED goto Frustration_Continue -Frustration_Strong:: - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 0, 9, RGB(31, 0, 0) +Frustration_Strong: + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 0, 9, RGB_RED waitforvisualfinish delay 20 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 - createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5, + createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5 delay 7 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, 1, 1 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, -6, 1, 1 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, -6, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, 1, 1 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 9, 0, RGB_RED goto Frustration_Continue -Frustration_Medium:: - playsewithpan SE_M_SWAGGER2, 192 +Frustration_Medium: + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 4, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 4, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 goto Frustration_Continue -Frustration_Weak:: +Frustration_Weak: createsprite gWeakFrustrationAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 20, -28 waitforvisualfinish delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 10, 2 delay 12 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 goto Frustration_Continue -Move_SAFEGUARD:: +Move_SAFEGUARD: loadspritegfx ANIM_TAG_GUARD_RING monbg ANIM_ATK_PARTNER setalpha 8, 8 - playsewithpan SE_M_MILK_DRINK, 192 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_SHINY, 192 - createvisualtask AnimTask_BlendColorCycle, 2, 10, 0, 2, 0, 10, RGB_WHITE + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATK_SIDE, 0, 2, 0, 10, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end -Move_PAIN_SPLIT:: +Move_PAIN_SPLIT: loadspritegfx ANIM_TAG_PAIN_SPLIT - createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -8, -42, 0 - createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -8, -42, 1 + createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -8, -42, ANIM_ATTACKER + createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -8, -42, ANIM_TARGET delay 10 playsewithpan SE_M_SWAGGER2, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 0, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 1, 0 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 0 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 0 waitforvisualfinish - createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -24, -42, 0 - createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -24, -42, 1 + createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -24, -42, ANIM_ATTACKER + createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -24, -42, ANIM_TARGET delay 10 playsewithpan SE_M_SWAGGER2, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 0, 1 - createvisualtask AnimTask_PainSplitMovement, 2, 1, 1 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 1 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 1 waitforvisualfinish - createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, 8, -42, 0 - createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, 8, -42, 1 + createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, 8, -42, ANIM_ATTACKER + createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, 8, -42, ANIM_TARGET delay 10 playsewithpan SE_M_SWAGGER2, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 0, 2 - createvisualtask AnimTask_PainSplitMovement, 2, 1, 2 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 2 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 2 end -Move_VICE_GRIP:: +Move_VICE_GRIP: loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 9 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 5, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_GUILLOTINE:: +Move_GUILLOTINE: loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - fadetobgfromset 12, 13, 14 + fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS waitbgfadein - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 16, RGB_BLACK delay 9 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 23, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 23, 1 delay 46 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 8, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -1944,29 +1925,29 @@ Move_GUILLOTINE:: waitbgfadein end -Move_PAY_DAY:: +Move_PAY_DAY: loadspritegfx ANIM_TAG_COIN loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gCoinThrowSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 1152 waitforvisualfinish - playsewithpan SE_M_PAY_DAY, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2 - createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2, - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 + playsewithpan SE_M_PAY_DAY, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 2 + createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_OUTRAGE:: +Move_OUTRAGE: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_M_DRAGON_RAGE, 192, 8, 3 - createvisualtask AnimTask_BlendColorCycle, 2, 7, 2, 5, 3, 8, 430 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 5, 4 + loopsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER, 8, 3 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER | F_PAL_TARGET, 2, 5, 3, 8, RGB(14, 13, 0) + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 5, 4 delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 delay 0 @@ -1976,7 +1957,7 @@ Move_OUTRAGE:: delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 0, -1280, 3 delay 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 40, 1 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 768, 3 delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 768, 3 @@ -1991,7 +1972,7 @@ Move_OUTRAGE:: waitforvisualfinish end -OutrageFlames:: +OutrageFlames: delay 3 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 0, 3 delay 0 @@ -2008,30 +1989,30 @@ OutrageFlames:: createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, -768, 3 return -Move_SPARK:: +Move_SPARK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_SPARK_2 delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, 23551 - playsewithpan SE_M_THUNDERBOLT2, 192 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 5, 5, RGB(31, 31, 22) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, ANIM_ATTACKER, 1, 0 delay 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, ANIM_ATTACKER, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, ANIM_ATTACKER, 1, 1 delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 0, 0, RGB(31, 31, 22) delay 10 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, 23551 - playsewithpan SE_M_THUNDERBOLT2, 192 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 5, 5, RGB(31, 31, 22) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, ANIM_ATTACKER, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, ANIM_ATTACKER, 1, 1 delay 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, ANIM_ATTACKER, 1, 1 delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 0, 0, RGB(31, 31, 22) delay 20 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 7, 7, 23551 - playsewithpan SE_M_THUNDERBOLT2, 192 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 7, 7, RGB(31, 31, 22) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 @@ -2042,26 +2023,26 @@ Move_SPARK:: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 delay 4 waitforvisualfinish - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 0, 0, RGB(31, 31, 22) createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - playsewithpan SE_M_HYPER_BEAM, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - createvisualtask AnimTask_BlendColorCycle, 2, 4, -31, 2, 0, 6, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, -31, 2, 0, 6, RGB(31, 31, 22) call ElectricityEffect waitforvisualfinish end -Move_ATTRACT:: +Move_ATTRACT: loadspritegfx ANIM_TAG_RED_HEART - loopsewithpan SE_M_CHARM, 192, 12, 3 - createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, 0 + loopsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER, 12, 3 + createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER delay 15 createsprite gRedHeartProjectileSpriteTemplate, ANIM_TARGET, 3, 20, -8 waitforvisualfinish - playsewithpan SE_M_ATTRACT, 63 + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -32 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -40 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -16 @@ -2070,7 +2051,7 @@ Move_ATTRACT:: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 waitforvisualfinish waitplaysewithpan SE_M_ATTRACT2, 0, 15 - createvisualtask AnimTask_HeartsBackground, 5, + createvisualtask AnimTask_HeartsBackground, 5 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 16, 256, 0 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 224, 240, 15 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 126, 272, 30 @@ -2080,52 +2061,52 @@ Move_ATTRACT:: createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 112, 256, 90 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 200, 272, 90 delay 75 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 4, 4, 0, 10, 28479 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 4, 4, 0, 10, RGB(31, 25, 27) end -Move_GROWTH:: +Move_GROWTH: call GrowthEffect waitforvisualfinish call GrowthEffect waitforvisualfinish end -GrowthEffect:: - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0 +GrowthEffect: + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_ATTACKER, 0 return -Move_WHIRLWIND:: +Move_WHIRLWIND: loadspritegfx ANIM_TAG_WHIRLWIND_LINES - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, 1, 60, 0 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 60, 1 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, 1, 60, 2 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 1, 60, 3 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 1, 60, 4 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 1, 60, 0 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, ANIM_TARGET, 60, 0 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 60, 1 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, ANIM_TARGET, 60, 2 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, ANIM_TARGET, 60, 3 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, ANIM_TARGET, 60, 4 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, ANIM_TARGET, 60, 0 delay 5 - loopsewithpan SE_M_DOUBLE_TEAM, 63, 10, 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 15, 1 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET, 10, 4 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 15, 1 delay 29 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 1, 12, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 12, 6, 1, 5 delay 7 - playsewithpan SE_M_STRING_SHOT, 63 - createvisualtask AnimTask_SlideOffScreen, 5, 1, 8 + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET + createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 8 waitforvisualfinish end -Move_CONFUSE_RAY:: +Move_CONFUSE_RAY: loadspritegfx ANIM_TAG_YELLOW_BALL monbg ANIM_DEF_PARTNER - fadetobg 2 + fadetobg BG_GHOST waitbgfadein - createvisualtask SoundTask_AdjustPanningVar, 2, -64, 63, 2, 0 - createvisualtask AnimTask_BlendColorCycleByTag, 2, ANIM_TAG_YELLOW_BALL, 0, 6, 0, 14, 351 + createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 + createvisualtask AnimTask_BlendColorCycleByTag, 2, ANIM_TAG_YELLOW_BALL, 0, 6, 0, 14, RGB(31, 10, 0) createsprite gConfuseRayBallBounceSpriteTemplate, ANIM_TARGET, 2, 28, 0, 288 waitforvisualfinish setalpha 8, 8 - playsewithpan SE_M_STRING_SHOT2, 63 + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gConfuseRayBallSpiralSpriteTemplate, ANIM_TARGET, 2, 0, -16 waitforvisualfinish delay 0 @@ -2135,71 +2116,71 @@ Move_CONFUSE_RAY:: waitbgfadein end -Move_LOCK_ON:: +Move_LOCK_ON: loadspritegfx ANIM_TAG_LOCK_ON - createsprite gLockOnTargetSpriteTemplate, ANIM_ATTACKER, 40, + createsprite gLockOnTargetSpriteTemplate, ANIM_ATTACKER, 40 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 1 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 2 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 3 - createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 4 + createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 4 @ Also transitions to red target delay 120 - setarg 7, 65535 + setarg 7, 0xFFFF @ Signal target to flash/disappear waitforvisualfinish end -Move_MEAN_LOOK:: +Move_MEAN_LOOK: loadspritegfx ANIM_TAG_EYE monbg ANIM_DEF_PARTNER - playsewithpan SE_M_PSYBEAM, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 - loopsewithpan SE_M_CONFUSE_RAY, 63, 15, 4 - waitplaysewithpan SE_M_LEER, 63, 85 - createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 16, RGB_BLACK + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET, 15, 4 + waitplaysewithpan SE_M_LEER, SOUND_PAN_TARGET, 85 + createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2 delay 120 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK delay 30 clearmonbg ANIM_DEF_PARTNER waitforvisualfinish end -Move_ROCK_THROW:: +Move_ROCK_THROW: loadspritegfx ANIM_TAG_ROCKS createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 0 - playsewithpan SE_M_ROCK_THROW, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 5, 20, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 20, 1 delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -15, 1, -10, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 23, 2, 10, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish end -Move_ROCK_SLIDE:: +Move_ROCK_SLIDE: loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 5, 0, 6, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 5, 50, 1 - createvisualtask AnimTask_ShakeMon, 2, 3, 0, 5, 50, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 delay 2 call RockSlideRocks call RockSlideRocks @@ -2207,118 +2188,118 @@ Move_ROCK_SLIDE:: clearmonbg ANIM_DEF_PARTNER end -RockSlideRocks:: +RockSlideRocks: createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 28, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -10, 1, -5, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 10, 0, 6, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 24, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -32, 2, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 30, 2, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 return -Move_THIEF:: +Move_THIEF: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET delay 1 - fadetobg 1 + fadetobg BG_DARK waitbgfadein setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 - playsewithpan SE_M_VITAL_THROW, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 8, 1 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 8, 1 waitforvisualfinish delay 20 - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff restorebg waitbgfadein end -Move_BUBBLE_BEAM:: +Move_BUBBLE_BEAM: loadspritegfx ANIM_TAG_BUBBLE loadspritegfx ANIM_TAG_SMALL_BUBBLES - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 delay 1 call BulbblebeamCreateBubbles - createvisualtask AnimTask_SwayMon, 5, 0, 3, 3072, 8, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 3, 3072, 8, ANIM_TARGET call BulbblebeamCreateBubbles call BulbblebeamCreateBubbles waitforvisualfinish call WaterBubblesEffectShort waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -BulbblebeamCreateBubbles:: +BulbblebeamCreateBubbles: createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 70, 0, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 40, -10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -60, 0, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, -10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 return -Move_ICY_WIND:: +Move_ICY_WIND: loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_ICE_SPIKES monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_BlendSelected, 10, 11, 4, 0, 4, RGB_BLACK - fadetobg 15 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_SIDE, 4, 0, 4, RGB_BLACK + fadetobg BG_ICE waitbgfadeout playsewithpan SE_M_ICY_WIND, 0 waitbgfadein waitforvisualfinish - panse_1B SE_M_GUST, 192, 63, 2, 0 + panse SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call IcyWindSwirlingSnowballs delay 5 call IcyWindSwirlingSnowballs - playsewithpan SE_M_GUST2, 63 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET delay 55 call IceSpikesEffectLong waitforvisualfinish clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadeout - createvisualtask AnimTask_BlendSelected, 10, 11, 4, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_SIDE, 4, 4, 0, RGB_BLACK waitbgfadein end -IcyWindSwirlingSnowballs:: +IcyWindSwirlingSnowballs: createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 0, 0, 0, 72, 1 delay 5 createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 10, 0, 10, 72, 1 @@ -2330,15 +2311,15 @@ IcyWindSwirlingSnowballs:: createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, -5, 0, -5, 72, 1 return -Move_SMOKESCREEN:: +Move_SMOKESCREEN: loadspritegfx ANIM_TAG_BLACK_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish - createvisualtask AnimTask_SmokescreenImpact, 2, + createvisualtask AnimTask_SmokescreenImpact, 2 delay 2 - playsewithpan SE_M_SAND_ATTACK, 63 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 72, 1, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 56, 1, 75 @@ -2354,13 +2335,13 @@ Move_SMOKESCREEN:: waitforvisualfinish end -Move_CONVERSION:: +Move_CONVERSION: loadspritegfx ANIM_TAG_CONVERSION monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 16, 0 delay 0 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -24 @@ -2369,7 +2350,7 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -24 delay 3 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -8 @@ -2378,7 +2359,7 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -8 delay 3 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 8 @@ -2387,7 +2368,7 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 8 delay 3 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 24 @@ -2396,23 +2377,23 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 24 delay 20 - playsewithpan SE_M_BARRIER, 192 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10018, 1, 1, 14335, 12, 0, 0 + playsewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_CONVERSION, 1, 1, RGB(31, 31, 13), 12, 0, 0 delay 6 - createvisualtask AnimTask_ConversionAlphaBlend, 5, + createvisualtask AnimTask_ConversionAlphaBlend, 5 waitforvisualfinish delay 1 clearmonbg ANIM_ATK_PARTNER blendoff end -Move_CONVERSION_2:: +Move_CONVERSION_2: loadspritegfx ANIM_TAG_CONVERSION monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 0, 16 delay 0 - playsewithpan SE_M_BARRIER, 63 + playsewithpan SE_M_BARRIER, SOUND_PAN_TARGET createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -24, -24, 60 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, -24, 65 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, -24, 70 @@ -2429,199 +2410,200 @@ Move_CONVERSION_2:: createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, 24, 125 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, 24, 130 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 24, 24, 135 - createvisualtask AnimTask_Conversion2AlphaBlend, 5, + createvisualtask AnimTask_Conversion2AlphaBlend, 5 delay 60 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_ROLLING_KICK:: +Move_ROLLING_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 4 - playsewithpan SE_M_DOUBLE_TEAM, 192 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 6 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 createsprite gSlidingKickSpriteTemplate, ANIM_ATTACKER, 2, -24, 0, 48, 10, 160, 0 delay 5 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 8 - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_HEADBUTT:: +Move_HEADBUTT: loadspritegfx ANIM_TAG_IMPACT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 4, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish end -Move_HORN_ATTACK:: +Move_HORN_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 4, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish end -Move_FURY_ATTACK:: +Move_FURY_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, ANIM_ATTACKER, 2 choosetwoturnanim FuryAttackRight, FuryAttackLeft -FuryAttackContinue:: - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + +FuryAttackContinue: + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 waitforvisualfinish end -FuryAttackRight:: +FuryAttackRight: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 8, 8, 10 waitforvisualfinish - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue -FuryAttackLeft:: +FuryAttackLeft: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, -8, -8, 10 waitforvisualfinish - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue -Move_HORN_DRILL:: +Move_HORN_DRILL: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT jumpifcontest HornDrillInContest - fadetobg 7 + fadetobg BG_DRILL waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 -HornDrillContinue:: +HornDrillContinue: waitbgfadein setalpha 12, 8 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 0, 0, 12 waitforvisualfinish playse SE_BANG - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 40, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 40, 1 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -HornDrillInContest:: - fadetobg 8 +HornDrillInContest: + fadetobg BG_DRILL_CONTESTS waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 goto HornDrillContinue -Move_THRASH:: +Move_THRASH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - createvisualtask AnimTask_ThrashMoveMonHorizontal, 2, - createvisualtask AnimTask_ThrashMoveMonVertical, 2, + createvisualtask AnimTask_ThrashMoveMonHorizontal, 2 + createvisualtask AnimTask_ThrashMoveMonVertical, 2 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 8, 0, 16, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 8, 0, 16, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET end -Move_SING:: +Move_SING: loadspritegfx ANIM_TAG_MUSIC_NOTES monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_M_SING, 192, 63, 2, 0 + panse SE_M_SING, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 0, 12 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 12 @@ -2648,89 +2630,89 @@ Move_SING:: delay 4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 waitforvisualfinish end -Move_LOW_KICK:: +Move_LOW_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 2 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 end -Move_EARTHQUAKE:: - createvisualtask AnimTask_HorizontalShake, 5, 5, 10, 50 - createvisualtask AnimTask_HorizontalShake, 5, 4, 10, 50 +Move_EARTHQUAKE: + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 playsewithpan SE_M_EARTHQUAKE, 0 delay 10 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 16 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 end -Move_FISSURE:: +Move_FISSURE: loadspritegfx ANIM_TAG_MUD_SAND - createvisualtask AnimTask_HorizontalShake, 3, 5, 10, 50 - createvisualtask AnimTask_HorizontalShake, 3, 1, 10, 50 - playsewithpan SE_M_EARTHQUAKE, 63 + createvisualtask AnimTask_HorizontalShake, 3, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 + playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 call FissureDirtPlumeFar delay 15 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 15 call FissureDirtPlumeClose delay 15 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 15 call FissureDirtPlumeFar delay 50 fadetobg BG_FISSURE waitbgfadeout - createvisualtask AnimTask_PositionFissureBgOnBattler, 5, 1, 5, -1 + createvisualtask AnimTask_PositionFissureBgOnBattler, 5, ANIM_TARGET, 5, -1 waitbgfadein delay 40 restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, -1 waitbgfadein end -FissureDirtPlumeFar:: +FissureDirtPlumeFar: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, -48, -16, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -16, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -52, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -32, -16, 24 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return -FissureDirtPlumeClose:: +FissureDirtPlumeClose: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, -24, -16, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -38, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -20, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -36, -16, 24 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return -Move_DIG:: +Move_DIG: choosetwoturnanim DigSetUp, DigUnleash -DigEnd:: +DigEnd: end -DigSetUp:: +DigSetUp: loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_DIRT_MOUND createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 180 createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 1, 180 - monbg_22 0 + monbg_static ANIM_ATTACKER delay 1 - createvisualtask AnimTask_DigDownMovement, 2, 0 + createvisualtask AnimTask_DigDownMovement, 2, FALSE delay 6 call DigThrowDirt call DigThrowDirt @@ -2738,61 +2720,61 @@ DigSetUp:: call DigThrowDirt call DigThrowDirt waitforvisualfinish - clearmonbg_23 0 + clearmonbg_static ANIM_ATTACKER delay 1 - createvisualtask AnimTask_DigDownMovement, 2, 1 + createvisualtask AnimTask_DigDownMovement, 2, TRUE goto DigEnd -DigUnleash:: +DigUnleash: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_DIRT_MOUND - createvisualtask AnimTask_DigUpMovement, 2, 0 + createvisualtask AnimTask_DigUpMovement, 2, FALSE waitforvisualfinish monbg ANIM_ATTACKER createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 48 createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 1, 48 delay 1 - createvisualtask AnimTask_DigUpMovement, 2, 1 + createvisualtask AnimTask_DigUpMovement, 2, TRUE delay 16 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 - playsewithpan SE_M_MEGA_KICK2, 192 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER clearmonbg ANIM_ATTACKER goto DigEnd -DigThrowDirt:: +DigThrowDirt: createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 12, 4, -16, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 16, 4, -10, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 14, 4, -18, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 12, 4, -16, 18 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 return -Move_MEDITATE:: +Move_MEDITATE: call SetPsychicBackground createvisualtask AnimTask_MeditateStretchAttacker, 2 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_M_TAKE_DOWN, 192 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_AGILITY:: +Move_AGILITY: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 4, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 4, 4 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 10 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -2800,474 +2782,473 @@ Move_AGILITY:: delay 1 end -Move_QUICK_ATTACK:: +Move_QUICK_ATTACK: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 4 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end -Move_RAGE:: +Move_RAGE: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ANGER - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_BlendMonInAndOut, 3, 0, 31, 10, 0, 2 + createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_ATTACKER, RGB_RED, 10, 0, 2 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 1, 1, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, TRUE, 1, 10, 1, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_TELEPORT:: +Move_TELEPORT: call SetPsychicBackground createvisualtask AnimTask_Teleport, 2 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 15 - call UnsetPsychicBg + call UnsetPsychicBackground waitforvisualfinish end -Move_DOUBLE_TEAM:: +Move_DOUBLE_TEAM: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_DoubleTeam, 2, - playsewithpan SE_M_DOUBLE_TEAM, 192 + createvisualtask AnimTask_DoubleTeam, 2 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 32 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 24 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end -Move_MINIMIZE:: +Move_MINIMIZE: setalpha 10, 8 - createvisualtask AnimTask_Minimize, 2, - loopsewithpan SE_M_MINIMIZE, 192, 34, 3 + createvisualtask AnimTask_Minimize, 2 + loopsewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 34, 3 waitforvisualfinish blendoff end -Move_METRONOME:: +Move_METRONOME: loadspritegfx ANIM_TAG_FINGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 100 - playsewithpan SE_M_METRONOME, 192 + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gMetronomeFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 24 - loopsewithpan SE_M_TAIL_WHIP, 192, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 waitforvisualfinish end -Move_SKULL_BASH:: +Move_SKULL_BASH: choosetwoturnanim SkullBashSetUp, SkullBashAttack -SkullBashEnd:: +SkullBashEnd: end -SkullBashSetUp:: +SkullBashSetUp: call SkullBashSetUpHeadDown call SkullBashSetUpHeadDown waitforvisualfinish goto SkullBashEnd -SkullBashSetUpHeadDown:: - createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 0, 10, 0 - playsewithpan SE_M_TAKE_DOWN, 192 +SkullBashSetUpHeadDown: + createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 2 waitforvisualfinish - createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 10, 1 + createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1 waitforvisualfinish return -SkullBashAttack:: +SkullBashAttack: loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SkullBashPosition, 2, 0 - playsewithpan SE_M_TAKE_DOWN, 192 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish playse SE_BANG - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 40, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 40, 1 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 0 - loopsewithpan SE_M_MEGA_KICK2, 63, 8, 3 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 0 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 8, 3 waitforvisualfinish createvisualtask AnimTask_SkullBashPosition, 2, 1 goto SkullBashEnd -Move_AMNESIA:: +Move_AMNESIA: loadspritegfx ANIM_TAG_AMNESIA call SetPsychicBackground delay 8 createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 - playsewithpan SE_M_METRONOME, 192 + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 54 - loopsewithpan SE_M_METRONOME, 192, 16, 3 + loopsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, 16, 3 waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_KINESIS:: +Move_KINESIS: loadspritegfx ANIM_TAG_ALERT loadspritegfx ANIM_TAG_BENT_SPOON - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createsprite gBentSpoonSpriteTemplate, ANIM_ATTACKER, 20 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, -8, 0 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, 16, 1 - loopsewithpan SE_M_CONFUSE_RAY, 192, 21, 2 + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER, 21, 2 delay 60 - playsewithpan SE_M_DIZZY_PUNCH, 192 + playsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER delay 30 - loopsewithpan SE_M_DIZZY_PUNCH, 192, 20, 2 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER, 20, 2 delay 70 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_GLARE:: +Move_GLARE: loadspritegfx ANIM_TAG_SMALL_RED_EYE loadspritegfx ANIM_TAG_EYE_SPARKLE createvisualtask AnimTask_GlareEyeDots, 5, 0 - playsewithpan SE_M_PSYBEAM2, 192 + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 5, 1, 0, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_BG, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - createvisualtask AnimTask_ScaryFace, 5, - playsewithpan SE_M_LEER, 192 + createvisualtask AnimTask_ScaryFace, 5 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER delay 2 - createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 5, 1, 0, 16, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_BG, 0, 16, 0, RGB_BLACK end -Move_BARRAGE:: +Move_BARRAGE: loadspritegfx ANIM_TAG_RED_BALL - createvisualtask AnimTask_BarrageBall, 3, - playsewithpan SE_M_SWAGGER, 192 + createvisualtask AnimTask_BarrageBall, 3 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 24 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 - createvisualtask AnimTask_ShakeMon, 3, 1, 0, 4, 20, 1 - createvisualtask AnimTask_ShakeMon, 3, 3, 0, 4, 20, 1 - loopsewithpan SE_M_STRENGTH, 63, 8, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 4, 20, 1 + createvisualtask AnimTask_ShakeMon, 3, ANIM_DEF_PARTNER, 0, 4, 20, 1 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 2 end -Move_SKY_ATTACK:: +Move_SKY_ATTACK: choosetwoturnanim SkyAttackSetUp, SkyAttackUnleash -SkyAttackEnd:: +SkyAttackEnd: end -SkyAttackSetUp:: +SkyAttackSetUp: monbg ANIM_DEF_PARTNER setalpha 12, 11 - createvisualtask AnimTask_GetTargetIsAttackerPartner, 5, 7 - jumpargeq 7, 0, SkyAttackSetUpAgainstOpponent + createvisualtask AnimTask_GetTargetIsAttackerPartner, 5, ARG_RET_ID + jumpretfalse SkyAttackSetUpAgainstOpponent goto SkyAttackSetUpAgainstPartner -SkyAttackSetUpAgainstOpponent:: - createvisualtask AnimTask_BlendSelected, 10, 27, 1, 0, 12, RGB_BLACK +SkyAttackSetUpAgainstOpponent: + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER, 1, 0, 12, RGB_BLACK waitforvisualfinish delay 12 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 8, 0, RGB_BLACK - createvisualtask AnimTask_HorizontalShake, 5, 0, 2, 16 - loopsewithpan SE_M_STAT_INCREASE, 192, 4, 8 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 15, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 + loopsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER, 4, 8 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 15, RGB_WHITE delay 20 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 15, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 15, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 25, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_PARTNER | F_PAL_DEF_PARTNER, 1, 8, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto SkyAttackEnd -SkyAttackSetUpAgainstPartner:: - createvisualtask AnimTask_BlendExcept, 10, 1, 1, 0, 12, 0 +SkyAttackSetUpAgainstPartner: + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_TARGET, 1, 0, 12, RGB_BLACK waitforvisualfinish delay 12 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 8, 0, RGB_BLACK - createvisualtask AnimTask_HorizontalShake, 5, 0, 2, 16 - playsewithpan SE_M_STAT_INCREASE, 192 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER delay 8 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 15, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 15, RGB_WHITE delay 20 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 15, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 15, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_BlendExcept, 10, 4, 1, 8, 0, 0 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 1, 8, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto SkyAttackEnd -SkyAttackUnleash:: +SkyAttackUnleash: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_BIRD call SetSkyBg monbg ANIM_ATTACKER - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 16, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 16, RGB_WHITE delay 4 createvisualtask AnimTask_AttackerFadeToInvisible, 5, 0 waitforvisualfinish - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2 delay 14 - createvisualtask AnimTask_ShakeMon2, 2, 1, 10, 0, 18, 1 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_AttackerFadeFromInvisible, 5, 1 delay 2 - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 15, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 15, 0, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATTACKER call UnsetSkyBg goto SkyAttackEnd -Move_FLASH:: - playsewithpan SE_M_LEER, 192 +Move_FLASH: + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_Flash, 2 waitforvisualfinish end -Move_SPLASH:: +Move_SPLASH: createvisualtask AnimTask_Splash, 2, 0, 3 delay 8 - loopsewithpan SE_M_TAIL_WHIP, 192, 38, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 3 waitforvisualfinish end -Move_ACID_ARMOR:: +Move_ACID_ARMOR: monbg ANIM_ATTACKER setalpha 15, 0 - createvisualtask AnimTask_AcidArmor, 2, 0 - playsewithpan SE_M_ACID_ARMOR, 192 + createvisualtask AnimTask_AcidArmor, 2, ANIM_ATTACKER + playsewithpan SE_M_ACID_ARMOR, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER delay 1 end -Move_SHARPEN:: +Move_SHARPEN: loadspritegfx ANIM_TAG_SPHERE_TO_CUBE - createsprite gSharpenSphereSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gSharpenSphereSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish end -Move_SUPER_FANG:: +Move_SUPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 1, 0, 20, 1 - playsewithpan SE_M_DRAGON_RAGE, 192 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 1, 0, 20, 1 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 3, 0, 48, 1 - createvisualtask AnimTask_BlendMonInAndOut, 2, 0, 1247, 12, 4, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 48, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB(31, 6, 1), 12, 4, 1 waitforvisualfinish delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2, - playsewithpan SE_M_BITE, 63 + createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 2143, 14, RGB_WHITE, 14 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 7, 12, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB(31, 2, 2), 14, RGB_WHITE, 14 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 7, 12, 1 waitforvisualfinish blendoff end -Move_SLASH:: +Move_SLASH: loadspritegfx ANIM_TAG_SLASH createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 4 createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 - playsewithpan SE_M_RAZOR_WIND, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish end -Move_STRUGGLE:: +Move_STRUGGLE: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_MOVEMENT_WAVES - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 3, 0, 12, 4 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 2 - loopsewithpan SE_M_HEADBUTT, 192, 12, 4 + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 12, 4 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SKETCH:: +Move_SKETCH: loadspritegfx ANIM_TAG_PENCIL - monbg 1 + monbg ANIM_TARGET createvisualtask AnimTask_SketchDrawMon, 2 - createsprite gPencilSpriteTemplate, ANIM_TARGET, 2, + createsprite gPencilSpriteTemplate, ANIM_TARGET, 2 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET createvisualtask AnimTask_Splash, 2, 0, 2 - loopsewithpan SE_M_TAIL_WHIP, 192, 38, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 2 end -Move_NIGHTMARE:: - fadetobg 2 +Move_NIGHTMARE: + fadetobg BG_GHOST waitbgfadein jumpifcontest NightmareInContest monbg ANIM_DEF_PARTNER createvisualtask AnimTask_NightmareClone, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 40, 1 - playsewithpan SE_M_NIGHTMARE, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 40, 1 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadein end -NightmareInContest:: - createvisualtask AnimTask_BlendMonInAndOut, 2, 0, RGB_WHITE, 10, 2, 1 - createvisualtask AnimTask_ShakeMon, 2, 0, 3, 0, 32, 1 - playsewithpan SE_M_NIGHTMARE, 63 +NightmareInContest: + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB_WHITE, 10, 2, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 32, 1 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein end -Move_FLAIL:: +Move_FLAIL: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_FlailMovement, 2, 0 - loopsewithpan SE_M_HEADBUTT, 192, 8, 2 + createvisualtask AnimTask_FlailMovement, 2, ANIM_ATTACKER + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 8, 2 waitforvisualfinish - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 3 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SPITE:: - fadetobg 2 - playsewithpan SE_M_PSYBEAM, 192 +Move_SPITE: + fadetobg BG_GHOST + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 6, 0, 8, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 6, 0, 8, RGB_WHITE createvisualtask AnimTask_SpiteTargetShadow, 2 - loopsewithpan SE_M_PSYBEAM, 63, 20, 3 + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish restorebg waitbgfadein - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_MACH_PUNCH:: +Move_MACH_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, MachPunchOnPlayer + createvisualtask AnimTask_GetAttackerSide, 2 + jumprettrue MachPunchAgainstPlayer fadetobg BG_HIGHSPEED_OPPONENT - -MachPunchContinue:: +MachPunchContinue: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein delay 0 setalpha 9, 8 - createvisualtask AnimTask_AttackerPunchWithTrace, 2, 28968, 10 - playsewithpan SE_M_JUMP_KICK, 192 + createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB(8, 9, 28), 10 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -MachPunchOnPlayer:: +MachPunchAgainstPlayer: fadetobg BG_HIGHSPEED_PLAYER goto MachPunchContinue -Move_FORESIGHT:: +Move_FORESIGHT: loadspritegfx ANIM_TAG_MAGNIFYING_GLASS monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 16, 0 - createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, 1 + createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET delay 17 - loopsewithpan SE_M_SKETCH, 63, 16, 4 + loopsewithpan SE_M_SKETCH, SOUND_PAN_TARGET, 16, 4 delay 48 delay 24 - playsewithpan SE_M_SKETCH, 63 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET delay 10 - createvisualtask AnimTask_BlendMonInAndOut, 5, 1, RGB_WHITE, 12, 2, 1 - playsewithpan SE_M_DETECT, 63 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 2, 1 + playsewithpan SE_M_DETECT, SOUND_PAN_TARGET waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER end -Move_DESTINY_BOND:: +Move_DESTINY_BOND: loadspritegfx ANIM_TAG_WHITE_SHADOW - fadetobg 2 - playsewithpan SE_M_PSYBEAM, 192 + fadetobg BG_GHOST + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 48 - playsewithpan SE_M_CONFUSE_RAY, 192 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 48 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 24, 1 - createvisualtask AnimTask_BlendExcept, 2, 6, 1, 0, 12, 30653 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 24, 1 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 0, 12, RGB(29, 29, 29) delay 24 - createvisualtask AnimTask_BlendExcept, 2, 6, 1, 12, 0, 30653 - playsewithpan SE_M_NIGHTMARE, 63 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 12, 0, RGB(29, 29, 29) + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3275,20 +3256,20 @@ Move_DESTINY_BOND:: clearmonbg 5 end -Move_ENDURE:: +Move_ENDURE: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 call EndureEffect delay 8 call EndureEffect waitforvisualfinish end -EndureEffect:: +EndureEffect: createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 26, 2 delay 4 createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, 14, 28, 1 @@ -3300,152 +3281,152 @@ EndureEffect:: createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, -12, 0, 1 return -Move_CHARM:: +Move_CHARM: loadspritegfx ANIM_TAG_MAGENTA_HEART - createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 0 + createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish end -Move_ROLLOUT:: +Move_ROLLOUT: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_Rollout, 2 waitforvisualfinish - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 2 - playsewithpan SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_FALSE_SWIPE:: +Move_FALSE_SWIPE: loadspritegfx ANIM_TAG_SLASH_2 loadspritegfx ANIM_TAG_IMPACT - createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2, - playsewithpan SE_M_VITAL_THROW, 63 + createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 16 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 16 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 32 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 48 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 64 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 80 delay 2 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end -Move_SWAGGER:: +Move_SWAGGER: loadspritegfx ANIM_TAG_BREATH loadspritegfx ANIM_TAG_ANGER - createvisualtask AnimTask_GrowAndShrink, 2, - playsewithpan SE_M_SWAGGER, 192 + createvisualtask AnimTask_GrowAndShrink, 2 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, - loopsewithpan SE_M_SWAGGER, 192, 4, 2 + createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish delay 24 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish end -Move_MILK_DRINK:: +Move_MILK_DRINK: loadspritegfx ANIM_TAG_MILK_BOTTLE loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR - monbg 1 - createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2, + monbg ANIM_TARGET + createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2 delay 40 - playsewithpan SE_M_CRABHAMMER, 192 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_CRABHAMMER, 192 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_M_CRABHAMMER, 192 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - playsewithpan SE_M_MILK_DRINK, 192 + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET call HealingEffect2 waitforvisualfinish end -Move_MAGNITUDE:: - createvisualtask AnimTask_IsPowerOver99, 2, +Move_MAGNITUDE: + createvisualtask AnimTask_IsPowerOver99, 2 waitforvisualfinish - jumpargeq 15, 0, MagnitudeRegular - jumpargeq 15, 1, MagnitudeIntense -MagnitudeEnd:: + jumpargeq 15, FALSE, MagnitudeRegular + jumpargeq 15, TRUE, MagnitudeIntense +MagnitudeEnd: end -MagnitudeRegular:: - createvisualtask AnimTask_HorizontalShake, 5, 5, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, 4, 0, 50 - loopsewithpan SE_M_STRENGTH, 63, 8, 10 +MagnitudeRegular: + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd -MagnitudeIntense:: - createvisualtask AnimTask_HorizontalShake, 5, 5, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, 4, 0, 50 - loopsewithpan SE_M_STRENGTH, 63, 8, 10 +MagnitudeIntense: + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 16 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 goto MagnitudeEnd -Move_RAPID_SPIN:: +Move_RAPID_SPIN: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_RAPID_SPIN monbg ANIM_ATTACKER createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 - loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 10, 1, 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 - loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER end -Move_MOONLIGHT:: +Move_MOONLIGHT: loadspritegfx ANIM_TAG_MOON loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR setalpha 0, 16 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 16, RGB_BLACK waitforvisualfinish createsprite gMoonSpriteTemplate, ANIM_ATTACKER, 2, 120, 56 createvisualtask AnimTask_AlphaFadeIn, 3, 0, 16, 16, 0, 1 @@ -3461,93 +3442,92 @@ Move_MOONLIGHT:: delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, 10, 0 delay 20 - createvisualtask AnimTask_FadeScreenBlue, 2, + createvisualtask AnimTask_MoonlightEndFade, 2 waitforvisualfinish call HealingEffect waitforvisualfinish end -Move_EXTREME_SPEED:: +Move_EXTREME_SPEED: loadspritegfx ANIM_TAG_SPEED_DUST loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, ExtremeSpeedOnPlayer + createvisualtask AnimTask_GetAttackerSide, 2 + jumprettrue ExtremeSpeedAgainstPlayer fadetobg BG_HIGHSPEED_OPPONENT - -ExtremeSpeedContinue:: +ExtremeSpeedContinue: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein createvisualtask AnimTask_AttackerStretchAndDisappear, 2 - loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 3 waitforvisualfinish delay 1 createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 monbg ANIM_TARGET setalpha 12, 8 delay 18 - createvisualtask AnimTask_ExtremeSpeedImpact, 2, + createvisualtask AnimTask_ExtremeSpeedImpact, 2 delay 2 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, -12, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, -12, 3 delay 10 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 12, 3 delay 10 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, 3 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_SpeedDust, 2, + createvisualtask AnimTask_SpeedDust, 2 delay 10 - createvisualtask AnimTask_ExtremeSpeedMonReappear, 2, - loopsewithpan SE_M_DOUBLE_TEAM, 192, 8, 4 + createvisualtask AnimTask_ExtremeSpeedMonReappear, 2 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 - setarg 7, 4096 + setarg 7, 0x1000 delay 1 end -ExtremeSpeedOnPlayer:: +ExtremeSpeedAgainstPlayer: fadetobg BG_HIGHSPEED_PLAYER goto ExtremeSpeedContinue -Move_UPROAR:: +Move_UPROAR: loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE loadspritegfx ANIM_TAG_THIN_RING monbg ANIM_DEF_PARTNER createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_M_UPROAR, 192 + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 29, -12, 0 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -12, -29, 1 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_M_UPROAR, 192 + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 12, -29, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -29, -12, 0 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_M_UPROAR, 192 + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, -24, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, -24, 0 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_HEAT_WAVE:: +Move_HEAT_WAVE: loadspritegfx ANIM_TAG_FLYING_DIRT - createvisualtask AnimTask_BlendParticle, 5, 10261, 0, 6, 6, 31 - createvisualtask AnimTask_LoadSandstormBackground, 5, 1 - createvisualtask AnimTask_BlendBackground, 6, 6, 31 - panse_1B SE_M_HEAT_WAVE, 192, 63, 2, 0 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_FLYING_DIRT, 0, 6, 6, RGB_RED + createvisualtask AnimTask_LoadSandstormBackground, 5, TRUE + createvisualtask AnimTask_BlendBackground, 6, 6, RGB_RED + panse SE_M_HEAT_WAVE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 4 createvisualtask AnimTask_MoveHeatWaveTargets, 5 delay 12 @@ -3566,159 +3546,160 @@ Move_HEAT_WAVE:: createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 60, 2560, 96, 1 end -Move_HAIL:: +@ Also used by Hail weather +Move_HAIL: loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 0, 6, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_Hail, 5, + createvisualtask AnimTask_Hail, 5 loopsewithpan SE_M_HAIL, 0, 8, 10 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 6, 0, RGB_BLACK end -Move_TORMENT:: +Move_TORMENT: loadspritegfx ANIM_TAG_ANGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE - createvisualtask AnimTask_TormentAttacker, 2, + createvisualtask AnimTask_TormentAttacker, 2 waitforvisualfinish - createvisualtask AnimTask_BlendMonInAndOut, 2, 1, 31, 10, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end -Move_MEMENTO:: +Move_MEMENTO: setalpha 0, 16 delay 1 createvisualtask AnimTask_InitMementoShadow, 2 delay 1 createvisualtask AnimTask_MoveAttackerMementoShadow, 5 - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER delay 48 - playsewithpan SE_M_PSYBEAM2, 192 + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_MementoHandleBg, 2, + createvisualtask AnimTask_MementoHandleBg, 2 delay 12 setalpha 0, 16 delay 1 - monbg_22 1 + monbg_static ANIM_TARGET createvisualtask AnimTask_MoveTargetMementoShadow, 5 - playsewithpan SE_M_PSYBEAM, 63 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg_23 1 + clearmonbg_static ANIM_TARGET delay 1 blendoff delay 1 end -Move_FACADE:: +Move_FACADE: loadspritegfx ANIM_TAG_SWEAT_DROP - createvisualtask AnimTask_SquishAndSweatDroplets, 2, 0, 3 - createvisualtask AnimTask_FacadeColorBlend, 2, 0, 72 - loopsewithpan SE_M_SWAGGER, 192, 24, 3 + createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 3 + createvisualtask AnimTask_FacadeColorBlend, 2, ANIM_ATTACKER, 72 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 24, 3 end -Move_SMELLING_SALT:: +Move_SMELLING_SALT: loadspritegfx ANIM_TAG_TAG_HAND loadspritegfx ANIM_TAG_SMELLINGSALT_EFFECT - createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, 1, 0, 2 - createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, 1, 1, 2 + createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 2 + createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 1, 2 delay 32 - createvisualtask AnimTask_SmellingSaltsSquish, 3, 1, 2 - loopsewithpan SE_M_DOUBLE_SLAP, 63, 12, 2 + createvisualtask AnimTask_SmellingSaltsSquish, 3, ANIM_TARGET, 2 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 12, 2 waitforvisualfinish delay 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 6, 2 - createsprite gSmellingSaltExclamationSpriteTemplate, ANIM_TARGET, 2, 1, 8, 3 - loopsewithpan SE_M_SWAGGER2, 63, 16, 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 2 + createsprite gSmellingSaltExclamationSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 8, 3 + loopsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET, 16, 3 end -Move_FOLLOW_ME:: +Move_FOLLOW_ME: loadspritegfx ANIM_TAG_FINGER createsprite gFollowMeFingerSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_TAIL_WHIP, 192 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 18 - playsewithpan SE_M_ATTRACT, 192 + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER delay 71 - loopsewithpan SE_M_TAIL_WHIP, 192, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 end -Move_CHARGE:: +Move_CHARGE: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_ELECTRICITY monbg ANIM_ATTACKER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 60, 2, 12 - playsewithpan SE_M_CHARGE, 192 + createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 60, 2, 12 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER createsprite gGrowingChargeOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 delay 25 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 15 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 10 delay 6 - loopsewithpan SE_M_CHARGE, 192, 6, 5 + loopsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER, 6, 5 waitforvisualfinish createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 - playsewithpan SE_M_THUNDERBOLT2, 192 + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER blendoff end -Move_TAUNT:: +Move_TAUNT: loadspritegfx ANIM_TAG_FINGER_2 loadspritegfx ANIM_TAG_THOUGHT_BUBBLE loadspritegfx ANIM_TAG_ANGER createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 45 - playsewithpan SE_M_METRONOME, 192 + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gTauntFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 4 - loopsewithpan SE_M_TAIL_WHIP, 192, 16, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 16, 2 waitforvisualfinish delay 8 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end -Move_HELPING_HAND:: +Move_HELPING_HAND: loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask AnimTask_HelpingHandAttackerMovement, 5, + createvisualtask AnimTask_HelpingHandAttackerMovement, 5 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 0 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 1 delay 19 playsewithpan SE_M_ENCORE, 0 - createvisualtask AnimTask_ShakeMon2, 2, 2, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 14 playsewithpan SE_M_ENCORE, 0 - createvisualtask AnimTask_ShakeMon2, 2, 2, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 20 playsewithpan SE_M_ENCORE, 0 - createvisualtask AnimTask_ShakeMon2, 2, 2, 3, 0, 10, 1 - createvisualtask AnimTask_BlendMonInAndOut, 2, 2, 1023, 12, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 3, 0, 10, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATK_PARTNER, RGB_YELLOW, 12, 1, 1 end -Move_ASSIST:: +Move_ASSIST: loadspritegfx ANIM_TAG_PAW_PRINT createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 112, -16, 140, 128, 36 delay 2 @@ -3735,15 +3716,15 @@ Move_ASSIST:: playsewithpan SE_M_SCRATCH, 0 end -Move_SUPERPOWER:: +Move_SUPERPOWER: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_METEOR loadspritegfx ANIM_TAG_FLAT_ROCK monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 12, 8 - createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_M_MEGA_KICK, 192 + createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, ANIM_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER delay 20 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_EARTHQUAKE, 0 @@ -3758,144 +3739,144 @@ Move_SUPERPOWER:: delay 8 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 60, 288, 3, 88 delay 74 - createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, 0 - playsewithpan SE_M_SWAGGER, 192 + createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, ANIM_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 16 - createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 16, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 16, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end -Move_RECYCLE:: +Move_RECYCLE: loadspritegfx ANIM_TAG_RECYCLE monbg ANIM_ATTACKER setalpha 0, 16 delay 1 - createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2, - loopsewithpan SE_M_TAKE_DOWN, 192, 24, 3 + createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 24, 3 waitforvisualfinish - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, RGB_WHITE, 12, 2, 1 - playsewithpan SE_M_TAKE_DOWN, 192 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 2, 1 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER delay 1 end -Move_BRICK_BREAK:: +Move_BRICK_BREAK: loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_TORN_METAL choosetwoturnanim BrickBreakNormal, BrickBreakShatteredWall -BrickBreakNormal:: - monbg 1 +BrickBreakNormal: + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, -18, -18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 18, 18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 - createvisualtask AnimTask_WindUpLunge, 2, 0, -24, 0, 24, 10, 24, 3 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, 0 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 6, RGB_BLACK delay 37 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 6, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET end -BrickBreakShatteredWall:: - monbg 1 +BrickBreakShatteredWall: + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, 1, 0, 0, 90, 10 + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, -18, -18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 18, 18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 - createvisualtask AnimTask_WindUpLunge, 2, 0, -24, 0, 24, 10, 24, 3 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, 0 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 6, RGB_BLACK delay 37 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, -8, 12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 8, 12 - playsewithpan SE_M_BRICK_BREAK, 63 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 6, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_YAWN:: +Move_YAWN: loadspritegfx ANIM_TAG_PINK_CLOUD - createvisualtask AnimTask_DeepInhale, 2, 0 - playsewithpan SE_M_YAWN, 192 + createvisualtask AnimTask_DeepInhale, 2, ANIM_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 2 - playsewithpan SE_M_SPIT_UP, 192 + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 1 delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 0 waitforvisualfinish - createvisualtask AnimTask_DeepInhale, 2, 1 - playsewithpan SE_M_YAWN, 63 + createvisualtask AnimTask_DeepInhale, 2, ANIM_TARGET + playsewithpan SE_M_YAWN, SOUND_PAN_TARGET end -Move_ENDEAVOR:: +Move_ENDEAVOR: loadspritegfx ANIM_TAG_SWEAT_DROP loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_SquishAndSweatDroplets, 2, 0, 2 - loopsewithpan SE_M_TAIL_WHIP, 192, 24, 2 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 703, 12, 1, 2 + createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 2 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 21, 0), 12, 1, 2 delay 6 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, 1, 2 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, ANIM_TARGET, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 24 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, 1, 2 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, ANIM_TARGET, 2 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end -Move_ERUPTION:: +Move_ERUPTION: loadspritegfx ANIM_TAG_WARM_ROCK - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 2, 0, 4, 31 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 2, 0, 4, RGB_RED waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_M_EXPLOSION, 192, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_M_EXPLOSION, 192, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish delay 30 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 200, -32, 0, 100, 0 @@ -3905,72 +3886,72 @@ Move_ERUPTION:: createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 delay 22 - createvisualtask AnimTask_HorizontalShake, 5, 5, 8, 60 - createvisualtask AnimTask_HorizontalShake, 5, 4, 8, 60 - loopsewithpan SE_M_ROCK_THROW, 63, 16, 12 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 + loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, 31, 4, 4, 0, 31 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, F_PAL_BG | F_PAL_BATTLERS, 4, 4, 0, RGB_RED end -Move_SKILL_SWAP:: +Move_SKILL_SWAP: loadspritegfx ANIM_TAG_BLUEGREEN_ORB call SetPsychicBackground - createvisualtask AnimTask_SkillSwap, 3, 1 - createvisualtask AnimTask_BlendMonInAndOut, 5, 1, RGB_WHITE, 12, 3, 1 - loopsewithpan SE_M_REVERSAL, 192, 24, 3 + createvisualtask AnimTask_SkillSwap, 3, ANIM_TARGET + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 3, 1 + loopsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER, 24, 3 delay 16 - createvisualtask AnimTask_SkillSwap, 3, 0 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, RGB_WHITE, 12, 3, 1 + createvisualtask AnimTask_SkillSwap, 3, ANIM_ATTACKER + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 3, 1 waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_IMPRISON:: +Move_IMPRISON: loadspritegfx ANIM_TAG_HOLLOW_ORB loadspritegfx ANIM_TAG_X_SIGN call SetPsychicBackground monbg ANIM_DEF_PARTNER createvisualtask AnimTask_ImprisonOrbs, 5 delay 8 - loopsewithpan SE_M_HORN_ATTACK, 192, 8, 5 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER, 8, 5 waitforvisualfinish delay 4 - createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, 0, 40 - createvisualtask AnimTask_HorizontalShake, 5, 4, 1, 10 - playsewithpan SE_M_HYPER_BEAM, 192 + createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_GRUDGE:: +Move_GRUDGE: loadspritegfx ANIM_TAG_PURPLE_FLAME monbg ANIM_ATTACKER - monbgprio_29 - fadetobg 2 - playsewithpan SE_M_PSYBEAM, 192 + splitbgprio_all + fadetobg BG_GHOST + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_GrudgeFlames, 3 - loopsewithpan SE_M_EMBER, 192, 16, 4 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 16, 4 delay 10 delay 80 - playsewithpan SE_M_NIGHTMARE, 63 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein clearmonbg ANIM_ATTACKER end -Move_CAMOUFLAGE:: +Move_CAMOUFLAGE: monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 16, 0 - createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 3, 0, 14 + createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 3, 0, 14 delay 16 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 4 - playsewithpan SE_M_FAINT_ATTACK, 192 + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER waitforvisualfinish delay 8 - createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 0, 0, 0 + createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 0, 0, 0 waitforvisualfinish createvisualtask AnimTask_AttackerFadeFromInvisible, 2, 1 waitforvisualfinish @@ -3978,90 +3959,90 @@ Move_CAMOUFLAGE:: clearmonbg ANIM_ATK_PARTNER end -Move_TAIL_GLOW:: +Move_TAIL_GLOW: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT monbg ANIM_ATTACKER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, 0 + createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, ANIM_ATTACKER delay 18 - loopsewithpan SE_M_MORNING_SUN, 192, 16, 6 + loopsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER, 16, 6 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER blendoff delay 1 end -Move_LUSTER_PURGE:: +Move_LUSTER_PURGE: loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_IMPACT - fadetobg 3 + fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask AnimTask_FadeScreenToWhite, 5, + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_M_SOLAR_BEAM, 192 + playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 - createvisualtask AnimTask_BlendExcept, 5, 5, 2, 0, 16, -1 - createvisualtask AnimTask_BlendParticle, 5, 10267, 2, 0, 16, -1 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, RGB_WHITEALPHA waitforvisualfinish - createvisualtask AnimTask_BlendParticle, 5, 10135, 0, 12, 12, 23552 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendExcept, 5, 5, 2, 16, 0, -1 - createvisualtask AnimTask_HorizontalShake, 5, 1, 5, 14 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 16, 0, RGB_WHITEALPHA + createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 5, 14 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_MIST_BALL:: +Move_MIST_BALL: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WHITE_FEATHER delay 0 - playsewithpan SE_M_STRING_SHOT, 192 + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER createsprite gMistBallSpriteTemplate, ANIM_TARGET, 0, 0, 0, 0, 0, 30, 0 waitforvisualfinish - playsewithpan SE_M_SAND_ATTACK, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 10, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, 32279, 16, RGB_WHITE, 16 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 10, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16 delay 0 playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_MistBallFog, 5, - createvisualtask AnimTask_BlendSelected, 10, 4, 3, 0, 16, RGB_WHITE + createvisualtask AnimTask_MistBallFog, 5 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 3, 0, 16, RGB_WHITE delay 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 70, 0 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0 delay 70 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 16, 0, RGB_WHITE end -Move_FEATHER_DANCE:: +Move_FEATHER_DANCE: loadspritegfx ANIM_TAG_WHITE_FEATHER monbg ANIM_DEF_PARTNER - monbgprio_29 - playsewithpan SE_M_PETAL_DANCE, 63 + splitbgprio_all + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_TARGET delay 0 createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1 delay 6 @@ -4079,41 +4060,41 @@ Move_FEATHER_DANCE:: clearmonbg ANIM_DEF_PARTNER end -Move_TEETER_DANCE:: +Move_TEETER_DANCE: loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_DUCK - createvisualtask AnimTask_TeeterDanceMovement, 5, + createvisualtask AnimTask_TeeterDanceMovement, 5 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, -8, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 2, 8, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER end -Move_MUD_SPORT:: +Move_MUD_SPORT: loadspritegfx ANIM_TAG_MUD_SAND createvisualtask AnimTask_Splash, 2, 0, 6 delay 24 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -4, -16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 4, -12 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -3, -12 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 5, -14 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -5, -18 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 3, -14 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 220, 60 waitplaysewithpan SE_M_BUBBLE2, 0, 15 @@ -4146,11 +4127,11 @@ Move_MUD_SPORT:: waitplaysewithpan SE_M_BUBBLE2, 0, 10 end -Move_NEEDLE_ARM:: +Move_NEEDLE_ARM: loadspritegfx ANIM_TAG_GREEN_SPIKE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - loopsewithpan SE_M_HORN_ATTACK, 63, 2, 16 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 2, 16 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, -32, 16 delay 2 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 22, -22, 16 @@ -4175,10 +4156,10 @@ Move_NEEDLE_ARM:: delay 2 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, 16, 16 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 0, -24, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 17, -17, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 24, 0, 10 @@ -4189,43 +4170,43 @@ Move_NEEDLE_ARM:: createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, -17, -17, 10 end -Move_SLACK_OFF:: +Move_SLACK_OFF: loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask AnimTask_SlackOffSquish, 2, 0 - playsewithpan SE_M_YAWN, 192 + createvisualtask AnimTask_SlackOffSquish, 2, ANIM_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish call HealingEffect waitforvisualfinish end -Move_CRUSH_CLAW:: +Move_CRUSH_CLAW: loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL loadspritegfx ANIM_TAG_CLAW_SLASH loadspritegfx ANIM_TAG_TORN_METAL - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 12 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - playsewithpan SE_M_RAZOR_WIND, 63 - waitforvisualfinish + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish + waitforvisualfinish @ Redundant blendoff - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_AROMATHERAPY:: +Move_AROMATHERAPY: playsewithpan SE_M_PETAL_DANCE, 0 loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 0, 7, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 0, 0, 7, RGB(13, 31, 12) delay 1 monbg ANIM_ATTACKER delay 1 @@ -4243,30 +4224,30 @@ Move_AROMATHERAPY:: waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 7, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 0, 7, 0, RGB(13, 31, 12) delay 1 - playsewithpan SE_M_STAT_INCREASE, 192 + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 1 waitforvisualfinish - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish - playsewithpan SE_SHINY, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 43, 3, 10, 0, 13293 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_ANIM_1, 3, 10, 0, RGB(13, 31, 12) createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 waitforvisualfinish end -Move_FAKE_TEARS:: +Move_FAKE_TEARS: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_THOUGHT_BUBBLE loadspritegfx ANIM_TAG_MUSIC_NOTES - createvisualtask AnimTask_BlendParticle, 5, 10155, 0, 4, 4, 32108 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SMALL_BUBBLES, 0, 4, 4, RGB(12, 11, 31) waitforvisualfinish - createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 1 - loopsewithpan SE_M_TAIL_WHIP, 192, 12, 4 + createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 1 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 12, 4 delay 8 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 @@ -4282,7 +4263,7 @@ Move_FAKE_TEARS:: waitforvisualfinish end -Move_AIR_CUTTER:: +Move_AIR_CUTTER: loadspritegfx ANIM_TAG_AIR_WAVE loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT @@ -4290,42 +4271,42 @@ Move_AIR_CUTTER:: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 1536, 2, 128 + createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 6 * 256, 2, 128 @ 6 * 256 == Q_8_8(6) waitforvisualfinish - playsewithpan SE_M_CUT, 63 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gAirCutterSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0, 2 delay 5 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER delay 0 end -Move_ODOR_SLEUTH:: - monbg 1 - createvisualtask AnimTask_OdorSleuthMovement, 5, +Move_ODOR_SLEUTH: + monbg ANIM_TARGET + createvisualtask AnimTask_OdorSleuthMovement, 5 delay 24 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET delay 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, -1, 16, -1, 0 - playsewithpan SE_M_LEER, 192 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_WHITEALPHA, 16, RGB_WHITEALPHA, 0 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER end -Move_GRASS_WHISTLE:: +Move_GRASS_WHISTLE: loadspritegfx ANIM_TAG_MUSIC_NOTES - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 13298 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB(18, 31, 12) waitforvisualfinish - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_M_GRASSWHISTLE, 192, 63, 2, 0 + panse SE_M_GRASSWHISTLE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 1, 0 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 0 @@ -4351,60 +4332,60 @@ Move_GRASS_WHISTLE:: createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 5, 1, 0 delay 4 waitforvisualfinish - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 13298 + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB(18, 31, 12) waitforvisualfinish end -Move_TICKLE:: +Move_TICKLE: loadspritegfx ANIM_TAG_EYE_SPARKLE - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - playsewithpan SE_M_DETECT, 192 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 16, 0, RGB_BLACK waitforvisualfinish delay 20 - createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, 0 + createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, ANIM_ATTACKER delay 12 - createvisualtask AnimTask_RockMonBackAndForth, 3, 1, 6, 2 - loopsewithpan SE_M_TAIL_WHIP, 63, 8, 8 + createvisualtask AnimTask_RockMonBackAndForth, 3, ANIM_TARGET, 6, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 8, 8 waitforvisualfinish end -Move_WATER_SPOUT:: +Move_WATER_SPOUT: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_WaterSpoutLaunch, 5, - playsewithpan SE_M_HEADBUTT, 192 + createvisualtask AnimTask_WaterSpoutLaunch, 5 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_M_DIVE, 192 + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER waitforvisualfinish delay 16 - createvisualtask AnimTask_WaterSpoutRain, 5, - playsewithpan SE_M_SURF, 63 + createvisualtask AnimTask_WaterSpoutRain, 5 + playsewithpan SE_M_SURF, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SHADOW_PUNCH:: +Move_SHADOW_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - fadetobg 2 + fadetobg BG_GHOST waitbgfadein monbg ANIM_ATK_PARTNER setalpha 9, 8 - createvisualtask AnimTask_AttackerPunchWithTrace, 2, 0, 13 - playsewithpan SE_M_JUMP_KICK, 192 + createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB_BLACK, 13 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -4412,212 +4393,212 @@ Move_SHADOW_PUNCH:: waitbgfadein end -Move_EXTRASENSORY:: +Move_EXTRASENSORY: call SetPsychicBackground monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 891, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 0 - playsewithpan SE_M_BIND, 63 + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 891, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 1 - playsewithpan SE_M_BIND, 63 + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_TransparentCloneGrowAndShrink, 5, ANIM_ATTACKER createvisualtask AnimTask_ExtrasensoryDistortion, 5, 2 - playsewithpan SE_M_LEER, 192 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_AERIAL_ACE:: +Move_AERIAL_ACE: loadspritegfx ANIM_TAG_CUT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER delay 5 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 10, 0, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 10, RGB_BLACK, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_IRON_DEFENSE:: - loopsewithpan SE_SHINY, 192, 28, 2 +Move_IRON_DEFENSE: + loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, -1, 14, -1, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 2, RGB_WHITEALPHA, 14, RGB_WHITEALPHA, 0 waitforvisualfinish end -Move_BLOCK:: +Move_BLOCK: loadspritegfx ANIM_TAG_X_SIGN - createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66, - playsewithpan SE_M_SWAGGER, 63 + createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET end -Move_HOWL:: +Move_HOWL: loadspritegfx ANIM_TAG_NOISE_LINE createvisualtask AnimTask_DeepInhale, 2, 0 delay 12 call RoarEffect - createvisualtask SoundTask_PlayCryHighPitch, 2, 0, 3 + createvisualtask SoundTask_PlayCryHighPitch, 2, ANIM_ATTACKER, 3 waitforvisualfinish delay 30 end -Move_BULK_UP:: +Move_BULK_UP: loadspritegfx ANIM_TAG_BREATH - createvisualtask AnimTask_GrowAndShrink, 2, - playsewithpan SE_M_SWAGGER, 192 + createvisualtask AnimTask_GrowAndShrink, 2 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, - loopsewithpan SE_M_SWAGGER, 192, 4, 2 + createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish end -Move_COVET:: +Move_COVET: loadspritegfx ANIM_TAG_MAGENTA_HEART loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 0 + createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - loopsewithpan SE_M_DIZZY_PUNCH, 63, 4, 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 4, 3 end -Move_VOLT_TACKLE:: +Move_VOLT_TACKLE: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_ELECTRICITY monbg ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 8, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 8, RGB_BLACK waitforvisualfinish createsprite gVoltTackleOrbSlideSpriteTemplate, ANIM_ATTACKER, 1 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff delay 8 createvisualtask AnimTask_VoltTackleBolt, 5, 0 - playsewithpan SE_M_THUNDERBOLT, 192 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 1 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 2 - playsewithpan SE_M_THUNDERBOLT, 192 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 3 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 4 - playsewithpan SE_M_THUNDERBOLT, 192 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER delay 8 - createvisualtask AnimTask_ShakeMon2, 2, 1, 10, 0, 18, 1 - playsewithpan SE_M_SELF_DESTRUCT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, -16 delay 8 createvisualtask AnimTask_VoltTackleAttackerReappear, 5 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 0, 3, 0, 9, 1 - playsewithpan SE_M_THUNDERBOLT2, 192 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 3, 0, 9, 1 + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 8, 0, RGB_BLACK waitforvisualfinish end -Move_WATER_SPORT:: +Move_WATER_SPORT: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB - createvisualtask AnimTask_WaterSport, 5, + createvisualtask AnimTask_WaterSport, 5 delay 8 - playsewithpan SE_M_SURF, 192 + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_M_SURF, 192 + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_M_SURF, 192 + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - panse_1B SE_M_SURF, 192, 63, 2, 0 + panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 end -Move_CALM_MIND:: +Move_CALM_MIND: loadspritegfx ANIM_TAG_THIN_RING monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendExcept, 5, 0, 0, 0, 16, 0 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, ANIM_ATTACKER, 0, 0, 16, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, 1 + createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, TRUE waitforvisualfinish createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_M_SUPERSONIC, 192 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_M_SUPERSONIC, 192 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_M_SUPERSONIC, 192 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, 0 - visible 0 + createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, FALSE + visible ANIM_ATTACKER @ Redundant waitforvisualfinish - createvisualtask AnimTask_BlendExcept, 5, 0, 0, 16, 0, 0 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, ANIM_ATTACKER, 0, 16, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATK_PARTNER end -Move_LEAF_BLADE:: +Move_LEAF_BLADE: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_CROSS_IMPACT - createvisualtask AnimTask_LeafBlade, 5, + createvisualtask AnimTask_LeafBlade, 5 delay 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_CUT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_CUT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_CUT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET waitforvisualfinish - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 delay 12 - createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 18, 1 createsprite gCrossImpactSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 36 - playsewithpan SE_M_LEER, 63 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_DRAGON_DANCE:: +Move_DRAGON_DANCE: loadspritegfx ANIM_TAG_HOLLOW_ORB monbg ANIM_ATTACKER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER delay 1 createvisualtask AnimTask_DragonDanceWaver, 5 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 8 - createvisualtask AnimTask_BlendPalInAndOutByTag, 5, 10249, 19456, 14, 0, 3 + createvisualtask AnimTask_BlendPalInAndOutByTag, 5, ANIM_TAG_HOLLOW_ORB, RGB(0, 0, 19), 14, 0, 3 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 43 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 85 @@ -4625,110 +4606,110 @@ Move_DRAGON_DANCE:: createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 170 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 213 delay 30 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 end -Move_SHOCK_WAVE:: +Move_SHOCK_WAVE: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_LIGHTNING monbg ANIM_ATTACKER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 20, 0, 2 - playsewithpan SE_M_CHARGE, 192 + createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 20, 0, 2 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 12 createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 30 - createvisualtask AnimTask_ShockWaveProgressingBolt, 5, + createvisualtask AnimTask_ShockWaveProgressingBolt, 5 delay 12 waitforvisualfinish - createvisualtask AnimTask_ShockWaveLightning, 5, - playsewithpan SE_M_TRI_ATTACK2, 63 + createvisualtask AnimTask_ShockWaveLightning, 5 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 6, 18, 1 - createvisualtask AnimTask_BlendSelected, 5, 1, 3, 16, 0, RGB_WHITE - createvisualtask AnimTask_BlendSelected, 5, 4, 0, 16, 16, RGB_BLACK + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_BG, 3, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_TARGET, 0, 16, 16, RGB_BLACK delay 4 - createvisualtask AnimTask_BlendSelected, 5, 4, 0, 0, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_TARGET, 0, 0, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff end -Move_HARDEN:: - loopsewithpan SE_M_HARDEN, 192, 28, 2 +Move_HARDEN: + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish end -Move_BELLY_DRUM:: +Move_BELLY_DRUM: loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 1, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 3, 3, 128 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 128 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 1, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 3, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 waitforvisualfinish end -BellyDrumLeft:: +BellyDrumLeft: createsprite gBellyDrumHandSpriteTemplate, ANIM_ATTACKER, 3, 0 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 8, 2, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 8, 2, 1 return -BellyDrumRight:: +BellyDrumRight: createsprite gBellyDrumHandSpriteTemplate, ANIM_ATTACKER, 3, 1 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 8, 2, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 8, 2, 1 return -Move_MIND_READER:: +Move_MIND_READER: loadspritegfx ANIM_TAG_TEAL_ALERT loadspritegfx ANIM_TAG_OPENING_EYE loadspritegfx ANIM_TAG_ROUND_WHITE_HALO monbg 4 - playsewithpan SE_M_CONFUSE_RAY, 63 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 - createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5, + createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5 delay 40 - playsewithpan SE_M_LEER, 63 - createvisualtask AnimTask_BlendColorCycle, 2, 1, 1, 2, 0, 10, 0 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG, 1, 2, 0, 10, RGB_BLACK call MindReaderEyeSpikeEffect waitforvisualfinish clearmonbg 4 end -MindReaderEyeSpikeEffect:: +MindReaderEyeSpikeEffect: createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 70, 0, 6 createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 40, 40, 6 createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 10, -60, 6 @@ -4752,16 +4733,16 @@ MindReaderEyeSpikeEffect:: delay 2 return -Move_ICE_PUNCH:: +Move_ICE_PUNCH: monbg ANIM_DEF_PARTNER setalpha 12, 8 loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 9, RGB(12, 26, 31) + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 7, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 9, RGB(12, 26, 31) delay 20 - playsewithpan SE_M_STRING_SHOT, 63 + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 0 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 64 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 128 @@ -4773,24 +4754,24 @@ Move_ICE_PUNCH:: createsprite gIceCrystalSpiralInwardLarge, ANIM_ATTACKER, 2, 224 delay 17 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, -10, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, 1, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, ANIM_TARGET, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 3, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 3, 1 waitforvisualfinish delay 15 call IceCrystalEffectShort delay 5 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 9, 0, RGB(12, 26, 31) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 9, 0, RGB(12, 26, 31) waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 7, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_REST:: - playsewithpan SE_M_SNORE, 192 +Move_REST: + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER loadspritegfx ANIM_TAG_LETTER_Z createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 20 @@ -4800,66 +4781,69 @@ Move_REST:: waitforvisualfinish end -Move_CONFUSION:: +Move_CONFUSION: monbg ANIM_DEF_PARTNER call SetPsychicBackground setalpha 8, 8 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE waitforvisualfinish - playsewithpan SE_M_SUPERSONIC, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 1, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_PSYCHIC:: +Move_PSYCHIC: monbg ANIM_DEF_PARTNER call SetPsychicBackground setalpha 8, 8 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, 767 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB(31, 23, 0) waitforvisualfinish - loopsewithpan SE_M_SUPERSONIC, 63, 10, 3 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, 1, 1 + loopsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 10, 3 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_FUTURE_SIGHT:: +Move_FUTURE_SIGHT: goto FutureSight -FutureSightContinue:: + +FutureSightContinue: waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -FutureSight:: +FutureSight: monbg ANIM_ATK_PARTNER - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_SUPERSONIC, 192 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE - createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff goto FutureSightContinue + +UnusedFutureSightHit: monbg ANIM_DEF_PARTNER - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_SUPERSONIC, 63 - waitplaysewithpan SE_M_SUPERSONIC, 63, 8 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, 1, 1 waitforvisualfinish @@ -4869,16 +4853,16 @@ FutureSight:: blendoff goto FutureSightContinue -Move_THUNDER:: +Move_THUNDER: loadspritegfx ANIM_TAG_LIGHTNING - fadetobg 11 + fadetobg BG_THUNDER waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -256, 0, 1, -1 waitbgfadein - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 16, RGB_BLACK delay 16 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, -36 delay 1 @@ -4887,12 +4871,12 @@ Move_THUNDER:: createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, 12 delay 20 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -32 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -16 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, 16 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 5 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 @@ -4907,7 +4891,7 @@ Move_THUNDER:: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -32 - playsewithpan SE_M_TRI_ATTACK2, 63 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 @@ -4915,29 +4899,29 @@ Move_THUNDER:: delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createvisualtask AnimTask_ShakeTargetInPattern, 2, 30, 3, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 30, 3, TRUE, 0 delay 2 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -Move_THUNDER_PUNCH:: +Move_THUNDER_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_LIGHTNING - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 16, RGB_BLACK waitforvisualfinish - playsewithpan SE_M_COMET_PUNCH, 63 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 delay 1 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 @@ -4947,23 +4931,23 @@ Move_THUNDER_PUNCH:: delay 1 createsprite gLightningSpriteTemplate, ANIM_ATTACKER, 2, 0, 16 delay 1 - playsewithpan SE_M_TRI_ATTACK2, 63 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 15, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK delay 20 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SACRED_FIRE:: +Move_SACRED_FIRE: loadspritegfx ANIM_TAG_FIRE loadspritegfx ANIM_TAG_FIRE_PLUME - loopsewithpan SE_M_SACRED_FIRE, 192, 7, 5 + loopsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER, 7, 5 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 50, 5, -2, 0 delay 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, -20, -10, 50, 5, -1, -1 @@ -4984,13 +4968,13 @@ Move_SACRED_FIRE:: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 waitforvisualfinish - playsewithpan SE_M_SACRED_FIRE2, 63 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, -16, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_M_SACRED_FIRE2, 63 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_M_SACRED_FIRE2, 63 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 16, 0, 80, 16, 0, 1 delay 1 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 @@ -4998,7 +4982,7 @@ Move_SACRED_FIRE:: waitforvisualfinish createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - playsewithpan SE_M_FLAME_WHEEL2, 63 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 @@ -5017,32 +5001,32 @@ Move_SACRED_FIRE:: waitforvisualfinish end -Move_SCRATCH:: +Move_SCRATCH: loadspritegfx ANIM_TAG_SCRATCH - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gScratchSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_DRAGON_BREATH:: +Move_DRAGON_BREATH: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER - monbgprio_28 1 - loopsewithpan SE_M_FLAME_WHEEL, 192, 7, 7 + splitbgprio ANIM_TARGET + loopsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER, 7, 7 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 9, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 0, 9, RGB_RED createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 21, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 21, 1 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 @@ -5059,30 +5043,30 @@ Move_DRAGON_BREATH:: delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 9, 0, RGB_RED waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_ROAR:: +Move_ROAR: loadspritegfx ANIM_TAG_NOISE_LINE monbg ANIM_ATTACKER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 8, 8 - createvisualtask SoundTask_PlayDoubleCry, 2, 0, DOUBLE_CRY_ROAR - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_ROAR + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 call RoarEffect delay 20 - createvisualtask AnimTask_SlideOffScreen, 5, 1, 2 + createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 2 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff waitforvisualfinish - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5 waitforvisualfinish end -RoarEffect:: +RoarEffect: createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, -8, 0 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 2 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 8, 1 @@ -5092,19 +5076,19 @@ RoarEffect:: createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 8, 1 return -Move_GROWL:: +Move_GROWL: loadspritegfx ANIM_TAG_NOISE_LINE - createvisualtask SoundTask_PlayDoubleCry, 2, 0, DOUBLE_CRY_GROWL + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_GROWL call RoarEffect delay 10 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 9, 1 waitforvisualfinish - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5 waitforvisualfinish end -Move_SNORE:: +Move_SNORE: loadspritegfx ANIM_TAG_SNORE_Z monbg ANIM_ATK_PARTNER setalpha 8, 8 @@ -5116,22 +5100,22 @@ Move_SNORE:: blendoff end -SnoreEffect:: - playsewithpan SE_M_SNORE, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, 0, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 7, 1 +SnoreEffect: + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, -42, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 42, -38, 24, 0, 0 return -Move_LIGHT_SCREEN:: +Move_LIGHT_SCREEN: loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_REFLECT, 192, 15 - createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10166 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 + createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_GREEN_LIGHT_WALL delay 10 call SpecialScreenSparkle waitforvisualfinish @@ -5139,102 +5123,102 @@ Move_LIGHT_SCREEN:: blendoff end -SpecialScreenSparkle:: - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 23, 0, 0, 1 +SpecialScreenSparkle: + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 23, 0, ANIM_ATTACKER, TRUE delay 6 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 31, -8, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 31, -8, ANIM_ATTACKER, TRUE delay 5 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 20, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 20, ANIM_ATTACKER, TRUE delay 7 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, -15, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, -15, ANIM_ATTACKER, TRUE delay 6 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, ANIM_ATTACKER, TRUE delay 6 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 18, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 18, ANIM_ATTACKER, TRUE return -Move_MIRROR_COAT:: +Move_MIRROR_COAT: loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_RED_LIGHT_WALL setalpha 0, 16 - createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10168 + createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_RED_LIGHT_WALL delay 10 - playsewithpan SE_M_REFLECT, 192 + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER call SpecialScreenSparkle waitforvisualfinish delay 1 blendoff end -Move_REFLECT:: +Move_REFLECT: loadspritegfx ANIM_TAG_SPARKLE_4 loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_REFLECT, 192, 15 - createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10167 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 + createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_BLUE_LIGHT_WALL delay 20 - createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, ANIM_ATTACKER, TRUE delay 7 - createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 19, -12, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 19, -12, ANIM_ATTACKER, TRUE delay 7 - createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 20, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 20, ANIM_ATTACKER, TRUE waitforvisualfinish delay 1 blendoff end -Move_BARRIER:: +Move_BARRIER: loadspritegfx ANIM_TAG_GRAY_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_BARRIER, 192, 15 - createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, 10169 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 + createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_GRAY_LIGHT_WALL waitforvisualfinish delay 1 blendoff end -Move_BUBBLE:: +Move_BUBBLE: loadspritegfx ANIM_TAG_BUBBLE loadspritegfx ANIM_TAG_SMALL_BUBBLES - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 delay 1 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 37, 40, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -37, 30, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, 15, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 33, 20, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 waitforvisualfinish call WaterBubblesEffectLong waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SMOG:: +Move_SMOG: loadspritegfx ANIM_TAG_PURPLE_GAS_CLOUD monbg ANIM_DEF_PARTNER - monbgprio_29 + splitbgprio_all setalpha 12, 8 - loopsewithpan SE_M_MIST, 63, 17, 10 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 17, 10 call SmogCloud call SmogCloud call SmogCloud @@ -5243,45 +5227,45 @@ Move_SMOG:: call SmogCloud call SmogCloud delay 120 - loopsewithpan SE_M_TOXIC, 63, 18, 2 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 26650 + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 18, 2 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(26, 0, 26) delay 10 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 15, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -SmogCloud:: +SmogCloud: createsprite gSmogCloudSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 48, 240, 1, 0 delay 7 return -Move_FAINT_ATTACK:: +Move_FAINT_ATTACK: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_ATTACKER - fadetobg 1 + fadetobg BG_DARK waitbgfadein delay 0 - playsewithpan SE_M_FAINT_ATTACK, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 3 + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER - invisible 0 + invisible ANIM_ATTACKER delay 1 - createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2, - monbg 1 + createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 + monbg ANIM_TARGET setalpha 12, 8 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 9, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 9, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 - setarg 7, 4096 + setarg 7, 0x1000 delay 32 createvisualtask AnimTask_InitAttackerFadeFromInvisible, 2 monbg ANIM_ATTACKER @@ -5293,12 +5277,12 @@ Move_FAINT_ATTACK:: waitbgfadein end -Move_SAND_ATTACK:: +Move_SAND_ATTACK: loadspritegfx ANIM_TAG_MUD_SAND monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_M_SAND_ATTACK, 192 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5313,7 +5297,7 @@ Move_SAND_ATTACK:: blendoff end -SandAttackDirt:: +SandAttackDirt: createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 0, 0 createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 10, 10 createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -10, -10 @@ -5322,9 +5306,9 @@ SandAttackDirt:: delay 2 return -Move_MUD_SLAP:: +Move_MUD_SLAP: loadspritegfx ANIM_TAG_MUD_SAND - playsewithpan SE_M_SAND_ATTACK, 192 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5337,7 +5321,7 @@ Move_MUD_SLAP:: waitforvisualfinish end -MudSlapMud:: +MudSlapMud: createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 0, 0 createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 10, 5 createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -10, -5 @@ -5346,18 +5330,18 @@ MudSlapMud:: delay 2 return -Move_DRAGON_RAGE:: +Move_DRAGON_RAGE: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_FIRE_PLUME - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 0, 15, 0, 0, 4 waitforvisualfinish createsprite gDragonRageFireSpitSpriteTemplate, ANIM_TARGET, 2, 30, 15, 0, 10, 10 waitforvisualfinish - loopsewithpan SE_M_FLAME_WHEEL2, 63, 11, 3 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 3, 25, 1 + loopsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET, 11, 3 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 25, 1 createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 5, 0 delay 1 createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, -10, -15 @@ -5378,98 +5362,98 @@ Move_DRAGON_RAGE:: waitforvisualfinish end -Move_RAIN_DANCE:: +Move_RAIN_DANCE: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_M_RAIN_DANCE, 192 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 delay 120 delay 30 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 4, 0, RGB_BLACK waitforvisualfinish end -Move_BITE:: +Move_BITE: loadspritegfx ANIM_TAG_SHARP_TEETH loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 7, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 7, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 end -Move_CRUNCH:: +Move_CRUNCH: loadspritegfx ANIM_TAG_SHARP_TEETH loadspritegfx ANIM_TAG_IMPACT - monbg 1 - fadetobg 1 + monbg ANIM_TARGET + fadetobg BG_DARK waitbgfadein setalpha 12, 8 - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 7, 5, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 waitforvisualfinish - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 8, 4, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 restorebg waitbgfadein end -Move_CLAMP:: +Move_CLAMP: loadspritegfx ANIM_TAG_CLAMP loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_ICE_BEAM:: - monbg 1 - monbgprio_28 1 +Move_ICE_BEAM: + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 loadspritegfx ANIM_TAG_ICE_CRYSTALS - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 7, RGB_BLACK waitforvisualfinish - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, -64, 63, 4, 4, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 4, 4, 0, 10 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 delay 1 call IceBeamCreateCrystals call IceBeamCreateCrystals call IceBeamCreateCrystals - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, -31, 0, 7, 32384 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 25, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, -31, 0, 7, RGB(0, 20, 31) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 25, 1 call IceBeamCreateCrystals call IceBeamCreateCrystals call IceBeamCreateCrystals @@ -5484,42 +5468,42 @@ Move_ICE_BEAM:: waitforvisualfinish delay 20 call IceCrystalEffectShort - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 5, 7, 0, 32384 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 5, 7, 0, RGB(0, 20, 31) waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 7, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -IceBeamCreateCrystals:: +IceBeamCreateCrystals: createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 createsprite gIceBeamInnerCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 delay 1 return -Move_WITHDRAW:: - playsewithpan SE_M_HEADBUTT, 192 - createvisualtask AnimTask_Withdraw, 5, +Move_WITHDRAW: + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER + createvisualtask AnimTask_Withdraw, 5 waitforvisualfinish end -Move_AURORA_BEAM:: +Move_AURORA_BEAM: loadspritegfx ANIM_TAG_RAINBOW_RINGS - fadetobg 20 + fadetobg BG_AURORA waitbgfadein - playsewithpan SE_M_BUBBLE_BEAM, 192 + playsewithpan SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER setarg 7, 0 createvisualtask AnimTask_RotateAuroraRingColors, 10, 130 call AuroraBeamCreateRings - createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 17, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 17, 1 call AuroraBeamCreateRings call AuroraBeamCreateRings call AuroraBeamCreateRings - setarg 7, 65535 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, -64, 63, 3, 6, 0, 10 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 40, 1 + setarg 7, 0xFFFF + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 6, 0, 10 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 40, 1 call AuroraBeamCreateRings call AuroraBeamCreateRings call AuroraBeamCreateRings @@ -5531,7 +5515,7 @@ Move_AURORA_BEAM:: waitbgfadein end -AuroraBeamCreateRings:: +AuroraBeamCreateRings: createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 delay 1 createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 @@ -5542,25 +5526,26 @@ AuroraBeamCreateRings:: delay 1 return -Move_SOLAR_BEAM:: +Move_SOLAR_BEAM: loadspritegfx ANIM_TAG_ORBS choosetwoturnanim SolarBeamSetUp, SolarBeamUnleash -SolarBeamEnd:: + +SolarBeamEnd: waitforvisualfinish end -SolarBeamSetUp:: +SolarBeamSetUp: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 1, 4, 0, 11, 12287 - playsewithpan SE_M_MEGA_KICK, 192 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 1, 4, 0, 11, RGB(31, 31, 11) + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call SolarBeamAbsorbEffect waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff goto SolarBeamEnd -SolarBeamAbsorbEffect:: +SolarBeamAbsorbEffect: createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 40, 40, 16 delay 2 createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -40, -40, 16 @@ -5591,18 +5576,18 @@ SolarBeamAbsorbEffect:: delay 2 return -SolarBeamUnleash:: +SolarBeamUnleash: call SetSolarBeamBg - panse_1B SE_M_SOLAR_BEAM, 192, 63, 2, 0 - createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5, + panse SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 delay 4 - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 10, RGB(25, 31, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 0, 10, RGB(25, 31, 0) createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2 delay 4 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 65, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 65, 1 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4 @@ -5614,11 +5599,11 @@ SolarBeamUnleash:: call SolarBeamUnleash1 call SolarBeamUnleash1 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 10, 0, RGB(25, 31, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 10, 0, RGB(25, 31, 0) call UnsetSolarBeamBg goto SolarBeamEnd -SolarBeamUnleash1:: +SolarBeamUnleash1: createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 @@ -5635,22 +5620,21 @@ SolarBeamUnleash1:: delay 4 return -Move_BLIZZARD:: +Move_BLIZZARD: loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, BlizzardOnPlayer + createvisualtask AnimTask_GetAttackerSide, 2 + jumprettrue BlizzardAgainstPlayer fadetobg BG_HIGHSPEED_OPPONENT - -BlizzardContinue:: +BlizzardContinue: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein waitforvisualfinish - panse_1B SE_M_BLIZZARD, 192, 63, 2, 0 + panse SE_M_BLIZZARD, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call BlizzardIceCrystals call BlizzardIceCrystals - playsewithpan SE_M_BLIZZARD2, 63 + playsewithpan SE_M_BLIZZARD2, SOUND_PAN_TARGET waitforvisualfinish call IceCrystalEffectLong waitforvisualfinish @@ -5658,11 +5642,11 @@ BlizzardContinue:: delay 20 restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -BlizzardIceCrystals:: +BlizzardIceCrystals: createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 72, 1 createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0, 80, 0, 0, 1 delay 3 @@ -5686,29 +5670,29 @@ BlizzardIceCrystals:: delay 3 return -BlizzardOnPlayer:: +BlizzardAgainstPlayer: fadetobg BG_HIGHSPEED_PLAYER goto BlizzardContinue -Move_POWDER_SNOW:: +Move_POWDER_SNOW: loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 0, 3, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 0, 3, RGB_BLACK waitforvisualfinish - panse_1B SE_M_GUST, 192, 63, 2, 0 + panse SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call PowderSnowSnowballs call PowderSnowSnowballs - playsewithpan SE_M_GUST2, 63 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish waitsound call IceCrystalEffectLong waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 20 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 3, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 3, 0, RGB_BLACK end -PowderSnowSnowballs:: +PowderSnowSnowballs: createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0, 56, 4, 4, 1 delay 3 createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 56, 4, 4, 1 @@ -5725,20 +5709,20 @@ PowderSnowSnowballs:: delay 3 return -Move_HYDRO_PUMP:: +Move_HYDRO_PUMP: loadspritegfx ANIM_TAG_WATER_ORB loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 delay 6 - panse_1B SE_M_HYDRO_PUMP, 192, 63, 2, 0 + panse SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call HydroPumpBeams call HydroPumpBeams call HydroPumpBeams - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 37, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 37, 1 call HydroPumpHitSplats call HydroPumpBeams call HydroPumpBeams @@ -5760,7 +5744,7 @@ Move_HYDRO_PUMP:: blendoff end -HydroPumpBeams:: +HydroPumpBeams: createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, -16 delay 1 @@ -5769,18 +5753,18 @@ HydroPumpBeams:: delay 1 return -HydroPumpHitSplats:: - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 15, 1, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, -15, 1, 1 +HydroPumpHitSplats : + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 15, ANIM_TARGET, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, -15, ANIM_TARGET, 1 return -Move_SIGNAL_BEAM:: +Move_SIGNAL_BEAM: loadspritegfx ANIM_TAG_GLOWY_RED_ORB loadspritegfx ANIM_TAG_GLOWY_GREEN_ORB loadspritegfx ANIM_TAG_DUCK - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 25, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 25, 1 delay 6 - panse_1B SE_M_BUBBLE_BEAM, 192, 63, 1, 0 + panse SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call SignalBeamOrbs call SignalBeamOrbs @@ -5788,8 +5772,8 @@ Move_SIGNAL_BEAM:: call SignalBeamOrbs call SignalBeamOrbs call SignalBeamOrbs - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 25, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 8, 5, 31, 8, 961, 8 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 25, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 8, 5, RGB_RED, 8, RGB(1, 30, 0), 8 call SignalBeamOrbs call SignalBeamOrbs call SignalBeamOrbs @@ -5810,25 +5794,25 @@ Move_SIGNAL_BEAM:: waitforvisualfinish end -SignalBeamOrbs:: +SignalBeamOrbs: createsprite gSignalBeamRedOrbSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 createsprite gSignalBeamGreenOrbSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, -16 delay 1 return -Move_ABSORB:: +Move_ABSORB: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_M_ABSORB, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish delay 3 call AbsorbEffect @@ -5836,52 +5820,52 @@ Move_ABSORB:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 4, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -AbsorbEffect:: - playsewithpan SE_M_CRABHAMMER, 63 +AbsorbEffect: + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_MEGA_DRAIN:: +Move_MEGA_DRAIN: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 8, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 8, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_M_ABSORB, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish delay 3 call MegaDrainAbsorbEffect @@ -5889,60 +5873,60 @@ Move_MEGA_DRAIN:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 8, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 8, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -MegaDrainAbsorbEffect:: - playsewithpan SE_M_BUBBLE3, 63 +MegaDrainAbsorbEffect: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_GIGA_DRAIN:: +Move_GIGA_DRAIN: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 12, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 12, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_M_ABSORB, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish delay 3 call GigaDrainAbsorbEffect @@ -5950,97 +5934,97 @@ Move_GIGA_DRAIN:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 12, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 12, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -GigaDrainAbsorbEffect:: - playsewithpan SE_M_GIGA_DRAIN, 63 +GigaDrainAbsorbEffect: + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_LEECH_LIFE:: +Move_LEECH_LIFE: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_ORBS delay 1 loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 delay 1 createsprite gLeechLifeNeedleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 12 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - playsewithpan SE_M_ABSORB, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 7, RGB_BLACK waitforvisualfinish call AbsorbEffect waitforvisualfinish delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 7, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SYNTHESIS:: +Move_SYNTHESIS: loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_SPARKLE_2 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 16, 19451 - playsewithpan SE_M_MEGA_KICK, 192 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 16, RGB(27, 31, 18) + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish call HealingEffect waitforvisualfinish end -Move_TOXIC:: +Move_TOXIC: loadspritegfx ANIM_TAG_TOXIC_BUBBLE loadspritegfx ANIM_TAG_POISON_BUBBLE call ToxicBubbles @@ -6051,33 +6035,33 @@ Move_TOXIC:: waitforvisualfinish end -ToxicBubbles:: +ToxicBubbles: createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -24, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 8, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -8, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 24, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 return -Move_SLUDGE:: +Move_SLUDGE: loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 2, 0, 12, 31774 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(30, 0, 31) call PoisonBubblesEffect waitforvisualfinish end -Move_SLUDGE_BOMB:: +Move_SLUDGE_BOMB: loadspritegfx ANIM_TAG_POISON_BUBBLE call SludgeBombProjectile call SludgeBombProjectile @@ -6089,25 +6073,25 @@ Move_SLUDGE_BOMB:: call SludgeBombProjectile call SludgeBombProjectile call SludgeBombProjectile - createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 2, 0, 12, 31774 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(30, 0, 31) createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 0, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -43, -12, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 16, -46, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -16, 44, 20 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 0 waitsound waitforvisualfinish @@ -6115,186 +6099,186 @@ Move_SLUDGE_BOMB:: waitforvisualfinish end -SludgeBombProjectile:: - playsewithpan SE_M_BUBBLE3, 192 +SludgeBombProjectile: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 delay 3 return -Move_ACID:: +Move_ACID: loadspritegfx ANIM_TAG_POISON_BUBBLE monbg ANIM_DEF_PARTNER createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 0, 0 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 24, 0 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, -24, 0 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 15 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1 - createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 20, 2, 2, 0, 12, 31774 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_DEF_PARTNER, 2, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_DEF_SIDE, 2, 2, 0, 12, RGB(30, 0, 31) createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -26, -24, 0, 15, 55 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 15, -27, 0, 15, 50 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -15, -17, 0, 10, 45 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 27, -22, 0, 15, 50 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_BONEMERANG:: +Move_BONEMERANG: loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_BONEMERANG, 192 + playsewithpan SE_M_BONEMERANG, SOUND_PAN_ATTACKER createsprite gBonemerangSpriteTemplate, ANIM_ATTACKER, 2 delay 20 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 5, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 5, 1 delay 17 - playsewithpan SE_M_VITAL_THROW, 192 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, -4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_BONE_CLUB:: +Move_BONE_CLUB: loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_BONEMERANG, 63 + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, 0, 10, 0, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATTACKER | F_PAL_TARGET, 5, 1, RGB_BLACK, 10, RGB_BLACK, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_BONE_RUSH:: +Move_BONE_RUSH: loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_BONEMERANG, 63 + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 3, 5, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 5, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SPIKES:: +Move_SPIKES: loadspritegfx ANIM_TAG_SPIKES monbg ANIM_DEF_PARTNER - playsewithpan SE_M_JUMP_KICK, 192 - waitplaysewithpan SE_M_HORN_ATTACK, 63, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 delay 10 - playsewithpan SE_M_JUMP_KICK, 192 - waitplaysewithpan SE_M_HORN_ATTACK, 63, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 delay 10 - waitplaysewithpan SE_M_HORN_ATTACK, 63, 28 + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_MEGAHORN:: +Move_MEGAHORN: loadspritegfx ANIM_TAG_HORN_HIT_2 loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER jumpifcontest MegahornInContest - fadetobg 7 + fadetobg BG_DRILL waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 -MegahornContinue:: +MegahornContinue: waitbgfadein setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 2, 0, 15, 1 waitforvisualfinish delay 10 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 3 createsprite gMegahornHornSpriteTemplate, ANIM_ATTACKER, 3, -42, 25, 0, 0, 6 delay 4 - playsewithpan SE_M_VICEGRIP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 4, 1, 4 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, -4, 1, 12, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_WHITE, 10, 0, 0 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, -4, 1, 12, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATTACKER | F_PAL_TARGET, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 waitforvisualfinish - waitforvisualfinish + waitforvisualfinish @ Redundant clearmonbg ANIM_DEF_PARTNER blendoff restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -MegahornInContest:: - fadetobg 8 +MegahornInContest: + fadetobg BG_DRILL_CONTESTS waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 goto MegahornContinue -Move_GUST:: +Move_GUST: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_GUST, 63 + playsewithpan SE_M_GUST, SOUND_PAN_TARGET createsprite gEllipticalGustSpriteTemplate, ANIM_ATTACKER, 2, 0, -16 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 7, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - playsewithpan SE_M_GUST2, 63 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 7, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_WING_ATTACK:: +Move_WING_ATTACK: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_M_WING_ATTACK, 192, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -6302,9 +6286,9 @@ Move_WING_ATTACK:: delay 24 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 9 delay 17 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 1, 1 - loopsewithpan SE_M_DOUBLE_SLAP, 63, 5, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 5, 2 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -6312,30 +6296,30 @@ Move_WING_ATTACK:: blendoff end -Move_PECK:: +Move_PECK: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_HORN_ATTACK, 63 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, 1, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, 1, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, ANIM_TARGET, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, ANIM_TARGET, 3 waitforvisualfinish end -Move_AEROBLAST:: +Move_AEROBLAST: loadspritegfx ANIM_TAG_AIR_WAVE_2 loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER call SetSkyBg - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 call AeroblastBeam - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 50, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 50, 1 call AeroblastBeam call AeroblastBeam call AeroblastBeam call AeroblastBeam waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6343,106 +6327,106 @@ Move_AEROBLAST:: call UnsetSkyBg end -AeroblastBeam:: - playsewithpan SE_M_JUMP_KICK, 192 +AeroblastBeam: + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 delay 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 1, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 1, 0 delay 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 2, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 2, 0 delay 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 3, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 3, 0 delay 3 return -Move_WATER_GUN:: +Move_WATER_GUN: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 createsprite gWaterGunProjectileSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 40, -25 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 8, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 2 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 8, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 0, -15, 0, 15, 55 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 15, -20, 0, 15, 50 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, -15, -10, 0, 10, 45 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_CRABHAMMER:: +Move_CRABHAMMER: loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 32429, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB(13, 21, 31), 10, RGB_BLACK, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish delay 8 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 4 waitforvisualfinish - loopsewithpan SE_M_CRABHAMMER, 63, 20, 3 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 8, 1 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, 1 + loopsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET, 20, 3 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 8, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 15, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 15, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, -20, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, -20, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 5, 8, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 5, 8, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 20, ANIM_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SURF:: - createvisualtask AnimTask_CreateSurfWave, 2, 0 +Move_SURF: + createvisualtask AnimTask_CreateSurfWave, 2, FALSE delay 24 - panse_1B SE_M_SURF, 192, 63, 2, 0 + panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish end -Move_FLAMETHROWER:: +Move_FLAMETHROWER: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 46, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_M_FLAMETHROWER, 192, 63, 2, 0 + panse SE_M_FLAMETHROWER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call FlamethrowerCreateFlames call FlamethrowerCreateFlames call FlamethrowerCreateFlames - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 43, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 43, 1 call FlamethrowerCreateFlames call FlamethrowerCreateFlames call FlamethrowerCreateFlames @@ -6456,17 +6440,18 @@ Move_FLAMETHROWER:: blendoff end -FlamethrowerCreateFlames:: +FlamethrowerCreateFlames: createsprite gFlamethrowerFlameSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 createsprite gFlamethrowerFlameSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 return -Move_SANDSTORM:: +@ Also used by Sandstorm weather +Move_SANDSTORM: loadspritegfx ANIM_TAG_FLYING_DIRT playsewithpan SE_M_SANDSTORM, 0 - createvisualtask AnimTask_LoadSandstormBackground, 5, 0 + createvisualtask AnimTask_LoadSandstormBackground, 5, FALSE delay 16 createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 10, 2304, 96, 0 delay 10 @@ -6483,146 +6468,147 @@ Move_SANDSTORM:: createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 60, 2560, 96, 0 end -Move_WHIRLPOOL:: +Move_WHIRLPOOL: loadspritegfx ANIM_TAG_WATER_ORB monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 23968 - playsewithpan SE_M_WHIRLPOOL, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 50, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(0, 13, 23) + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 50, 1 call WhirlpoolEffect call WhirlpoolEffect call WhirlpoolEffect delay 12 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 23968 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(0, 13, 23) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -WhirlpoolEffect:: - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, 1 +WhirlpoolEffect: + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, ANIM_TARGET delay 2 return -Move_FLY:: +Move_FLY: loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_IMPACT choosetwoturnanim FlySetUp, FlyUnleash -FlyEnd:: + +FlyEnd: waitforvisualfinish end -FlySetUp:: - playsewithpan SE_M_FLY, 192 +FlySetUp: + playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 goto FlyEnd -FlyUnleash:: +FlyUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20 delay 20 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - playsewithpan SE_M_RAZOR_WIND, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto FlyEnd -Move_BOUNCE:: +Move_BOUNCE: loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_IMPACT choosetwoturnanim BounceSetUp, BounceUnleash -BounceEnd:: +BounceEnd: end -BounceSetUp:: - playsewithpan SE_M_TELEPORT, 192 +BounceSetUp: + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER createsprite gBounceBallShrinkSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 goto BounceEnd -BounceUnleash:: +BounceUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gBounceBallLandSpriteTemplate, ANIM_TARGET, 3 delay 7 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 11, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 11, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto BounceEnd -Move_KARATE_CHOP:: +Move_KARATE_CHOP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gKarateChopSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_CROSS_CHOP:: +Move_CROSS_CHOP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_CROSS_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_MEGA_KICK, 63 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 delay 40 - playsewithpan SE_M_RAZOR_WIND, 63 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, 0, 10 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_WHITE, 10, RGB_BLACK, 10 createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 - createvisualtask AnimTask_ShakeMon, 5, 1, 7, 0, 9, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_JUMP_KICK:: +Move_JUMP_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 3 - createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 - playsewithpan SE_M_JUMP_KICK, 63 + createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 7, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_HI_JUMP_KICK:: +Move_HI_JUMP_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER @@ -6632,14 +6618,14 @@ Move_HI_JUMP_KICK:: delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 3 delay 2 - createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 - playsewithpan SE_M_JUMP_KICK, 63 + createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 11, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 11, 1 waitforvisualfinish delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 @@ -6648,54 +6634,55 @@ Move_HI_JUMP_KICK:: blendoff end -Move_DOUBLE_KICK:: +Move_DOUBLE_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gFistFootRandomPosSpriteTemplate, ANIM_ATTACKER, 3, 1, 20, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 - waitforvisualfinish + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish + waitforvisualfinish @ Redundant clearmonbg ANIM_DEF_PARTNER blendoff end -Move_TRIPLE_KICK:: +Move_TRIPLE_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET jumpifmoveturn 0, TripleKickLeft jumpifmoveturn 1, TripleKickRight goto TripleKickCenter -TripleKickContinue:: + +TripleKickContinue: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -TripleKickLeft:: +TripleKickLeft: createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, -16, -8, 20, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -16, -16, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -16, -16, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 goto TripleKickContinue -TripleKickRight:: +TripleKickRight: createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 8, 8, 20, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 goto TripleKickContinue -TripleKickCenter:: +TripleKickCenter: createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 20, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -8, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -8, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 goto TripleKickContinue -Move_DYNAMIC_PUNCH:: +Move_DYNAMIC_PUNCH: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_EXPLOSION @@ -6703,55 +6690,55 @@ Move_DYNAMIC_PUNCH:: delay 1 monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 20, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 7, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 delay 1 waitsound - playsewithpan SE_M_SELF_DESTRUCT, 63 - createvisualtask AnimTask_ShakeMon2, 5, 1, 5, 0, 28, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 5, 0, 28, 1 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_COUNTER:: +Move_COUNTER: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 4 - playsewithpan SE_M_VITAL_THROW, 192 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -15, 18, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -15, 18, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 25, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 25, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -15, 18, 8, 1, 0 delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -4, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -4, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 8, 1, 0 delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 15, 9, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 15, 9, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 15, 9, 8, 1, 0 delay 5 @@ -6761,17 +6748,17 @@ Move_COUNTER:: blendoff end -Move_VITAL_THROW:: +Move_VITAL_THROW: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VITAL_THROW, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 4, 1, 2 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 1, 2 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish @@ -6784,19 +6771,19 @@ Move_VITAL_THROW:: blendoff end -Move_ROCK_SMASH:: +Move_ROCK_SMASH: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 8, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 @@ -6805,26 +6792,26 @@ Move_ROCK_SMASH:: createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 30, -18, 8, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, 18, 8, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, -18, 8, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 7, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 7, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SUBMISSION:: +Move_SUBMISSION: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 10 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 20 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 30 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 40 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 50 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 60 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 70 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 80 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 90 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 10 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 20 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 30 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 40 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 50 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 70 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 80 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 90 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, -18, 6, 6, 4 createvisualtask AnimTask_TranslateMonElliptical, 2, 1, 18, 6, 6, 4 call SubmissionHit @@ -6835,43 +6822,44 @@ Move_SUBMISSION:: blendoff end -SubmissionHit:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -12, 1, 1 +SubmissionHit: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -12, ANIM_TARGET, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, 8, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, 8, ANIM_TARGET, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, 0, ANIM_TARGET, 1 delay 8 return -Move_SUNNY_DAY:: +@ Also used by Sunny weather +Move_SUNNY_DAY: loadspritegfx ANIM_TAG_SUNLIGHT monbg ANIM_ATK_PARTNER setalpha 13, 3 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 1, 0, 6, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 1, 0, 6, RGB_WHITE waitforvisualfinish - panse_26 SE_M_PETAL_DANCE, 192, 63, 1, 0 + panse_adjustnone SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call SunnyDayLightRay call SunnyDayLightRay call SunnyDayLightRay call SunnyDayLightRay waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 1, 6, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 1, 6, 0, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end -SunnyDayLightRay:: +SunnyDayLightRay: createsprite gSunlightRaySpriteTemplate, ANIM_ATTACKER, 40 delay 6 return -Move_COTTON_SPORE:: +Move_COTTON_SPORE: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER - monbgprio_28 1 - loopsewithpan SE_M_POISON_POWDER, 63, 18, 10 + splitbgprio ANIM_TARGET + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 18, 10 call CreateCottonSpores call CreateCottonSpores call CreateCottonSpores @@ -6879,7 +6867,7 @@ Move_COTTON_SPORE:: clearmonbg ANIM_DEF_PARTNER end -CreateCottonSpores:: +CreateCottonSpores: createsprite gSporeParticleSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, 85, 80, 0 delay 12 createsprite gSporeParticleSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 170, 80, 0 @@ -6888,12 +6876,12 @@ CreateCottonSpores:: delay 12 return -Move_SPORE:: +Move_SPORE: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_SporeDoubleBattle, 2, - loopsewithpan SE_M_POISON_POWDER, 63, 16, 11 + createvisualtask AnimTask_SporeDoubleBattle, 2 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 16, 11 call CreateSpore call CreateSpore call CreateSpore @@ -6903,7 +6891,7 @@ Move_SPORE:: blendoff end -CreateSpore:: +CreateSpore: createsprite gSporeParticleSpriteTemplate, ANIM_TARGET, 2, 0, -20, 85, 80, 1 delay 12 createsprite gSporeParticleSpriteTemplate, ANIM_TARGET, 2, 0, -10, 170, 80, 1 @@ -6912,13 +6900,13 @@ CreateSpore:: delay 12 return -Move_PETAL_DANCE:: +Move_PETAL_DANCE: loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_PETAL_DANCE, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 6, 3 + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 6, 3 createsprite gPetalDanceBigFlowerSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 8, 140 createsprite gPetalDanceSmallFlowerSpriteTemplate, ANIM_ATTACKER, 2, 16, -24, 8, 100 createsprite gPetalDanceSmallFlowerSpriteTemplate, ANIM_ATTACKER, 2, -16, -24, 8, 100 @@ -6939,9 +6927,9 @@ Move_PETAL_DANCE:: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 5 delay 3 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 6, 0, 8, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 8 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 @@ -6950,14 +6938,14 @@ Move_PETAL_DANCE:: blendoff end -Move_RAZOR_LEAF:: +Move_RAZOR_LEAF: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_M_POISON_POWDER, 192, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -1, -1, 15 @@ -6978,19 +6966,22 @@ Move_RAZOR_LEAF:: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 20 - playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 8, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_ANCIENT_POWER:: +Move_NATURE_POWER: + @ No actual animation, uses the animation of a move from sNaturePowerMoves instead + +Move_ANCIENT_POWER: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER @@ -7002,8 +6993,8 @@ Move_ANCIENT_POWER:: createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -20, 32, -48, 50, 2 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -28, 60, 1 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -28, 30, 4 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 30, 1 - playsewithpan SE_M_DRAGON_RAGE, 192 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 30, 1 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER delay 10 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 15, 32, -48, 25, 5 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -10, 32, -42, 30, 4 @@ -7013,9 +7004,9 @@ Move_ANCIENT_POWER:: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 0, 0, 4 delay 3 - playsewithpan SE_M_SELF_DESTRUCT, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 waitforvisualfinish @@ -7023,13 +7014,13 @@ Move_ANCIENT_POWER:: blendoff end -Move_OCTAZOOKA:: +Move_OCTAZOOKA: loadspritegfx ANIM_TAG_GRAY_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_M_MEGA_KICK2, 192 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER createsprite gOctazookaBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 20, 0 waitforvisualfinish - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 delay 2 createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 @@ -7040,11 +7031,11 @@ Move_OCTAZOOKA:: waitforvisualfinish end -Move_MIST:: +Move_MIST: loadspritegfx ANIM_TAG_MIST_CLOUD monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_M_MIST, 192, 20, 15 + loopsewithpan SE_M_MIST, SOUND_PAN_ATTACKER, 20, 15 call MistCloud call MistCloud call MistCloud @@ -7053,54 +7044,54 @@ Move_MIST:: call MistCloud call MistCloud delay 32 - createvisualtask AnimTask_BlendColorCycle, 2, 10, 8, 2, 0, 14, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATK_SIDE, 8, 2, 0, 14, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end -MistCloud:: +MistCloud: createsprite gMistCloudSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 48, 240, 0, 1 delay 7 return -Move_HAZE:: +Move_HAZE: waitforvisualfinish playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_HazeScrollingFog, 5, + createvisualtask AnimTask_HazeScrollingFog, 5 delay 30 - createvisualtask AnimTask_BlendSelected, 10, 0 | (0xF << 7), 2, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BATTLERS_2, 2, 0, 16, RGB_BLACK delay 90 - createvisualtask AnimTask_BlendSelected, 10, 0 | (0xF << 7), 1, 16, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BATTLERS_2, 1, 16, 0, RGB_BLACK end -Move_FIRE_PUNCH:: +Move_FIRE_PUNCH: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 9, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 9, RGB_RED createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 0 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 64 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 128 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 196 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 15, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 call FireSpreadEffect delay 4 - playsewithpan SE_M_FIRE_PUNCH, 63 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 9, 0, RGB_RED waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -FireSpreadEffect:: +FireSpreadEffect: createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, 176, 40 createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -192, 240, 40 createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, -160, 40 @@ -7110,18 +7101,18 @@ FireSpreadEffect:: createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 112, -128, 40 return -Move_LEER:: +Move_LEER: loadspritegfx ANIM_TAG_LEER monbg ANIM_ATTACKER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 8, 8 - playsewithpan SE_M_LEER, 192 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createsprite gLeerSpriteTemplate, ANIM_ATTACKER, 2, 24, -12 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 waitforvisualfinish delay 10 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff @@ -7129,20 +7120,20 @@ Move_LEER:: waitforvisualfinish end -Move_DREAM_EATER:: +Move_DREAM_EATER: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_DEF_PARTNER - monbgprio_2A 1 - playsewithpan SE_M_PSYBEAM, 192 + splitbgprio_foes ANIM_TARGET + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_MINIMIZE, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, 1, 1 + playsewithpan SE_M_MINIMIZE, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 2, 25, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 2, 25, 1 call DreamEaterAbsorb waitforvisualfinish delay 15 @@ -7151,115 +7142,115 @@ Move_DREAM_EATER:: clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -DreamEaterAbsorb:: - playsewithpan SE_M_SWAGGER, 63 +DreamEaterAbsorb: + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_POISON_GAS:: +Move_POISON_GAS: loadspritegfx ANIM_TAG_PURPLE_GAS_CLOUD loadspritegfx ANIM_TAG_POISON_BUBBLE delay 0 monbg ANIM_DEF_PARTNER - monbgprio_29 + splitbgprio_all setalpha 12, 8 delay 0 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 - loopsewithpan SE_M_MIST, 63, 28, 6 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 6, 2, 0, 12, 26650 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 28, 6 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 6, 2, 0, 12, RGB(26, 0, 26) waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER delay 0 end -Move_BIND:: - createvisualtask AnimTask_SwayMon, 5, 0, 6, 3328, 4, 0 +Move_BIND: + createvisualtask AnimTask_SwayMon, 5, 0, 6, 3328, 4, ANIM_ATTACKER goto BindWrap -BindWrap:: - playsewithpan SE_M_BIND, 63 +BindWrap: + playsewithpan SE_M_BIND, SOUND_PAN_TARGET call BindWrapSqueezeTarget call BindWrapSqueezeTarget waitforvisualfinish end -BindWrapSqueezeTarget:: - createvisualtask AnimTask_ScaleMonAndRestore, 5, 10, -5, 5, 1, 0 +BindWrapSqueezeTarget: + createvisualtask AnimTask_ScaleMonAndRestore, 5, 10, -5, 5, ANIM_TARGET, 0 delay 16 return -Move_WRAP:: - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 6, 4, 2, 4 +Move_WRAP: + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 6, 4, 2, 4 goto BindWrap -Move_PSYBEAM:: +Move_PSYBEAM: loadspritegfx ANIM_TAG_GOLD_RING - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, -64, 63, 3, 4, 0, 15 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 call PsybeamRings call PsybeamRings - createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 32351 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, ANIM_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(31, 18, 31) call PsybeamRings call PsybeamRings call PsybeamRings @@ -7271,62 +7262,62 @@ Move_PSYBEAM:: call PsybeamRings waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -PsybeamRings:: +PsybeamRings: createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 13, 0 delay 4 return -Move_HYPNOSIS:: +Move_HYPNOSIS: loadspritegfx ANIM_TAG_GOLD_RING call SetPsychicBackground call HypnosisRings call HypnosisRings call HypnosisRings - createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(31, 18, 31) waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -HypnosisRings:: - playsewithpan SE_M_SUPERSONIC, 192 +HypnosisRings: + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 0, 8, 27, 0 createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0, -8, 27, 0 delay 6 return -Move_PSYWAVE:: +Move_PSYWAVE: loadspritegfx ANIM_TAG_BLUE_RING - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, -64, 63, 2, 9, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 9, 0, 10 call PsywaveRings call PsywaveRings - createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 4, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 4, 0, 12, RGB(31, 18, 31) call PsywaveRings call PsywaveRings call PsywaveRings call PsywaveRings waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -PsywaveRings:: +PsywaveRings: createsprite gPsywaveRingSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 delay 4 createsprite gPsywaveRingSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 delay 4 return -Move_ZAP_CANNON:: +Move_ZAP_CANNON: loadspritegfx ANIM_TAG_BLACK_BALL_2 loadspritegfx ANIM_TAG_SPARK_2 - playsewithpan SE_M_THUNDER_WAVE, 192 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_ATTACKER createsprite gZapCannonBallSpriteTemplate, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 @@ -7337,23 +7328,23 @@ Move_ZAP_CANNON:: createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 160, 40, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 224, 40, 2 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 delay 15 - waitplaysewithpan SE_M_THUNDERBOLT2, 63, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish end -Move_STEEL_WING:: +Move_STEEL_WING: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_M_HARDEN, 192, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_M_WING_ATTACK, 192, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -7361,9 +7352,9 @@ Move_STEEL_WING:: delay 24 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 9 delay 17 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 1, 1 - playsewithpan SE_M_RAZOR_WIND, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -7371,79 +7362,79 @@ Move_STEEL_WING:: blendoff end -Move_IRON_TAIL:: +Move_IRON_TAIL: loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_M_HARDEN, 192, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 0, 0 waitforvisualfinish - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 - clearmonbg 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_POISON_TAIL:: +Move_POISON_TAIL: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_M_HARDEN, 192, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 1, 1, 23768 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 + createvisualtask AnimTask_MetallicShine, 5, 1, 1, RGB(24, 6, 23) waitforvisualfinish - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 - clearmonbg 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + clearmonbg ANIM_TARGET blendoff call PoisonBubblesEffect waitforvisualfinish end -Move_METAL_CLAW:: +Move_METAL_CLAW: loadspritegfx ANIM_TAG_CLAW_SLASH - loopsewithpan SE_M_HARDEN, 192, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 waitforvisualfinish end -Move_NIGHT_SHADE:: +Move_NIGHT_SHADE: monbg ANIM_ATTACKER - monbgprio_28 0 - playsewithpan SE_M_PSYBEAM, 192 - fadetobg 2 + splitbgprio ANIM_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + fadetobg BG_GHOST waitbgfadein delay 10 - playsewithpan SE_M_LEER, 192 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_NightShadeClone, 5, 85 delay 70 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 12, 1 - createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 2, 0, 13, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 12, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 0, 2, 0, 13, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 @@ -7451,117 +7442,117 @@ Move_NIGHT_SHADE:: waitbgfadein end -Move_EGG_BOMB:: +Move_EGG_BOMB: loadspritegfx ANIM_TAG_EXPLOSION loadspritegfx ANIM_TAG_LARGE_FRESH_EGG - playsewithpan SE_M_TAIL_WHIP, 192 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gEggThrowSpriteTemplate, ANIM_TARGET, 2, 10, 0, 0, 0, 25, -32 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 16, 1 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 6, 5, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -16, -15, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 16, -5, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -12, 18, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 0, 5, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 waitforvisualfinish end -Move_SHADOW_BALL:: +Move_SHADOW_BALL: loadspritegfx ANIM_TAG_SHADOW_BALL - fadetobg 2 + fadetobg BG_GHOST waitbgfadein delay 15 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_MIST, -64, 63, 5, 5, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_MIST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 5, 0, 5 createsprite gShadowBallSpriteTemplate, ANIM_TARGET, 2, 16, 16, 8 waitforvisualfinish - playsewithpan SE_M_SAND_ATTACK, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 8, 1 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 8, 1 waitforvisualfinish restorebg waitbgfadein end -Move_LICK:: +Move_LICK: loadspritegfx ANIM_TAG_LICK delay 15 - playsewithpan SE_M_LICK, 63 + playsewithpan SE_M_LICK, SOUND_PAN_TARGET createsprite gLickSpriteTemplate, ANIM_TARGET, 2, 0, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 16, 1 waitforvisualfinish end -Move_FOCUS_ENERGY:: +Move_FOCUS_ENERGY: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_WHITE - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_WHITE + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 call EndureEffect delay 8 call EndureEffect waitforvisualfinish end -Move_BIDE:: - choosetwoturnanim BattleAnimScript_Bide_Setup, BattleAnimScript_Bide_Release +Move_BIDE: + choosetwoturnanim BideSetUp, BideUnleash end -BattleAnimScript_Bide_Setup:: - loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 +BideSetUp: + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish end -BattleAnimScript_Bide_Release:: +BideUnleash: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2 - createvisualtask AnimTask_BlendSelected, 10, 2, 2, 0, 11, RGB(31, 0, 0) - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 4 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 12, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 16, 1 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 18, -8, 1, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 12, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 16, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 18, -8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -18, 8, 1, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -18, 8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -8, -5, 1, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -8, -5, ANIM_TARGET, 1 waitforvisualfinish delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 2, 11, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 11, 0, RGB_RED waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_STRING_SHOT:: +Move_STRING_SHOT: loadspritegfx ANIM_TAG_STRING loadspritegfx ANIM_TAG_WEB_THREAD monbg ANIM_DEF_PARTNER delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 0, 9, RGB_BLACK waitforvisualfinish - loopsewithpan SE_M_STRING_SHOT, 192, 9, 6 + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call StringShotThread call StringShotThread call StringShotThread @@ -7581,7 +7572,7 @@ Move_STRING_SHOT:: call StringShotThread call StringShotThread waitforvisualfinish - playsewithpan SE_M_STRING_SHOT2, 63 + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, 10 delay 4 createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, -2 @@ -7591,23 +7582,23 @@ Move_STRING_SHOT:: clearmonbg ANIM_DEF_PARTNER delay 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 9, 0, RGB_BLACK end -StringShotThread:: +StringShotThread: createsprite gWebThreadSpriteTemplate, ANIM_TARGET, 2, 20, 0, 512, 20, 1 delay 1 return -Move_SPIDER_WEB:: +Move_SPIDER_WEB: loadspritegfx ANIM_TAG_SPIDER_WEB loadspritegfx ANIM_TAG_WEB_THREAD monbg ANIM_DEF_PARTNER delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 0, 9, RGB_BLACK waitforvisualfinish - monbgprio_28 1 - loopsewithpan SE_M_STRING_SHOT, 192, 9, 6 + splitbgprio ANIM_TARGET + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call SpiderWebThread call SpiderWebThread call SpiderWebThread @@ -7623,81 +7614,81 @@ Move_SPIDER_WEB:: call SpiderWebThread call SpiderWebThread waitforvisualfinish - playsewithpan SE_M_STRING_SHOT2, 63 - createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET + createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 9, 0, RGB_BLACK end -SpiderWebThread:: +SpiderWebThread: createsprite gWebThreadSpriteTemplate, ANIM_TARGET, 2, 20, 0, 512, 20, 0 delay 1 return -Move_RAZOR_WIND:: +Move_RAZOR_WIND: choosetwoturnanim RazorWindSetUp, RazorWindUnleash -RazorWindEnd:: +RazorWindEnd: waitforvisualfinish end -RazorWindSetUp:: +RazorWindSetUp: loadspritegfx ANIM_TAG_GUST - playsewithpan SE_M_GUST, 192 + playsewithpan SE_M_GUST, SOUND_PAN_ATTACKER createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 85, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40 waitforvisualfinish - playsewithpan SE_M_GUST2, 192 + playsewithpan SE_M_GUST2, SOUND_PAN_ATTACKER goto RazorWindEnd -RazorWindUnleash:: +RazorWindUnleash: loadspritegfx ANIM_TAG_AIR_WAVE_2 loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 8, 0, 0, 22, 2, 1 delay 2 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -8, 16, 14, 22, 1, 1 delay 2 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 12, -16, -14, 22, 0, 1 delay 17 - playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 10, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 10, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff goto RazorWindEnd -Move_DISABLE:: +Move_DISABLE: loadspritegfx ANIM_TAG_SPARKLE_4 - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 8, 8 - playsewithpan SE_M_DETECT, 192 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish - createvisualtask AnimTask_GrowAndGreyscale, 5, - loopsewithpan SE_M_BIND, 63, 15, 4 + createvisualtask AnimTask_GrowAndGrayscale, 5 + loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4 waitforvisualfinish delay 1 - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_RECOVER:: +Move_RECOVER: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_M_MEGA_KICK, 192, 13, 3 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, 12287 + loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 6, 0, 11, RGB(31, 31, 11) call RecoverAbsorbEffect call RecoverAbsorbEffect call RecoverAbsorbEffect @@ -7709,7 +7700,7 @@ Move_RECOVER:: waitforvisualfinish end -RecoverAbsorbEffect:: +RecoverAbsorbEffect: createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 40, -10, 13 delay 3 createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -35, -10, 13 @@ -7726,27 +7717,27 @@ RecoverAbsorbEffect:: delay 3 return -Move_MIMIC:: +Move_MIMIC: loadspritegfx ANIM_TAG_ORBS - monbg_22 3 + monbg_static ANIM_DEF_PARTNER setalpha 11, 5 - panse_1B SE_M_MINIMIZE, 63, 192, 253, 0 + panse SE_M_MINIMIZE, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 createvisualtask AnimTask_ShrinkTargetCopy, 5, 128, 24 delay 15 createsprite gMimicOrbSpriteTemplate, ANIM_TARGET, 2, -12, 24 delay 10 - setarg 7, 65535 + setarg 7, 0xFFFF waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 11, RGB_WHITE + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 11, RGB_WHITE waitforvisualfinish - clearmonbg_23 3 + clearmonbg_static ANIM_DEF_PARTNER blendoff end -Move_CONSTRICT:: +Move_CONSTRICT: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_M_SCRATCH, 63, 6, 4 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 4 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 2 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 2 @@ -7754,17 +7745,17 @@ Move_CONSTRICT:: delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 3, 0, -8, 1, 2 delay 8 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 delay 20 - playsewithpan SE_M_BIND, 63 - setarg 7, 65535 + playsewithpan SE_M_BIND, SOUND_PAN_TARGET + setarg 7, 0xFFFF waitforvisualfinish end -Move_CURSE:: +Move_CURSE: choosetwoturnanim CurseGhost, CurseStats -CurseGhost:: +CurseGhost: loadspritegfx ANIM_TAG_NAIL loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_ATK_PARTNER @@ -7782,62 +7773,62 @@ CurseGhost:: clearmonbg ANIM_ATK_PARTNER delay 1 monbg ANIM_DEF_PARTNER - playsewithpan SE_M_NIGHTMARE, 63 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 16, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -CurseGhostShakeFromNail:: - createvisualtask AnimTask_ShakeMon2, 2, 0, 4, 0, 10, 0 - playsewithpan SE_M_BIND, 192 +CurseGhostShakeFromNail: + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 4, 0, 10, 0 + playsewithpan SE_M_BIND, SOUND_PAN_ATTACKER return -CurseStats:: - createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, 0 +CurseStats: + createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, ANIM_ATTACKER waitforvisualfinish delay 10 call CurseStats1 waitforvisualfinish end -CurseStats1:: - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_DrawFallingWhiteLinesOnAttacker, 5, - createvisualtask AnimTask_BlendColorCycle, 5, 2, 4, 2, 0, 10, 31 +CurseStats1: + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_DrawFallingWhiteLinesOnAttacker, 5 + createvisualtask AnimTask_BlendColorCycle, 5, F_PAL_ATTACKER, 4, 2, 0, 10, RGB_RED return -Move_SOFT_BOILED:: +Move_SOFT_BOILED: loadspritegfx ANIM_TAG_BREAKING_EGG loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER - playsewithpan SE_M_TAIL_WHIP, 192 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 2, 6, 1 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 2, 6, 1 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 0 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 1 delay 120 delay 7 - playsewithpan SE_M_HORN_ATTACK, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, 31500 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 31, 16, 0, 1 delay 8 createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 31, 16, 0, 1 delay 60 - setarg 7, 65535 + setarg 7, 0xFFFF waitforvisualfinish clearmonbg ANIM_ATK_PARTNER call HealingEffect2 end -Move_HEAL_BELL:: +Move_HEAL_BELL: loadspritegfx ANIM_TAG_BELL loadspritegfx ANIM_TAG_MUSIC_NOTES_2 loadspritegfx ANIM_TAG_THIN_RING - createvisualtask AnimTask_BlendSelected, 10, 10, 0, 0, 10, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 0, 0, 10, RGB_WHITE waitforvisualfinish createvisualtask AnimTask_LoadMusicNotesPals, 5 createsprite gBellSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 1 @@ -7866,67 +7857,67 @@ Move_HEAL_BELL:: unloadspritegfx ANIM_TAG_MUSIC_NOTES_2 unloadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_THIN_RING - playsewithpan SE_SHINY, 192 - createvisualtask AnimTask_BlendExcept, 10, 4, 3, 10, 0, 31500 - createvisualtask AnimTask_BlendSelected, 10, 10, 3, 10, 0, RGB_WHITE + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 10, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 3, 10, 0, RGB_WHITE createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 end -HealBellRing:: - createvisualtask AnimTask_BlendExcept, 10, 4, 3, 8, 0, 31500 - createvisualtask AnimTask_BlendSelected, 10, 10, 3, 2, 10, RGB_WHITE +HealBellRing: + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 8, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 - playsewithpan SE_M_HEAL_BELL, 192 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER return -Move_FAKE_OUT:: +Move_FAKE_OUT: playsewithpan SE_M_FLATTER, 0 - createvisualtask AnimTask_FakeOut, 5, + createvisualtask AnimTask_FakeOut, 5 waitforvisualfinish - playsewithpan SE_M_SKETCH, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_WHITE end -Move_SCARY_FACE:: +Move_SCARY_FACE: loadspritegfx ANIM_TAG_EYE_SPARKLE - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 0, 16, 0 - playsewithpan SE_M_PSYBEAM, 192 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER, 3, 0, 16, RGB_BLACK + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitforvisualfinish delay 10 - playsewithpan SE_M_LEER, 192 - createvisualtask AnimTask_ScaryFace, 5, + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaryFace, 5 delay 13 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 waitforvisualfinish - createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 - playsewithpan SE_M_STRING_SHOT2, 63 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 16, 0, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER, 3, 16, 0, RGB_BLACK waitforvisualfinish end -Move_SWEET_KISS:: +Move_SWEET_KISS: loadspritegfx ANIM_TAG_RED_HEART loadspritegfx ANIM_TAG_ANGEL createsprite gAngelSpriteTemplate, ANIM_TARGET, 2, 16, -48 - playsewithpan SE_M_HEAL_BELL, 63 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_M_HEAL_BELL, 63 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_M_HEAL_BELL, 63 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET waitforvisualfinish createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -30 - playsewithpan SE_M_ATTRACT, 63 + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 416, -38 @@ -7934,102 +7925,102 @@ Move_SWEET_KISS:: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 end -Move_LOVELY_KISS:: +Move_LOVELY_KISS: loadspritegfx ANIM_TAG_PINK_HEART loadspritegfx ANIM_TAG_DEVIL createsprite gDevilSpriteTemplate, ANIM_TARGET, 2, 0, -24 - playsewithpan SE_M_PSYBEAM2, 63 + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_ATTRACT, 63 + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 416, -38 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, -128, -22 end -Move_FURY_SWIPES:: +Move_FURY_SWIPES: loadspritegfx ANIM_TAG_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 5 delay 4 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, 16, 0, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 5, 1 delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_TARGET, 2, 5, 5 delay 4 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, -16, 0, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 end -Move_INGRAIN:: +Move_INGRAIN: loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_ORBS createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 16, 26, -1, 2, 150 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -32, 20, 1, 1, 140 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 32, 22, 1, 0, 130 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -16, 25, -1, 3, 120 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 40 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 32, 26, -1, 3, 30 delay 5 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, -48, 20, 1, 2, 30 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 48, 26, -2, 3, 18 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 10 waitforvisualfinish end -Move_PRESENT:: +Move_PRESENT: loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask AnimTask_IsHealingMove, 2, + createvisualtask AnimTask_IsHealingMove, 2 createsprite gPresentSpriteTemplate, ANIM_TARGET, 2, 0, -5, 10, 2, -1 - playsewithpan SE_M_TAIL_WHIP, 192 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 14 - playsewithpan SE_M_BUBBLE2, 192 + playsewithpan SE_M_BUBBLE2, SOUND_PAN_ATTACKER delay 14 playsewithpan SE_M_BUBBLE2, 0 delay 20 - playsewithpan SE_M_BUBBLE2, 63 + playsewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET waitforvisualfinish - jumpargeq 7, 0, PresentDamage - jumpargeq 7, 1, PresentHeal + jumpretfalse PresentDamage + jumprettrue PresentHeal end -PresentDamage:: +PresentDamage: loadspritegfx ANIM_TAG_EXPLOSION - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 16, 16, 1, 1 end -PresentHeal:: +PresentHeal: loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_M_MORNING_SUN, 63 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_TARGET createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, -16, 32, -3, 1 delay 3 createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, 16, 32, -3, -1 @@ -8052,14 +8043,14 @@ PresentHeal:: call HealingEffect2 end -Move_BATON_PASS:: +Move_BATON_PASS: loadspritegfx ANIM_TAG_POKEBALL - playsewithpan SE_M_BATON_PASS, 192 - createvisualtask AnimTask_BlendColorCycle, 2, 31, 1, 2, 0, 11, 31455 - createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_BATON_PASS, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 2, 0, 11, RGB(31, 22, 30) + createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2 end -Move_PERISH_SONG:: +Move_PERISH_SONG: loadspritegfx ANIM_TAG_MUSIC_NOTES_2 createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 0 createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 1, 1, 16 @@ -8079,42 +8070,42 @@ Move_PERISH_SONG:: createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 240 createsprite gPerishSongMusicNote2SpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 0 delay 20 - panse_1B SE_M_PERISH_SONG, 192, 63, 2, 0 + panse SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 80 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 16, RGB_BLACK + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 0 delay 100 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_BLACK + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 1 waitforvisualfinish end -Move_SLEEP_TALK:: +Move_SLEEP_TALK: loadspritegfx ANIM_TAG_LETTER_Z - createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, ANIM_ATTACKER delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 delay 6 @@ -8122,54 +8113,55 @@ Move_SLEEP_TALK:: waitforvisualfinish end -Move_HYPER_FANG:: +Move_HYPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 1 delay 2 - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, HyperFangInContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, HyperFangOnOpponent + createvisualtask AnimTask_IsContest, 2 + jumprettrue HyperFangInContest + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse HyperFangOnOpponent goto HyperFangOnPlayer -HyperFangContinue:: + +HyperFangContinue: waitbgfadeout - createsprite gFangSpriteTemplate, ANIM_TARGET, 2, + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 waitbgfadein - createvisualtask AnimTask_ShakeMon, 3, 1, 0, 10, 10, 1 - playsewithpan SE_M_LEER, 63 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 10, 10, 1 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET delay 20 restorebg waitbgfadein waitforvisualfinish end -HyperFangOnOpponent:: - fadetobg 4 +HyperFangOnOpponent: + fadetobg BG_IMPACT_OPPONENT goto HyperFangContinue -HyperFangOnPlayer:: - fadetobg 5 +HyperFangOnPlayer: + fadetobg BG_IMPACT_PLAYER goto HyperFangContinue -HyperFangInContest:: - fadetobg 6 +HyperFangInContest: + fadetobg BG_IMPACT_CONTESTS goto HyperFangContinue -Move_TRI_ATTACK:: +Move_TRI_ATTACK: loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 - playsewithpan SE_M_TRI_ATTACK, 192 + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_M_TRI_ATTACK, 192 + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TRI_ATTACK, -64, 63, 5, 6, 0, 7 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 6, 0, 7 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 16, RGB_BLACK delay 16 loadspritegfx ANIM_TAG_FIRE createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 - playsewithpan SE_M_FLAME_WHEEL2, 63 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 @@ -8184,35 +8176,35 @@ Move_TRI_ATTACK:: delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 3, 1 delay 2 - createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, 1, 1 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, TRUE, 1 waitforvisualfinish loadspritegfx ANIM_TAG_LIGHTNING createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_M_TRI_ATTACK2, 63 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -48 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, 16 delay 20 - createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, TRUE, 0 delay 2 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish loadspritegfx ANIM_TAG_ICE_CRYSTALS call IceCrystalEffectShort - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK waitforvisualfinish end -Move_WILL_O_WISP:: +Move_WILL_O_WISP: loadspritegfx ANIM_TAG_WISP_FIRE loadspritegfx ANIM_TAG_WISP_ORB monbg ANIM_DEF_PARTNER - monbgprio_2A 1 - playsewithpan SE_M_EMBER, 192 - waitplaysewithpan SE_M_EMBER, 192, 10 - createvisualtask SoundTask_AdjustPanningVar, 2, -64, -64, 1, 0 + splitbgprio_foes ANIM_TARGET + playsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 10 + createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_ATTACKER, 1, 0 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 delay 3 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1 @@ -8221,11 +8213,11 @@ Move_WILL_O_WISP:: delay 3 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 3 delay 40 - createvisualtask SoundTask_AdjustPanningVar, 2, -64, 63, 2, 0 + createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 waitforvisualfinish - monbgprio_29 - playsewithpan SE_M_FLAME_WHEEL2, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 13, 1 + splitbgprio_all + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 13, 1 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 42 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 84 @@ -8236,11 +8228,11 @@ Move_WILL_O_WISP:: clearmonbg ANIM_DEF_PARTNER end -Move_ENCORE:: +Move_ENCORE: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask AnimTask_CreateSpotlight, 2, - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE + createvisualtask AnimTask_CreateSpotlight, 2 + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 @@ -8248,22 +8240,22 @@ Move_ENCORE:: createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, 63 - createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, 1 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET + createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask AnimTask_RemoveSpotlight, 2, + createvisualtask AnimTask_RemoveSpotlight, 2 end -Move_TRICK:: +Move_TRICK: loadspritegfx ANIM_TAG_ITEM_BAG loadspritegfx ANIM_TAG_SPEED_DUST createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 80 createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 208 delay 16 playsewithpan SE_M_SKETCH, 0 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchTargetUp, 3 createvisualtask AnimTask_StretchAttackerUp, 3 delay 30 playsewithpan SE_M_DOUBLE_TEAM, 0 @@ -8279,39 +8271,39 @@ Move_TRICK:: playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 playsewithpan SE_M_ATTRACT, 0 - createvisualtask AnimTask_ShakeMon, 3, 0, 5, 0, 7, 2 - createvisualtask AnimTask_ShakeMon, 3, 1, 5, 0, 7, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_ATTACKER, 5, 0, 7, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 5, 0, 7, 2 waitforvisualfinish end -Move_WISH:: +Move_WISH: loadspritegfx ANIM_TAG_GOLD_STARS loadspritegfx ANIM_TAG_SPARKLE_2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 10, RGB_BLACK waitforvisualfinish - panse_27 SE_M_REFLECT, 63, 192, 253, 0 - createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40, + panse_adjustall SE_M_REFLECT, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 + createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40 waitforvisualfinish delay 60 - loopsewithpan SE_M_HEAL_BELL, 192, 16, 3 + loopsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER, 16, 3 call GrantingStarsEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 10, 0, RGB_BLACK waitforvisualfinish end -Move_STOCKPILE:: +Move_STOCKPILE: loadspritegfx ANIM_TAG_GRAY_ORB - playsewithpan SE_M_MEGA_KICK, 192 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 8, 1, 0, 12, RGB_WHITE - createvisualtask AnimTask_StockpileDeformMon, 5, + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 8, 1, 0, 12, RGB_WHITE + createvisualtask AnimTask_StockpileDeformMon, 5 call StockpileAbsorb call StockpileAbsorb waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 12, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 12, 0, RGB_WHITE end -StockpileAbsorb:: +StockpileAbsorb: createsprite gStockpileAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 55, 55, 13 delay 1 createsprite gStockpileAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -55, -55, 13 @@ -8330,14 +8322,14 @@ StockpileAbsorb:: delay 1 return -Move_SPIT_UP:: +Move_SPIT_UP: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_SpitUpDeformMon, 5, - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 8, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SpitUpDeformMon, 5 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 45 - playsewithpan SE_M_SPIT_UP, 192 + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 3 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 12 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 32, 12 @@ -8350,25 +8342,25 @@ Move_SPIT_UP:: delay 5 jumpifmoveturn 2, SpitUpStrong jumpifmoveturn 3, SpitUpStrongest -SpitUpContinue:: +SpitUpContinue: delay 5 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 8, 1, 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, 1, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, ANIM_TARGET, 1 delay 5 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, 1, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, ANIM_TARGET, 1 waitforvisualfinish end -SpitUpStrong:: +SpitUpStrong: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 16 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 80 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 144 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 208 goto SpitUpContinue -SpitUpStrongest:: +SpitUpStrongest: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 16 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 48 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 80 @@ -8379,24 +8371,24 @@ SpitUpStrongest:: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 240 goto SpitUpContinue -Move_SWALLOW:: +Move_SWALLOW: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_SwallowDeformMon, 5, - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 8, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SwallowDeformMon, 5 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 38 - playsewithpan SE_M_SPIT_UP, 192 - createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 12, 1 + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 12, 1 call SwallowEffect jumpifmoveturn 2, SwallowGood jumpifmoveturn 3, SwallowBest -SwallowContinue:: +SwallowContinue: waitforvisualfinish call HealingEffect end -SwallowEffect:: +SwallowEffect: createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, -8 delay 1 createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 @@ -8409,30 +8401,30 @@ SwallowEffect:: delay 1 return -SwallowGood:: +SwallowGood: call SwallowEffect goto SwallowContinue -SwallowBest:: +SwallowBest: call SwallowEffect call SwallowEffect goto SwallowContinue -Move_TRANSFORM:: +Move_TRANSFORM: monbg ANIM_ATTACKER - playsewithpan SE_M_TELEPORT, 192 - waitplaysewithpan SE_M_MINIMIZE, 192, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER end -Move_MORNING_SUN:: +Move_MORNING_SUN: loadspritegfx ANIM_TAG_GREEN_STAR loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask AnimTask_MorningSunLightBeam, 5, + createvisualtask AnimTask_MorningSunLightBeam, 5 delay 8 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 8, 0, 12, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 8, 0, 12, RGB_WHITE delay 14 call MorningSunStar call MorningSunStar @@ -8449,32 +8441,32 @@ Move_MORNING_SUN:: call MorningSunStar call MorningSunStar call MorningSunStar - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 3, 12, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 3, 12, 0, RGB_WHITE waitforvisualfinish waitsound call HealingEffect end -MorningSunStar:: +MorningSunStar: createsprite gGreenStarSpriteTemplate, ANIM_ATTACKER, 2, 30, 640 delay 5 return -Move_SWEET_SCENT:: +Move_SWEET_SCENT: loadspritegfx ANIM_TAG_PINK_PETAL - playsewithpan SE_M_SWEET_SCENT, 192 + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_ATTACKER createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 100, 0, 100 delay 25 setpan 0 call SweetScentEffect createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0 - setpan 63 - createvisualtask AnimTask_BlendColorCycle, 2, 20, 1, 5, 5, 13, 22207 + setpan SOUND_PAN_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_DEF_SIDE, 1, 5, 5, 13, RGB(31, 21, 21) call SweetScentEffect waitforvisualfinish end -SweetScentEffect:: +SweetScentEffect: createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 70, 1, 64 delay 2 createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 60, 0, 64 @@ -8499,25 +8491,25 @@ SweetScentEffect:: delay 2 return -Move_HYPER_BEAM:: +Move_HYPER_BEAM: loadspritegfx ANIM_TAG_ORBS - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 0, 16, RGB_BLACK waitforvisualfinish delay 10 - playsewithpan SE_M_HYPER_BEAM, 192 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 4, 1 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 4, 1 waitforvisualfinish delay 30 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, -64, 63, 1, 15, 0, 5 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 4, 50, 1 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10147, 1, 12, 31, 16, 0, 0 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 4, 50, 1 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, RGB(31, 0, 0), 16, 0, 0 call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 50, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 11, RGB(25, 25, 25) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 50, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 11, RGB(25, 25, 25) call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs @@ -8539,31 +8531,31 @@ Move_HYPER_BEAM:: call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 11, 0, RGB(25, 25, 25) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 11, 0, RGB(25, 25, 25) waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 16, 0, RGB_BLACK end -HyperBeamOrbs:: - createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, - createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, +HyperBeamOrbs: + createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2 + createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2 delay 1 return -Move_FLATTER:: +Move_FLATTER: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, 63 - createvisualtask AnimTask_CreateSpotlight, 2, - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET + createvisualtask AnimTask_CreateSpotlight, 2 + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gFlatterSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8, 80 delay 0 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, 1 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, ANIM_TARGET delay 10 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, 1 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, ANIM_TARGET delay 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, -64 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_ATTACKER call CreateFlatterConfetti call CreateFlatterConfetti call CreateFlatterConfetti @@ -8584,69 +8576,69 @@ Move_FLATTER:: call CreateFlatterConfetti call CreateFlatterConfetti delay 5 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask AnimTask_RemoveSpotlight, 2, + createvisualtask AnimTask_RemoveSpotlight, 2 end -CreateFlatterConfetti:: - createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, 0 - createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, 1 +CreateFlatterConfetti: + createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, ANIM_ATTACKER + createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, ANIM_TARGET return -Move_ROLE_PLAY:: +Move_ROLE_PLAY: monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 16, RGB_WHITE - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 10, 0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_M_TRI_ATTACK, 192 - waitplaysewithpan SE_M_DETECT, 192, 30 - createvisualtask AnimTask_RolePlaySilhouette, 2, + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_DETECT, SOUND_PAN_ATTACKER, 30 + createvisualtask AnimTask_RolePlaySilhouette, 2 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 16, 0, RGB_WHITE delay 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 10, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 10, 0, RGB_BLACK end -Move_REFRESH:: +Move_REFRESH: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_M_STAT_INCREASE, 192 + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 0 waitforvisualfinish - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_SHINY, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, 31500 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 end -Move_BLAZE_KICK:: +Move_BLAZE_KICK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_SMALL_EMBER - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 30 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, RGB_WHITE delay 30 - playsewithpan SE_M_FIRE_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 14, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 14, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 0, RGB_WHITE + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 call FireSpreadEffect waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_HYPER_VOICE:: +Move_HYPER_VOICE: loadspritegfx ANIM_TAG_THIN_RING call HyperVoiceEffect waitforvisualfinish @@ -8655,56 +8647,56 @@ Move_HYPER_VOICE:: waitforvisualfinish end -HyperVoiceEffect:: +HyperVoiceEffect: createvisualtask SoundTask_PlayCryWithEcho, 5 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 8, 0, 1023 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 8, 0, RGB_YELLOW + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, ANIM_ATTACKER, 0 createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5 return -Move_SAND_TOMB:: +Move_SAND_TOMB: loadspritegfx ANIM_TAG_MUD_SAND - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 563 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 43, 1 - playsewithpan SE_M_SAND_TOMB, 63 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(19, 17, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 43, 1 + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt call SandTombSwirlingDirt delay 22 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 563 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(19, 17, 0) waitforvisualfinish end -SandTombSwirlingDirt:: - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 528, 30, 10, 50, 1 +SandTombSwirlingDirt: + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 528, 30, 10, 50, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 36, 480, 20, 13, -46, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 36, 480, 20, 13, -46, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 576, 20, 5, 42, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 576, 20, 5, 42, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 35, 400, 25, 8, -42, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 35, 400, 25, 8, -42, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 512, 25, 13, 46, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 512, 25, 13, 46, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 464, 30, 12, -50, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 464, 30, 12, -50, ANIM_TARGET delay 2 return -Move_SHEER_COLD:: - fadetobg 15 +Move_SHEER_COLD: + fadetobg BG_ICE waitbgfadeout playsewithpan SE_M_ICY_WIND, 0 waitbgfadein loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_FrozenIceCube, 2 - waitplaysewithpan SE_M_HAIL, 63, 17 + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -8712,42 +8704,43 @@ Move_SHEER_COLD:: waitbgfadein end -Move_ARM_THRUST:: +Move_ARM_THRUST: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 0 delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET choosetwoturnanim ArmThrustRight, ArmThrustLeft -ArmThrustContinue:: - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + +ArmThrustContinue: + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish blendoff end -ArmThrustRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, 1, 2 +ArmThrustRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, ANIM_TARGET, 2 goto ArmThrustContinue -ArmThrustLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 0, 1, 2 +ArmThrustLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 0, ANIM_TARGET, 2 goto ArmThrustContinue -Move_MUDDY_WATER:: - panse_1B SE_M_WHIRLPOOL, 192, 63, 2, 0 - createvisualtask AnimTask_CreateSurfWave, 2, 1 +Move_MUDDY_WATER: + panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + createvisualtask AnimTask_CreateSurfWave, 2, TRUE waitforvisualfinish end -Move_BULLET_SEED:: +Move_BULLET_SEED: loadspritegfx ANIM_TAG_SEED createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 delay 5 @@ -8755,7 +8748,7 @@ Move_BULLET_SEED:: delay 5 createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 delay 5 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 30, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 30, 1 createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 delay 5 createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 @@ -8772,80 +8765,81 @@ Move_BULLET_SEED:: waitforvisualfinish end -Move_DRAGON_CLAW:: +Move_DRAGON_CLAW: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_CLAW_SLASH - playsewithpan SE_M_SACRED_FIRE2, 192 - createvisualtask AnimTask_BlendSelected, 10, 2, 4, 0, 8, RGB(31, 19, 0) - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 15, 1 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 4, 0, 8, RGB(31, 19, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 15, 1 call DragonClawFireSpiral call DragonClawFireSpiral createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER delay 2 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 - createvisualtask AnimTask_BlendSelected, 10, 2, 4, 8, 0, RGB(31, 19, 0) + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 4, 8, 0, RGB(31, 19, 0) waitforvisualfinish end -DragonClawFireSpiral:: - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 +DragonClawFireSpiral: + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER delay 2 return + end -Move_MUD_SHOT:: +Move_MUD_SHOT: loadspritegfx ANIM_TAG_BROWN_ORB monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 46, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_M_WHIRLPOOL, 192, 63, 1, 0 + panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call MudShotOrbs call MudShotOrbs call MudShotOrbs - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 43, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 43, 1 call MudShotOrbs call MudShotOrbs call MudShotOrbs @@ -8859,19 +8853,19 @@ Move_MUD_SHOT:: blendoff end -MudShotOrbs:: +MudShotOrbs: createsprite gMudShotOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 createsprite gMudShotOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 return -Move_METEOR_MASH:: +Move_METEOR_MASH: loadspritegfx ANIM_TAG_GOLD_STARS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - panse_1B SE_M_BARRIER, 192, 63, 3, 0 - fadetobg 16 + panse SE_M_BARRIER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +3, 0 + fadetobg BG_COSMIC waitbgfadein waitforvisualfinish createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -48, -64, 72, 32, 30 @@ -8881,9 +8875,9 @@ Move_METEOR_MASH:: createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 30 createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -80, -64, 40, 32, 30 delay 20 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 5, 0, 20, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 5, 0, 20, 1 waitforvisualfinish delay 10 restorebg @@ -8891,118 +8885,118 @@ Move_METEOR_MASH:: waitforvisualfinish end -Move_REVENGE:: +Move_REVENGE: loadspritegfx ANIM_TAG_PURPLE_SCRATCH - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10 waitforvisualfinish - createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 4, 2, 8, 31 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 4, 2, 8, RGB_RED waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SCRATCH loadspritegfx ANIM_TAG_PURPLE_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gRevengeBigScratchSpriteTemplate, ANIM_TARGET, 2, 10, -10 waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SWIPE loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 10, 1 - createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, 1, 1, 8 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 10, 1 + createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1, 8 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, 1, 1, 8 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, ANIM_TARGET, 1, 8 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_POISON_FANG:: +Move_POISON_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_M_BITE, 63 - createsprite gFangSpriteTemplate, ANIM_TARGET, 2, + playsewithpan SE_M_BITE, SOUND_PAN_TARGET + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 delay 10 - createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 3, 0, 10, 1 waitforvisualfinish - createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 4, 0, 12, 26650 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 0, 4, 0, 12, RGB(26, 0, 26) call PoisonBubblesEffect waitforvisualfinish end -Move_SUBSTITUTE:: - playsewithpan SE_M_ATTRACT, 192 - createvisualtask AnimTask_MonToSubstitute, 2, +Move_SUBSTITUTE: + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER + createvisualtask AnimTask_MonToSubstitute, 2 end -Move_FRENZY_PLANT:: +Move_FRENZY_PLANT: loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 0, 5, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 2, 0, 5, RGB_BLACK waitforvisualfinish createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, 2, 0, 0, 100 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -2, 0, 1, 95 - playsewithpan SE_M_SCRATCH, 213 + playsewithpan SE_M_SCRATCH, -43 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 30, 8, -4, 0, 0, 90 - playsewithpan SE_M_SCRATCH, 234 + playsewithpan SE_M_SCRATCH, -22 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 40, -8, 4, 0, 1, 85 playsewithpan SE_M_SCRATCH, 0 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 50, 8, 0, 0, 0, 85 - playsewithpan SE_M_SCRATCH, 21 + playsewithpan SE_M_SCRATCH, +21 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 60, -8, -2, 0, 1, 85 - playsewithpan SE_M_SCRATCH, 42 + playsewithpan SE_M_SCRATCH, +42 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 75, 8, 0, 0, 0, 85 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, 16, 6, 0, 3, 80 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, -16, -6, 0, 2, 75 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -10, 1, 3 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createvisualtask AnimTask_ShakeMon, 3, 1, 8, 0, 20, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -10, ANIM_TARGET, 3 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 8, 0, 20, 1 delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, 1, 3 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, ANIM_TARGET, 3 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -3, 1, 2 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -3, ANIM_TARGET, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -3, 1, 1, 2 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -3, 1, ANIM_TARGET, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, 1, 1, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, 1, ANIM_TARGET, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 10, 1, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 10, ANIM_TARGET, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 5, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 2, 5, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_METAL_SOUND:: +Move_METAL_SOUND: loadspritegfx ANIM_TAG_METAL_SOUND_WAVES monbg ANIM_DEF_PARTNER - monbgprio_2A 1 - createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 8, 1 + splitbgprio_foes ANIM_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 8, 1 call MetalSoundRings call MetalSoundRings call MetalSoundRings @@ -9013,45 +9007,46 @@ Move_METAL_SOUND:: waitforvisualfinish end -MetalSoundRings:: - panse_1B SE_M_SCREECH, 192, 63, 2, 0 +MetalSoundRings: + panse SE_M_SCREECH, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gMetalSoundSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return -Move_FOCUS_PUNCH:: +Move_FOCUS_PUNCH: goto FocusPunch -FocusPunchEnd:: + +FocusPunchEnd: waitforvisualfinish end -FocusPunch:: +FocusPunch: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET delay 1 - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, FocusPunchInContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, FocusPunchOnOpponent - jumpargeq 7, 1, FocusPunchOnPlayer -FocusPunchContinue:: + createvisualtask AnimTask_IsContest, 2 + jumprettrue FocusPunchInContest + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse FocusPunchOnOpponent + jumprettrue FocusPunchOnPlayer +FocusPunchContinue: waitbgfadein monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gFocusPunchFistSpriteTemplate, ANIM_TARGET, 2 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 8, 0, 24, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 2, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 2, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -6, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -6, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, 1, 0 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, ANIM_TARGET, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -9059,191 +9054,191 @@ FocusPunchContinue:: blendoff goto FocusPunchEnd -FocusPunchOnOpponent:: - fadetobg 4 +FocusPunchOnOpponent: + fadetobg BG_IMPACT_OPPONENT goto FocusPunchContinue -FocusPunchOnPlayer:: - fadetobg 5 +FocusPunchOnPlayer: + fadetobg BG_IMPACT_PLAYER goto FocusPunchContinue -FocusPunchInContest:: - fadetobg 6 +FocusPunchInContest: + fadetobg BG_IMPACT_CONTESTS goto FocusPunchContinue -Move_RETURN:: +Move_RETURN: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_GetReturnPowerLevel, 2, + createvisualtask AnimTask_GetReturnPowerLevel, 2 delay 2 - jumpargeq 7, 0, ReturnWeak - jumpargeq 7, 1, ReturnMedium - jumpargeq 7, 2, ReturnStrong - jumpargeq 7, 3, ReturnStrongest -ReturnContinue:: + jumpreteq 0, ReturnWeak + jumpreteq 1, ReturnMedium + jumpreteq 2, ReturnStrong + jumpreteq 3, ReturnStrongest +ReturnContinue: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -ReturnWeak:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 +ReturnWeak: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_COMET_PUNCH, SOUND_PAN_TARGET goto ReturnContinue -ReturnMedium:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 +ReturnMedium: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish delay 11 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET goto ReturnContinue -ReturnStrong:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 +ReturnStrong: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 goto ReturnContinue -ReturnStrongest:: - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 6, 0 +ReturnStrongest: + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 4 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 2 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish call ReturnStrongestHit call ReturnStrongestHit call ReturnStrongestHit call ReturnStrongestHit - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 8, 0, 24, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 6, 0, RGB_BLACK goto ReturnContinue -ReturnStrongestHit:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 +ReturnStrongestHit: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish return -Move_COSMIC_POWER:: +Move_COSMIC_POWER: loadspritegfx ANIM_TAG_SPARKLE_2 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_COSMIC_POWER, 0 playsewithpan SE_M_COSMIC_POWER, 0 - createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, 0 + createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, RGB_BLACK waitforvisualfinish - fadetobg 16 + fadetobg BG_COSMIC waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 2, 0, 128, 0, -1 waitbgfadein delay 70 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MORNING_SUN, -64 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 delay 40 - createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 15, 0, 0 + createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 15, 0, RGB_BLACK waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein waitforvisualfinish end -Move_BLAST_BURN:: +Move_BLAST_BURN: loadspritegfx ANIM_TAG_FIRE_PLUME loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SACRED_FIRE, 192 + playsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, -10, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 0, -16, 24, 0, 0, 0 @@ -9253,25 +9248,25 @@ Move_BLAST_BURN:: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, 10, 24, 0, 0, 0 delay 25 - playsewithpan SE_M_FLAME_WHEEL2, 192 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -64, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -40, -20, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -32, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 40, -20, 24, 0, 0, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 64, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 40, 20, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -40, 20, 24, 0, 0, 0 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 25 - playsewithpan SE_M_FLAME_WHEEL2, 192 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -60, -30, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -48, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 60, -30, 24, 0, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 12, 0, 20, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 12, 0, 20, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 60, 30, 24, 0, 0, 0 @@ -9283,7 +9278,7 @@ Move_BLAST_BURN:: blendoff end -Move_ROCK_TOMB:: +Move_ROCK_TOMB: loadspritegfx ANIM_TAG_X_SIGN loadspritegfx ANIM_TAG_ROCKS createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 @@ -9291,47 +9286,47 @@ Move_ROCK_TOMB:: createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 24 - playsewithpan SE_M_HYPER_BEAM, 63 - createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, 1, 50 - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 20, 1 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET + createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, ANIM_TARGET, 50 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 20, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 waitforvisualfinish end -Move_SILVER_WIND:: +Move_SILVER_WIND: loadspritegfx ANIM_TAG_SPARKLE_6 - panse_1B SE_M_GUST, 192, 63, 2, 0 + panse SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 playsewithpan SE_M_MORNING_SUN, 0 delay 0 monbg ANIM_DEF_PARTNER - monbgprio_29 + splitbgprio_all delay 0 - createvisualtask AnimTask_BlendExcept, 10, 1, 0, 0, 4, 0 - createvisualtask AnimTask_GetTargetSide, 2, - jumpargeq 7, 1, SilverWindOnPlayer + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_TARGET, 0, 0, 4, RGB_BLACK + createvisualtask AnimTask_GetTargetSide, 2 + jumprettrue SilverWindOnPlayer fadetobg BG_BUG_OPPONENT waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 1536, 0, 0, -1 -SilverWindContinue:: +SilverWindContinue: delay 0 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 4, 4, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 4, 4, RGB_BLACK waitbgfadein createsprite gSilverWindBigSparkSpriteTemplate, ANIM_TARGET, 66, -32, 16, 0, 6, 2, 3, 1 createsprite gSilverWindBigSparkSpriteTemplate, ANIM_TARGET, 66, -8, 18, 64, 3, 2, 2, 1 @@ -9357,38 +9352,38 @@ SilverWindContinue:: createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -4, 16, 0, 6, 1, 2, 1 createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -16, 12, 192, 5, 2, 3, 1 waitforvisualfinish - playsewithpan SE_M_GUST2, 63 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER delay 0 restorebg waitbgfadeout - createvisualtask AnimTask_BlendExcept, 10, 1, 0, 4, 0, 0 - setarg 7, 65535 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_TARGET, 0, 4, 0, RGB_BLACK + setarg 7, 0xFFFF waitbgfadein end -SilverWindOnPlayer:: +SilverWindOnPlayer: fadetobg BG_BUG_PLAYER waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -1536, 0, 0, -1 goto SilverWindContinue -Move_SNATCH:: - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_WindUpLunge, 5, 0, -12, 4, 10, 10, 12, 6 +Move_SNATCH: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -12, 4, 10, 10, 12, 6 end -Move_DIVE:: +Move_DIVE: loadspritegfx ANIM_TAG_SPLASH loadspritegfx ANIM_TAG_SWEAT_BEAD choosetwoturnanim DiveSetUp, DiveAttack -DiveSetUp:: +DiveSetUp: loadspritegfx ANIM_TAG_ROUND_SHADOW - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createsprite gDiveBallSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish - playsewithpan SE_M_DIVE, 192 + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER createsprite gDiveWaterSplashSpriteTemplate, ANIM_ATTACKER, 3, 0 call DiveSetUpWaterDroplets call DiveSetUpWaterDroplets @@ -9397,17 +9392,17 @@ DiveSetUp:: call DiveSetUpWaterDroplets end -DiveSetUpWaterDroplets:: +DiveSetUpWaterDroplets: createsprite gSprayWaterDropletSpriteTemplate, ANIM_ATTACKER, 5, 0, 0 createsprite gSprayWaterDropletSpriteTemplate, ANIM_ATTACKER, 5, 1, 0 return -DiveAttack:: +DiveAttack: loadspritegfx ANIM_TAG_WATER_IMPACT loadspritegfx ANIM_TAG_SMALL_BUBBLES monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_EXPLOSION, 63 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 3, 1 call DiveAttackWaterDroplets call DiveAttackWaterDroplets @@ -9417,40 +9412,40 @@ DiveAttack:: delay 12 call RisingWaterHitEffect waitforvisualfinish - visible 0 + visible ANIM_ATTACKER clearmonbg ANIM_DEF_PARTNER blendoff end -DiveAttackWaterDroplets:: +DiveAttackWaterDroplets: createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 return -Move_ROCK_BLAST:: +Move_ROCK_BLAST: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gRockBlastRockSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 257 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_ROCK_THROW, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 5, 20, -24, 14, 2 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, -5, 0, -20, -24, 14, 2 waitforvisualfinish end -Move_OVERHEAT:: +Move_OVERHEAT: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 18 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 5, 28 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 5, RGB(28, 0, 0) waitforvisualfinish createvisualtask AnimTask_AllocBackupPalBuffer, 5 waitforvisualfinish @@ -9458,13 +9453,13 @@ Move_OVERHEAT:: delay 1 createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 0 delay 1 - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_CopyPalUnfadedToBackup, 5, 1, 0 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 1, 0, 13, 28 - createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 1, 0, 13, RGB(28, 0, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 2, 0, 15, 1 waitforvisualfinish - playsewithpan SE_M_FLAME_WHEEL2, 192 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, -20 @@ -9493,26 +9488,26 @@ Move_OVERHEAT:: createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 224, 30, 25, 10 delay 5 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 10, 0, 25, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 10, 0, 25, 1 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 1 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, -1, 0, 13, 19026 - createvisualtask AnimTask_ShakeMon, 5, 0, 3, 0, 15, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, -1, 0, 13, RGB(18, 18, 18) + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 3, 0, 15, 1 waitforvisualfinish createvisualtask AnimTask_CopyPalUnfadedFromBackup, 5, 0, 1 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 5, 0, 28 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 5, 0, RGB(28, 0, 0) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9520,36 +9515,36 @@ Move_OVERHEAT:: delay 15 createvisualtask AnimTask_CopyPalUnfadedFromBackup, 5, 1, 0 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 13, 0, 19026 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 13, 0, RGB(18, 18, 18) waitforvisualfinish createvisualtask AnimTask_FreeBackupPalBuffer, 5 waitforvisualfinish end -Move_HYDRO_CANNON:: +Move_HYDRO_CANNON: loadspritegfx ANIM_TAG_WATER_ORB loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SURF, 192 - createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2, + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER + createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 30 - panse_1B SE_M_HYDRO_PUMP, 192, 63, 2, 0 + panse SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call HydroCannonBeam - createvisualtask AnimTask_ShakeMon, 5, 1, 10, 0, 40, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 10, 0, 40, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 waitforvisualfinish createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish @@ -9557,7 +9552,7 @@ Move_HYDRO_CANNON:: blendoff end -HydroCannonBeam:: +HydroCannonBeam: createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 delay 1 createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 @@ -9569,54 +9564,54 @@ HydroCannonBeam:: createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 return -Move_ASTONISH:: +Move_ASTONISH: loadspritegfx ANIM_TAG_SWEAT_BEAD - playsewithpan SE_M_ENCORE, 192 + playsewithpan SE_M_ENCORE, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 25 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 - playsewithpan SE_M_SKETCH, 63 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish end -Move_SEISMIC_TOSS:: +Move_SEISMIC_TOSS: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ROCKS setarg 7, 0 monbg ANIM_DEF_PARTNER setalpha 12, 8 waitforvisualfinish - createvisualtask AnimTask_GetSeismicTossDamageLevel, 3, + createvisualtask AnimTask_GetSeismicTossDamageLevel, 3 delay 1 - fadetobg 17 + fadetobg BG_IN_AIR waitbgfadeout createvisualtask AnimTask_MoveSeismicTossBg, 3 playsewithpan SE_M_SKY_UPPERCUT, 0 waitbgfadein waitforvisualfinish createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 - jumpargeq 7, 0, SeismicTossWeak - jumpargeq 7, 1, SeismicTossMedium - jumpargeq 7, 2, SeismicTossStrong -SeismicTossContinue:: + jumpreteq 0, SeismicTossWeak + jumpreteq 1, SeismicTossMedium + jumpreteq 2, SeismicTossStrong +SeismicTossContinue: restorebg waitbgfadeout - setarg 7, 4095 + setarg 7, 0xFFF waitbgfadein clearmonbg ANIM_DEF_PARTNER blendoff end -SeismicTossWeak:: +SeismicTossWeak: call SeismicTossRockScatter1 delay 16 call SeismicTossRockScatter2 goto SeismicTossContinue -SeismicTossMedium:: +SeismicTossMedium: call SeismicTossRockScatter1 delay 14 call SeismicTossRockScatter2 @@ -9624,7 +9619,7 @@ SeismicTossMedium:: call SeismicTossRockScatter1 goto SeismicTossContinue -SeismicTossStrong:: +SeismicTossStrong: call SeismicTossRockScatter2 delay 10 call SeismicTossRockScatter1 @@ -9634,197 +9629,199 @@ SeismicTossStrong:: call SeismicTossRockScatter1 goto SeismicTossContinue -SeismicTossRockScatter1:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, 1, 1 - playsewithpan SE_M_STRENGTH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 5, 1 +SeismicTossRockScatter1: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 25, 4, 4 return -SeismicTossRockScatter2:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, 1, 1 - playsewithpan SE_M_ROCK_THROW, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 5, 1 +SeismicTossRockScatter2: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, ANIM_TARGET, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 32, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 31, 2, 2 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 28, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 30, 4, 3 return -Move_MAGIC_COAT:: +Move_MAGIC_COAT: loadspritegfx ANIM_TAG_ORANGE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_BARRIER, 192, 15 - createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, 10170 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 + createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_ORANGE_LIGHT_WALL waitforvisualfinish delay 1 blendoff end -Move_WATER_PULSE:: +Move_WATER_PULSE: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_BLUE_RING_2 - monbg 1 - monbgprio_28 1 - playsewithpan SE_M_BUBBLE3, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 7, 29472 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 7, RGB(0, 25, 28) delay 10 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 100, 100, 8, 1, 20, 40, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 20, 100, 16, 2, 10, 35, 1 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 200, 80, 8, 1, 40, 20, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 80, 60, 10, 3, 20, 50, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 140, 100, 16, 1, 20, 30, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_GIGA_DRAIN, 192 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_M_GIGA_DRAIN, 192 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_M_GIGA_DRAIN, 192 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 13 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 8, 18, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 8, 18, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, 29472 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 7, 0, RGB(0, 25, 28) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_PSYCHO_BOOST:: +Move_PSYCHO_BOOST: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT monbg ANIM_ATK_PARTNER - fadetobg 3 + fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask AnimTask_FadeScreenToWhite, 5, + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein delay 6 - createvisualtask AnimTask_BlendColorCycle, 2, 1, 2, 8, 0, 10, 0 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG, 2, 8, 0, 10, RGB_BLACK delay 0 - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 8, 8 delay 10 - createvisualtask AnimTask_ShakeMon, 2, 0, 3, 0, 240, 0 - loopsewithpan SE_M_PSYBEAM2, 192, 14, 10 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 240, 0 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 14, 10 createsprite gPsychoBoostOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 110 - loopsewithpan SE_M_PSYBEAM2, 192, 7, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 7, 10 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, -8, 1, 24, 1 - playsewithpan SE_M_LEER, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, -8, 1, 24, 1 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_KNOCK_OFF:: +Move_KNOCK_OFF: loadspritegfx ANIM_TAG_SLAM_HIT_2 loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gKnockOffStrikeSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 2 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 delay 10 waitforvisualfinish end -Move_DOOM_DESIRE:: +Move_DOOM_DESIRE: createvisualtask GetIsDoomDesireHitTurn, 2 delay 1 monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 1, 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, FALSE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 4, RGB_BLACK waitforvisualfinish setalpha 8, 8 - playsewithpan SE_M_PSYBEAM, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish delay 20 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 1, 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, TRUE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 4, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end + +UnusedDoomDesireHit: loadspritegfx ANIM_TAG_EXPLOSION createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 createvisualtask AnimTask_DoomDesireLightBeam, 5, delay 5 - playsewithpan SE_M_CONFUSE_RAY, 192 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 10 playsewithpan SE_M_CONFUSE_RAY, 0 delay 10 - playsewithpan SE_M_CONFUSE_RAY, 63 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET delay 23 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 20, 1 - playsewithpan SE_M_SELF_DESTRUCT, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 20, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE waitforvisualfinish end -Move_SKY_UPPERCUT:: +Move_SKY_UPPERCUT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 - fadetobg 17 + splitbgprio ANIM_TARGET + fadetobg BG_IN_AIR waitbgfadeout - playsewithpan SE_M_SKY_UPPERCUT, 192 + playsewithpan SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createvisualtask AnimTask_MoveSkyUppercutBg, 5, 55 waitbgfadein setalpha 12, 8 delay 38 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 0, 0, 5 delay 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -28, 28, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -28, 28, ANIM_TARGET, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, ANIM_TARGET, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, ANIM_TARGET, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -26, 16, 1, 4 delay 4 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 delay 30 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 6 delay 4 @@ -9833,77 +9830,77 @@ Move_SKY_UPPERCUT:: blendoff restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -Move_SECRET_POWER:: - createvisualtask AnimTask_GetBattleTerrain, 5, - jumpargeq 0, 0, Move_NEEDLE_ARM - jumpargeq 0, 1, Move_MAGICAL_LEAF - jumpargeq 0, 2, Move_MUD_SHOT - jumpargeq 0, 3, Move_WATERFALL - jumpargeq 0, 4, Move_SURF - jumpargeq 0, 5, Move_BUBBLE_BEAM - jumpargeq 0, 6, Move_ROCK_THROW - jumpargeq 0, 7, Move_BITE - jumpargeq 0, 8, Move_STRENGTH +Move_SECRET_POWER: + createvisualtask AnimTask_GetBattleTerrain, 5 + jumpargeq 0, BATTLE_TERRAIN_GRASS, Move_NEEDLE_ARM + jumpargeq 0, BATTLE_TERRAIN_LONG_GRASS, Move_MAGICAL_LEAF + jumpargeq 0, BATTLE_TERRAIN_SAND, Move_MUD_SHOT + jumpargeq 0, BATTLE_TERRAIN_UNDERWATER, Move_WATERFALL + jumpargeq 0, BATTLE_TERRAIN_WATER, Move_SURF + jumpargeq 0, BATTLE_TERRAIN_POND, Move_BUBBLE_BEAM + jumpargeq 0, BATTLE_TERRAIN_MOUNTAIN, Move_ROCK_THROW + jumpargeq 0, BATTLE_TERRAIN_CAVE, Move_BITE + jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_STRENGTH goto Move_SLAM -Move_TWISTER:: +Move_TWISTER: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER - monbgprio_28 1 - playsewithpan SE_M_TWISTER, 63 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 + splitbgprio ANIM_TARGET + playsewithpan SE_M_TWISTER, SOUND_PAN_TARGET + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 60, 7, 60, 30 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 10, 60, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 60, 7, 60, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 55, 10, 60, 30 delay 3 createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 100, 50, 4, 50, 26 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 40, 10, 48, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 40, 10, 48, 30 delay 3 createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 120, 30, 6, 45, 25 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 35, 10, 60, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 35, 10, 60, 30 delay 3 createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 105, 20, 8, 40, 0 delay 3 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 3, 3, 0, 12, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, ANIM_TARGET, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_DEF_PARTNER, 3, 0, 12, 1 delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, ANIM_TARGET, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_MAGICAL_LEAF:: +Move_MAGICAL_LEAF: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_M_POISON_POWDER, 192, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createvisualtask AnimTask_CycleMagicalLeafPal, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 @@ -9925,56 +9922,56 @@ Move_MAGICAL_LEAF:: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, 20, 0 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, -20, 0 delay 30 - playsewithpan SE_M_RAZOR_WIND, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, -4, 1, 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 10, 4, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, -4, ANIM_TARGET, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 10, 4, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 delay 20 - setarg 7, 65535 + setarg 7, 0xFFFF waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_ICE_BALL:: +Move_ICE_BALL: loadspritegfx ANIM_TAG_ICE_CHUNK loadspritegfx ANIM_TAG_ICE_CRYSTALS createvisualtask AnimTask_GetRolloutCounter, 5, 0 jumpargeq 0, 4, IceBallSetIceBg -IceBallContinue:: - playsewithpan SE_M_ICY_WIND, 192 +IceBallContinue: + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIceBallChunkSpriteTemplate, ANIM_TARGET, 2, 15, 0, -12, -16, 30, -40 delay 28 - playsewithpan SE_M_BRICK_BREAK, 63 + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET createvisualtask AnimTask_GetRolloutCounter, 5, 0 jumpargeq 0, 0, IceBallWeakest jumpargeq 0, 1, IceBallWeak jumpargeq 0, 2, IceBallMediun jumpargeq 0, 3, IceBallStrong jumpargeq 0, 4, IceBallStrongest -IceBallContinue2:: +IceBallContinue2: createvisualtask AnimTask_GetRolloutCounter, 5, 0 jumpargeq 0, 4, IceBallUnsetIceBg -IceBallEnd:: +IceBallEnd: end -IceBallSetIceBg:: - fadetobg 15 +IceBallSetIceBg: + fadetobg BG_ICE goto IceBallContinue -IceBallUnsetIceBg:: +IceBallUnsetIceBg: waitbgfadein delay 45 restorebg waitbgfadein goto IceBallEnd -IceBallWeakest:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 8, 1, 0 +IceBallWeakest: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -9982,8 +9979,8 @@ IceBallWeakest:: call IceBallImpactShard goto IceBallContinue2 -IceBallWeak:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 10, 1, 0 +IceBallWeak: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -9993,8 +9990,8 @@ IceBallWeak:: call IceBallImpactShard goto IceBallContinue2 -IceBallMediun:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 14, 1, 0 +IceBallMediun: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 14, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -10006,8 +10003,8 @@ IceBallMediun:: call IceBallImpactShard goto IceBallContinue2 -IceBallStrong:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 18, 1, 0 +IceBallStrong: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 18, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -10020,8 +10017,8 @@ IceBallStrong:: call IceBallImpactShard goto IceBallContinue2 -IceBallStrongest:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 +IceBallStrongest: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -10034,181 +10031,180 @@ IceBallStrongest:: call IceBallImpactShard goto IceBallContinue2 -IceBallImpactShard:: +IceBallImpactShard: createsprite gIceBallImpactShardSpriteTemplate, ANIM_TARGET, 4, -12, -16 return -Move_WEATHER_BALL:: +Move_WEATHER_BALL: loadspritegfx ANIM_TAG_WEATHER_BALL - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 0 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER delay 8 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gWeatherBallUpSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish delay 15 playsewithpan SE_M_DETECT, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 waitforvisualfinish - createvisualtask AnimTask_GetWeather, 2, + createvisualtask AnimTask_GetWeather, 2 delay 1 - jumpargeq 7, 0, WeatherBallNormal - jumpargeq 7, 1, WeatherBallFire - jumpargeq 7, 2, WeatherBallWater - jumpargeq 7, 3, WeatherBallSandstorm - jumpargeq 7, 4, WeatherBallIce - -WeatherBallNormal:: + jumpreteq ANIM_WEATHER_NONE, WeatherBallNormal + jumpreteq ANIM_WEATHER_SUN, WeatherBallFire + jumpreteq ANIM_WEATHER_RAIN, WeatherBallWater + jumpreteq ANIM_WEATHER_SANDSTORM, WeatherBallSandstorm + jumpreteq ANIM_WEATHER_HAIL, WeatherBallIce +WeatherBallNormal: loadspritegfx ANIM_TAG_IMPACT createsprite gWeatherBallNormalDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish end -WeatherBallFire:: +WeatherBallFire: loadspritegfx ANIM_TAG_SMALL_EMBER createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 40, 10 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_FLAME_WHEEL2, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish end -WeatherBallWater:: +WeatherBallWater: loadspritegfx ANIM_TAG_SMALL_BUBBLES createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 50, 10 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 8 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -20, 20 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 13 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 - playsewithpan SE_M_GIGA_DRAIN, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET waitforvisualfinish end -WeatherBallSandstorm:: +WeatherBallSandstorm: loadspritegfx ANIM_TAG_ROCKS createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 30, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 5 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 14 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 25, 4, 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 waitforvisualfinish end -WeatherBallIce:: +WeatherBallIce: loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, -40, 20 - playsewithpan SE_M_HAIL, 63 + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 40, 0 - playsewithpan SE_M_HAIL, 63 + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 0, 0 - playsewithpan SE_M_HAIL, 63 + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_ICY_WIND, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET call IceCrystalEffectShort waitforvisualfinish end -Move_COUNT:: +Move_COUNT: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -IceCrystalEffectShort:: +IceCrystalEffectShort: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return -IceCrystalEffectLong:: +IceCrystalEffectLong: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -29, 0, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 29, -20, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -20, 0, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 26, -5, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return - + IceSpikesEffectShort: @ Unused - loopsewithpan SE_M_ICY_WIND, 63, 6, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 0 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 0 @@ -10224,8 +10220,8 @@ IceSpikesEffectShort: @ Unused createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -32, 24, 0 return -IceSpikesEffectLong:: - loopsewithpan SE_M_ICY_WIND, 63, 6, 4 +IceSpikesEffectLong: + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 1 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 1 @@ -10247,15 +10243,15 @@ IceSpikesEffectLong:: createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -48, 24, 1 return -GrantingStarsEffect:: +GrantingStarsEffect: createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 delay 8 return -HealingEffect:: - playsewithpan SE_M_ABSORB_2, 192 +HealingEffect: + playsewithpan SE_M_ABSORB_2, SOUND_PAN_ATTACKER createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 0, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, -15, 10, 0, 0 @@ -10266,8 +10262,8 @@ HealingEffect:: delay 7 return -HealingEffect2:: - playsewithpan SE_M_ABSORB_2, 63 +HealingEffect2: + playsewithpan SE_M_ABSORB_2, SOUND_PAN_TARGET createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, 10, 1, 0 @@ -10278,74 +10274,74 @@ HealingEffect2:: delay 7 return -PoisonBubblesEffect:: +PoisonBubblesEffect: createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 10, 10, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, -20, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, 15, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, -20, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET return -WaterBubblesEffectShort:: +WaterBubblesEffectShort: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return -WaterBubblesEffectLong:: +WaterBubblesEffectLong: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -28, -10, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 27, 8, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return -ElectricityEffect:: - playsewithpan SE_M_THUNDERBOLT2, 63 +ElectricityEffect: + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0 delay 2 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1 @@ -10363,8 +10359,8 @@ ElectricityEffect:: createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1 return -ConfusionEffect:: - loopsewithpan SE_M_DIZZY_PUNCH, 63, 13, 6 +ConfusionEffect: + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 13, 6 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 0, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 51, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 102, 3, 90 @@ -10372,333 +10368,334 @@ ConfusionEffect:: createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 204, 3, 90 return -SetPsychicBackground:: - fadetobg 3 +SetPsychicBackground: + fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask AnimTask_SetPsychicBackground, 5, + createvisualtask AnimTask_SetPsychicBackground, 5 waitbgfadein return -UnsetPsychicBg:: +UnsetPsychicBackground: restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein return -SetSkyBg:: +SetSkyBg: jumpifcontest SetSkyBgContest - fadetobg 18 + fadetobg BG_SKY waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 -SetSkyBgContinue:: +SetSkyBgContinue: waitbgfadein return -SetSkyBgContest:: - fadetobg 19 +SetSkyBgContest: + fadetobg BG_SKY_CONTESTS waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 goto SetSkyBgContinue -UnsetSkyBg:: +UnsetSkyBg: restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein return -SetSolarBeamBg:: - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, SetSolarBeamBgContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, SetSolarBeamBgOpponent +SetSolarBeamBg: + createvisualtask AnimTask_IsContest, 2 + jumprettrue SetSolarBeamBgContest + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse SetSolarBeamBgOpponent goto SetSolarBeamBgPlayer -SetSolarBeamBgContinue:: + +SetSolarBeamBgContinue: waitbgfadein return -SetSolarBeamBgContest:: +SetSolarBeamBgContest: fadetobg BG_SOLAR_BEAM_CONTESTS goto SetSolarBeamBgContinue -SetSolarBeamBgPlayer:: +SetSolarBeamBgPlayer: fadetobg BG_SOLAR_BEAM_PLAYER goto SetSolarBeamBgContinue -SetSolarBeamBgOpponent:: +SetSolarBeamBgOpponent: fadetobg BG_SOLAR_BEAM_OPPONENT goto SetSolarBeamBgContinue -UnsetSolarBeamBg:: +UnsetSolarBeamBg: restorebg waitbgfadein return -Status_Poison:: - loopsewithpan SE_M_TOXIC, 63, 13, 6 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 18, 2 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 12, 31774 +Status_Poison: + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 18, 2 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 12, RGB(30, 0, 31) end -Status_Confusion:: +Status_Confusion: loadspritegfx ANIM_TAG_DUCK call ConfusionEffect end -Status_Burn:: +Status_Burn: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call BurnFlame call BurnFlame call BurnFlame waitforvisualfinish end -BurnFlame:: +BurnFlame: createsprite gBurnFlameSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 delay 4 return -Status_Infatuation:: +Status_Infatuation: loadspritegfx ANIM_TAG_MAGENTA_HEART - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 delay 15 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 delay 15 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 end -Status_Sleep:: +Status_Sleep: loadspritegfx ANIM_TAG_LETTER_Z - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 30 createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 end -Status_Paralysis:: +Status_Paralysis: loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 call ElectricityEffect end -Status_Freeze:: +Status_Freeze: playsewithpan SE_M_ICY_WIND, 0 loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER - monbgprio_28 1 - waitplaysewithpan SE_M_HAIL, 63, 17 - createvisualtask AnimTask_FrozenIceCube, 2, + splitbgprio ANIM_TARGET + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 + createvisualtask AnimTask_FrozenIceCube, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Status_Curse:: +Status_Curse: loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_DEF_PARTNER - playsewithpan SE_M_NIGHTMARE, 63 - createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2, - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET + createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Status_Nightmare:: +Status_Nightmare: loadspritegfx ANIM_TAG_DEVIL monbg ANIM_DEF_PARTNER - playsewithpan SE_M_NIGHTMARE, 63 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gNightmareDevilSpriteTemplate, ANIM_TARGET, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -General_CastformChange:: - createvisualtask AnimTask_IsMonInvisible, 2, - jumpargeq 7, 1, CastformChangeSkipAnim +General_CastformChange: + createvisualtask AnimTask_IsMonInvisible, 2 + jumpreteq TRUE, CastformChangeSkipAnim goto CastformChangeContinue -CastformChangeContinue:: +CastformChangeContinue: monbg ANIM_ATTACKER - playsewithpan SE_M_TELEPORT, 192 - waitplaysewithpan SE_M_MINIMIZE, 192, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER end -CastformChangeSkipAnim:: +CastformChangeSkipAnim: createvisualtask AnimTask_CastformGfxChange, 2, 1 end -General_StatsChange:: - createvisualtask AnimTask_StatsChange, 5, +General_StatsChange: + createvisualtask AnimTask_StatsChange, 5 waitforvisualfinish end -General_SubstituteFade:: +General_SubstituteFade: monbg ANIM_ATTACKER createvisualtask AnimTask_SubstituteFadeToInvisible, 5 - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 16, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 16, RGB_WHITE waitforvisualfinish delay 1 clearmonbg ANIM_ATTACKER delay 2 blendoff - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 0, RGB_WHITE - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 0, RGB_WHITE + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE end -General_SubstituteAppear:: - createvisualtask AnimTask_MonToSubstitute, 2, +General_SubstituteAppear: + createvisualtask AnimTask_MonToSubstitute, 2 end -General_BaitThrow:: +General_BaitThrow: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0 - createvisualtask AnimTask_LoadBaitGfx, 2, + createvisualtask AnimTask_LoadBaitGfx, 2 delay 0 - waitplaysewithpan SE_M_JUMP_KICK, 192, 22 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 createsprite gSafariBaitSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32 delay 50 - loopsewithpan SE_M_TAIL_WHIP, 63, 19, 2 - createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, 1 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 19, 2 + createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_FreeBaitGfx, 2, + createvisualtask AnimTask_FreeBaitGfx, 2 end -General_ItemKnockoff:: +General_ItemKnockoff: loadspritegfx ANIM_TAG_ITEM_BAG - createsprite gKnockOffItemSpriteTemplate, ANIM_TARGET, 2, + createsprite gKnockOffItemSpriteTemplate, ANIM_TARGET, 2 end -General_TurnTrap:: - createvisualtask AnimTask_GetTrappedMoveAnimId, 5, - jumpargeq 0, 1, Status_FireSpin - jumpargeq 0, 2, Status_Whirlpool - jumpargeq 0, 3, Status_Clamp - jumpargeq 0, 4, Status_SandTomb +General_TurnTrap: + createvisualtask AnimTask_GetTrappedMoveAnimId, 5 + jumpargeq 0, TRAP_ANIM_FIRE_SPIN, Status_FireSpin + jumpargeq 0, TRAP_ANIM_WHIRLPOOL, Status_Whirlpool + jumpargeq 0, TRAP_ANIM_CLAMP, Status_Clamp + jumpargeq 0, TRAP_ANIM_SAND_TOMB, Status_SandTomb goto Status_BindWrap -Status_BindWrap:: +Status_BindWrap: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_M_SCRATCH, 63, 6, 2 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 2 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 1 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 1, 1 delay 3 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 delay 20 - setarg 7, 65535 - playsewithpan SE_M_BIND, 63 + setarg 7, 0xFFFF + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish end -Status_FireSpin:: +Status_FireSpin: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_M_SACRED_FIRE2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call FireSpinEffect call FireSpinEffect waitforvisualfinish stopsound end -Status_Whirlpool:: +Status_Whirlpool: loadspritegfx ANIM_TAG_WATER_ORB monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 23968 - playsewithpan SE_M_WHIRLPOOL, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(0, 13, 23) + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call WhirlpoolEffect call WhirlpoolEffect delay 12 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 23968 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(0, 13, 23) waitforvisualfinish stopsound clearmonbg ANIM_DEF_PARTNER end -Status_Clamp:: +Status_Clamp: loadspritegfx ANIM_TAG_CLAMP loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Status_SandTomb:: +Status_SandTomb: loadspritegfx ANIM_TAG_MUD_SAND - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 563 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 - playsewithpan SE_M_SAND_TOMB, 63 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(19, 17, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt delay 22 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 563 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(19, 17, 0) waitforvisualfinish stopsound end -General_ItemEffect:: +General_HeldItemEffect: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 delay 0 - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_SHINY, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 3, 7, 0, 26609 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 3, 7, 0, RGB(17, 31, 25) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 waitforvisualfinish end -General_SmokeballEscape:: +General_SmokeballEscape: loadspritegfx ANIM_TAG_PINK_CLOUD monbg ANIM_ATTACKER setalpha 12, 4 delay 0 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_TARGET, 0, 0, 32, 28, 30 delay 4 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 127, 2, 12, 20, 30 delay 12 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 126, 2, -28, 4, 30 delay 12 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30 delay 4 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createvisualtask AnimTask_AttackerFadeToInvisible, 2, 2 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30 delay 14 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 122, 3, -14, 18, 46 delay 0 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 121, 3, 14, -14, 46 @@ -10710,168 +10707,168 @@ General_SmokeballEscape:: createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 118, 3, 0, 0, 46 waitforvisualfinish clearmonbg ANIM_ATTACKER - invisible 0 + invisible ANIM_ATTACKER delay 0 blendoff end -General_HangedOn:: - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 7, 0, 9, 31 - playsewithpan SE_M_DRAGON_RAGE, 192 +General_FocusBand: + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_ATTACKER, 7, 0, 9, RGB_RED + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_SlideMonForFocusBand, 5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 4, 9, 0, 31 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_ATTACKER, 4, 9, 0, RGB_RED waitforvisualfinish delay 6 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 0, 0, 0, 15 end -General_Rain:: +General_Rain: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_M_RAIN_DANCE, 192 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 delay 50 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 4, 0, RGB_BLACK waitforvisualfinish end -General_Sun:: +General_Sun: goto Move_SUNNY_DAY -General_Sandstorm:: +General_Sandstorm: goto Move_SANDSTORM -General_Hail:: +General_Hail: goto Move_HAIL -General_LeechSeedDrain:: - createvisualtask AnimTask_GetBattlersFromArg, 5, +General_LeechSeedDrain: + createvisualtask AnimTask_GetBattlersFromArg, 5 delay 0 goto Move_ABSORB -General_MonHit:: +General_MonHit: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -General_ItemSteal:: +General_ItemSteal: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectAtk, 2 - createvisualtask AnimTask_TargetToEffectBattler, 2, + createvisualtask AnimTask_SetTargetToEffectBattler, 2 @ Redundant with above delay 1 createsprite gItemStealSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 10, 2, -1 end -General_SnatchMove:: +General_SnatchMove: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectTgt, 2 call SnatchMoveTrySwapFromSubstitute delay 1 - createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, 1 + createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_IsTargetSameSide, 2, - jumpargeq 7, 0, SnatchOpposingMonMove + createvisualtask AnimTask_IsTargetSameSide, 2 + jumpretfalse SnatchOpposingMonMove goto SnatchPartnerMonMove -SnatchMoveContinue:: +SnatchMoveContinue: waitforvisualfinish call SnatchMoveTrySwapToSubstitute end -SnatchOpposingMonMove:: - playsewithpan SE_M_DOUBLE_TEAM, 192 - createvisualtask AnimTask_SnatchOpposingMonMove, 2, +SnatchOpposingMonMove: + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SnatchOpposingMonMove, 2 goto SnatchMoveContinue -SnatchPartnerMonMove:: - playsewithpan SE_M_DOUBLE_TEAM, 192 - createvisualtask AnimTask_SnatchPartnerMove, 2, +SnatchPartnerMonMove: + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SnatchPartnerMove, 2 goto SnatchMoveContinue -General_FutureSightHit:: +General_FutureSightHit: createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 monbg ANIM_DEF_PARTNER - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_SUPERSONIC, 63 - waitplaysewithpan SE_M_SUPERSONIC, 63, 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, 1, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_TARGET, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 24, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 24, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -General_DoomDesireHit:: - createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2, +General_DoomDesireHit: + createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 loadspritegfx ANIM_TAG_EXPLOSION - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask AnimTask_DoomDesireLightBeam, 5, + createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 9 - playsewithpan SE_M_CONFUSE_RAY, 192 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 9 playsewithpan SE_M_CONFUSE_RAY, 0 delay 9 - playsewithpan SE_M_CONFUSE_RAY, 63 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET delay 25 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 20, 1 - playsewithpan SE_M_SELF_DESTRUCT, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 20, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_WHITE waitforvisualfinish end -General_FocusPunchSetUp:: +General_FocusPunchSetUp: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 call EndureEffect delay 8 call EndureEffect waitforvisualfinish end -General_IngrainHeal:: +General_IngrainHeal: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish delay 3 call AbsorbEffect @@ -10879,18 +10876,18 @@ General_IngrainHeal:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 4, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -General_WishHeal:: +General_WishHeal: loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_SPARKLE_2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_M_MEGA_KICK, 192 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish call HealingEffect @@ -10898,7 +10895,7 @@ General_WishHeal:: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 end -General_MonScared:: +General_MonScared: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1 waitforvisualfinish loadspritegfx ANIM_TAG_SWEAT_BEAD @@ -10906,7 +10903,7 @@ General_MonScared:: createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 delay 20 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 - playsewithpan SE_M_SKETCH, 63 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3, @@ -10915,17 +10912,17 @@ General_MonScared:: waitforvisualfinish end -General_GhostGetOut:: +General_GhostGetOut: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1 waitforvisualfinish fadetobg 2 waitbgfadeout - monbg_22 0 + monbg_static 0 createvisualtask sub_80B6BBC, 2, waitbgfadein - loopsewithpan SE_M_PSYBEAM, 63, 20, 3 + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish - clearmonbg_23 0 + clearmonbg_static 0 delay 1 loadspritegfx ANIM_TAG_SWEAT_BEAD createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 0, 6, 27349 @@ -10940,29 +10937,29 @@ General_GhostGetOut:: waitbgfadein end -General_SilphScoped:: +General_SilphScoped: monbg ANIM_ATTACKER - playsewithpan SE_M_TELEPORT, 192 - waitplaysewithpan SE_M_MINIMIZE, 192, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 255 waitsound waitforvisualfinish clearmonbg ANIM_ATTACKER end -General_SafariRockThrow:: +General_SafariRockThrow: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0 waitforvisualfinish loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT delay 0 - waitplaysewithpan SE_M_JUMP_KICK, 192, 22 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 createsprite gSafariRockTemplate, ANIM_TARGET, 3, -17, 14, 8, 0 delay 50 monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, 1, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10970,7 +10967,7 @@ General_SafariRockThrow:: waitforvisualfinish end -General_SafariReaction:: +General_SafariReaction: createvisualtask AnimTask_SafariGetReaction, 2, waitforvisualfinish jumpargeq 7, 0, SafariReaction_WatchingCarefully @@ -10978,59 +10975,58 @@ General_SafariReaction:: jumpargeq 7, 2, SafariReaction_Eating end -SafariReaction_WatchingCarefully:: - playsewithpan SE_M_TAKE_DOWN, 63 +SafariReaction_WatchingCarefully: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 63 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2 end -SafariReaction_Angry:: +SafariReaction_Angry: loadspritegfx ANIM_TAG_ANGER createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -20 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -20 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end -SafariReaction_Eating:: - playsewithpan SE_M_TAKE_DOWN, 63 +SafariReaction_Eating: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 63 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 end -SnatchMoveTrySwapFromSubstitute:: - createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, - jumpargeq 7, 1, SnatchMoveSwapSubstituteForMon - -SnatchMoveTrySwapFromSubstituteEnd:: +SnatchMoveTrySwapFromSubstitute: + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 + jumprettrue SnatchMoveSwapSubstituteForMon +SnatchMoveTrySwapFromSubstituteEnd: waitforvisualfinish return -SnatchMoveSwapSubstituteForMon:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 +SnatchMoveSwapSubstituteForMon: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE waitforvisualfinish goto SnatchMoveTrySwapFromSubstituteEnd -SnatchMoveTrySwapToSubstitute:: - createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, - jumpargeq 7, 1, SnatchMoveSwapMonForSubstitute - -SnatchMoveTrySwapToSubstituteEnd:: +SnatchMoveTrySwapToSubstitute: + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 + jumprettrue SnatchMoveSwapMonForSubstitute +SnatchMoveTrySwapToSubstituteEnd: waitforvisualfinish return -SnatchMoveSwapMonForSubstitute:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 0 +SnatchMoveSwapMonForSubstitute: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, FALSE waitforvisualfinish goto SnatchMoveTrySwapToSubstituteEnd -Special_LevelUp:: +@ Healthbox blue flash effect on level up +Special_LevelUp: playsewithpan SE_EXP_MAX, 0 createvisualtask AnimTask_LoadHealthboxPalsForLevelUp, 2 delay 0 @@ -11039,64 +11035,64 @@ Special_LevelUp:: createvisualtask AnimTask_FreeHealthboxPalsForLevelUp, 2 end -Special_SwitchOutPlayerMon:: +Special_SwitchOutPlayerMon: createvisualtask AnimTask_SwitchOutBallEffect, 2 delay 10 createvisualtask AnimTask_SwitchOutShrinkMon, 2 end -Special_SwitchOutOpponentMon:: - createvisualtask AnimTask_SwitchOutBallEffect, 2, +Special_SwitchOutOpponentMon: + createvisualtask AnimTask_SwitchOutBallEffect, 2 delay 10 - createvisualtask AnimTask_SwitchOutShrinkMon, 2, + createvisualtask AnimTask_SwitchOutShrinkMon, 2 end -Special_BallThrow:: +Special_BallThrow: createvisualtask AnimTask_LoadBallGfx, 2 delay 0 playsewithpan SE_BALL_THROW, 0 createvisualtask AnimTask_ThrowBall, 2 - createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2, - jumpargeq 7, -1, BallThrowTrainerBlock - jumpargeq 7, -2, BallThrowGhostDodged -BallThrowEnd:: + createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2 + jumpreteq -1, BallThrowTrainerBlock + jumpreteq -2, BallThrowGhostDodged +BallThrowEnd: waitforvisualfinish createvisualtask AnimTask_FreeBallGfx, 2 end -BallThrowTrainerBlock:: +BallThrowTrainerBlock: loadspritegfx ANIM_TAG_IMPACT delay 25 monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, 1, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, ANIM_TARGET, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto BallThrowEnd -BallThrowGhostDodged:: +BallThrowGhostDodged: delay 16 createvisualtask AnimTask_WindUpLunge, 2, 1, 48, 6, 16, 48, -48, 16 - playsewithpan SE_M_TAKE_DOWN, 63 - waitplaysewithpan SE_M_TAKE_DOWN, 63, 48 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET + waitplaysewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET, 48 waitforvisualfinish goto BallThrowEnd -Special_SafariBallThrow:: - createvisualtask AnimTask_LoadBallGfx, 2, +Special_BallThrowWithTrainer: + createvisualtask AnimTask_LoadBallGfx, 2 delay 0 createvisualtask AnimTask_ThrowBallSpecial, 2 waitforvisualfinish - createvisualtask AnimTask_FreeBallGfx, 2, + createvisualtask AnimTask_FreeBallGfx, 2 end -Special_SubstituteToMon:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 +Special_SubstituteToMon: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE end -Special_MonToSubstitute:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 0 +Special_MonToSubstitute: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, FALSE end diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 57d7c4abd..4fc4e4407 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -346,59 +346,62 @@ #define BG_SOLAR_BEAM_PLAYER 25 #define BG_SOLAR_BEAM_CONTESTS 26 -// table ids for general animations -#define B_ANIM_CASTFORM_CHANGE 0x0 -#define B_ANIM_STATS_CHANGE 0x1 -#define B_ANIM_SUBSTITUTE_FADE 0x2 -#define B_ANIM_SUBSTITUTE_APPEAR 0x3 -#define B_ANIM_BAIT_THROW 0x4 -#define B_ANIM_ITEM_KNOCKOFF 0x5 -#define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_HELD_ITEM_EFFECT 0x7 -#define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_FOCUS_BAND 0x9 -#define B_ANIM_RAIN_CONTINUES 0xA -#define B_ANIM_SUN_CONTINUES 0xB -#define B_ANIM_SANDSTORM_CONTINUES 0xC -#define B_ANIM_HAIL_CONTINUES 0xD -#define B_ANIM_LEECH_SEED_DRAIN 0xE -#define B_ANIM_MON_HIT 0xF -#define B_ANIM_ITEM_STEAL 0x10 -#define B_ANIM_SNATCH_MOVE 0x11 -#define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_DOOM_DESIRE_HIT 0x13 -#define B_ANIM_FOCUS_PUNCH_SETUP 0x14 -#define B_ANIM_INGRAIN_HEAL 0x15 -#define B_ANIM_WISH_HEAL 0x16 -#define B_ANIM_MON_SCARED 0x17 -#define B_ANIM_GHOST_GET_OUT 0x18 -#define B_ANIM_SILPH_SCOPED 0x19 -#define B_ANIM_ROCK_THROW 0x1A -#define B_ANIM_SAFARI_REACTION 0x1B +// table ids for general animations (gBattleAnims_General) +#define B_ANIM_CASTFORM_CHANGE 0 +#define B_ANIM_STATS_CHANGE 1 +#define B_ANIM_SUBSTITUTE_FADE 2 +#define B_ANIM_SUBSTITUTE_APPEAR 3 +#define B_ANIM_BAIT_THROW 4 +#define B_ANIM_ITEM_KNOCKOFF 5 +#define B_ANIM_TURN_TRAP 6 +#define B_ANIM_HELD_ITEM_EFFECT 7 +#define B_ANIM_SMOKEBALL_ESCAPE 8 +#define B_ANIM_FOCUS_BAND 9 +#define B_ANIM_RAIN_CONTINUES 10 +#define B_ANIM_SUN_CONTINUES 11 +#define B_ANIM_SANDSTORM_CONTINUES 12 +#define B_ANIM_HAIL_CONTINUES 13 +#define B_ANIM_LEECH_SEED_DRAIN 14 +#define B_ANIM_MON_HIT 15 +#define B_ANIM_ITEM_STEAL 16 +#define B_ANIM_SNATCH_MOVE 17 +#define B_ANIM_FUTURE_SIGHT_HIT 18 +#define B_ANIM_DOOM_DESIRE_HIT 19 +#define B_ANIM_FOCUS_PUNCH_SETUP 20 +#define B_ANIM_INGRAIN_HEAL 21 +#define B_ANIM_WISH_HEAL 22 +#define B_ANIM_MON_SCARED 23 +#define B_ANIM_GHOST_GET_OUT 24 +#define B_ANIM_SILPH_SCOPED 25 +#define B_ANIM_ROCK_THROW 26 +#define B_ANIM_SAFARI_REACTION 27 -// special animations table -#define B_ANIM_LVL_UP 0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 -#define B_ANIM_BALL_THROW 0x3 -#define B_ANIM_SAFARI_BALL_THROW 0x4 -#define B_ANIM_SUBSTITUTE_TO_MON 0x5 -#define B_ANIM_MON_TO_SUBSTITUTE 0x6 +// special animations table (gBattleAnims_Special) +#define B_ANIM_LVL_UP 0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 2 +#define B_ANIM_BALL_THROW 3 +#define B_ANIM_BALL_THROW_WITH_TRAINER 4 +#define B_ANIM_SUBSTITUTE_TO_MON 5 +#define B_ANIM_MON_TO_SUBSTITUTE 6 -// status animation table -#define B_ANIM_STATUS_PSN 0x0 -#define B_ANIM_STATUS_CONFUSION 0x1 -#define B_ANIM_STATUS_BRN 0x2 -#define B_ANIM_STATUS_INFATUATION 0x3 -#define B_ANIM_STATUS_SLP 0x4 -#define B_ANIM_STATUS_PRZ 0x5 -#define B_ANIM_STATUS_FRZ 0x6 -#define B_ANIM_STATUS_CURSED 0x7 -#define B_ANIM_STATUS_NIGHTMARE 0x8 -#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist +// status animation table (gBattleAnims_StatusConditions) +#define B_ANIM_STATUS_PSN 0 +#define B_ANIM_STATUS_CONFUSION 1 +#define B_ANIM_STATUS_BRN 2 +#define B_ANIM_STATUS_INFATUATION 3 +#define B_ANIM_STATUS_SLP 4 +#define B_ANIM_STATUS_PRZ 5 +#define B_ANIM_STATUS_FRZ 6 +#define B_ANIM_STATUS_CURSED 7 +#define B_ANIM_STATUS_NIGHTMARE 8 +#define B_ANIM_STATUS_WRAPPED 9 // does not actually exist // Most tasks return a value to gBattleAnimArgs[7]. -#define ARG_RET_ID 0x7 +#define ARG_RET_ID 7 + +// For createsprite macro to use internally +#define ANIMSPRITE_IS_TARGET (1 << 7) // Trapping Wrap-like moves end turn animation. #define TRAP_ANIM_BIND 0 @@ -415,6 +418,22 @@ #define ANIM_WEATHER_SANDSTORM 3 #define ANIM_WEATHER_HAIL 4 +// Flags given to various functions to indicate which palettes to consider. +// Handled by UnpackSelectedBattlePalettes +#define F_PAL_BG (1 << 0) +#define F_PAL_ATTACKER (1 << 1) +#define F_PAL_TARGET (1 << 2) +#define F_PAL_ATK_PARTNER (1 << 3) +#define F_PAL_DEF_PARTNER (1 << 4) +#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBattleAnimBgDataByPriorityRank. Only used (ineffectually?) by Aromatherapy. +#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBattleAnimBgDataByPriorityRank. Unused. +#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER) +#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER) +#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE) +// The below are only used by AnimTask_BlendBattleAnimPal to get battler sprite palettes by position rather than by role. +// It's redundant with F_PAL_BATTLERS, because they're only ever used together to refer to all the battlers at once. +#define F_PAL_BATTLERS_2 (1 << 7 | 1 << 8 | 1 << 9 | 1 << 10) + // Battle mon back animations. #define BACK_ANIM_NONE 0x00 #define BACK_ANIM_H_SLIDE_QUICK 0x01 diff --git a/include/constants/rgb.h b/include/constants/rgb.h new file mode 100644 index 000000000..be3049d3c --- /dev/null +++ b/include/constants/rgb.h @@ -0,0 +1,25 @@ +#ifndef GUARD_RGB_H +#define GUARD_RGB_H + +#define GET_R(color) ((color) & 0x1F) +#define GET_G(color) (((color) >> 5) & 0x1F) +#define GET_B(color) (((color) >> 10) & 0x1F) + +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) +#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) + +#define RGB_ALPHA (1 << 15) +#define IS_ALPHA(color) ((color) & RGB_ALPHA) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) +#define RGB_RED RGB(31, 0, 0) +#define RGB_GREEN RGB(0, 31, 0) +#define RGB_BLUE RGB(0, 0, 31) +#define RGB_YELLOW RGB(31, 31, 0) +#define RGB_MAGENTA RGB(31, 0, 31) +#define RGB_CYAN RGB(0, 31, 31) +#define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA) + +#endif // GUARD_RGB_H diff --git a/include/gba/defines.h b/include/gba/defines.h index f0fce824e..860ae5f08 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -79,20 +79,6 @@ #define TOTAL_OBJ_TILE_COUNT 1024 -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) -#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) -#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) - -#define RGB_BLACK RGB(0, 0, 0) -#define RGB_WHITE RGB(31, 31, 31) -#define RGB_RED RGB(31, 0, 0) -#define RGB_GREEN RGB(0, 31, 0) -#define RGB_BLUE RGB(0, 0, 31) -#define RGB_YELLOW RGB(31, 31, 0) -#define RGB_MAGENTA RGB(31, 0, 31) -#define RGB_CYAN RGB(0, 31, 31) -#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) - // Some functions are strictly inline asm #define NAKED __attribute__((naked)) #define UNUSED __attribute__((unused)) diff --git a/include/global.h b/include/global.h index e474e1eaa..27fb57830 100644 --- a/include/global.h +++ b/include/global.h @@ -9,6 +9,7 @@ #include "constants/vars.h" #include "constants/species.h" #include "constants/easy_chat.h" +#include "constants/rgb.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index 7b0a81bb3..39e19bda7 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -866,7 +866,7 @@ static void AnimTask_MetallicShine_Step(u8 taskId) // Changes battler's palette to either greyscale or original. // arg0: which battler // arg1: 0 grayscale, 1 original -void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) +void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId) { u8 spriteId, battler; bool8 calcSpriteId = FALSE; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index c4df329a3..6de19d163 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -516,7 +516,7 @@ const struct SpriteTemplate gRazorLeafParticleSpriteTemplate = .callback = AnimRazorLeafParticle, }; -const struct SpriteTemplate gTwisterLeafParticleSpriteTemplate = +const struct SpriteTemplate gTwisterLeafSpriteTemplate = { .tileTag = ANIM_TAG_LEAF, .paletteTag = ANIM_TAG_LEAF, @@ -1362,7 +1362,7 @@ static const struct SpriteTemplate sCirclingMusicNoteSpriteTemplate = .callback = AnimCirclingMusicNote, }; -const struct SpriteTemplate gProtectWallSpriteTemplate = +const struct SpriteTemplate gProtectSpriteTemplate = { .tileTag = ANIM_TAG_PROTECT, .paletteTag = ANIM_TAG_PROTECT, @@ -5034,10 +5034,10 @@ static void AnimMoonlightSparkle_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimTask_FadeScreenBlue_Step(u8); +void AnimTask_MoonlightEndFade_Step(u8); -void AnimTask_FadeScreenBlue(u8 taskId) +void AnimTask_MoonlightEndFade(u8 taskId) { int a = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE) & 0xFFFF; int b; @@ -5060,11 +5060,11 @@ void AnimTask_FadeScreenBlue(u8 taskId) b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE); BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31)); - gTasks[taskId].func = AnimTask_FadeScreenBlue_Step; + gTasks[taskId].func = AnimTask_MoonlightEndFade_Step; gTasks[taskId].func(taskId); } -void AnimTask_FadeScreenBlue_Step(u8 taskId) +void AnimTask_MoonlightEndFade_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 68a5825a4..bc58491ee 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -32,7 +32,7 @@ static void AnimGuillotinePincer(struct Sprite *); static void AnimGuillotinePincer_Step1(struct Sprite *); static void AnimGuillotinePincer_Step2(struct Sprite *); static void AnimGuillotinePincer_Step3(struct Sprite *); -static void AnimTask_GrowAndGreyscale_Step(u8); +static void AnimTask_GrowAndGrayscale_Step(u8); static void AnimTask_Minimize_Step1(u8); static void CreateMinimizeSprite(struct Task *, u8); static void ClonedMinizeSprite_Step(struct Sprite *); @@ -301,7 +301,7 @@ static const union AffineAnimCmd *const sWaterPulseRingAffineAnimTable[] = sWaterPulseRingAffineAnimCmds, }; -const struct SpriteTemplate gSupersonicWaveSpriteTemplate = +const struct SpriteTemplate gSupersonicRingSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -312,7 +312,7 @@ const struct SpriteTemplate gSupersonicWaveSpriteTemplate = .callback = TranslateAnimSpriteToTargetMonLocation, }; -const struct SpriteTemplate gScreechWaveSpriteTemplate = +const struct SpriteTemplate gScreechRingSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_RING, .paletteTag = ANIM_TAG_PURPLE_RING, @@ -2005,7 +2005,7 @@ static void AnimGuillotinePincer_Step3(struct Sprite *sprite) // Scales up the target mon sprite, and sets the palette to greyscale. // Used in MOVE_DISABLE. // No args. -void AnimTask_GrowAndGreyscale(u8 taskId) +void AnimTask_GrowAndGrayscale(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -2013,10 +2013,10 @@ void AnimTask_GrowAndGreyscale(u8 taskId) SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); gTasks[taskId].data[0] = 80; - gTasks[taskId].func = AnimTask_GrowAndGreyscale_Step; + gTasks[taskId].func = AnimTask_GrowAndGrayscale_Step; } -static void AnimTask_GrowAndGreyscale_Step(u8 taskId) +static void AnimTask_GrowAndGrayscale_Step(u8 taskId) { if (--gTasks[taskId].data[0] == -1) { diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 16114456f..a51408016 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -792,7 +792,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId) gTasks[taskId].data[7] = 1; else { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : 0; else gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER ? 1 : 0; diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index e7dbe6394..39bffd4e8 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -2037,7 +2037,7 @@ void AnimTask_IsAttackerBehindSubstitute(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimTask_TargetToEffectBattler(u8 taskId) +void AnimTask_SetTargetToEffectBattler(u8 taskId) { gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 9b4c8ddfa..d231acf08 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -50,7 +50,7 @@ const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, RE // 8: Player battler right // 9: Enemy battler left // 10: Enemy battler right -void AnimTask_BlendSelected(u8 taskId) +void AnimTask_BlendBattleAnimPal(u8 taskId) { u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); @@ -72,7 +72,7 @@ void AnimTask_BlendSelected(u8 taskId) // 5: Blend all // 6: Neither bg nor attacker's partner // 7: Neither bg nor target's partner -void AnimTask_BlendExcept(u8 taskId) +void AnimTask_BlendBattleAnimPalExclude(u8 taskId) { u8 battler; u32 selectedPalettes; diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index b2c8341ef..f03371750 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -1662,7 +1662,7 @@ static void OakOldManHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } @@ -1672,7 +1672,7 @@ static void OakOldManHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 6e7b1ee9a..f0e246457 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -376,7 +376,7 @@ static void SafariHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } @@ -386,7 +386,7 @@ static void SafariHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } From c976547c02629734129b0344a2f5012147a0c1c0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 19 Aug 2022 09:58:34 -0400 Subject: [PATCH 039/105] Clean up FRLG-specific anim scripts --- data/battle_anim_scripts.s | 50 +++++++++++++++++++------------------- src/battle_anim_ghost.c | 26 +++++++++++--------- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 0b8743f76..69c9bb7be 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -4844,10 +4844,10 @@ UnusedFutureSightHit: setalpha 8, 8 playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, 1, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_TARGET, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 24, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 24, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9759,10 +9759,10 @@ Move_DOOM_DESIRE: UnusedDoomDesireHit: loadspritegfx ANIM_TAG_EXPLOSION - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask AnimTask_DoomDesireLightBeam, 5, + createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 5 playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 10 @@ -9786,7 +9786,7 @@ UnusedDoomDesireHit: playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_WHITE waitforvisualfinish end @@ -10892,46 +10892,46 @@ General_WishHeal: waitforvisualfinish call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 10, 0, RGB_BLACK end General_MonScared: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1 waitforvisualfinish loadspritegfx ANIM_TAG_SWEAT_BEAD - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 10, 26336 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 10, RGB(0, 23, 25) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 delay 20 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 10, 0, 26336 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 10, 0, RGB(0, 23, 25) waitforvisualfinish end General_GhostGetOut: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1 waitforvisualfinish - fadetobg 2 + fadetobg BG_GHOST waitbgfadeout - monbg_static 0 - createvisualtask sub_80B6BBC, 2, + monbg_static ANIM_ATTACKER + createvisualtask AnimTask_GhostGetOut, 2 waitbgfadein loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish - clearmonbg_static 0 + clearmonbg_static ANIM_ATTACKER delay 1 loadspritegfx ANIM_TAG_SWEAT_BEAD - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 0, 6, 27349 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, -1, 0, 6, RGB(21, 22, 26) createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 6, 0, 27349 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, -1, 6, 0, RGB(21, 22, 26) waitforvisualfinish restorebg waitbgfadein @@ -10968,11 +10968,11 @@ General_SafariRockThrow: end General_SafariReaction: - createvisualtask AnimTask_SafariGetReaction, 2, + createvisualtask AnimTask_SafariGetReaction, 2 waitforvisualfinish - jumpargeq 7, 0, SafariReaction_WatchingCarefully - jumpargeq 7, 1, SafariReaction_Angry - jumpargeq 7, 2, SafariReaction_Eating + jumpreteq 0, SafariReaction_WatchingCarefully + jumpreteq 1, SafariReaction_Angry + jumpreteq 2, SafariReaction_Eating end SafariReaction_WatchingCarefully: @@ -11075,7 +11075,7 @@ BallThrowTrainerBlock: BallThrowGhostDodged: delay 16 - createvisualtask AnimTask_WindUpLunge, 2, 1, 48, 6, 16, 48, -48, 16 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_TARGET, 48, 6, 16, 48, -48, 16 playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET waitplaysewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET, 48 waitforvisualfinish diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index f808e92f6..d9e06b91e 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -38,9 +38,9 @@ static void AnimGhostStatusSprite_End(struct Sprite *sprite); static void AnimTask_GrudgeFlames_Step(u8 taskId); static void AnimGrudgeFlame(struct Sprite *sprite); static void AnimMonMoveCircular(struct Sprite *sprite); -static void sub_80B6BE4(u8 taskId); -static void sub_80B6F30(u8 taskId); -static void sub_80B6FC4(u8 taskId); +static void AnimTask_GhostGetOut_Step1(u8 taskId); +static void AnimTask_GhostGetOut_Step2(u8 taskId); +static void AnimTask_GhostGetOut_Step3(u8 taskId); static void AnimMonMoveCircular_Step(struct Sprite *sprite); static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = @@ -1262,16 +1262,18 @@ static void AnimGrudgeFlame(struct Sprite *sprite) } } -void sub_80B6BBC(u8 taskId) +// Used by the ghost Marowak when it hasn't been revealed by the Silph Scope. +// Animates a shimmering copy of the attacker (the ghost) accompanied by the 'Scary Face' graphics +void AnimTask_GhostGetOut(u8 taskId) { struct Task *task = &gTasks[taskId]; task->data[15] = 0; - task->func = sub_80B6BE4; - sub_80B6BE4(taskId); + task->func = AnimTask_GhostGetOut_Step1; + task->func(taskId); } -static void sub_80B6BE4(u8 taskId) +static void AnimTask_GhostGetOut_Step1(u8 taskId) { s16 y; struct BattleAnimBgData animBgData; @@ -1367,14 +1369,14 @@ static void sub_80B6BE4(u8 taskId) SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); - task->func = sub_80B6F30; + task->func = AnimTask_GhostGetOut_Step2; task->data[15] = 0; break; } ++task->data[15]; } -static void sub_80B6F30(u8 taskId) +static void AnimTask_GhostGetOut_Step2(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1388,12 +1390,12 @@ static void sub_80B6F30(u8 taskId) if (task->data[1] == 128) { task->data[15] = 0; - task->func = sub_80B6FC4; - sub_80B6FC4(taskId); + task->func = AnimTask_GhostGetOut_Step3; + task->func(taskId); } } -static void sub_80B6FC4(u8 taskId) +static void AnimTask_GhostGetOut_Step3(u8 taskId) { struct Task *task = &gTasks[taskId]; From 219a38578a5ec8c409454cc18c516bdae703d5ba Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 19 Aug 2022 10:29:25 -0400 Subject: [PATCH 040/105] Sync battle anim - script funcs --- src/battle_anim.c | 225 ++++++++++++++++++++++++---------------------- 1 file changed, 120 insertions(+), 105 deletions(-) diff --git a/src/battle_anim.c b/src/battle_anim.c index 0fb2dfbf9..50f8fe703 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -11,6 +11,11 @@ #include "task.h" #include "constants/battle_anim.h" +/* + This file handles the commands for the macros defined in + battle_anim_script.inc and used in battle_anim_scripts.s +*/ + #define ANIM_SPRITE_INDEX_COUNT 8 EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; @@ -41,15 +46,15 @@ static void AddSpriteIndex(u16 index); static void ClearSpriteIndex(u16 index); static void WaitAnimFrameCount(void); static void RunAnimScriptCommand(void); -static void sub_8073558(u8 taskId); +static void Task_ClearMonBgStatic(u8 taskId); static void Task_FadeToBg(u8 taskId); static void Task_PanFromInitialToTarget(u8 taskId); -static void task_pA_ma0A_obj_to_bg_pal(u8 taskId); +static void Task_InitUpdateMonBg(u8 taskId); static void LoadMoveBg(u16 bgId); static void LoadDefaultBg(void); static void Task_LoopAndPlaySE(u8 taskId); static void Task_WaitAndPlaySE(u8 taskId); -static void sub_807331C(u8 taskId); +static void Task_ClearMonBg(u8 taskId); static void Cmd_loadspritegfx(void); static void Cmd_unloadspritegfx(void); @@ -57,8 +62,8 @@ static void Cmd_createsprite(void); static void Cmd_createvisualtask(void); static void Cmd_delay(void); static void Cmd_waitforvisualfinish(void); -static void Cmd_hang1(void); -static void Cmd_hang2(void); +static void Cmd_nop(void); +static void Cmd_nop2(void); static void Cmd_end(void); static void Cmd_playse(void); static void Cmd_monbg(void); @@ -78,83 +83,82 @@ static void Cmd_waitbgfadein(void); static void Cmd_changebg(void); static void Cmd_playsewithpan(void); static void Cmd_setpan(void); -static void Cmd_panse_1B(void); +static void Cmd_panse(void); static void Cmd_loopsewithpan(void); static void Cmd_waitplaysewithpan(void); static void Cmd_setbldcnt(void); static void Cmd_createsoundtask(void); static void Cmd_waitsound(void); static void Cmd_jumpargeq(void); -static void Cmd_monbg_22(void); -static void Cmd_clearmonbg_23(void); +static void Cmd_monbg_static(void); +static void Cmd_clearmonbg_static(void); static void Cmd_jumpifcontest(void); static void Cmd_fadetobgfromset(void); -static void Cmd_panse_26(void); -static void Cmd_panse_27(void); -static void Cmd_monbgprio_28(void); -static void Cmd_monbgprio_29(void); -static void Cmd_monbgprio_2A(void); +static void Cmd_panse_adjustnone(void); +static void Cmd_panse_adjustall(void); +static void Cmd_splitbgprio(void); +static void Cmd_splitbgprio_all(void); +static void Cmd_splitbgprio_foes(void); static void Cmd_invisible(void); static void Cmd_visible(void); -static void Cmd_doublebattle_2D(void); -static void Cmd_doublebattle_2E(void); +static void Cmd_teamattack_moveback(void); +static void Cmd_teamattack_movefwd(void); static void Cmd_stopsound(void); #include "data/battle_anim.h" static void (*const sScriptCmdTable[])(void) = { - Cmd_loadspritegfx, - Cmd_unloadspritegfx, - Cmd_createsprite, - Cmd_createvisualtask, - Cmd_delay, - Cmd_waitforvisualfinish, - Cmd_hang1, - Cmd_hang2, - Cmd_end, - Cmd_playse, - Cmd_monbg, - Cmd_clearmonbg, - Cmd_setalpha, - Cmd_blendoff, - Cmd_call, - Cmd_return, - Cmd_setarg, - Cmd_choosetwoturnanim, - Cmd_jumpifmoveturn, - Cmd_goto, - Cmd_fadetobg, - Cmd_restorebg, - Cmd_waitbgfadeout, - Cmd_waitbgfadein, - Cmd_changebg, - Cmd_playsewithpan, - Cmd_setpan, - Cmd_panse_1B, - Cmd_loopsewithpan, - Cmd_waitplaysewithpan, - Cmd_setbldcnt, - Cmd_createsoundtask, - Cmd_waitsound, - Cmd_jumpargeq, - Cmd_monbg_22, - Cmd_clearmonbg_23, - Cmd_jumpifcontest, - Cmd_fadetobgfromset, - Cmd_panse_26, - Cmd_panse_27, - Cmd_monbgprio_28, - Cmd_monbgprio_29, - Cmd_monbgprio_2A, - Cmd_invisible, - Cmd_visible, - Cmd_doublebattle_2D, - Cmd_doublebattle_2E, - Cmd_stopsound + Cmd_loadspritegfx, // 0x00 + Cmd_unloadspritegfx, // 0x01 + Cmd_createsprite, // 0x02 + Cmd_createvisualtask, // 0x03 + Cmd_delay, // 0x04 + Cmd_waitforvisualfinish, // 0x05 + Cmd_nop, // 0x06 + Cmd_nop2, // 0x07 + Cmd_end, // 0x08 + Cmd_playse, // 0x09 + Cmd_monbg, // 0x0A + Cmd_clearmonbg, // 0x0B + Cmd_setalpha, // 0x0C + Cmd_blendoff, // 0x0D + Cmd_call, // 0x0E + Cmd_return, // 0x0F + Cmd_setarg, // 0x10 + Cmd_choosetwoturnanim, // 0x11 + Cmd_jumpifmoveturn, // 0x12 + Cmd_goto, // 0x13 + Cmd_fadetobg, // 0x14 + Cmd_restorebg, // 0x15 + Cmd_waitbgfadeout, // 0x16 + Cmd_waitbgfadein, // 0x17 + Cmd_changebg, // 0x18 + Cmd_playsewithpan, // 0x19 + Cmd_setpan, // 0x1A + Cmd_panse, // 0x1B + Cmd_loopsewithpan, // 0x1C + Cmd_waitplaysewithpan, // 0x1D + Cmd_setbldcnt, // 0x1E + Cmd_createsoundtask, // 0x1F + Cmd_waitsound, // 0x20 + Cmd_jumpargeq, // 0x21 + Cmd_monbg_static, // 0x22 + Cmd_clearmonbg_static, // 0x23 + Cmd_jumpifcontest, // 0x24 + Cmd_fadetobgfromset, // 0x25 + Cmd_panse_adjustnone, // 0x26 + Cmd_panse_adjustall, // 0x27 + Cmd_splitbgprio, // 0x28 + Cmd_splitbgprio_all, // 0x29 + Cmd_splitbgprio_foes, // 0x2A + Cmd_invisible, // 0x2B + Cmd_visible, // 0x2C + Cmd_teamattack_moveback, // 0x2D + Cmd_teamattack_movefwd, // 0x2E + Cmd_stopsound, // 0x2F }; -// Functions void ClearBattleAnimationVars(void) { s32 i; @@ -176,8 +180,8 @@ void ClearBattleAnimationVars(void) for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; - sMonAnimTaskIdArray[0] = 0xFF; - sMonAnimTaskIdArray[1] = (s8)0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; + sMonAnimTaskIdArray[1] = TASK_NONE; gAnimMoveTurn = 0; sAnimBackgroundFadeState = 0; sAnimMoveIndex = 0; @@ -215,8 +219,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; - sMonAnimTaskIdArray[0] = 0xFF; - sMonAnimTaskIdArray[1] = (s8)-1; + sMonAnimTaskIdArray[0] = TASK_NONE; + sMonAnimTaskIdArray[1] = TASK_NONE; sBattleAnimScriptPtr = animsTable[tableId]; gAnimScriptActive = TRUE; sAnimFramesToWait = 0; @@ -365,11 +369,11 @@ static void Cmd_createsprite(void) sBattleAnimScriptPtr += 2; } - if (argVar & 0x80) + if (argVar & ANIMSPRITE_IS_TARGET) { - argVar ^= 0x80; - if (argVar >= 0x40) - argVar -= 0x40; + argVar ^= ANIMSPRITE_IS_TARGET; + if (argVar >= 64) + argVar -= 64; else argVar *= -1; @@ -377,8 +381,8 @@ static void Cmd_createsprite(void) } else { - if (argVar >= 0x40) - argVar -= 0x40; + if (argVar >= 64) + argVar -= 64; else argVar *= -1; @@ -449,11 +453,11 @@ static void Cmd_waitforvisualfinish(void) } } -static void Cmd_hang1(void) +static void Cmd_nop(void) { } -static void Cmd_hang2(void) +static void Cmd_nop2(void) { } @@ -464,7 +468,7 @@ static void Cmd_end(void) // Keep waiting as long as there are animations to be done. if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0 - || sMonAnimTaskIdArray[0] != 0xFF || sMonAnimTaskIdArray[1] != 0xFF) + || sMonAnimTaskIdArray[0] != TASK_NONE || sMonAnimTaskIdArray[1] != TASK_NONE) { sSoundAnimFramesToWait = 0; sAnimFramesToWait = 1; @@ -545,6 +549,7 @@ static void Cmd_monbg(void) else battlerId = gBattleAnimTarget; + // Move designated battler to background if (IsBattlerSpriteVisible(battlerId)) { position = GetBattlerPosition(battlerId); @@ -555,7 +560,7 @@ static void Cmd_monbg(void) MoveBattlerSpriteToBG(battlerId, toBG_2); spriteId = gBattlerSpriteIds[battlerId]; - taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); + taskId = CreateTask(Task_InitUpdateMonBg, 10); gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId; gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2; @@ -586,7 +591,7 @@ static void Cmd_monbg(void) MoveBattlerSpriteToBG(battlerId, toBG_2); spriteId = gBattlerSpriteIds[battlerId]; - taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); + taskId = CreateTask(Task_InitUpdateMonBg, 10); gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId; gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2; @@ -720,7 +725,7 @@ void ResetBattleAnimBg(bool8 to_BG2) } } -static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) +static void Task_InitUpdateMonBg(u8 taskId) { u8 spriteId, palIndex; s16 x, y; @@ -774,21 +779,21 @@ static void Cmd_clearmonbg(void) else battlerId = gBattleAnimTarget; - if (sMonAnimTaskIdArray[0] != 0xFF) + if (sMonAnimTaskIdArray[0] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; - if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != 0xFF) + if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = ANIM_ATTACKER; - taskId = CreateTask(sub_807331C, 5); + taskId = CreateTask(Task_ClearMonBg, 5); gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[2] = battlerId; sBattleAnimScriptPtr++; } -static void sub_807331C(u8 taskId) +static void Task_ClearMonBg(u8 taskId) { u8 toBG_2; u8 position; @@ -802,23 +807,24 @@ static void sub_807331C(u8 taskId) else toBG_2 = TRUE; - if (sMonAnimTaskIdArray[0] != 0xFF) + if (sMonAnimTaskIdArray[0] != TASK_NONE) { ResetBattleAnimBg(toBG_2); DestroyTask(sMonAnimTaskIdArray[0]); - sMonAnimTaskIdArray[0] = 0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; } if (gTasks[taskId].data[0] > 1) { ResetBattleAnimBg(toBG_2 ^ 1); DestroyTask(sMonAnimTaskIdArray[1]); - sMonAnimTaskIdArray[1] = 0xFF; + sMonAnimTaskIdArray[1] = TASK_NONE; } DestroyTask(taskId); } } -static void Cmd_monbg_22(void) +// Equivalent to Cmd_monbg but never creates Task_InitUpdateMonBg / Task_UpdateMonBg +static void Cmd_monbg_static(void) { bool8 toBG_2; u8 battlerId; @@ -865,7 +871,7 @@ static void Cmd_monbg_22(void) sBattleAnimScriptPtr++; } -static void Cmd_clearmonbg_23(void) +static void Cmd_clearmonbg_static(void) { u8 animBattlerId; u8 battlerId; @@ -891,14 +897,14 @@ static void Cmd_clearmonbg_23(void) else animBattlerId = ANIM_ATTACKER; - taskId = CreateTask(sub_8073558, 5); + taskId = CreateTask(Task_ClearMonBgStatic, 5); gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[2] = battlerId; sBattleAnimScriptPtr++; } -static void sub_8073558(u8 taskId) +static void Task_ClearMonBgStatic(u8 taskId) { bool8 to_BG2; u8 position; @@ -1022,9 +1028,9 @@ bool8 IsContest(void) } // Unused -static bool8 sub_807378C(u16 a) +static bool8 IsSpeciesNotUnown(u16 species) { - if (a == 0xC9) + if (species == SPECIES_UNOWN) return FALSE; else return TRUE; @@ -1270,7 +1276,7 @@ static void Cmd_setpan(void) #define tCurrentPan data[4] #define tFrameCounter data[8] -static void Cmd_panse_1B(void) +static void Cmd_panse(void) { u16 songNum; s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan; @@ -1342,7 +1348,7 @@ static void Task_PanFromInitialToTarget(u8 taskId) } } -static void Cmd_panse_26(void) +static void Cmd_panse_adjustnone(void) { u16 songId; s8 currentPan, targetPan, incrementPan; @@ -1369,7 +1375,7 @@ static void Cmd_panse_26(void) sBattleAnimScriptPtr += 6; } -static void Cmd_panse_27(void) +static void Cmd_panse_adjustall(void) { u16 songId; s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan; @@ -1575,7 +1581,7 @@ static void Cmd_jumpifcontest(void) sBattleAnimScriptPtr += 5; } -static void Cmd_monbgprio_28(void) +static void Cmd_splitbgprio(void) { u8 wantedBattler; u8 battlerId; @@ -1589,6 +1595,7 @@ static void Cmd_monbgprio_28(void) else battlerId = gBattleAnimAttacker; + // Apply only if the given battler is the lead (on left from team's perspective) battlerPosition = GetBattlerPosition(battlerId); if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT) { @@ -1597,14 +1604,14 @@ static void Cmd_monbgprio_28(void) } } -static void Cmd_monbgprio_29(void) +static void Cmd_splitbgprio_all(void) { sBattleAnimScriptPtr++; SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); } -static void Cmd_monbgprio_2A(void) +static void Cmd_splitbgprio_foes(void) { u8 wantedBattler; u8 battlerPosition; @@ -1612,6 +1619,8 @@ static void Cmd_monbgprio_2A(void) wantedBattler = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; + + // Apply only if the attacking the opposing side if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget)) { if (wantedBattler != ANIM_ATTACKER) @@ -1619,6 +1628,7 @@ static void Cmd_monbgprio_2A(void) else battlerId = gBattleAnimAttacker; + // Apply only if the given battler is the lead (on left from team's perspective) battlerPosition = GetBattlerPosition(battlerId); if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT) { @@ -1633,7 +1643,7 @@ static void Cmd_invisible(void) u8 spriteId; spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].invisible = TRUE; sBattleAnimScriptPtr += 2; @@ -1644,13 +1654,14 @@ static void Cmd_visible(void) u8 spriteId; spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].invisible = FALSE; sBattleAnimScriptPtr += 2; } -static void Cmd_doublebattle_2D(void) +// Below two commands are never used +static void Cmd_teamattack_moveback(void) { u8 wantedBattler; u8 priority; @@ -1658,6 +1669,8 @@ static void Cmd_doublebattle_2D(void) wantedBattler = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; + + // Apply to double battles when attacking own side if (IsDoubleBattle() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) { @@ -1671,7 +1684,7 @@ static void Cmd_doublebattle_2D(void) priority = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { gSprites[spriteId].invisible = FALSE; if (priority == 2) @@ -1685,7 +1698,7 @@ static void Cmd_doublebattle_2D(void) } } -static void Cmd_doublebattle_2E(void) +static void Cmd_teamattack_movefwd(void) { u8 wantedBattler; u8 priority; @@ -1693,6 +1706,8 @@ static void Cmd_doublebattle_2E(void) wantedBattler = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; + + // Apply to double battles when attacking own side if (IsDoubleBattle() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) { @@ -1707,7 +1722,7 @@ static void Cmd_doublebattle_2E(void) spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } - if (spriteId != 0xFF && priority == 2) + if (spriteId != SPRITE_NONE && priority == 2) gSprites[spriteId].oam.priority = 2; } } From 616ab63d949f6e2afa2521be3d3b9845e2fac026 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 20 Aug 2022 16:13:03 -0400 Subject: [PATCH 041/105] More sync with battle controllers --- include/battle.h | 10 - include/battle_controllers.h | 2 +- include/battle_gfx_sfx_util.h | 2 +- include/constants/trainers.h | 8 + src/battle_anim_special.c | 4 +- src/battle_controller_link_opponent.c | 134 ++++---- src/battle_controller_link_partner.c | 323 ++++++++++++-------- src/battle_controller_oak_old_man.c | 32 +- src/battle_controller_opponent.c | 18 +- src/battle_controller_player.c | 20 +- src/battle_controller_pokedude.c | 24 +- src/battle_controllers.c | 2 +- src/battle_gfx_sfx_util.c | 2 +- src/data/trainer_graphics/back_pic_tables.h | 12 +- src/pokemon.c | 16 +- src/reshow_battle_screen.c | 4 +- 16 files changed, 339 insertions(+), 274 deletions(-) diff --git a/include/battle.h b/include/battle.h index 7775d5ba2..f611f5c12 100644 --- a/include/battle.h +++ b/include/battle.h @@ -521,16 +521,6 @@ struct BattleScripting u8 field_23; }; -enum -{ - BACK_PIC_RED, - BACK_PIC_LEAF, - BACK_PIC_RS_BRENDAN, - BACK_PIC_RS_MAY, - BACK_PIC_POKEDUDE, - BACK_PIC_OLDMAN -}; - struct BattleSpriteInfo { /*0x0*/ u16 invisible : 1; // 0x1 diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 1acd317ac..7172ad793 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -181,7 +181,7 @@ enum CONTROLLER_HITANIMATION, CONTROLLER_CANTSWITCH, CONTROLLER_PLAYSE, - CONTROLLER_PLAYFANFAREORBGM, + CONTROLLER_PLAYFANFARE, CONTROLLER_FAINTINGCRY, CONTROLLER_INTROSLIDE, CONTROLLER_INTROTRAINERBALLTHROW, diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 9d4f9c549..cb2add7eb 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -15,7 +15,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId); void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId); void DecompressTrainerBackPalette(u16 a1, u8 a2); -void BattleGfxSfxDummy3(u8 a1); +void BattleGfxSfxDummy3(u8 gender); void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId); bool8 BattleLoadAllHealthBoxesGfx(u8 state); void LoadBattleBarGfx(u8 arg0); diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 9563bf8b4..6117ce442 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -167,6 +167,14 @@ #define TRAINER_PIC_LADY 146 #define TRAINER_PIC_PAINTER 147 +// The player back pics are assumed to alternate according to the gender values (MALE/FEMALE) +#define TRAINER_BACK_PIC_RED 0 +#define TRAINER_BACK_PIC_LEAF 1 +#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 2 +#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 3 +#define TRAINER_BACK_PIC_POKEDUDE 4 +#define TRAINER_BACK_PIC_OLD_MAN 5 + // Leftover from R/S #define TRAINER_SECRET_BASE 1024 diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 238e0b3bd..5476db827 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -2079,7 +2079,7 @@ void TryShinyAnimation(u8 battler, struct Pokemon *mon) } } - gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = TRUE; } static void AnimTask_ShinySparkles(u8 taskId) @@ -2162,7 +2162,7 @@ static void AnimTask_ShinySparkles_WaitSparkles(u8 taskId) if (gTasks[taskId].data[1] == TRUE) { battler = gTasks[taskId].data[0]; - gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = TRUE; } DestroyTask(taskId); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index b610a6e99..0d2c5b213 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -88,63 +88,63 @@ static void EndDrawPartyStatusSummary(void); static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - LinkOpponentHandleGetMonData, - LinkOpponentHandleGetRawMonData, - LinkOpponentHandleSetMonData, - LinkOpponentHandleSetRawMonData, - LinkOpponentHandleLoadMonSprite, - LinkOpponentHandleSwitchInAnim, - LinkOpponentHandleReturnMonToBall, - LinkOpponentHandleDrawTrainerPic, - LinkOpponentHandleTrainerSlide, - LinkOpponentHandleTrainerSlideBack, - LinkOpponentHandleFaintAnimation, - LinkOpponentHandlePaletteFade, - LinkOpponentHandleSuccessBallThrowAnim, - LinkOpponentHandleBallThrowAnim, - LinkOpponentHandlePause, - LinkOpponentHandleMoveAnimation, - LinkOpponentHandlePrintString, - LinkOpponentHandlePrintSelectionString, - LinkOpponentHandleChooseAction, - LinkOpponentHandleUnknownYesNoBox, - LinkOpponentHandleChooseMove, - LinkOpponentHandleChooseItem, - LinkOpponentHandleChoosePokemon, - LinkOpponentHandleCmd23, - LinkOpponentHandleHealthBarUpdate, - LinkOpponentHandleExpUpdate, - LinkOpponentHandleStatusIconUpdate, - LinkOpponentHandleStatusAnimation, - LinkOpponentHandleStatusXor, - LinkOpponentHandleDataTransfer, - LinkOpponentHandleDMA3Transfer, - LinkOpponentHandlePlayBGM, - LinkOpponentHandleCmd32, - LinkOpponentHandleTwoReturnValues, - LinkOpponentHandleChosenMonReturnValue, - LinkOpponentHandleOneReturnValue, - LinkOpponentHandleOneReturnValue_Duplicate, - LinkOpponentHandleClearUnkVar, - LinkOpponentHandleSetUnkVar, - LinkOpponentHandleClearUnkFlag, - LinkOpponentHandleToggleUnkFlag, - LinkOpponentHandleHitAnimation, - LinkOpponentHandleCantSwitch, - LinkOpponentHandlePlaySE, - LinkOpponentHandlePlayFanfare, - LinkOpponentHandleFaintingCry, - LinkOpponentHandleIntroSlide, - LinkOpponentHandleIntroTrainerBallThrow, - LinkOpponentHandleDrawPartyStatusSummary, - LinkOpponentHandleHidePartyStatusSummary, - LinkOpponentHandleEndBounceEffect, - LinkOpponentHandleSpriteInvisibility, - LinkOpponentHandleBattleAnimation, - LinkOpponentHandleLinkStandbyMsg, - LinkOpponentHandleResetActionMoveSelection, - LinkOpponentHandleEndLinkBattle, - LinkOpponentCmdEnd + [CONTROLLER_GETMONDATA] = LinkOpponentHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = LinkOpponentHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = LinkOpponentHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = LinkOpponentHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = LinkOpponentHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = LinkOpponentHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = LinkOpponentHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = LinkOpponentHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = LinkOpponentHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = LinkOpponentHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = LinkOpponentHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = LinkOpponentHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = LinkOpponentHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = LinkOpponentHandleBallThrowAnim, + [CONTROLLER_PAUSE] = LinkOpponentHandlePause, + [CONTROLLER_MOVEANIMATION] = LinkOpponentHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = LinkOpponentHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = LinkOpponentHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = LinkOpponentHandleChooseAction, + [CONTROLLER_UNKNOWNYESNOBOX] = LinkOpponentHandleUnknownYesNoBox, + [CONTROLLER_CHOOSEMOVE] = LinkOpponentHandleChooseMove, + [CONTROLLER_OPENBAG] = LinkOpponentHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = LinkOpponentHandleChoosePokemon, + [CONTROLLER_23] = LinkOpponentHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = LinkOpponentHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = LinkOpponentHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = LinkOpponentHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = LinkOpponentHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = LinkOpponentHandleStatusXor, + [CONTROLLER_DATATRANSFER] = LinkOpponentHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = LinkOpponentHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = LinkOpponentHandlePlayBGM, + [CONTROLLER_32] = LinkOpponentHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = LinkOpponentHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = LinkOpponentHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = LinkOpponentHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = LinkOpponentHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = LinkOpponentHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = LinkOpponentHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = LinkOpponentHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = LinkOpponentHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = LinkOpponentHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = LinkOpponentHandleCantSwitch, + [CONTROLLER_PLAYSE] = LinkOpponentHandlePlaySE, + [CONTROLLER_PLAYFANFARE] = LinkOpponentHandlePlayFanfare, + [CONTROLLER_FAINTINGCRY] = LinkOpponentHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = LinkOpponentHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = LinkOpponentHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = LinkOpponentHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = LinkOpponentHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = LinkOpponentHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = LinkOpponentHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = LinkOpponentHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = LinkOpponentHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = LinkOpponentHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = LinkOpponentHandleEndLinkBattle, + [CONTROLLER_TERMINATOR_NOP] = LinkOpponentCmdEnd }; static void LinkOpponentDummy(void) @@ -187,7 +187,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; LinkOpponentBufferExecCompleted(); @@ -208,15 +208,18 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) { healthboxAnimDone = TRUE; } + if (IsCryPlayingOrClearCrySongs()) healthboxAnimDone = FALSE; + if (healthboxAnimDone) { if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim - || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) return; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; @@ -334,7 +337,7 @@ static void FreeMonSpriteAfterSwitchOutAnim(void) static void CompleteOnInactiveTextPrinter(void) { - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(B_WIN_MSG)) LinkOpponentBufferExecCompleted(); } @@ -382,7 +385,7 @@ static void SwitchIn_ShowHealthbox(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -463,7 +466,7 @@ static void LinkOpponentHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); LinkOpponentBufferExecCompleted(); } @@ -1032,15 +1035,19 @@ static void LinkOpponentHandleLoadMonSprite(void) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim; } @@ -1131,6 +1138,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) xPos = 152; else // first mon xPos = 200; + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) @@ -1611,7 +1619,7 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE; if (gBattleBufferA[gActiveBattler][2] != 0) { diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 6512b07b5..de1f98f77 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -51,12 +51,12 @@ static void LinkPartnerHandleTwoReturnValues(void); static void LinkPartnerHandleChosenMonReturnValue(void); static void LinkPartnerHandleOneReturnValue(void); static void LinkPartnerHandleOneReturnValue_Duplicate(void); -static void LinkPartnerHandleCmd37(void); -static void LinkPartnerHandleCmd38(void); -static void LinkPartnerHandleCmd39(void); -static void LinkPartnerHandleCmd40(void); +static void LinkPartnerHandleClearUnkVar(void); +static void LinkPartnerHandleSetUnkVar(void); +static void LinkPartnerHandleClearUnkFlag(void); +static void LinkPartnerHandleToggleUnkFlag(void); static void LinkPartnerHandleHitAnimation(void); -static void LinkPartnerHandleCmd42(void); +static void LinkPartnerHandleCantSwitch(void); static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlayFanfare(void); static void LinkPartnerHandleFaintingCry(void); @@ -69,7 +69,7 @@ static void LinkPartnerHandleSpriteInvisibility(void); static void LinkPartnerHandleBattleAnimation(void); static void LinkPartnerHandleLinkStandbyMsg(void); static void LinkPartnerHandleResetActionMoveSelection(void); -static void LinkPartnerHandleCmd55(void); +static void LinkPartnerHandleEndLinkBattle(void); static void LinkPartnerCmdEnd(void); static void LinkPartnerBufferRunCommand(void); @@ -85,63 +85,63 @@ static void EndDrawPartyStatusSummary(void); static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - LinkPartnerHandleGetMonData, - LinkPartnerHandleGetRawMonData, - LinkPartnerHandleSetMonData, - LinkPartnerHandleSetRawMonData, - LinkPartnerHandleLoadMonSprite, - LinkPartnerHandleSwitchInAnim, - LinkPartnerHandleReturnMonToBall, - LinkPartnerHandleDrawTrainerPic, - LinkPartnerHandleTrainerSlide, - LinkPartnerHandleTrainerSlideBack, - LinkPartnerHandleFaintAnimation, - LinkPartnerHandlePaletteFade, - LinkPartnerHandleSuccessBallThrowAnim, - LinkPartnerHandleBallThrowAnim, - LinkPartnerHandlePause, - LinkPartnerHandleMoveAnimation, - LinkPartnerHandlePrintString, - LinkPartnerHandlePrintSelectionString, - LinkPartnerHandleChooseAction, - LinkPartnerHandleUnknownYesNoBox, - LinkPartnerHandleChooseMove, - LinkPartnerHandleChooseItem, - LinkPartnerHandleChoosePokemon, - LinkPartnerHandleCmd23, - LinkPartnerHandleHealthBarUpdate, - LinkPartnerHandleExpUpdate, - LinkPartnerHandleStatusIconUpdate, - LinkPartnerHandleStatusAnimation, - LinkPartnerHandleStatusXor, - LinkPartnerHandleDataTransfer, - LinkPartnerHandleDMA3Transfer, - LinkPartnerHandlePlayBGM, - LinkPartnerHandleCmd32, - LinkPartnerHandleTwoReturnValues, - LinkPartnerHandleChosenMonReturnValue, - LinkPartnerHandleOneReturnValue, - LinkPartnerHandleOneReturnValue_Duplicate, - LinkPartnerHandleCmd37, - LinkPartnerHandleCmd38, - LinkPartnerHandleCmd39, - LinkPartnerHandleCmd40, - LinkPartnerHandleHitAnimation, - LinkPartnerHandleCmd42, - LinkPartnerHandlePlaySE, - LinkPartnerHandlePlayFanfare, - LinkPartnerHandleFaintingCry, - LinkPartnerHandleIntroSlide, - LinkPartnerHandleIntroTrainerBallThrow, - LinkPartnerHandleDrawPartyStatusSummary, - LinkPartnerHandleHidePartyStatusSummary, - LinkPartnerHandleEndBounceEffect, - LinkPartnerHandleSpriteInvisibility, - LinkPartnerHandleBattleAnimation, - LinkPartnerHandleLinkStandbyMsg, - LinkPartnerHandleResetActionMoveSelection, - LinkPartnerHandleCmd55, - LinkPartnerCmdEnd + [CONTROLLER_GETMONDATA] = LinkPartnerHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = LinkPartnerHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = LinkPartnerHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = LinkPartnerHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = LinkPartnerHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = LinkPartnerHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = LinkPartnerHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = LinkPartnerHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = LinkPartnerHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = LinkPartnerHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = LinkPartnerHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = LinkPartnerHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = LinkPartnerHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = LinkPartnerHandleBallThrowAnim, + [CONTROLLER_PAUSE] = LinkPartnerHandlePause, + [CONTROLLER_MOVEANIMATION] = LinkPartnerHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = LinkPartnerHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = LinkPartnerHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = LinkPartnerHandleChooseAction, + [CONTROLLER_UNKNOWNYESNOBOX] = LinkPartnerHandleUnknownYesNoBox, + [CONTROLLER_CHOOSEMOVE] = LinkPartnerHandleChooseMove, + [CONTROLLER_OPENBAG] = LinkPartnerHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = LinkPartnerHandleChoosePokemon, + [CONTROLLER_23] = LinkPartnerHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = LinkPartnerHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = LinkPartnerHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = LinkPartnerHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = LinkPartnerHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = LinkPartnerHandleStatusXor, + [CONTROLLER_DATATRANSFER] = LinkPartnerHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = LinkPartnerHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = LinkPartnerHandlePlayBGM, + [CONTROLLER_32] = LinkPartnerHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = LinkPartnerHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = LinkPartnerHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = LinkPartnerHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = LinkPartnerHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = LinkPartnerHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = LinkPartnerHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = LinkPartnerHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = LinkPartnerHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = LinkPartnerHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = LinkPartnerHandleCantSwitch, + [CONTROLLER_PLAYSE] = LinkPartnerHandlePlaySE, + [CONTROLLER_PLAYFANFARE] = LinkPartnerHandlePlayFanfare, + [CONTROLLER_FAINTINGCRY] = LinkPartnerHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = LinkPartnerHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = LinkPartnerHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = LinkPartnerHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = LinkPartnerHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = LinkPartnerHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = LinkPartnerHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = LinkPartnerHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = LinkPartnerHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = LinkPartnerHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = LinkPartnerHandleEndLinkBattle, + [CONTROLLER_TERMINATOR_NOP] = LinkPartnerCmdEnd }; static void LinkPartnerDummy(void) @@ -157,7 +157,7 @@ static void LinkPartnerBufferRunCommand(void) { if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBattler][0] < NELEMS(sLinkPartnerBufferCommands)) + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkPartnerBufferCommands)) sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkPartnerBufferExecCompleted(); @@ -174,7 +174,7 @@ static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - BattleGfxSfxDummy3(0); + BattleGfxSfxDummy3(MALE); FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); @@ -183,7 +183,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; LinkPartnerBufferExecCompleted(); @@ -192,21 +192,23 @@ static void Intro_DelayAndEnd(void) static void Intro_WaitForHealthbox(void) { - bool32 var = FALSE; + bool32 finished = FALSE; if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - var = TRUE; + finished = TRUE; } else if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - var = TRUE; + finished = TRUE; } + if (IsCryPlayingOrClearCrySongs()) - var = FALSE; - if (var) + finished = FALSE; + + if (finished) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; @@ -216,29 +218,33 @@ static void Intro_WaitForHealthbox(void) static void Intro_ShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) { - if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; + + if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; - if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], - &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], - HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); - } - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], - &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; - gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; + + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); + + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } + + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], + HEALTHBOX_ALL); + StartHealthboxSlideIn(gActiveBattler); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; } } @@ -253,6 +259,7 @@ static void CompleteOnHealthbarDone(void) s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + if (hpValue != -1) { UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); @@ -288,7 +295,7 @@ static void FreeMonSpriteAfterSwitchOutAnim(void) static void CompleteOnInactiveTextPrinter(void) { - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(B_WIN_MSG)) LinkPartnerBufferExecCompleted(); } @@ -305,9 +312,9 @@ static void DoHitAnimBlinkSpriteEffect(void) } else { - if (!(gSprites[spriteId].data[1] % 4)) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - ++gSprites[spriteId].data[1]; + gSprites[spriteId].data[1]++; } } @@ -317,6 +324,7 @@ static void SwitchIn_ShowSubstitute(void) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_WaitAndEnd; } } @@ -324,7 +332,9 @@ static void SwitchIn_ShowSubstitute(void) static void SwitchIn_WaitAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) + { LinkPartnerBufferExecCompleted(); + } } static void SwitchIn_ShowHealthbox(void) @@ -332,9 +342,11 @@ static void SwitchIn_ShowHealthbox(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); + CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); @@ -349,8 +361,11 @@ static void SwitchIn_ShowHealthbox(void) static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + { TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); + } + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { @@ -394,21 +409,21 @@ static void LinkPartnerHandleGetMonData(void) u8 monToCheck; s32 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { size += CopyLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) size += CopyLinkPartnerMonData(i, monData + size); monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); LinkPartnerBufferExecCompleted(); } @@ -427,7 +442,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); battleMon.item = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM); - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { battleMon.moves[size] = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + size); battleMon.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size); @@ -458,7 +473,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; - for (size = 0; size < sizeof(battleMon); ++size) + for (size = 0; size < sizeof(battleMon); size++) dst[size] = src[size]; break; case REQUEST_SPECIES_BATTLE: @@ -474,14 +489,14 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_MOVES_PP_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { moveData.moves[size] = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + size); moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size); } moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES); src = (u8 *)(&moveData); - for (size = 0; size < sizeof(moveData); ++size) + for (size = 0; size < sizeof(moveData); size++) dst[size] = src[size]; break; case REQUEST_MOVE1_BATTLE: @@ -494,10 +509,10 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_PP_DATA_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) dst[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size); dst[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES); - ++size; + size++; break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: @@ -714,6 +729,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) size = 1; break; } + return size; } @@ -727,14 +743,14 @@ static void LinkPartnerHandleSetMonData(void) u8 monToCheck; u8 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { SetLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler]); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) SetLinkPartnerMonData(i); @@ -758,7 +774,7 @@ static void SetLinkPartnerMonData(u8 monId) SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &battlePokemon->species); SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &battlePokemon->item); - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]); SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + i, &battlePokemon->pp[i]); @@ -797,7 +813,7 @@ static void SetLinkPartnerMonData(u8 monId) SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + i, &moveData->moves[i]); SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + i, &moveData->pp[i]); @@ -958,6 +974,7 @@ static void SetLinkPartnerMonData(u8 monId) SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } @@ -966,8 +983,9 @@ static void LinkPartnerHandleSetRawMonData(void) u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = gBattleBufferA[gActiveBattler][3 + i]; + LinkPartnerBufferExecCompleted(); } @@ -978,6 +996,7 @@ static void LinkPartnerHandleLoadMonSprite(void) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), @@ -1007,23 +1026,29 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); + gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], gBattleMonForms[battlerId]); + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void LinkPartnerHandleReturnMonToBall(void) { - if (!gBattleBufferA[gActiveBattler][1]) + if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; @@ -1044,6 +1069,7 @@ static void DoSwitchOutAnimation(void) case 0: if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: @@ -1057,6 +1083,8 @@ static void DoSwitchOutAnimation(void) } } +#define sSpeedX data[0] + static void LinkPartnerHandleDrawTrainerPic(void) { s16 xPos; @@ -1066,22 +1094,32 @@ static void LinkPartnerHandleDrawTrainerPic(void) xPos = 90; else // First mon, on the left. xPos = 32; + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 2; + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; + } else - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 0; + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; + } + DecompressTrainerBackPalette(trainerPicId, gActiveBattler); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler)); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void LinkPartnerHandleTrainerSlide(void) { LinkPartnerBufferExecCompleted(); @@ -1098,13 +1136,16 @@ static void LinkPartnerHandleTrainerSlideBack(void) gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } +#define sSpeedX data[1] +#define sSpeedY data[2] + static void LinkPartnerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { @@ -1113,14 +1154,17 @@ static void LinkPartnerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); - gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedY = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintSlideAnim; gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterFaintAnim; } } } +#undef sSpeedX +#undef sSpeedY + static void LinkPartnerHandlePaletteFade(void) { LinkPartnerBufferExecCompleted(); @@ -1175,7 +1219,7 @@ static void LinkPartnerDoMoveAnimation(void) { case 0: if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); @@ -1271,6 +1315,7 @@ static void LinkPartnerHandleHealthBarUpdate(void) LoadBattleBarGfx(0); hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); + if (hpVal != INSTANT_HP_BAR_DROP) { u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); @@ -1284,6 +1329,7 @@ static void LinkPartnerHandleHealthBarUpdate(void) SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } @@ -1360,25 +1406,25 @@ static void LinkPartnerHandleOneReturnValue_Duplicate(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd37(void) +static void LinkPartnerHandleClearUnkVar(void) { gUnusedControllerStruct.unk = 0; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd38(void) +static void LinkPartnerHandleSetUnkVar(void) { gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd39(void) +static void LinkPartnerHandleClearUnkFlag(void) { gUnusedControllerStruct.flag = 0; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd40(void) +static void LinkPartnerHandleToggleUnkFlag(void) { gUnusedControllerStruct.flag ^= 1; LinkPartnerBufferExecCompleted(); @@ -1399,7 +1445,7 @@ static void LinkPartnerHandleHitAnimation(void) } } -static void LinkPartnerHandleCmd42(void) +static void LinkPartnerHandleCantSwitch(void) { LinkPartnerBufferExecCompleted(); } @@ -1412,6 +1458,7 @@ static void LinkPartnerHandlePlaySE(void) pan = SOUND_PAN_ATTACKER; else pan = SOUND_PAN_TARGET; + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkPartnerBufferExecCompleted(); } @@ -1444,26 +1491,38 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) u32 trainerPicId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); + paletteNum = AllocSpritePalette(0xD6F9); if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 2; + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; + } else - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 0; + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; + } + LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = LinkPartnerDummy; } @@ -1472,7 +1531,7 @@ static void Task_StartSendOutAnim(u8 taskId) { if (gTasks[taskId].data[1] < 24) { - ++gTasks[taskId].data[1]; + gTasks[taskId].data[1]++; } else { @@ -1502,7 +1561,7 @@ static void Task_StartSendOutAnim(u8 taskId) static void LinkPartnerHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBattler][1] && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { LinkPartnerBufferExecCompleted(); } @@ -1512,7 +1571,7 @@ static void LinkPartnerHandleDrawPartyStatusSummary(void) gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; - if (gBattleBufferA[gActiveBattler][2]) // Skip delay on battle start + if (gBattleBufferA[gActiveBattler][2] != 0) // Skip delay on battle start gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; @@ -1574,7 +1633,7 @@ static void LinkPartnerHandleResetActionMoveSelection(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd55(void) +static void LinkPartnerHandleEndLinkBattle(void) { gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index 9b96c09bb..f3b731d70 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -443,9 +443,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); @@ -987,7 +987,7 @@ static void OakOldManHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); OakOldManBufferExecCompleted(); } @@ -1575,20 +1575,20 @@ static void OakOldManHandleDrawTrainerPic(void) { if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); } else { - DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_OLD_MAN, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_OLD_MAN, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_OLD_MAN].size) * 4 + 80, 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1602,20 +1602,20 @@ static void OakOldManHandleTrainerSlide(void) { if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); } else { - DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_OLD_MAN, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_OLD_MAN, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_OLD_MAN].size) * 4 + 80, 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -2087,7 +2087,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void) StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 3bf41a8b8..88eeda2a2 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -200,7 +200,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; OpponentBufferExecCompleted(); @@ -226,9 +226,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -282,7 +282,7 @@ static void TryShinyAnimAfterMonAnim(void) else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); OpponentBufferExecCompleted(); @@ -383,7 +383,7 @@ static void SwitchIn_ShowHealthbox(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); @@ -447,7 +447,7 @@ static void OpponentHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); OpponentBufferExecCompleted(); } @@ -765,7 +765,7 @@ static void OpponentHandleGetRawMonData(void) for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) dst[i] = src[i]; - BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(BUFFER_B, gBattleBufferA[gActiveBattler][2], dst); OpponentBufferExecCompleted(); } @@ -1027,7 +1027,7 @@ static void OpponentHandleLoadMonSprite(void) DecompressGhostFrontPic(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); y = GetGhostSpriteDefault_Y(gActiveBattler); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = TRUE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = TRUE; } else { @@ -1682,7 +1682,7 @@ static void OpponentHandleDrawPartyStatusSummary(void) } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE; if (gBattleBufferA[gActiveBattler][2]) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 312a050ec..96c69ce80 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -863,7 +863,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; PlayerBufferExecCompleted(); @@ -891,9 +891,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -942,7 +942,7 @@ static void SwitchIn_CleanShinyAnimShowSubstitute(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) @@ -1505,7 +1505,7 @@ static void PlayerHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); PlayerBufferExecCompleted(); } @@ -1824,7 +1824,7 @@ void PlayerHandleGetRawMonData(void) for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) dst[i] = src[i]; - BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(BUFFER_B, gBattleBufferA[gActiveBattler][2], dst); PlayerBufferExecCompleted(); } @@ -2176,13 +2176,13 @@ static void PlayerHandleDrawTrainerPic(void) if ((gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_SAPPHIRE || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; else - trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetMultiplayerId()].gender; } else { - trainerPicId = gSaveBlock2Ptr->playerGender + BACK_PIC_RED; + trainerPicId = gSaveBlock2Ptr->playerGender; } DecompressTrainerBackPalette(trainerPicId, gActiveBattler); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); @@ -2774,7 +2774,7 @@ static void PlayerHandleDrawPartyStatusSummary(void) } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE; gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleBufferA[gActiveBattler][2] != 0) diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 487d100ee..2940931e5 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -240,7 +240,7 @@ static void CompleteOnBattlerSpritePosX_0(void) else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); PokedudeBufferExecCompleted(); @@ -280,7 +280,7 @@ static void SwitchIn_CleanShinyAnimShowSubstitute(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) @@ -424,9 +424,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); @@ -730,7 +730,7 @@ static void PokedudeHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); PokedudeBufferExecCompleted(); } @@ -1351,11 +1351,11 @@ static void PokedudeHandleDrawTrainerPic(void) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_POKEDUDE, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_POKEDUDE].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; @@ -1384,11 +1384,11 @@ static void PokedudeHandleDrawTrainerPic(void) static void PokedudeHandleTrainerSlide(void) { - DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_POKEDUDE, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_POKEDUDE].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -96; @@ -1859,7 +1859,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void) StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 6b03f25d3..a641c3c4f 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1117,7 +1117,7 @@ void BtlController_EmitPlaySE(u8 bufferId, u16 songId) void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId) { - sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFARE; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 1ea8f84fd..6b5df698e 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -452,7 +452,7 @@ void DecompressTrainerBackPalette(u16 index, u8 palette) LoadCompressedPalette(gTrainerBackPicPaletteTable[index].data, (palette + 16) * 16, 0x20); } -void BattleGfxSfxDummy3(u8 a1) +void BattleGfxSfxDummy3(u8 gender) { } diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h index 4d0c129a8..116dd02de 100644 --- a/src/data/trainer_graphics/back_pic_tables.h +++ b/src/data/trainer_graphics/back_pic_tables.h @@ -1,10 +1,10 @@ const struct MonCoords gTrainerBackPicCoords[] = { - {.size = 8, .y_offset = 5}, - {.size = 8, .y_offset = 5}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4} + [TRAINER_BACK_PIC_RED] = {.size = 8, .y_offset = 5}, + [TRAINER_BACK_PIC_LEAF] = {.size = 8, .y_offset = 5}, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_POKEDUDE] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_OLD_MAN] = {.size = 8, .y_offset = 4} }; const struct CompressedSpriteSheet gTrainerBackPicTable[] = { diff --git a/src/pokemon.c b/src/pokemon.c index 60a7a8d0d..c2b69c28a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1506,9 +1506,9 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] = }, }; -const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = +static const struct SpriteTemplate sTrainerBackSpriteTemplates[] = { - { + [TRAINER_BACK_PIC_RED] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1517,7 +1517,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_LEAF] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1526,7 +1526,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1535,7 +1535,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1544,7 +1544,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_POKEDUDE] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1553,7 +1553,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_OLD_MAN] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -2755,7 +2755,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { - gMultiuseSpriteTemplate = gSpriteTemplates_TrainerBackpics[trainerSpriteId]; + gMultiuseSpriteTemplate = sTrainerBackSpriteTemplates[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 41335700f..124b6468a 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -202,9 +202,9 @@ static bool8 LoadBattlerSpriteGfx(u8 battler) BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. - DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, battler); + DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, battler); else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. - DecompressTrainerBackPalette(BACK_PIC_OLDMAN, battler); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_OLD_MAN, battler); else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler); else From 72f76b19b35273581f84467efb96a08b9dca6753 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 22 Aug 2022 20:27:23 -0400 Subject: [PATCH 042/105] Sync script.c --- asm/macros/event.inc | 2 +- include/script.h | 29 +++-- src/battle_setup.c | 32 +++--- src/berry_crush.c | 6 +- src/cable_club.c | 22 ++-- src/daycare.c | 6 +- src/dodrio_berry_picking.c | 2 +- src/event_object_movement.c | 2 +- src/field_control_avatar.c | 34 +++--- src/field_effect.c | 44 ++++---- src/field_fadetransition.c | 74 ++++++------- src/field_player_avatar.c | 20 ++-- src/field_poison.c | 4 +- src/field_screen_effect.c | 12 +-- src/field_specials.c | 24 ++--- src/field_tasks.c | 2 +- src/field_weather_effects.c | 2 +- src/fldeff_cut.c | 6 +- src/fldeff_flash.c | 2 +- src/fldeff_rocksmash.c | 6 +- src/fldeff_strength.c | 4 +- src/fldeff_sweetscent.c | 2 +- src/hof_pc.c | 4 +- src/item_menu.c | 4 +- src/item_use.c | 8 +- src/itemfinder.c | 8 +- src/learn_move.c | 2 +- src/map_preview_screen.c | 2 +- src/mevent_client.c | 2 +- src/mystery_event_script.c | 2 +- src/new_game.c | 2 +- src/overworld.c | 80 +++++++------- src/party_menu.c | 4 +- src/party_menu_specials.c | 4 +- src/player_pc.c | 4 +- src/pokemon_jump.c | 2 +- src/pokemon_storage_system_2.c | 6 +- src/quest_log.c | 20 ++-- src/quest_log_player.c | 6 +- src/rfu_union_tool.c | 2 +- src/safari_zone.c | 10 +- src/scrcmd.c | 40 +++---- src/script.c | 190 +++++++++++++++++++-------------- src/script_menu.c | 8 +- src/shop.c | 6 +- src/ss_anne.c | 2 +- src/start_menu.c | 10 +- src/trade_scene.c | 2 +- src/trainer_see.c | 2 +- src/union_room.c | 18 ++-- src/vs_seeker.c | 4 +- src/wild_encounter.c | 2 +- 52 files changed, 408 insertions(+), 385 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 55c6469a8..50115b361 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -285,7 +285,7 @@ .endm @ Blocks script execution until a command or C code manually unblocks it. Generally used with specific - @ commands and specials. Calling EnableBothScriptContexts for instance will allow execution to continue. + @ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue. .macro waitstate .byte 0x27 .endm diff --git a/include/script.h b/include/script.h index cd3268181..2a3c727c9 100644 --- a/include/script.h +++ b/include/script.h @@ -28,26 +28,21 @@ u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)); void StopScript(struct ScriptContext *ctx); bool8 RunScriptCommand(struct ScriptContext *ctx); -u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); -const u8 *ScriptPop(struct ScriptContext *ctx); void ScriptJump(struct ScriptContext *ctx, const u8 *ptr); void ScriptCall(struct ScriptContext *ctx, const u8 *ptr); void ScriptReturn(struct ScriptContext *ctx); u16 ScriptReadHalfword(struct ScriptContext *ctx); u32 ScriptReadWord(struct ScriptContext *ctx); -void ScriptContext2_Enable(void); -void ScriptContext2_Disable(void); -bool8 ScriptContext2_IsEnabled(void); -void ScriptContext1_Init(void); -bool8 ScriptContext1_IsScriptSetUp(void); -bool8 ScriptContext2_RunScript(void); -void ScriptContext1_SetupScript(const u8 *ptr); -void ScriptContext1_Stop(void); -void EnableBothScriptContexts(void); -void ScriptContext2_RunNewScript(const u8 *ptr); -u8 *mapheader_get_tagged_pointer(u8 tag); -void mapheader_run_script_by_tag(u8 tag); -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag); +void LockPlayerFieldControls(void); +void UnlockPlayerFieldControls(void); +bool8 ArePlayerFieldControlsLocked(void); +void ScriptContext_Init(void); +bool8 ScriptContext_IsEnabled(void); +bool8 ScriptContext_RunScript(void); +void ScriptContext_SetupScript(const u8 *ptr); +void ScriptContext_Stop(void); +void ScriptContext_Enable(void); +void RunScriptImmediately(const u8 *ptr); void RunOnLoadMapScript(void); void RunOnTransitionMapScript(void); void RunOnResumeMapScript(void); @@ -60,7 +55,7 @@ void ClearRamScript(void); bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); const u8 *GetRamScript(u8 objectId, const u8 *script); bool32 ValidateRamScript(void); -void MEventSetRamScript(u8 * script, u16 scriptSize); +void InitRamScript_NoObjectEvent(u8 * script, u16 scriptSize); u8 * GetSavedRamScriptIfValid(void); void RegisterQuestLogInput(u8 var); void ClearMsgBoxCancelableState(void); @@ -77,7 +72,7 @@ bool8 CanWalkAwayToCancelMsgBox(void); void SetWalkingIntoSignVars(void); bool8 IsMsgBoxWalkawayDisabled(void); -extern const u8 *gRAMScriptPtr; +extern const u8 *gRamScriptRetAddr; extern u8 gWalkAwayFromSignInhibitTimer; #endif // GUARD_SCRIPT_H diff --git a/src/battle_setup.c b/src/battle_setup.c index 9f99defd5..375ba3d43 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -236,7 +236,7 @@ void StartWildBattle(void) static void DoStandardWildBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndWildBattle; @@ -248,7 +248,7 @@ static void DoStandardWildBattle(void) void StartRoamerBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndWildBattle; @@ -260,7 +260,7 @@ void StartRoamerBattle(void) static void DoSafariBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndSafariBattle; @@ -270,7 +270,7 @@ static void DoSafariBattle(void) static void DoGhostBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndWildBattle; @@ -291,7 +291,7 @@ static void DoTrainerBattle(void) void StartOldManTutorialBattle(void) { CreateMaleMon(&gEnemyParty[0], SPECIES_WEEDLE, 5); - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic; gBattleTypeFlags = BATTLE_TYPE_OLD_MAN_TUTORIAL; CreateBattleStartTask(B_TRANSITION_SLICED_SCREEN, 0); @@ -299,7 +299,7 @@ void StartOldManTutorialBattle(void) void StartScriptedWildBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_WILD_SCRIPTED; CreateBattleStartTask(GetWildBattleTransition(), 0); @@ -309,7 +309,7 @@ void StartScriptedWildBattle(void) void StartMarowakBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndMarowakBattle; if (CheckBagHasItem(ITEM_SILPH_SCOPE, 1)) { @@ -328,7 +328,7 @@ void StartMarowakBattle(void) void StartSouthernIslandBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; CreateBattleStartTask(GetWildBattleTransition(), 0); @@ -340,7 +340,7 @@ void StartLegendaryBattle(void) { u16 species; - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_LEGENDARY_FRLG; species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES); @@ -369,7 +369,7 @@ void StartLegendaryBattle(void) void StartGroudonKyogreBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; if (gGameVersion == VERSION_FIRE_RED) @@ -382,7 +382,7 @@ void StartGroudonKyogreBattle(void) void StartRegiBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI; CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RS_VS_TRAINER); @@ -400,7 +400,7 @@ static void sub_807FAF8(void) // not used static void sub_807FB08(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = sub_807FAF8; @@ -823,8 +823,8 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerSc gSelectedObjectEvent = trainerEventObjId; gSpecialVar_LastTalked = gObjectEvents[trainerEventObjId].localId; BattleSetup_ConfigureTrainerBattle(trainerScript + 1); - ScriptContext1_SetupScript(EventScript_DoTrainerBattleFromApproach); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_DoTrainerBattleFromApproach); + LockPlayerFieldControls(); } bool32 GetTrainerFlagFromScriptPointer(const u8 *data) @@ -889,7 +889,7 @@ void StartTrainerBattle(void) gBattleTypeFlags |= BATTLE_TYPE_FIRST_BATTLE; gMain.savedCallback = CB2_EndTrainerBattle; DoTrainerBattle(); - ScriptContext1_Stop(); + ScriptContext_Stop(); } static void CB2_EndTrainerBattle(void) @@ -964,7 +964,7 @@ void StartRematchBattle(void) gBattleTypeFlags = BATTLE_TYPE_TRAINER; gMain.savedCallback = CB2_EndRematchBattle; DoTrainerBattle(); - ScriptContext1_Stop(); + ScriptContext_Stop(); } void ShowTrainerIntroSpeech(void) diff --git a/src/berry_crush.c b/src/berry_crush.c index 7843ce5cb..b21158cbb 100644 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -3178,8 +3178,8 @@ static void Task_ShowBerryCrushRankings(u8 taskId) ClearWindowTilemap(tWindowId); RemoveWindow(tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); - ScriptContext2_Disable(); + ScriptContext_Enable(); + UnlockPlayerFieldControls(); tState = 0; return; } @@ -3190,7 +3190,7 @@ void ShowBerryCrushRankings(void) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); taskId = CreateTask(Task_ShowBerryCrushRankings, 0); gTasks[taskId].tPressingSpeeds(0) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[0]; gTasks[taskId].tPressingSpeeds(1) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[1]; diff --git a/src/cable_club.c b/src/cable_club.c index e4238bb40..42bf2bc59 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -405,7 +405,7 @@ static void Task_Linkup_6a(u8 taskId) if (gLinkType == LINKTYPE_BERRY_BLENDER_SETUP) *UnusedVarNeededToMatch += 0; DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } else @@ -421,7 +421,7 @@ static void Task_Linkup_7(u8 taskId) if (!gReceivedRemoteLinkPlayers) { DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); - EnableBothScriptContexts(); + ScriptContext_Enable(); RemoveWindow(gTasks[taskId].data[5]); DestroyTask(taskId); } @@ -432,7 +432,7 @@ static void Task_Linkup_Canceled(u8 taskId) gSpecialVar_Result = 5; DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); HideFieldMessageBox(); - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } @@ -441,7 +441,7 @@ static void Task_Linkup_ErroredOut(u8 taskId) gSpecialVar_Result = 6; DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); HideFieldMessageBox(); - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } @@ -807,7 +807,7 @@ static void Task_EnterCableClubSeat(u8 taskId) SetLinkWaitingForScript(); sub_80F771C(TRUE); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); break; } } @@ -816,7 +816,7 @@ static void CreateEnterCableClubSeatTaskWithFollowupFunc(TaskFunc followUpFunc) { u8 taskId = CreateTask(Task_EnterCableClubSeat, 80); SetTaskFuncWithFollowupFunc(taskId, Task_EnterCableClubSeat, followUpFunc); - ScriptContext1_Stop(); + ScriptContext_Stop(); } static void Task_StartWiredCableClubTrade(u8 taskId) @@ -825,7 +825,7 @@ static void Task_StartWiredCableClubTrade(u8 taskId) switch (task->data[0]) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeScreen(FADE_TO_BLACK, 0); ClearLinkCallback_2(); task->data[0]++; @@ -857,7 +857,7 @@ static void Task_StartWirelessCableClubTrade(u8 taskId) switch (data[0]) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeScreen(FADE_TO_BLACK, 0); ClearLinkRfuCallback(); data[0]++; @@ -899,7 +899,7 @@ static void CreateTask_StartWiredCableClubTrade(void) void StartWiredCableClubTrade(void) { CreateTask_StartWiredCableClubTrade(); - ScriptContext1_Stop(); + ScriptContext_Stop(); } void EnterColosseumPlayerSpot(void) @@ -914,7 +914,7 @@ void EnterColosseumPlayerSpot(void) static void Debug_CreateTaskEnterCableClubSeat(void) { CreateTask(Task_EnterCableClubSeat, 80); - ScriptContext1_Stop(); + ScriptContext_Stop(); } void Script_ShowLinkTrainerCard(void) @@ -952,7 +952,7 @@ static void sub_8081AE4(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } } diff --git a/src/daycare.c b/src/daycare.c index f45aaceff..5c7e8ee9a 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1515,7 +1515,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } else if (gMain.newKeys & B_BUTTON) { @@ -1524,7 +1524,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -1756,7 +1756,7 @@ static void VBlankCB_EggHatch(void) void EggHatch(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_EggHatch, 10); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0); HelpSystem_Disable(); diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 24f5bc8e6..69b42f24a 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2984,7 +2984,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId) { RemoveWindow(tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } break; } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3c2707173..c7f6b24f0 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1690,7 +1690,7 @@ void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callba do { - if (ScriptContext1_IsScriptSetUp() != TRUE && sub_8112CAC() == TRUE) + if (ScriptContext_IsEnabled() != TRUE && sub_8112CAC() == TRUE) spriteTemplate->callback = sub_811246C; else spriteTemplate->callback = callback; diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 9b3d23fe7..949369b77 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -97,7 +97,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) u8 tileTransitionState = gPlayerAvatar.tileTransitionState; bool8 forcedMove = MetatileBehavior_IsForcedMovementTile(GetPlayerCurMetatileBehavior()); - if (!ScriptContext1_IsScriptSetUp() && IsQuestLogInputDpad() == TRUE) + if (!ScriptContext_IsEnabled() && IsQuestLogInputDpad() == TRUE) { QuestLogOverrideJoyVars(input, &newKeys, &heldKeys); } @@ -300,7 +300,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) void FieldInput_HandleCancelSignpost(struct FieldInput * input) { - if (ScriptContext1_IsScriptSetUp() == TRUE) + if (ScriptContext_IsEnabled() == TRUE) { if (gWalkAwayFromSignInhibitTimer != 0) gWalkAwayFromSignInhibitTimer--; @@ -318,13 +318,13 @@ void FieldInput_HandleCancelSignpost(struct FieldInput * input) RegisterQuestLogInput(QL_INPUT_LEFT); else if (input->dpadDirection == DIR_EAST) RegisterQuestLogInput(QL_INPUT_RIGHT); - ScriptContext1_SetupScript(EventScript_CancelMessageBox); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_CancelMessageBox); + LockPlayerFieldControls(); } else if (input->pressedStartButton) { - ScriptContext1_SetupScript(EventScript_CancelMessageBox); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_CancelMessageBox); + LockPlayerFieldControls(); if (!FuncIsActiveTask(Task_QuestLogPlayback_OpenStartMenu)) CreateTask(Task_QuestLogPlayback_OpenStartMenu, 8); } @@ -334,7 +334,7 @@ void FieldInput_HandleCancelSignpost(struct FieldInput * input) static void Task_QuestLogPlayback_OpenStartMenu(u8 taskId) { - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { PlaySE(SE_WIN_OPEN); ShowStartMenu(); @@ -379,7 +379,7 @@ static bool8 TryStartInteractionScript(struct MapPosition *position, u16 metatil && script != EventScript_PC) PlaySE(SE_SELECT); - ScriptContext1_SetupScript(script); + ScriptContext_SetupScript(script); return TRUE; } @@ -636,7 +636,7 @@ static bool8 TryStartCoordEventScript(struct MapPosition *position) if (script == NULL) return FALSE; - ScriptContext1_SetupScript(script); + ScriptContext_SetupScript(script); return TRUE; } @@ -659,18 +659,18 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) { if (UpdateVsSeekerStepCounter() == TRUE) { - ScriptContext1_SetupScript(EventScript_VsSeekerChargingDone); + ScriptContext_SetupScript(EventScript_VsSeekerChargingDone); return TRUE; } else if (UpdatePoisonStepCounter() == TRUE) { - ScriptContext1_SetupScript(EventScript_FieldPoison); + ScriptContext_SetupScript(EventScript_FieldPoison); return TRUE; } else if (ShouldEggHatch()) { IncrementGameStat(GAME_STAT_HATCHED_EGGS); - ScriptContext1_SetupScript(EventScript_EggHatch); + ScriptContext_SetupScript(EventScript_EggHatch); return TRUE; } } @@ -807,7 +807,7 @@ static u8 GetFacingSignpostType(u16 metatileBehavior, u8 playerDirection) static void SetUpWalkIntoSignScript(const u8 *script, u8 playerDirection) { gSpecialVar_Facing = playerDirection; - ScriptContext1_SetupScript(script); + ScriptContext_SetupScript(script); SetWalkingIntoSignVars(); MsgSetSignPost(); } @@ -889,7 +889,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB if (MetatileBehavior_IsFallWarp(metatileBehavior) == TRUE) { ResetInitialPlayerAvatarState(); - ScriptContext1_SetupScript(EventScript_1C1361); + ScriptContext_SetupScript(EventScript_1C1361); return TRUE; } DoWarp(); @@ -1033,7 +1033,7 @@ static const u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent) } if (coordEvent->trigger == 0) { - ScriptContext2_RunNewScript(coordEvent->script); + RunScriptImmediately(coordEvent->script); return NULL; } if (VarGet(coordEvent->trigger) == (u8)coordEvent->index) @@ -1086,8 +1086,8 @@ void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y) if (events[i].x + 7 == x && events[i].y + 7 == y) { QuestLog_CutRecording(); - ScriptContext1_SetupScript(events[i].script); - ScriptContext2_Enable(); + ScriptContext_SetupScript(events[i].script); + LockPlayerFieldControls(); } } } diff --git a/src/field_effect.c b/src/field_effect.c index 541ceba13..f30774815 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1071,7 +1071,7 @@ static void FieldCallback_UseFly(void) { FadeInFromBlack(); CreateTask(Task_UseFly, 0); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; } @@ -1108,7 +1108,7 @@ static void FieldCallback_FlyIntoMap(void) gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_WEST); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; } @@ -1126,7 +1126,7 @@ static void Task_FlyIntoMap(u8 taskId) } if (!FieldEffectActiveListContains(FLDEFF_FLY_IN)) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroyTask(taskId); } @@ -1156,7 +1156,7 @@ void FieldCB_FallWarpExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CreateTask(Task_FallWarpFieldEffect, 0); gFieldCallback = NULL; @@ -1274,7 +1274,7 @@ static bool8 FallWarpEffect_7(struct Task *task) { s16 x, y; gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); CameraObjectReset1(); UnfreezeObjectEvents(); InstallCameraPanAheadCallback(); @@ -1459,7 +1459,7 @@ static void FieldCB_EscalatorWarpIn(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CreateTask(Task_EscalatorWarpInFieldEffect, 0); gFieldCallback = NULL; @@ -1576,7 +1576,7 @@ static bool8 EscalatorWarpInEffect_7(struct Task *task) if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { CameraObjectReset1(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); ObjectEventSetHeldMovement(objectEvent, GetWalkNormalMovementAction(DIR_EAST)); DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpInFieldEffect)); @@ -1617,7 +1617,7 @@ static void Task_UseWaterfall(u8 taskId) static bool8 waterfall_0_setup(struct Task *task, struct ObjectEvent * playerObj) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; @@ -1625,7 +1625,7 @@ static bool8 waterfall_0_setup(struct Task *task, struct ObjectEvent * playerObj static bool8 waterfall_1_do_anim_probably(struct Task *task, struct ObjectEvent * playerObj) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); if (!ObjectEventIsMovementOverridden(playerObj)) { ObjectEventClearHeldMovementIfFinished(playerObj); @@ -1660,7 +1660,7 @@ static bool8 waterfall_4_wait_player_move_probably(struct Task *task, struct Obj task->data[0] = 3; return TRUE; } - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(Task_UseWaterfall)); FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL); @@ -1702,7 +1702,7 @@ static bool8 DiveFieldEffect_Init(struct Task *task) static bool8 DiveFieldEffect_ShowMon(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldEffectArguments[0] = task->data[15]; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); task->data[0]++; @@ -1869,7 +1869,7 @@ static void FieldCB_LavaridgeGymB1FWarpExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldCallback = NULL; CreateTask(Task_LavaridgeGymB1FWarpExit, 0); } @@ -1922,7 +1922,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *task, struct ObjectEve if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_LavaridgeGymB1FWarpExit)); } @@ -2084,7 +2084,7 @@ static void (*const sEscapeRopeWarpOutEffectFuncs[])(struct Task *task) = void StartEscapeRopeFieldEffect(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CreateTask(Task_EscapeRopeWarpOut, 80); } @@ -2270,7 +2270,7 @@ static void FieldCallback_EscapeRopeExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; @@ -2311,7 +2311,7 @@ static void EscapeRopeWarpInEffect_Spin(struct Task *task) { playerObj->invisible = FALSE; playerObj->fixedPriority = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpIn)); } @@ -2360,7 +2360,7 @@ static void Task_DoTeleportFieldEffect(u8 taskId) static void TeleportFieldEffectTask1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CameraObjectReset2(); task->data[15] = GetPlayerFacingDirection(); @@ -2447,7 +2447,7 @@ static void FieldCallback_TeleportIn(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; @@ -2528,7 +2528,7 @@ static void TeleportInFieldEffectTask3(struct Task *task) task->data[1] = 8; if ((++task->data[2]) > 4 && task->data[14] == objectEvent->facingDirection) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); CameraObjectReset1(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_DoTeleportInFieldEffect)); @@ -2997,7 +2997,7 @@ static void Task_FldEffUseSurf(u8 taskId) static void UseSurfEffect_1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); @@ -3058,7 +3058,7 @@ static void UseSurfEffect_5(struct Task *task) ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_PLAYER_AND_MON); UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); DestroyTask(FindTaskIdByFunc(Task_FldEffUseSurf)); SetHelpContext(HELPCONTEXT_SURFING); @@ -3093,7 +3093,7 @@ static void Task_FldEffUseVsSeeker(u8 taskId) static void UseVsSeekerEffect_1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; task->data[0]++; diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 31de46ab2..020798f46 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -137,7 +137,7 @@ static void Task_ContinueScriptUnionRoom(u8 taskId) void FieldCB_ContinueScriptUnionRoom(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); CreateTask(Task_ContinueScriptUnionRoom, 10); @@ -148,13 +148,13 @@ static void Task_ContinueScript(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } void FieldCB_ContinueScriptHandleMusic(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); CreateTask(Task_ContinueScript, 10); @@ -162,7 +162,7 @@ void FieldCB_ContinueScriptHandleMusic(void) void FieldCB_ContinueScript(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeInFromBlack(); CreateTask(Task_ContinueScript, 10); } @@ -186,7 +186,7 @@ static void Task_ReturnToFieldCableLink(u8 taskId) case 2: if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -195,7 +195,7 @@ static void Task_ReturnToFieldCableLink(u8 taskId) void FieldCB_ReturnToFieldCableLink(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); palette_bg_faded_fill_black(); CreateTask(Task_ReturnToFieldCableLink, 10); @@ -221,7 +221,7 @@ static void Task_ReturnToFieldRecordMixing(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { StartSendingKeysToLink(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -230,7 +230,7 @@ static void Task_ReturnToFieldRecordMixing(u8 taskId) void FieldCB_ReturnToFieldWirelessLink(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); palette_bg_faded_fill_black(); CreateTask(Task_ReturnToFieldRecordMixing, 10); @@ -290,7 +290,7 @@ void FieldCB_DefaultWarpExit(void) Overworld_PlaySpecialMapMusic(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); SetUpWarpExitTask(FALSE); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } void FieldCB_WarpExitFadeFromBlack(void) @@ -298,7 +298,7 @@ void FieldCB_WarpExitFadeFromBlack(void) Overworld_PlaySpecialMapMusic(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); SetUpWarpExitTask(TRUE); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void FieldCB_TeleportWarpIn(void) @@ -308,7 +308,7 @@ static void FieldCB_TeleportWarpIn(void) QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); PlaySE(SE_WARP_OUT); CreateTask(Task_TeleportWarpIn, 10); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void Task_ExitDoor(u8 taskId) @@ -393,7 +393,7 @@ static void Task_ExitDoor(u8 taskId) break; case 4: UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); break; } @@ -429,7 +429,7 @@ static void Task_ExitNonAnimDoor(u8 taskId) break; case 3: UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); break; } @@ -441,14 +441,14 @@ static void Task_ExitNonDoor(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); gTasks[taskId].data[0]++; break; case 1: if (FieldFadeTransitionBackgroundEffectIsFinished()) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -461,7 +461,7 @@ static void Task_TeleportWarpIn(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartTeleportInPlayerAnim(); gTasks[taskId].data[0]++; break; @@ -469,7 +469,7 @@ static void Task_TeleportWarpIn(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() && WaitTeleportInPlayerAnim() != TRUE) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -489,7 +489,7 @@ void FadeTransition_FadeInOnReturnToStartMenu(void) { FadeInFromBlack(); CreateTask(Task_WaitFadeAndCreateStartMenuTask, 80); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } bool8 FieldCB_ReturnToFieldOpenStartMenu(void) @@ -502,7 +502,7 @@ static void Task_SafariZoneRanOutOfBalls(u8 taskId) { if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); } @@ -510,7 +510,7 @@ static void Task_SafariZoneRanOutOfBalls(u8 taskId) void FieldCB_SafariZoneRanOutOfBalls(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); CreateTask(Task_SafariZoneRanOutOfBalls, 10); @@ -531,7 +531,7 @@ bool32 FieldFadeTransitionBackgroundEffectIsFinished(void) void DoWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); @@ -542,7 +542,7 @@ void DoWarp(void) void DoDiveWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); @@ -560,21 +560,21 @@ void DoStairWarp(u16 metatileBehavior, u16 delay) void DoDoorWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldCallback = FieldCB_DefaultWarpExit; CreateTask(Task_DoorWarp, 10); } void DoTeleport2Warp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_Teleport2Warp, 10); gFieldCallback = FieldCB_TeleportWarpIn; } void DoUnionRoomWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldCallback = FieldCB_DefaultWarpExit; CreateTask(Task_TeleportWarp, 10); } @@ -587,25 +587,25 @@ void DoFallWarp(void) void DoEscalatorWarp(u8 metatileBehavior) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartEscalatorWarp(metatileBehavior, 10); } void DoLavaridgeGymB1FWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartLavaridgeGymB1FWarp(10); } void DoLavaridgeGym1FWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartLavaridgeGym1FWarp(10); } void DoTeleportWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); CreateTask(Task_TeleportWarp, 10); gFieldCallback = FieldCB_TeleportWarpIn; @@ -613,7 +613,7 @@ void DoTeleportWarp(void) static void DoPortholeWarp(void) // Unused { - ScriptContext2_Enable(); + LockPlayerFieldControls(); WarpFadeOutScreen(); CreateTask(Task_Teleport2Warp, 10); gFieldCallback = nullsub_60; @@ -625,7 +625,7 @@ static void Task_CableClubWarp(u8 taskId) switch (task->data[0]) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); task->data[0]++; break; case 1: @@ -642,7 +642,7 @@ static void Task_CableClubWarp(u8 taskId) void DoCableClubWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlaySE(SE_EXIT); @@ -691,7 +691,7 @@ static void Task_Teleport2Warp(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); task->data[0]++; break; case 1: @@ -713,7 +713,7 @@ static void Task_TeleportWarp(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); PlaySE(SE_WARP_IN); StartTeleportWarpOutPlayerAnim(); task->data[0]++; @@ -796,7 +796,7 @@ static void Task_StairWarp(u8 taskId) switch (data[0]) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CameraObjectReset2(); data[0]++; @@ -898,14 +898,14 @@ static void Task_ExitStairs(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { CameraObjectReset1(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; case 0: Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); ExitStairsMovement(&data[1], &data[2], &data[3], &data[4], &data[5]); data[0]++; break; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index fd1c67ccd..41a5306c1 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1417,7 +1417,7 @@ static void Task_BumpBoulder(u8 taskId) static bool8 DoBoulderInit(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; @@ -1453,7 +1453,7 @@ static bool8 DoBoulderFinish(struct Task *task, struct ObjectEvent *playerObject HandleBoulderFallThroughHole(strengthObject); HandleBoulderActivateVictoryRoadSwitch(strengthObject->currentCoords.x, strengthObject->currentCoords.y); gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(FindTaskIdByFunc(Task_BumpBoulder)); } return FALSE; @@ -1518,7 +1518,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep0(struct Task *task, struct Objec task->data[0]++; task->data[1] = objectEvent->movementDirection; gPlayerAvatar.preventStep = TRUE; - ScriptContext2_Enable(); + LockPlayerFieldControls(); PlaySE(SE_WARP_IN); return TRUE; } @@ -1564,7 +1564,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct Objec if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { QL_TryRecordPlayerStepWithDuration0(objectEvent, GetWalkSlowerMovementAction(GetOppositeDirection(task->data[1]))); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin)); } @@ -1575,7 +1575,7 @@ static void CreateStopSurfingTask(u8 direction) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); Overworld_ClearSavedMusic(); Overworld_ChangeMusicToDefault(); @@ -1591,7 +1591,7 @@ void CreateStopSurfingTask_NoMusicChange(u8 direction) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_SURFING; gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_ON_FOOT; @@ -1633,7 +1633,7 @@ static void Task_WaitStopSurfing(u8 taskId) ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL)); QL_TryRecordPlayerStepWithDuration0(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection)); gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroySprite(&gSprites[playerObjEvent->fieldEffectSpriteId]); DestroyTask(taskId); @@ -1696,7 +1696,7 @@ static void Task_Fishing(u8 taskId) static bool8 Fishing1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; task->tStep++; return FALSE; @@ -1880,7 +1880,7 @@ static bool8 Fishing11(struct Task *task) if (task->tFrameCounter != 0) { gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); FishingWildEncounter(task->tFishingRod); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } @@ -1940,7 +1940,7 @@ static bool8 Fishing16(struct Task *task) if (!IsTextPrinterActive(0)) { gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); ClearDialogWindowAndFrame(0, TRUE); DestroyTask(FindTaskIdByFunc(Task_Fishing)); diff --git a/src/field_poison.c b/src/field_poison.c index 1e2a30c0c..f9f3d8142 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -77,7 +77,7 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) gSpecialVar_Result = TRUE; else gSpecialVar_Result = FALSE; - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); break; } @@ -86,7 +86,7 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) void TryFieldPoisonWhiteOut(void) { CreateTask(Task_TryFieldPoisonWhiteOut, 80); - ScriptContext1_Stop(); + ScriptContext_Stop(); } s32 DoPoisonFieldEffect(void) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index d827fc88e..52dc0ba55 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -154,7 +154,7 @@ static void sub_807EF7C(u8 taskId) { if (!FuncIsActiveTask(UpdateFlashLevelEffect)) { - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } } @@ -198,7 +198,7 @@ void AnimateFlash(u8 flashLevel) value = TRUE; sub_807EFC8(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 2); sub_807EFA4(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } void WriteFlashScanlineEffectBuffer(u8 flashLevel) @@ -221,7 +221,7 @@ static void Task_EnableScriptAfterMusicFade(u8 taskId) if (BGMusicStopped() == TRUE) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -435,14 +435,14 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { DestroyTask(taskId); - ScriptContext1_SetupScript(EventScript_AfterWhiteOutHeal); + ScriptContext_SetupScript(EventScript_AfterWhiteOutHeal); } break; case 6: if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { DestroyTask(taskId); - ScriptContext1_SetupScript(EventScript_AfterWhiteOutMomHeal); + ScriptContext_SetupScript(EventScript_AfterWhiteOutMomHeal); } break; } @@ -452,7 +452,7 @@ void FieldCB_RushInjuredPokemonToCenter(void) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); palette_bg_faded_fill_black(); taskId = CreateTask(Task_RushInjuredPokemonToCenter, 10); gTasks[taskId].data[0] = 0; diff --git a/src/field_specials.c b/src/field_specials.c index e9574f429..c943ce5c1 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -91,7 +91,7 @@ void ShowDiploma(void) { QuestLog_CutRecording(); SetMainCallback2(CB2_ShowDiploma); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } void ForcePlayerOntoBike(void) @@ -497,7 +497,7 @@ static void Task_ShakeScreen(u8 taskId) static void Task_EndScreenShake(u8 taskId) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } #undef tYtrans @@ -1083,7 +1083,7 @@ static void Task_ElevatorShake(u8 taskId) { PlaySE(SE_DING_DONG); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); InstallCameraPanAheadCallback(); } } @@ -1336,7 +1336,7 @@ static void Task_CreateScriptListMenu(u8 taskId) s32 mwidth; struct Task *task = &gTasks[taskId]; u8 windowId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); if (gSpecialVar_0x8004 == LISTMENU_SILPHCO_FLOORS) sListMenuLastScrollPosition = sElevatorScroll; else @@ -1432,7 +1432,7 @@ static void Task_ListMenuHandleInput(u8 taskId) { Task_ListMenuRemoveScrollIndicatorArrowPair(taskId); task->func = Task_SuspendListMenu; - EnableBothScriptContexts(); + ScriptContext_Enable(); } break; } @@ -1450,7 +1450,7 @@ static void Task_DestroyListMenu(u8 taskId) CopyWindowToVram(task->data[13], COPYWIN_GFX); RemoveWindow(task->data[13]); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } static void Task_SuspendListMenu(u8 taskId) @@ -1470,14 +1470,14 @@ void ReturnToListMenu(void) { u8 taskId = FindTaskIdByFunc(Task_SuspendListMenu); if (taskId == 0xFF) - EnableBothScriptContexts(); + ScriptContext_Enable(); else gTasks[taskId].data[6]++; } static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId); gTasks[taskId].func = Task_ListMenuHandleInput; } @@ -2317,7 +2317,7 @@ void CutMoveOpenDottedHoleDoor(void) DrawWholeMapView(); PlaySE(SE_BANG); FlagSet(FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } static const u16 sDeoxysObjectPals[][16] = { @@ -2373,7 +2373,7 @@ static void Task_DoDeoxysTriangleInteraction(u8 taskId) if (FlagGet(FLAG_SYS_DEOXYS_AWAKENED) == TRUE) { gSpecialVar_Result = 3; - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } else @@ -2392,7 +2392,7 @@ static void Task_DoDeoxysTriangleInteraction(u8 taskId) { FlagSet(FLAG_SYS_DEOXYS_AWAKENED); gSpecialVar_Result = 2; - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } else @@ -2434,7 +2434,7 @@ static void Task_WaitDeoxysFieldEffect(u8 taskId) { if (!FieldEffectActiveListContains(FLDEFF_MOVE_DEOXYS_ROCK)) { - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } } diff --git a/src/field_tasks.c b/src/field_tasks.c index 20dcb4696..a1f32b895 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -57,7 +57,7 @@ static void Task_RunTimeBasedEvents(u8 taskId) { s16 *data = gTasks[taskId].data; - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { if (!QL_IS_PLAYBACK_STATE) { diff --git a/src/field_weather_effects.c b/src/field_weather_effects.c index 32f945803..ce8fe231c 100644 --- a/src/field_weather_effects.c +++ b/src/field_weather_effects.c @@ -315,7 +315,7 @@ static void UpdateDroughtBlend(u8 taskId) task->tState++; break; case 4: - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); break; } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index e6029448c..20fff2606 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -177,7 +177,7 @@ bool8 FldEff_UseCutOnGrass(void) static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffCut); + ScriptContext_SetupScript(EventScript_FldEffCut); } bool8 FldEff_UseCutOnTree(void) @@ -284,12 +284,12 @@ static void SpriteCallback_CutGrass_Cleanup(struct Sprite *sprite) FieldEffectStop(&gSprites[sCutGrassSpriteArrayPtr[0]], FLDEFF_CUT_GRASS); Free(sCutGrassSpriteArrayPtr); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } static void FieldMoveCallback_CutTree(void) { PlaySE(SE_M_CUT); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); - EnableBothScriptContexts(); + ScriptContext_Enable(); } diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 8129a1a54..352ef7bc8 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -185,7 +185,7 @@ static void FldEff_UseFlash(void) { PlaySE(SE_M_REFLECT); FlagSet(FLAG_SYS_FLASH_ACTIVE); - ScriptContext1_SetupScript(EventScript_FldEffFlash); + ScriptContext_SetupScript(EventScript_FldEffFlash); } // Map transition animatics diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index c5bc0d072..74e92e9ee 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -46,7 +46,7 @@ static void Task_FieldEffectShowMon_Init(u8 taskId) { u8 mapObjId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; mapObjId = gPlayerAvatar.objectEventId; if (!ObjectEventIsMovementOverridden(&gObjectEvents[mapObjId]) @@ -117,7 +117,7 @@ bool8 SetUpFieldMove_RockSmash(void) static void sub_80C9A10(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffRockSmash); + ScriptContext_SetupScript(EventScript_FldEffRockSmash); } bool8 FldEff_UseRockSmash(void) @@ -133,5 +133,5 @@ static void sub_80C9A60(void) { PlaySE(SE_M_ROCK_THROW); FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); - EnableBothScriptContexts(); + ScriptContext_Enable(); } diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index c5dbfa6cd..bad0f05df 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -28,7 +28,7 @@ bool8 SetUpFieldMove_Strength(void) static void FieldCB_UseStrength(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffStrength); + ScriptContext_SetupScript(EventScript_FldEffStrength); } bool8 FldEff_UseStrength(void) @@ -42,5 +42,5 @@ bool8 FldEff_UseStrength(void) static void ShowMonCB_UseStrength(void) { FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); - EnableBothScriptContexts(); + ScriptContext_Enable(); } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index e9373bd05..606709e44 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -94,7 +94,7 @@ static void FailSweetScentEncounter(u8 taskId) CpuFastCopy(sPlttBufferBak, gPlttBufferUnfaded, PLTT_SIZE); WeatherProcessingIdle(); Free(sPlttBufferBak); - ScriptContext1_SetupScript(EventScript_FailSweetScent); + ScriptContext_SetupScript(EventScript_FailSweetScent); DestroyTask(taskId); } } diff --git a/src/hof_pc.c b/src/hof_pc.c index 4bbbc7bec..791a4d1fc 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -23,7 +23,7 @@ static void Task_WaitFadeAndSetCallback(u8 taskId) void HallOfFamePCBeginFade(void) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_WaitFadeAndSetCallback, 0); } @@ -35,7 +35,7 @@ void ReturnFromHallOfFamePC(void) static void ReshowPCMenuAfterHallOfFamePC(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); CreatePCMenu(); ScriptMenu_DisplayPCStartupPrompt(); diff --git a/src/item_menu.c b/src/item_menu.c index ceddc9675..bf51d2f31 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -2033,7 +2033,7 @@ bool8 UseRegisteredKeyItemOnField(void) { if (CheckBagHasItem(gSaveBlock1Ptr->registeredItem, 1) == TRUE) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); HandleEnforcedLookDirectionOnPlayerStopMoving(); StopPlayerAvatar(); @@ -2044,7 +2044,7 @@ bool8 UseRegisteredKeyItemOnField(void) } gSaveBlock1Ptr->registeredItem = ITEM_NONE; } - ScriptContext1_SetupScript(EventScript_BagItemCanBeRegistered); + ScriptContext_SetupScript(EventScript_BagItemCanBeRegistered); return TRUE; } diff --git a/src/item_use.c b/src/item_use.c index 716d42b9a..92a476e96 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -197,7 +197,7 @@ static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId) ClearDialogWindowAndFrame(0, 1); DestroyTask(taskId); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) @@ -218,7 +218,7 @@ static void sub_80A1184(void) static bool8 sub_80A1194(void) { FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeInFromBlack(); CreateTask(sub_80A11C0, 10); gExitStairsMovementDisabled = FALSE; @@ -230,7 +230,7 @@ static void sub_80A11C0(u8 taskId) if (IsWeatherNotFadingIn() == TRUE) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } } @@ -278,7 +278,7 @@ static void ItemUseOnFieldCB_Bicycle(u8 taskId) PlaySE(SE_BIKE_BELL); GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } diff --git a/src/itemfinder.c b/src/itemfinder.c index 95887985f..375b4ac38 100644 --- a/src/itemfinder.c +++ b/src/itemfinder.c @@ -151,7 +151,7 @@ static void Task_NoResponse_CleanUp(u8 taskId) { ClearDialogWindowAndFrame(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } @@ -487,7 +487,7 @@ static void Task_ItemfinderResponseCleanUp(u8 taskId) DestroyArrowAndStarTiles(); ClearDialogWindowAndFrame(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } @@ -500,8 +500,8 @@ static void Task_ItemfinderUnderfootDigUpItem(u8 taskId) { DestroyArrowAndStarTiles(); DestroyTask(taskId); - ScriptContext1_SetupScript(EventScript_ItemfinderDigUpUnderfootItem); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_ItemfinderDigUpUnderfootItem); + LockPlayerFieldControls(); } #undef tStartSpriteId diff --git a/src/learn_move.c b/src/learn_move.c index 314125c9e..165b1adb4 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -366,7 +366,7 @@ static void VBlankCB_MoveRelearner(void) void DisplayMoveTutorMenu(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_InitMoveRelearnerMenu, 10); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } diff --git a/src/map_preview_screen.c b/src/map_preview_screen.c index 65b8ba793..de42a0a4f 100644 --- a/src/map_preview_screen.c +++ b/src/map_preview_screen.c @@ -436,7 +436,7 @@ void MapPreview_StartForestTransition(u8 mapsec) SetGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_CLR | WININ_WIN1_CLR); SetGpuRegBits(REG_OFFSET_WINOUT, WINOUT_WIN01_CLR); gTasks[taskId].data[11] = MapPreview_CreateMapNameWindow(mapsec); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } u16 MapPreview_CreateMapNameWindow(u8 mapsec) diff --git a/src/mevent_client.c b/src/mevent_client.c index 3838558df..e2d226ed6 100644 --- a/src/mevent_client.c +++ b/src/mevent_client.c @@ -215,7 +215,7 @@ static u32 client_mainseq_4(struct mevent_client * svr) MEvent_ReceiveDistributionMon(svr->recvBuffer); break; case 17: - MEventSetRamScript(svr->recvBuffer, 1000); + InitRamScript_NoObjectEvent(svr->recvBuffer, 1000); break; case 18: memcpy(&gSaveBlock2Ptr->battleTower.ereaderTrainer, svr->recvBuffer, sizeof(struct BattleTowerEReaderTrainer)); diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 06c1c9bbf..ab2e4fa9e 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -145,7 +145,7 @@ bool8 MEScrCmd_setmsg(struct ScriptContext *ctx) bool8 MEScrCmd_runscript(struct ScriptContext *ctx) { u8 *script = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - ScriptContext2_RunNewScript(script); + RunScriptImmediately(script); return FALSE; } diff --git a/src/new_game.c b/src/new_game.c index 741d1d602..0bd25b23c 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -146,7 +146,7 @@ void NewGameInitData(void) InitMEventData(); SetAllRenewableItemFlags(); WarpToPlayersRoom(); - ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags); + RunScriptImmediately(EventScript_ResetAllMapFlags); StringCopy(gSaveBlock1Ptr->rivalName, rivalName); ResetTrainerTowerResults(); } diff --git a/src/overworld.c b/src/overworld.c index 6c1420418..a26c494d0 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -242,7 +242,7 @@ static const u16 sWhiteOutMoneyLossBadgeFlagIDs[] = { static void DoWhiteOut(void) { - ScriptContext2_RunNewScript(EventScript_ResetEliteFourEnd); + RunScriptImmediately(EventScript_ResetEliteFourEnd); RemoveMoney(&gSaveBlock1Ptr->money, ComputeWhiteOutMoneyLoss()); HealPlayerParty(); Overworld_ResetStateAfterWhitingOut(); @@ -1393,13 +1393,13 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) FieldClearPlayerInput(&fieldInput); FieldGetPlayerInput(&fieldInput, newKeys, heldKeys); FieldInput_HandleCancelSignpost(&fieldInput); - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { if (ProcessPlayerFieldInput(&fieldInput) == TRUE) { if (gQuestLogPlaybackState == 2) sub_81127F8(&gInputToStoreInQuestLogMaybe); - ScriptContext2_Enable(); + LockPlayerFieldControls(); DismissMapNamePopup(); } else @@ -1420,11 +1420,11 @@ static void DoCB1_Overworld_QuestLogPlayback(void) FieldClearPlayerInput(&fieldInput); fieldInput = gQuestLogFieldInput; FieldInput_HandleCancelSignpost(&fieldInput); - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { if (ProcessPlayerFieldInput(&fieldInput) == TRUE) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); DismissMapNamePopup(); } else @@ -1452,7 +1452,7 @@ void CB1_Overworld(void) static void OverworldBasic(void) { - ScriptContext2_RunScript(); + ScriptContext_RunScript(); RunTasks(); AnimateSprites(); CameraUpdate(); @@ -1518,8 +1518,8 @@ void CB2_NewGame(void) NewGameInitData(); ResetInitialPlayerAvatarState(); PlayTimeCounter_Start(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); gFieldCallback = FieldCB_WarpExitFadeFromBlack; gFieldCallback2 = NULL; DoMapLoadLoop(&gMain.state); @@ -1539,8 +1539,8 @@ void CB2_WhiteOut(void) ResetSafariZoneFlag_(); DoWhiteOut(); SetInitialPlayerAvatarStateWithDirection(DIR_NORTH); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); gFieldCallback = FieldCB_RushInjuredPokemonToCenter; val = 0; DoMapLoadLoop(&val); @@ -1554,8 +1554,8 @@ void CB2_WhiteOut(void) void CB2_LoadMap(void) { FieldClearVBlankHBlankCallbacks(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); SetMainCallback2(CB2_DoChangeMap); gMain.savedCallback = CB2_LoadMap2; @@ -1634,8 +1634,8 @@ void CB2_ReturnToFieldFromMultiplayer(void) else gFieldCallback = FieldCB_ReturnToFieldCableLink; - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); CB2_ReturnToField(); } @@ -1685,8 +1685,8 @@ void CB2_ContinueSavedGame(void) Overworld_ResetStateOnContinue(); InitMapFromSavedGame(); PlayTimeCounter_Start(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); gFieldCallback2 = NULL; gExitStairsMovementDisabled = TRUE; if (UseContinueGameWarp() == TRUE) @@ -1760,8 +1760,8 @@ static bool32 LoadMapInStepsLink(u8 *state) { case 0: InitOverworldBgs(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); (*state)++; break; case 1: @@ -2197,8 +2197,8 @@ void CB2_SetUpOverworldForQLPlaybackWithWarpExit(void) { FieldClearVBlankHBlankCallbacks(); gGlobalFieldTintMode = QL_TINT_GRAYSCALE; - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); SetMainCallback2(CB2_DoChangeMap); gMain.savedCallback = CB2_LoadMapForQLPlayback; @@ -2209,8 +2209,8 @@ void CB2_SetUpOverworldForQLPlayback(void) FieldClearVBlankHBlankCallbacks(); gGlobalFieldTintMode = QL_TINT_GRAYSCALE; LoadSaveblockMapHeader(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); SetMainCallback2(CB2_LoadMapForQLPlayback); } @@ -2317,7 +2317,7 @@ void CB2_EnterFieldFromQuestLog(void) Overworld_ResetStateOnContinue(); InitMapFromSavedGame(); PlayTimeCounter_Start(); - ScriptContext1_Init(); + ScriptContext_Init(); gExitStairsMovementDisabled = TRUE; if (UseContinueGameWarp() == TRUE) { @@ -2388,8 +2388,8 @@ static bool32 SetUpScrollSceneForCredits(u8 *state, u8 unused) sCreditsOverworld_CmdLength = sCreditsOverworld_Script[sCreditsOverworld_CmdIndex].unk_4; WarpIntoMap(); gPaletteFade.bufferTransferDisabled = TRUE; - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); gFieldCallback2 = FieldCB2_Credits_WaitFade; gMain.state = 0; @@ -2845,7 +2845,7 @@ static void ResetPlayerHeldKeys(u16 *keys) static u16 KeyInterCB_SelfIdle(u32 key) { - if (ScriptContext2_IsEnabled() == TRUE) + if (ArePlayerFieldControlsLocked() == TRUE) return LINK_KEY_CODE_EMPTY; if (GetLinkRecvQueueLength() > 4) return LINK_KEY_CODE_HANDLE_RECV_QUEUE; @@ -2865,7 +2865,7 @@ static u16 KeyInterCB_Idle(u32 key) static u16 KeyInterCB_DeferToEventScript(u32 key) { u16 retVal; - if (ScriptContext2_IsEnabled() == TRUE) + if (ArePlayerFieldControlsLocked() == TRUE) { retVal = LINK_KEY_CODE_EMPTY; } @@ -2888,7 +2888,7 @@ static u16 KeyInterCB_DeferToRecvQueue(u32 key) else { retVal = LINK_KEY_CODE_IDLE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; @@ -2905,7 +2905,7 @@ static u16 KeyInterCB_DeferToSendQueue(u32 key) else { retVal = LINK_KEY_CODE_IDLE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; @@ -2958,7 +2958,7 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) CheckRfuKeepAliveTimer(); if (AreAllPlayersInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) { - ScriptContext1_SetupScript(CableClub_EventScript_DoLinkRoomExit); + ScriptContext_SetupScript(CableClub_EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); } return LINK_KEY_CODE_EMPTY; @@ -3136,41 +3136,41 @@ static u16 GetDirectionForEventScript(const u8 *script) static void InitLinkPlayerQueueScript(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void InitLinkRoomStartMenuScript(void) { PlaySE(SE_WIN_OPEN); ShowStartMenu(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void RunInteractLocalPlayerScript(const u8 *script) { PlaySE(SE_SELECT); - ScriptContext1_SetupScript(script); - ScriptContext2_Enable(); + ScriptContext_SetupScript(script); + LockPlayerFieldControls(); } static void CreateConfirmLeaveTradeRoomPrompt(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(TradeCenter_ConfirmLeaveRoom); - ScriptContext2_Enable(); + ScriptContext_SetupScript(TradeCenter_ConfirmLeaveRoom); + LockPlayerFieldControls(); } static void InitMenuBasedScript(const u8 *script) { PlaySE(SE_SELECT); - ScriptContext1_SetupScript(script); - ScriptContext2_Enable(); + ScriptContext_SetupScript(script); + LockPlayerFieldControls(); } static void RunTerminateLinkScript(void) { - ScriptContext1_SetupScript(TradeCenter_TerminateLink); - ScriptContext2_Enable(); + ScriptContext_SetupScript(TradeCenter_TerminateLink); + LockPlayerFieldControls(); } bool32 Overworld_LinkRecvQueueLengthMoreThan2(void) diff --git a/src/party_menu.c b/src/party_menu.c index ee2800801..347d4ecb1 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -6368,7 +6368,7 @@ static void Task_PartyMenuWaitForFade(u8 taskId) if (IsWeatherNotFadingIn()) { DestroyTask(taskId); - ScriptContext2_Disable(); - EnableBothScriptContexts(); + UnlockPlayerFieldControls(); + ScriptContext_Enable(); } } diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c index aaa066980..23934773c 100644 --- a/src/party_menu_specials.c +++ b/src/party_menu_specials.c @@ -15,7 +15,7 @@ void ChoosePartyMon(void) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); taskId = CreateTask(sub_80BF97C, 10); gTasks[taskId].data[0] = PARTY_MENU_TYPE_CHOOSE_MON; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); @@ -25,7 +25,7 @@ void SelectMoveTutorMon(void) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); taskId = CreateTask(sub_80BF97C, 10); gTasks[taskId].data[0] = PARTY_MENU_TYPE_MOVE_RELEARNER; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); diff --git a/src/player_pc.c b/src/player_pc.c index a150828b3..dd5df17d3 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -257,9 +257,9 @@ static void Task_PlayerPcMailbox(u8 taskId) static void Task_PlayerPcTurnOff(u8 taskId) { if (gPlayerPcMenuManager.notInRoom == FALSE) - ScriptContext1_SetupScript(EventScript_PalletTown_PlayersHouse_2F_ShutDownPC); + ScriptContext_SetupScript(EventScript_PalletTown_PlayersHouse_2F_ShutDownPC); else - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index a29397d37..1c501bac6 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -4535,7 +4535,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId) { RemoveWindow(tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } break; } diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c index 918ffaf7d..1f9c7a4e5 100644 --- a/src/pokemon_storage_system_2.c +++ b/src/pokemon_storage_system_2.c @@ -300,8 +300,8 @@ static void Task_PCMainMenu(u8 taskId) case OPTION_EXIT: ClearStdWindowAndFrame(0, TRUE); ClearStdWindowAndFrame(task->tWindowId, TRUE); - ScriptContext2_Disable(); - EnableBothScriptContexts(); + UnlockPlayerFieldControls(); + ScriptContext_Enable(); DestroyTask(taskId); break; default: @@ -374,7 +374,7 @@ void ShowPokemonStorageSystemPC(void) u8 taskId = CreateTask(Task_PCMainMenu, 80); gTasks[taskId].tState = 0; gTasks[taskId].tSelectedOption = 0; - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void FieldTask_ReturnToPcMenu(void) diff --git a/src/quest_log.c b/src/quest_log.c index 7eeb76e04..8a6a835fa 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -256,7 +256,7 @@ static void QLogCB_Playback(void) else { sQuestLogCurrentScene.sceneEndMode = 2; - ScriptContext2_Enable(); + LockPlayerFieldControls(); QuestLog_BeginFadeAtEndOfScene(0); } } @@ -791,7 +791,7 @@ static void QuestLog_AdvancePlayhead(void) { if (!gPaletteFade.active) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); if (++sCurrentSceneNum < QUEST_LOG_SCENE_COUNT && gSaveBlock1Ptr->questLog[sCurrentSceneNum].startType != 0) { sNumScenes--; @@ -1051,7 +1051,7 @@ static void QuestLog_WaitFadeAndCancelPlayback(void) { if (!gPaletteFade.active) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); for (sCurrentSceneNum = sCurrentSceneNum; sCurrentSceneNum < QUEST_LOG_SCENE_COUNT; sCurrentSceneNum++) { if (gSaveBlock1Ptr->questLog[sCurrentSceneNum].startType == 0) @@ -1087,12 +1087,12 @@ static void Task_FinalScene_WaitFade(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (ScriptContext2_IsEnabled() != TRUE) + if (ArePlayerFieldControlsLocked() != TRUE) { FreezeObjectEvents(); HandleEnforcedLookDirectionOnPlayerStopMoving(); StopPlayerAvatar(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); task->func = Task_QuestLogScene_SavedGame; } } @@ -1113,7 +1113,7 @@ static void Task_QuestLogScene_SavedGame(u8 taskId) task->data[1] = 0; task->func = Task_WaitAtEndOfQuestLog; FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } } @@ -1179,7 +1179,7 @@ static void Task_EndQuestLog(u8 taskId) Free(sPalettesBackup); sQuestLogCurrentScene = (struct UnkStruct_203AE94){}; ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); gTextFlags.autoScroll = FALSE; gGlobalFieldTintMode = QL_TINT_NONE; DisableWildEncounters(FALSE); @@ -1417,7 +1417,7 @@ void sub_81127F8(struct FieldInput * a0) sCurQuestLogEntry[sQuestLogCursor].mapGroup = r2 >> 16; sCurQuestLogEntry[sQuestLogCursor].animId = r2 >> 24; // always 0 sQuestLogCursor++; - if (ScriptContext2_IsEnabled()) + if (ArePlayerFieldControlsLocked()) sNextStepDelay = TRUE; else sNextStepDelay = FALSE; @@ -1590,7 +1590,7 @@ void sub_8112B3C(void) } break; case 2: - if (ScriptContext2_IsEnabled() != TRUE) + if (ArePlayerFieldControlsLocked() != TRUE) { sNextStepDelay++; if (sQuestLogCursor >= sNumEventsInLogEntry) @@ -1627,7 +1627,7 @@ u8 sub_8112CAC(void) static bool8 RecordHeadAtEndOfEntryOrScriptContext2Enabled(void) { - if (sQuestLogCursor >= sNumEventsInLogEntry || ScriptContext2_IsEnabled() == TRUE) + if (sQuestLogCursor >= sNumEventsInLogEntry || ArePlayerFieldControlsLocked() == TRUE) return TRUE; return FALSE; } diff --git a/src/quest_log_player.c b/src/quest_log_player.c index bb7372c35..8c2ef6196 100644 --- a/src/quest_log_player.c +++ b/src/quest_log_player.c @@ -80,7 +80,7 @@ static void QL_GfxTransition_Fish(void) if (gQuestLogPlaybackState == 1 || gQuestLogPlaybackState == 3) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; taskId = CreateTask(Task_QLFishMovement, 0xFF); gTasks[taskId].data[0] = 0; @@ -129,7 +129,7 @@ static void Task_QLFishMovement(u8 taskId) ObjectEventTurn(objectEvent, objectEvent->movementDirection); sprite->x2 = 0; sprite->y2 = 0; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -166,7 +166,7 @@ static void Task_QLVSSeekerMovement(u8 taskId) if (!FieldEffectActiveListContains(FLDEFF_USE_VS_SEEKER)) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } } diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c index d6c1c411e..f08291445 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -200,7 +200,7 @@ static bool32 TryReleaseUnionRoomPlayerObjectEvent(u32 playerIdx) { return FALSE; } - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { UnfreezeObjectEvent(object); } diff --git a/src/safari_zone.c b/src/safari_zone.c index 748a7d996..a61cc7fdf 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -46,7 +46,7 @@ bool8 SafariZoneTakeStep(void) gSafariZoneStepCounter--; if (gSafariZoneStepCounter == 0) { - ScriptContext1_SetupScript(SafariZone_EventScript_TimesUp); + ScriptContext_SetupScript(SafariZone_EventScript_TimesUp); return TRUE; } return FALSE; @@ -54,7 +54,7 @@ bool8 SafariZoneTakeStep(void) void SafariZoneRetirePrompt(void) { - ScriptContext1_SetupScript(SafariZone_EventScript_RetirePrompt); + ScriptContext_SetupScript(SafariZone_EventScript_RetirePrompt); } void CB2_EndSafariBattle(void) @@ -65,15 +65,15 @@ void CB2_EndSafariBattle(void) } else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS) { - ScriptContext2_RunNewScript(SafariZone_EventScript_OutOfBallsMidBattle); + RunScriptImmediately(SafariZone_EventScript_OutOfBallsMidBattle); WarpIntoMap(); gFieldCallback = FieldCB_SafariZoneRanOutOfBalls; SetMainCallback2(CB2_LoadMap); } else if (gBattleOutcome == B_OUTCOME_CAUGHT) { - ScriptContext1_SetupScript(SafariZone_EventScript_OutOfBalls); - ScriptContext1_Stop(); + ScriptContext_SetupScript(SafariZone_EventScript_OutOfBalls); + ScriptContext_Stop(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } } diff --git a/src/scrcmd.c b/src/scrcmd.c index 37e7bfefb..d7933a882 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -125,7 +125,7 @@ bool8 ScrCmd_callnative(struct ScriptContext * ctx) bool8 ScrCmd_waitstate(struct ScriptContext * ctx) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -254,7 +254,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext * ctx) bool8 ScrCmd_returnram(struct ScriptContext * ctx) { - ScriptJump(ctx, gRAMScriptPtr); + ScriptJump(ctx, gRamScriptRetAddr); return FALSE; } @@ -276,7 +276,7 @@ bool8 ScrCmd_trywondercardscript(struct ScriptContext * ctx) const u8 * script = GetSavedRamScriptIfValid(); if (script != NULL) { - gRAMScriptPtr = ctx->scriptPtr; + gRamScriptRetAddr = ctx->scriptPtr; ScriptJump(ctx, script); } return FALSE; @@ -604,7 +604,7 @@ bool8 ScrCmd_setworldmapflag(struct ScriptContext * ctx) bool8 ScrCmd_animateflash(struct ScriptContext * ctx) { AnimateFlash(ScriptReadByte(ctx)); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1414,7 +1414,7 @@ bool8 ScrCmd_yesnobox(struct ScriptContext * ctx) if (ScriptMenu_YesNo(left, top) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1432,7 +1432,7 @@ bool8 ScrCmd_multichoice(struct ScriptContext * ctx) if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1451,7 +1451,7 @@ bool8 ScrCmd_multichoicedefault(struct ScriptContext * ctx) if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1481,7 +1481,7 @@ bool8 ScrCmd_multichoicegrid(struct ScriptContext * ctx) if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1510,7 +1510,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext * ctx) /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; }*/ return FALSE; @@ -1548,7 +1548,7 @@ bool8 ScrCmd_showcontestpainting(struct ScriptContext * ctx) SetContestWinnerForPainting(contestWinnerId); ShowContestPainting(); - ScriptContext1_Stop() + ScriptContext_Stop() return TRUE; */ return FALSE; @@ -1932,7 +1932,7 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext * ctx) bool8 ScrCmd_dowildbattle(struct ScriptContext * ctx) { StartScriptedWildBattle(); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1941,7 +1941,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext * ctx) const void *ptr = (void *)ScriptReadWord(ctx); CreatePokemartMenu(ptr); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1950,7 +1950,7 @@ bool8 ScrCmd_pokemartdecoration(struct ScriptContext * ctx) const void *ptr = (void *)ScriptReadWord(ctx); CreateDecorationShop1Menu(ptr); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1960,7 +1960,7 @@ bool8 ScrCmd_pokemartdecoration2(struct ScriptContext * ctx) const void *ptr = (void *)ScriptReadWord(ctx); CreateDecorationShop2Menu(ptr); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1969,7 +1969,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext * ctx) u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1997,7 +1997,7 @@ bool8 ScrCmd_getpokenewsactive(struct ScriptContext * ctx) bool8 ScrCmd_choosecontestmon(struct ScriptContext * ctx) { // ChooseContestMon(); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -2005,7 +2005,7 @@ bool8 ScrCmd_choosecontestmon(struct ScriptContext * ctx) bool8 ScrCmd_startcontest(struct ScriptContext * ctx) { // StartContest(); -// ScriptContext1_Stop(); +// ScriptContext_Stop(); // return TRUE; return FALSE; } @@ -2013,7 +2013,7 @@ bool8 ScrCmd_startcontest(struct ScriptContext * ctx) bool8 ScrCmd_showcontestresults(struct ScriptContext * ctx) { // ShowContestResults(); -// ScriptContext1_Stop(); +// ScriptContext_Stop(); // return TRUE; return FALSE; } @@ -2021,7 +2021,7 @@ bool8 ScrCmd_showcontestresults(struct ScriptContext * ctx) bool8 ScrCmd_contestlinktransfer(struct ScriptContext * ctx) { // ContestLinkTransfer(gSpecialVar_ContestCategory); -// ScriptContext1_Stop(); +// ScriptContext_Stop(); // return TRUE; return FALSE; } @@ -2176,7 +2176,7 @@ bool8 ScrCmd_addelevmenuitem(struct ScriptContext * ctx) bool8 ScrCmd_showelevmenu(struct ScriptContext * ctx) { /*ScriptShowElevatorMenu(); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE;*/ return FALSE; } diff --git a/src/script.c b/src/script.c index 1592170cd..0ae8d9a8f 100644 --- a/src/script.c +++ b/src/script.c @@ -3,32 +3,35 @@ #include "event_data.h" #include "quest_log.h" #include "constants/maps.h" - -#define RAM_SCRIPT_MAGIC 51 -#define SCRIPT_STACK_SIZE 20 - +#include "constants/map_scripts.h" extern void ResetContextNpcTextColor(void); // field_specials extern u16 CalcCRC16WithTable(u8 *data, int length); // util extern bool32 ValidateReceivedWonderCard(void); // mevent -enum -{ +#define RAM_SCRIPT_MAGIC 51 + +enum { SCRIPT_MODE_STOPPED, SCRIPT_MODE_BYTECODE, SCRIPT_MODE_NATIVE, }; -EWRAM_DATA u8 gWalkAwayFromSignInhibitTimer = 0; -EWRAM_DATA const u8 *gRAMScriptPtr = NULL; +enum { + CONTEXT_RUNNING, + CONTEXT_WAITING, + CONTEXT_SHUTDOWN, +}; -// iwram bss -static u8 sScriptContext1Status; +EWRAM_DATA u8 gWalkAwayFromSignInhibitTimer = 0; +EWRAM_DATA const u8 *gRamScriptRetAddr = NULL; + +static u8 sGlobalScriptContextStatus; static u32 sUnusedVariable1; -static struct ScriptContext sScriptContext1; +static struct ScriptContext sGlobalScriptContext; static u32 sUnusedVariable2; -static struct ScriptContext sScriptContext2; -static bool8 sScriptContext2Enabled; +static struct ScriptContext sImmediateScriptContext; +static bool8 sLockFieldControls; static u8 sMsgBoxWalkawayDisabled; static u8 sMsgBoxIsCancelable; static u8 sQuestLogInput; @@ -50,10 +53,10 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable ctx->cmdTable = cmdTable; ctx->cmdTableEnd = cmdTableEnd; - for (i = 0; i < 4; i++) + for (i = 0; i < (int)ARRAY_COUNT(ctx->data); i++) ctx->data[i] = 0; - for (i = 0; i < SCRIPT_STACK_SIZE; i++) + for (i = 0; i < (int)ARRAY_COUNT(ctx->stack); i++) ctx->stack[i] = 0; } @@ -90,6 +93,8 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) case SCRIPT_MODE_STOPPED: return FALSE; case SCRIPT_MODE_NATIVE: + // Try to call a function in C + // Continue to bytecode if no function or it returns TRUE if (ctx->nativePtr) { if (ctx->nativePtr() == TRUE) @@ -97,6 +102,7 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) return TRUE; } ctx->mode = SCRIPT_MODE_BYTECODE; + // fallthrough case SCRIPT_MODE_BYTECODE: while (1) { @@ -133,9 +139,9 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) return TRUE; } -u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) +static u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) { - if (ctx->stackDepth + 1 >= SCRIPT_STACK_SIZE) + if (ctx->stackDepth + 1 >= (int)ARRAY_COUNT(ctx->stack)) { return 1; } @@ -147,7 +153,7 @@ u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) } } -const u8 *ScriptPop(struct ScriptContext *ctx) +static const u8 *ScriptPop(struct ScriptContext *ctx) { if (ctx->stackDepth == 0) return NULL; @@ -188,19 +194,19 @@ u32 ScriptReadWord(struct ScriptContext *ctx) return (((((value3 << 8) + value2) << 8) + value1) << 8) + value0; } -void ScriptContext2_Enable(void) +void LockPlayerFieldControls(void) { - sScriptContext2Enabled = TRUE; + sLockFieldControls = TRUE; } -void ScriptContext2_Disable(void) +void UnlockPlayerFieldControls(void) { - sScriptContext2Enabled = FALSE; + sLockFieldControls = FALSE; } -bool8 ScriptContext2_IsEnabled(void) +bool8 ArePlayerFieldControlsLocked(void) { - return sScriptContext2Enabled; + return sLockFieldControls; } void SetQuestLogInputIsDpadFlag(void) @@ -294,70 +300,86 @@ void ResetFacingNpcOrSignPostVars(void) MsgSetNotSignPost(); } -bool8 ScriptContext1_IsScriptSetUp(void) +// The ScriptContext_* functions work with the primary script context, +// which yields control back to native code should the script make a wait call. + +// Checks if the global script context is able to be run right now. +bool8 ScriptContext_IsEnabled(void) { - if (sScriptContext1Status == 0) + if (sGlobalScriptContextStatus == CONTEXT_RUNNING) return TRUE; else return FALSE; } -void ScriptContext1_Init(void) +// Re-initializes the global script context to zero. +void ScriptContext_Init(void) { - InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); - sScriptContext1Status = 2; + InitScriptContext(&sGlobalScriptContext, gScriptCmdTable, gScriptCmdTableEnd); + sGlobalScriptContextStatus = CONTEXT_SHUTDOWN; } -bool8 ScriptContext2_RunScript(void) +// Runs the script until the script makes a wait* call, then returns true if +// there's more script to run, or false if the script has hit the end. +// This function also returns false if the context is finished +// or waiting (after a call to _Stop) +bool8 ScriptContext_RunScript(void) { - if (sScriptContext1Status == 2) - return 0; + if (sGlobalScriptContextStatus == CONTEXT_SHUTDOWN) + return FALSE; - if (sScriptContext1Status == 1) - return 0; + if (sGlobalScriptContextStatus == CONTEXT_WAITING) + return FALSE; - ScriptContext2_Enable(); + LockPlayerFieldControls(); - if (!RunScriptCommand(&sScriptContext1)) + if (!RunScriptCommand(&sGlobalScriptContext)) { - sScriptContext1Status = 2; - ScriptContext2_Disable(); - return 0; + sGlobalScriptContextStatus = CONTEXT_SHUTDOWN; + UnlockPlayerFieldControls(); + return FALSE; } - return 1; + return TRUE; } -void ScriptContext1_SetupScript(const u8 *ptr) +// Sets up a new script in the global context and enables the context +void ScriptContext_SetupScript(const u8 *ptr) { ClearMsgBoxCancelableState(); EnableMsgBoxWalkaway(); ClearQuestLogInputIsDpadFlag(); - InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); - SetupBytecodeScript(&sScriptContext1, ptr); - ScriptContext2_Enable(); - sScriptContext1Status = 0; + + InitScriptContext(&sGlobalScriptContext, gScriptCmdTable, gScriptCmdTableEnd); + SetupBytecodeScript(&sGlobalScriptContext, ptr); + LockPlayerFieldControls(); + sGlobalScriptContextStatus = CONTEXT_RUNNING; } -void ScriptContext1_Stop(void) +// Puts the script into waiting mode; usually called from a wait* script command. +void ScriptContext_Stop(void) { - sScriptContext1Status = 1; + sGlobalScriptContextStatus = CONTEXT_WAITING; } -void EnableBothScriptContexts(void) +// Puts the script into running mode. +void ScriptContext_Enable(void) { - sScriptContext1Status = 0; - ScriptContext2_Enable(); + sGlobalScriptContextStatus = CONTEXT_RUNNING; + LockPlayerFieldControls(); } -void ScriptContext2_RunNewScript(const u8 *ptr) +// Sets up and runs a script in its own context immediately. The script will be +// finished when this function returns. Used mainly by all of the map header +// scripts (except the frame table scripts). +void RunScriptImmediately(const u8 *ptr) { - InitScriptContext(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd); - SetupBytecodeScript(&sScriptContext2, ptr); - while (RunScriptCommand(&sScriptContext2) == TRUE); + InitScriptContext(&sImmediateScriptContext, &gScriptCmdTable, &gScriptCmdTableEnd); + SetupBytecodeScript(&sImmediateScriptContext, ptr); + while (RunScriptCommand(&sImmediateScriptContext) == TRUE); } -u8 *mapheader_get_tagged_pointer(u8 tag) +static u8 *MapHeaderGetScriptTable(u8 tag) { const u8 *mapScripts = gMapHeader.mapScripts; @@ -377,16 +399,16 @@ u8 *mapheader_get_tagged_pointer(u8 tag) } } -void mapheader_run_script_by_tag(u8 tag) +static void MapHeaderRunScriptType(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (ptr != NULL) - ScriptContext2_RunNewScript(ptr); + RunScriptImmediately(ptr); } -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) +static u8 *MapHeaderCheckScriptTable(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (ptr == NULL) return NULL; @@ -395,64 +417,70 @@ u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) { u16 varIndex1; u16 varIndex2; - varIndex1 = ptr[0] | (ptr[1] << 8); + + // Read first var (or .2byte terminal value) + varIndex1 = T1_READ_16(ptr); if (!varIndex1) - return NULL; + return NULL; // Reached end of table ptr += 2; - varIndex2 = ptr[0] | (ptr[1] << 8); + + // Read second var + varIndex2 = T1_READ_16(ptr); ptr += 2; + + // Run map script if vars are equal if (VarGet(varIndex1) == VarGet(varIndex2)) - return (u8 *)(ptr[0] + (ptr[1] << 8) + (ptr[2] << 16) + (ptr[3] << 24)); + return T2_READ_PTR(ptr); ptr += 4; } } void RunOnLoadMapScript(void) { - mapheader_run_script_by_tag(1); + MapHeaderRunScriptType(MAP_SCRIPT_ON_LOAD); } void RunOnTransitionMapScript(void) { - mapheader_run_script_by_tag(3); + MapHeaderRunScriptType(MAP_SCRIPT_ON_TRANSITION); } void RunOnResumeMapScript(void) { - mapheader_run_script_by_tag(5); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RESUME); } void RunOnReturnToFieldMapScript(void) { - mapheader_run_script_by_tag(7); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RETURN_TO_FIELD); } void RunOnDiveWarpMapScript(void) { - mapheader_run_script_by_tag(6); + MapHeaderRunScriptType(MAP_SCRIPT_ON_DIVE_WARP); } bool8 TryRunOnFrameMapScript(void) { u8 *ptr; - if(gQuestLogState == QL_STATE_PLAYBACK_LAST) - return 0; + if (gQuestLogState == QL_STATE_PLAYBACK_LAST) + return FALSE; - ptr = mapheader_get_first_match_from_tagged_ptr_list(2); + ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_FRAME_TABLE); if (!ptr) - return 0; + return FALSE; - ScriptContext1_SetupScript(ptr); - return 1; + ScriptContext_SetupScript(ptr); + return TRUE; } void TryRunOnWarpIntoMapScript(void) { - u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4); + u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE); if (ptr) - ScriptContext2_RunNewScript(ptr); + RunScriptImmediately(ptr); } u32 CalculateRamScriptChecksum(void) @@ -486,7 +514,7 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec const u8 *GetRamScript(u8 objectId, const u8 *script) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - gRAMScriptPtr = NULL; + gRamScriptRetAddr = NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return script; if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup) @@ -502,7 +530,7 @@ const u8 *GetRamScript(u8 objectId, const u8 *script) } else { - gRAMScriptPtr = script; + gRamScriptRetAddr = script; return scriptData->script; } } @@ -547,9 +575,9 @@ u8 *GetSavedRamScriptIfValid(void) } } -void MEventSetRamScript(u8 *script, u16 scriptSize) +void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize) { if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script)) scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script); - InitRamScript(script, scriptSize, 0xFF, 0xFF, 0xFF); + InitRamScript(script, scriptSize, MAP_GROUP(UNDEFINED), MAP_NUM(UNDEFINED), 0xFF); } diff --git a/src/script_menu.c b/src/script_menu.c index d59ed07f7..f7f466f5b 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -816,7 +816,7 @@ static void Task_MultichoiceMenu_HandleInput(u8 taskId) } DestroyScriptMenuWindow(data[6]); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } } @@ -885,7 +885,7 @@ static void Task_YesNoMenu_HandleInput(u8 taskId) break; } DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -936,7 +936,7 @@ static void Hask_MultichoiceGridMenu_HandleInput(u8 taskId) } DestroyScriptMenuWindow(data[6]); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } bool8 CreatePCMenu(void) @@ -1172,7 +1172,7 @@ void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void) { u8 taskId; s16 *data; - ScriptContext1_SetupScript(EventScript_ReleaseEnd); + ScriptContext_SetupScript(EventScript_ReleaseEnd); taskId = FindTaskIdByFunc(Task_ScriptShowMonPic); if (taskId != 0xFF) { diff --git a/src/shop.c b/src/shop.c index 7f815c486..f10391324 100644 --- a/src/shop.c +++ b/src/shop.c @@ -1129,7 +1129,7 @@ void CreatePokemartMenu(const u16 *itemsForSale) { SetShopItemsForSale(itemsForSale); CreateShopMenu(MART_TYPE_REGULAR); - SetShopMenuCallback(EnableBothScriptContexts); + SetShopMenuCallback(ScriptContext_Enable); DebugFunc_PrintShopMenuHistoryBeforeClearMaybe(); memset(&gShopMenuHistory, 0, sizeof(gShopMenuHistory)); gShopMenuHistory[0].unk8 = gMapHeader.regionMapSectionId; @@ -1140,13 +1140,13 @@ void CreateDecorationShop1Menu(const u16 *itemsForSale) { SetShopItemsForSale(itemsForSale); CreateShopMenu(MART_TYPE_DECOR); - SetShopMenuCallback(EnableBothScriptContexts); + SetShopMenuCallback(ScriptContext_Enable); } void CreateDecorationShop2Menu(const u16 *itemsForSale) { SetShopItemsForSale(itemsForSale); CreateShopMenu(MART_TYPE_DECOR2); - SetShopMenuCallback(EnableBothScriptContexts); + SetShopMenuCallback(ScriptContext_Enable); } diff --git a/src/ss_anne.c b/src/ss_anne.c index 78ed5b48b..ce46bc6f6 100644 --- a/src/ss_anne.c +++ b/src/ss_anne.c @@ -137,7 +137,7 @@ static void Task_SSAnneFinish(u8 taskId) FreeSpriteTilesByTag(SPRITE_TAG_WAKE); FreeSpriteTilesByTag(SPRITE_TAG_SMOKE); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } diff --git a/src/start_menu.c b/src/start_menu.c index 80381216e..f81399cb3 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -394,7 +394,7 @@ void ShowStartMenu(void) StopPlayerAvatar(); } OpenStartMenuWithFollowupFunc(Task_StartMenuHandleInput); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static bool8 StartCB_HandleInput(void) @@ -575,7 +575,7 @@ static bool8 StartCB_Save2(void) case SAVECB_RETURN_OKAY: ClearDialogWindowAndFrameToTransparent(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); RestoreHelpContext(); return TRUE; case SAVECB_RETURN_CANCEL: @@ -587,7 +587,7 @@ static bool8 StartCB_Save2(void) case SAVECB_RETURN_ERROR: ClearDialogWindowAndFrameToTransparent(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); RestoreHelpContext(); return TRUE; } @@ -641,7 +641,7 @@ static void task50_save_game(u8 taskId) break; } DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); RestoreHelpContext(); } @@ -995,7 +995,7 @@ static void CloseStartMenu(void) ClearStdWindowAndFrame(GetStartMenuWindowId(), TRUE); RemoveStartMenuWindow(); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } void AppendToList(u8 *list, u8 *cursor, u8 newEntry) diff --git a/src/trade_scene.c b/src/trade_scene.c index c3b36db16..4d0f72ee8 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -2728,7 +2728,7 @@ static void LinkTrade_TearDownAssets(void) void DoInGameTradeScene(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_WaitFadeAndStartInGameTradeAnim, 10); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); HelpSystem_Disable(); diff --git a/src/trainer_see.c b/src/trainer_see.c index f008cdb86..12d47f247 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -550,7 +550,7 @@ void EndTrainerApproach(void) static void Task_DestroyTrainerApproachTask(u8 taskId) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } // Trainer See Excl Mark Field Effect diff --git a/src/union_room.c b/src/union_room.c index cc7df613a..2ba85970e 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1019,12 +1019,12 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state++; break; case 24: - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); gSpecialVar_Result = 5; break; case 22: - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); gSpecialVar_Result = 8; break; @@ -2003,7 +2003,7 @@ static void Task_StartActivity(u8 taskId) DestroyTask(taskId); gSpecialVar_Result = 1; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } static void Task_RunScriptAndFadeToActivity(u8 taskId) @@ -2015,11 +2015,11 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) { case 0: gSpecialVar_Result = 1; - EnableBothScriptContexts(); + ScriptContext_Enable(); data[0]++; break; case 1: - if (!ScriptContext1_IsScriptSetUp()) + if (!ScriptContext_IsEnabled()) { FadeScreen(FADE_TO_BLACK, 0); data[0]++; @@ -2776,7 +2776,7 @@ static void Task_RunUnionRoom(u8 taskId) gSpecialVar_Result = 0; } } - else if (ScriptContext2_IsEnabled() != TRUE) + else if (ArePlayerFieldControlsLocked() != TRUE) { if (JOY_NEW(A_BUTTON)) { @@ -3977,7 +3977,7 @@ static void JoinGroup_BlankBg0AndEnableScriptContexts(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); CopyBgTilemapBufferToVram(0); - EnableBothScriptContexts(); + ScriptContext_Enable(); } static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx) @@ -4644,7 +4644,7 @@ static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 mul static void HandleCancelTrade(bool32 unlockObjs) { UR_BlankBg0(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnionRoom_UnlockPlayerAndChatPartner(); sPlayerCurrActivity = 0; if (unlockObjs) @@ -4656,7 +4656,7 @@ static void HandleCancelTrade(bool32 unlockObjs) static void UR_EnableScriptContext2AndFreezeObjectEvents(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjects_WaitForPlayer(); } diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 4962a7cf8..d4032b5fc 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -624,7 +624,7 @@ static void Task_ResetObjectsRematchWantedState(u8 taskId) { DestroyTask(taskId); StopPlayerAvatar(); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -837,7 +837,7 @@ static void Task_VsSeeker_3(u8 taskId) StartAllRespondantIdleMovements(); ClearDialogWindowAndFrame(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } Free(sVsSeeker); diff --git a/src/wild_encounter.c b/src/wild_encounter.c index b513ad47e..d3f076c43 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -593,7 +593,7 @@ bool8 UpdateRepelCounter(void) VarSet(VAR_REPEL_STEP_COUNT, steps); if (steps == 0) { - ScriptContext1_SetupScript(EventScript_RepelWoreOff); + ScriptContext_SetupScript(EventScript_RepelWoreOff); return TRUE; } } From da955aaf6450e2de06d0c493a2ffc352b0bc3d0f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 23 Aug 2022 11:11:50 -0400 Subject: [PATCH 043/105] Document safari reactions, move b string ids to constants --- data/battle_anim_scripts.s | 7 ++-- data/battle_scripts_1.s | 2 +- data/battle_scripts_2.s | 4 +- include/battle.h | 4 +- include/battle_message.h | 1 + include/{ => constants}/battle_string_ids.h | 9 +++-- src/battle_ai_script_commands.c | 4 +- src/battle_anim_special.c | 3 +- src/battle_controller_oak_old_man.c | 1 - src/battle_controller_pokedude.c | 1 - src/battle_main.c | 43 ++++++++++----------- src/battle_message.c | 3 +- src/battle_script_commands.c | 1 - src/battle_util.c | 1 - src/evolution_scene.c | 1 - 15 files changed, 41 insertions(+), 44 deletions(-) rename include/{ => constants}/battle_string_ids.h (99%) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 69c9bb7be..3304833c7 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,5 +1,6 @@ #include "constants/battle.h" #include "constants/battle_anim.h" +#include "constants/battle_string_ids.h" #include "constants/rgb.h" #include "constants/songs.h" #include "constants/sound.h" @@ -10970,9 +10971,9 @@ General_SafariRockThrow: General_SafariReaction: createvisualtask AnimTask_SafariGetReaction, 2 waitforvisualfinish - jumpreteq 0, SafariReaction_WatchingCarefully - jumpreteq 1, SafariReaction_Angry - jumpreteq 2, SafariReaction_Eating + jumpreteq B_MSG_MON_WATCHING, SafariReaction_WatchingCarefully + jumpreteq B_MSG_MON_ANGRY, SafariReaction_Angry + jumpreteq B_MSG_MON_EATING, SafariReaction_Eating end SafariReaction_WatchingCarefully: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 6cf321c02..674bb50d8 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -11,7 +11,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "constants/game_stat.h" -#include "battle_string_ids.h" +#include "constants/battle_string_ids.h" .include "asm/macros/battle_script.inc" @ Define these here since misc_constants.inc conflicts with the C headers .set NULL, 0 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 7a69b2320..6f41e3ce1 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -9,7 +9,7 @@ #include "constants/pokemon.h" #include "constants/songs.h" #include "constants/game_stat.h" -#include "battle_string_ids.h" +#include "constants/battle_string_ids.h" .include "asm/macros/battle_script.inc" @ Define these here since misc_constants.inc conflicts with the C headers .set NULL, 0 @@ -209,7 +209,7 @@ BattleScript_PokeFluteEnd:: finishaction BattleScript_WatchesCarefully:: - printfromtable gSafariPokeblockResultStringIds + printfromtable gSafariReactionStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_OPPONENT1, B_ANIM_SAFARI_REACTION end2 diff --git a/include/battle.h b/include/battle.h index 625c6c017..ce3f89f2d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -402,8 +402,8 @@ struct BattleStruct u8 runTries; u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; u8 field_78; // unused - u8 safariGoNearCounter; - u8 safariPkblThrowCounter; + u8 safariRockThrowCounter; + u8 safariBaitThrowCounter; u8 safariEscapeFactor; u8 safariCatchFactor; u8 linkBattleVsSpriteId_V; diff --git a/include/battle_message.h b/include/battle_message.h index 7e882e3a8..ef5cbcd88 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -2,6 +2,7 @@ #define GUARD_BATTLE_MESSAGE_H #include "global.h" +#include "constants/battle_string_ids.h" // for 0xFD diff --git a/include/battle_string_ids.h b/include/constants/battle_string_ids.h similarity index 99% rename from include/battle_string_ids.h rename to include/constants/battle_string_ids.h index d05863c3c..c648ad7be 100644 --- a/include/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -551,10 +551,11 @@ #define B_MSG_CREPT_CLOSER 0 #define B_MSG_CANT_GET_CLOSER 1 -// gSafariPokeblockResultStringIds -#define B_MSG_MON_WATCHING 0 -#define B_MSG_MON_ANGRY 1 -#define B_MSG_MON_EATING 2 +// gSafariReactionStringIds +#define B_MSG_MON_WATCHING 0 +#define B_MSG_MON_ANGRY 1 +#define B_MSG_MON_EATING 2 +#define NUM_SAFARI_REACTIONS 3 // gFlashFireStringIds #define B_MSG_FLASH_FIRE_BOOST 0 diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index eaa203a54..fdecaccd0 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1714,13 +1714,13 @@ static void Cmd_if_random_safari_flee(void) { u8 safariFleeRate; - if (gBattleStruct->safariGoNearCounter) + if (gBattleStruct->safariRockThrowCounter) { safariFleeRate = gBattleStruct->safariEscapeFactor * 2; if (safariFleeRate > 20) safariFleeRate = 20; } - else if (gBattleStruct->safariPkblThrowCounter != 0) + else if (gBattleStruct->safariBaitThrowCounter != 0) { safariFleeRate = gBattleStruct->safariEscapeFactor / 4; if (safariFleeRate == 0) diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 39bffd4e8..8850ebc3a 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -3,6 +3,7 @@ #include "battle.h" #include "battle_anim.h" #include "battle_main.h" +#include "battle_message.h" #include "battle_controllers.h" #include "battle_interface.h" #include "decompress.h" @@ -2278,7 +2279,7 @@ void AnimTask_SafariOrGhost_DecideAnimSides(u8 taskId) void AnimTask_SafariGetReaction(u8 taskId) { - if (gBattleCommunication[MULTISTRING_CHOOSER] > 2) + if (gBattleCommunication[MULTISTRING_CHOOSER] >= NUM_SAFARI_REACTIONS) gBattleAnimArgs[7] = 0; else gBattleAnimArgs[7] = gBattleCommunication[MULTISTRING_CHOOSER]; diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index f03371750..50331c3d3 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -15,7 +15,6 @@ #include "battle_interface.h" #include "battle_message.h" #include "reshow_battle_screen.h" -#include "battle_string_ids.h" #include "constants/songs.h" #include "constants/items.h" diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 9f27cd1c3..432084b72 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -15,7 +15,6 @@ #include "battle_controllers.h" #include "battle_interface.h" #include "battle_message.h" -#include "battle_string_ids.h" #include "reshow_battle_screen.h" #include "teachy_tv.h" #include "constants/songs.h" diff --git a/src/battle_main.c b/src/battle_main.c index 681230482..349d5e12f 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -9,7 +9,6 @@ #include "battle_message.h" #include "battle_scripts.h" #include "battle_setup.h" -#include "battle_string_ids.h" #include "berry.h" #include "data.h" #include "decompress.h" @@ -2274,8 +2273,8 @@ static void BattleStartClearSetData(void) gLeveledUpInBattle = 0; gAbsentBattlerFlags = 0; gBattleStruct->runTries = 0; - gBattleStruct->safariGoNearCounter = 0; - gBattleStruct->safariPkblThrowCounter = 0; + gBattleStruct->safariRockThrowCounter = 0; + gBattleStruct->safariBaitThrowCounter = 0; *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; *(&gBattleStruct->safariEscapeFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].safariZoneFleeRate * 100 / 1275; if (gBattleStruct->safariEscapeFactor <= 1) @@ -4331,32 +4330,32 @@ static void HandleAction_WatchesCarefully(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - if (gBattleStruct->safariGoNearCounter != 0) + if (gBattleStruct->safariRockThrowCounter != 0) { - --gBattleStruct->safariGoNearCounter; - if (gBattleStruct->safariGoNearCounter == 0) + --gBattleStruct->safariRockThrowCounter; + if (gBattleStruct->safariRockThrowCounter == 0) { *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(gEnemyParty, MON_DATA_SPECIES)].catchRate * 100 / 1275; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_WATCHING; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_ANGRY; } } else { - if (gBattleStruct->safariPkblThrowCounter != 0) + if (gBattleStruct->safariBaitThrowCounter != 0) { - --gBattleStruct->safariPkblThrowCounter; - if (gBattleStruct->safariPkblThrowCounter == 0) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + --gBattleStruct->safariBaitThrowCounter; + if (gBattleStruct->safariBaitThrowCounter == 0) + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_WATCHING; else - gBattleCommunication[5] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_EATING; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_WATCHING; } } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; @@ -4379,10 +4378,10 @@ static void HandleAction_ThrowBait(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleStruct->safariPkblThrowCounter += Random() % 5 + 2; - if (gBattleStruct->safariPkblThrowCounter > 6) - gBattleStruct->safariPkblThrowCounter = 6; - gBattleStruct->safariGoNearCounter = 0; + gBattleStruct->safariBaitThrowCounter += Random() % 5 + 2; + if (gBattleStruct->safariBaitThrowCounter > 6) + gBattleStruct->safariBaitThrowCounter = 6; + gBattleStruct->safariRockThrowCounter = 0; gBattleStruct->safariCatchFactor >>= 1; if (gBattleStruct->safariCatchFactor <= 2) gBattleStruct->safariCatchFactor = 3; @@ -4395,10 +4394,10 @@ static void HandleAction_ThrowRock(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleStruct->safariGoNearCounter += Random() % 5 + 2; - if (gBattleStruct->safariGoNearCounter > 6) - gBattleStruct->safariGoNearCounter = 6; - gBattleStruct->safariPkblThrowCounter = 0; + gBattleStruct->safariRockThrowCounter += Random() % 5 + 2; + if (gBattleStruct->safariRockThrowCounter > 6) + gBattleStruct->safariRockThrowCounter = 6; + gBattleStruct->safariBaitThrowCounter = 0; gBattleStruct->safariCatchFactor <<= 1; if (gBattleStruct->safariCatchFactor > 20) gBattleStruct->safariCatchFactor = 20; diff --git a/src/battle_message.c b/src/battle_message.c index cf332fece..43ebc8444 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1,6 +1,5 @@ #include "global.h" #include "gflib.h" -#include "battle_string_ids.h" #include "battle.h" #include "battle_anim.h" #include "strings.h" @@ -1186,7 +1185,7 @@ const u16 gInobedientStringIds[] = [B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE }; -const u16 gSafariPokeblockResultStringIds[] = +const u16 gSafariReactionStringIds[NUM_SAFARI_REACTIONS] = { [B_MSG_MON_WATCHING] = STRINGID_PKMNWATCHINGCAREFULLY, [B_MSG_MON_ANGRY] = STRINGID_PKMNANGRY, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 272c900bb..5642fa8a6 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -23,7 +23,6 @@ #include "battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_scripts.h" -#include "battle_string_ids.h" #include "reshow_battle_screen.h" #include "battle_controllers.h" #include "battle_interface.h" diff --git a/src/battle_util.c b/src/battle_util.c index bad9457a2..be2422ff7 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -15,7 +15,6 @@ #include "battle_message.h" #include "constants/battle_anim.h" #include "battle_controllers.h" -#include "battle_string_ids.h" #include "battle_ai_script_commands.h" #include "constants/battle.h" #include "constants/moves.h" diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 8ab93a353..4b2a0fc70 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -22,7 +22,6 @@ #include "task.h" #include "text_window.h" #include "trig.h" -#include "battle_string_ids.h" #include "constants/moves.h" #include "constants/songs.h" #include "constants/pokemon.h" From b06d2045fc9910a01bb6ac8ba1fcf058cb62d98f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 24 Aug 2022 18:17:18 -0400 Subject: [PATCH 044/105] Script_HeartIcon -> Script_XIcon --- data/field_effect_scripts.s | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index a2bff536f..0dc13e882 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -48,7 +48,7 @@ gFieldEffectScriptPointers:: .4byte gFldEffScript_UseWaterfall @ FLDEFF_USE_WATERFALL .4byte gFldEffScript_UseDive @ FLDEFF_USE_DIVE .4byte gFldEffScript_Pokeball @ FLDEFF_POKEBALL - .4byte gFldEffScript_HeartIcon @ FLDEFF_X_ICON + .4byte gFldEffScript_XIcon @ FLDEFF_X_ICON .4byte gFldEffScript_Nop47 @ FLDEFF_NOP_47 .4byte gFldEffScript_Nop48 @ FLDEFF_NOP_48 .4byte gFldEffScript_PopOutOfAsh @ FLDEFF_POP_OUT_OF_ASH @@ -256,7 +256,7 @@ gFldEffScript_Pokeball:: callnative FldEff_Pokeball end -gFldEffScript_HeartIcon:: +gFldEffScript_XIcon:: callnative FldEff_XIcon end From 321f5371d8cfea9d2b58481e354865d2c135f099 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 25 Aug 2022 15:03:04 -0400 Subject: [PATCH 045/105] Sync cable club --- data/scripts/cable_club.inc | 76 ++-- include/battle_records.h | 2 +- include/cable_club.h | 11 +- include/constants/cable_club.h | 17 + include/constants/maps.h | 2 + include/field_message_box.h | 7 + include/link.h | 35 +- include/mevent.h | 8 +- include/new_menu_helpers.h | 2 +- include/strings.h | 10 +- src/battle_controllers.c | 2 +- src/battle_records.c | 2 +- src/cable_club.c | 709 ++++++++++++++++++--------------- src/field_fadetransition.c | 2 +- src/field_message_box.c | 9 +- src/link.c | 36 +- src/link_rfu_2.c | 12 +- src/mevent.c | 2 +- src/new_menu_helpers.c | 2 +- src/overworld.c | 11 +- src/strings.c | 10 +- src/trade.c | 22 +- src/trade_scene.c | 4 +- src/union_room.c | 4 +- 24 files changed, 535 insertions(+), 462 deletions(-) diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index b225958a3..a9dba5bdd 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -275,12 +275,12 @@ CableClub_EventScript_TryEnterColosseum:: special TryBattleLinkup waitstate call EventScript_RestorePrevTextColor - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterColosseum - goto_if_eq VAR_RESULT, 2, CableClub_EventScript_AbortLinkSomeoneNotReady - goto_if_eq VAR_RESULT, 3, CableClub_EventScript_AbortLinkDifferentSelections - goto_if_eq VAR_RESULT, 4, CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_AbortLink - goto_if_eq VAR_RESULT, 6, CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterColosseum + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError end CableClub_EventScript_EnterColosseum:: @@ -373,14 +373,14 @@ CableClub_EventScript_TradeCenter:: special TryTradeLinkup waitstate call EventScript_RestorePrevTextColor - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterTradeCenter - goto_if_eq VAR_RESULT, 2, CableClub_EventScript_AbortLinkSomeoneNotReady - goto_if_eq VAR_RESULT, 3, CableClub_EventScript_AbortLinkDifferentSelections - goto_if_eq VAR_RESULT, 4, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_AbortLink - goto_if_eq VAR_RESULT, 6, CableClub_EventScript_AbortLinkConnectionError - goto_if_eq VAR_RESULT, 7, CableClub_EventScript_AbortLinkPlayerNotReady - goto_if_eq VAR_RESULT, 9, CableClub_EventScript_AbortLinkOtherTrainerNotReady + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterTradeCenter + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_PLAYER_NOT_READY, CableClub_EventScript_AbortLinkPlayerNotReady + goto_if_eq VAR_RESULT, LINKUP_PARTNER_NOT_READY, CableClub_EventScript_AbortLinkOtherTrainerNotReady end CableClub_EventScript_EnterTradeCenter:: @@ -963,17 +963,17 @@ CableClub_EventScript_ChooseLinkLeaderFrom2:: CableClub_EventScript_TryLeadGroup2Players:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom2 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryLeadGroup2Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup2Players release return CableClub_EventScript_TryJoinGroup2Players:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom2 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinGroup2Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup2Players release return @@ -992,17 +992,17 @@ CableClub_EventScript_ChooseLinkLeaderFrom4:: CableClub_EventScript_TryLeadGroup4Players:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom4 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryLeadGroup4Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup4Players release return CableClub_EventScript_TryJoinGroup4Players:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom4 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinGroup4Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup4Players release return @@ -1021,17 +1021,17 @@ CableClub_EventScript_ChooseLinkLeader:: CableClub_EventScript_TryLeadGroupXPlayers:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeader - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryLeadGroupXPlayers + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroupXPlayers release return CableClub_EventScript_TryJoinGroupXPlayers:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeader - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinGroupXPlayers + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroupXPlayers release return @@ -1217,17 +1217,17 @@ CableClub_EventScript_ChooseLinkLeaderMinigame:: CableClub_EventScript_TryBecomeMinigameLinkLeader:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterMinigame - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderMinigame - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryBecomeMinigameLinkLeader + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterMinigame + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderMinigame + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryBecomeMinigameLinkLeader release return CableClub_EventScript_TryJoinMinigameLinkGroup:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterMinigame - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderMinigame - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinMinigameLinkGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterMinigame + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderMinigame + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinMinigameLinkGroup release return diff --git a/include/battle_records.h b/include/battle_records.h index b66fbd686..cb6cd3747 100644 --- a/include/battle_records.h +++ b/include/battle_records.h @@ -2,6 +2,6 @@ #define GUARD_BATTLE_RECORDS_H void ClearPlayerLinkBattleRecords(void); -void TryRecordLinkBattleOutcome(s32 battlerId); +void UpdatePlayerLinkBattleRecords(s32 battlerId); #endif // GUARD_BATTLE_RECORDS_H diff --git a/include/cable_club.h b/include/cable_club.h index d89e8222c..7a36c5767 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -1,15 +1,8 @@ #ifndef GUARD_CABLE_CLUB_H #define GUARD_CABLE_CLUB_H -#include "task.h" - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations -void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId); -u8 CreateTask_ReestablishLinkInCableClubRoom(void); +void Task_WaitForLinkPlayerConnection(u8 taskId); +u8 CreateTask_ReestablishCableClubLink(void); void CB2_ReturnFromCableClubBattle(void); bool32 GetSeeingLinkPlayerCardMsg(u8 who); diff --git a/include/constants/cable_club.h b/include/constants/cable_club.h index f2aa4120c..7c2fedb42 100644 --- a/include/constants/cable_club.h +++ b/include/constants/cable_club.h @@ -12,4 +12,21 @@ #define USING_MINIGAME 8 #define USING_BATTLE_TOWER 9 +// Return states for the group of specials that use CreateLinkupTask +// A few also used by TryBecomeLinkLeader and TryJoinLinkGroup +#define LINKUP_ONGOING 0 +#define LINKUP_SUCCESS 1 +#define LINKUP_SOMEONE_NOT_READY 2 +#define LINKUP_DIFF_SELECTIONS 3 +#define LINKUP_WRONG_NUM_PLAYERS 4 +#define LINKUP_FAILED 5 +#define LINKUP_CONNECTION_ERROR 6 +#define LINKUP_PLAYER_NOT_READY 7 +#define LINKUP_RETRY_ROLE_ASSIGN 8 +#define LINKUP_PARTNER_NOT_READY 9 + +#define CABLE_SEAT_WAITING 0 +#define CABLE_SEAT_SUCCESS 1 +#define CABLE_SEAT_FAILED 2 + #endif //GUARD_CONSTANTS_CABLE_CLUB_H diff --git a/include/constants/maps.h b/include/constants/maps.h index 57cc1d078..6e127ede6 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -12,6 +12,8 @@ #define MAP(map) MAP_GROUP(map), MAP_NUM(map) +#define WARP_ID_DYNAMIC 0x7F + // Used to indicate an invalid warp id, for dummy warps or when a warp should // use the given coordinates rather than the coordinates of a target warp. #define WARP_ID_NONE (-1) diff --git a/include/field_message_box.h b/include/field_message_box.h index 0f81efb20..430f2baf0 100644 --- a/include/field_message_box.h +++ b/include/field_message_box.h @@ -3,6 +3,13 @@ #include "global.h" +enum { + FIELD_MESSAGE_BOX_HIDDEN, + FIELD_MESSAGE_BOX_UNUSED, + FIELD_MESSAGE_BOX_NORMAL, + FIELD_MESSAGE_BOX_AUTO_SCROLL, +}; + bool8 ShowFieldMessage(const u8 *message); bool8 ShowFieldAutoScrollMessage(const u8 *message); void HideFieldMessageBox(void); diff --git a/include/link.h b/include/link.h index 47f85bb9d..0f436ef8e 100644 --- a/include/link.h +++ b/include/link.h @@ -68,7 +68,7 @@ #define LINKTYPE_TRADE 0x1111 // trade #define LINKTYPE_0x1122 0x1122 // trade -#define LINKTYPE_0x1133 0x1133 // trade +#define LINKTYPE_TRADE_SETUP 0x1133 #define LINKTYPE_0x1144 0x1144 // trade #define LINKTYPE_BATTLE 0x2211 #define LINKTYPE_0x2222 0x2222 // unused battle? @@ -78,11 +78,19 @@ #define LINKTYPE_BATTLE_TOWER_50 0x2266 #define LINKTYPE_BATTLE_TOWER_OPEN 0x2277 #define LINKTYPE_BATTLE_TOWER 0x2288 -#define LINKTYPE_0x3311 0x3311 -#define LINKTYPE_0x3322 0x3322 +#define LINKTYPE_RECORD_MIX_BEFORE 0x3311 +#define LINKTYPE_RECORD_MIX_AFTER 0x3322 #define LINKTYPE_BERRY_BLENDER_SETUP 0x4411 #define LINKTYPE_CONTEST_GMODE 0x6601 +enum { + BLOCK_REQ_SIZE_NONE, // Identical to 200 + BLOCK_REQ_SIZE_200, + BLOCK_REQ_SIZE_100, + BLOCK_REQ_SIZE_220, + BLOCK_REQ_SIZE_40, +}; + #define MASTER_HANDSHAKE 0x8FFF #define SLAVE_HANDSHAKE 0xB9A0 @@ -102,11 +110,10 @@ enum EXCHANGE_NOT_STARTED, EXCHANGE_COMPLETE, EXCHANGE_TIMED_OUT, - EXCHANGE_IN_PROGRESS, - EXCHANGE_STAT_4, - EXCHANGE_STAT_5, - EXCHANGE_STAT_6, - EXCHANGE_STAT_7 + EXCHANGE_DIFF_SELECTIONS, + EXCHANGE_PLAYER_NOT_READY, + EXCHANGE_PARTNER_NOT_READY, + EXCHANGE_WRONG_NUM_PLAYERS, }; enum @@ -269,17 +276,17 @@ void ClearLinkCallback_2(void); void Rfu_SetLinkStandbyCallback(void); void ConvertLinkPlayerName(struct LinkPlayer * linkPlayer); bool8 IsWirelessAdapterConnected(void); -bool8 Link_PrepareCmd0xCCCC_Rfu0xA100(u8 blockRequestType); +bool8 SendBlockRequest(u8 blockRequestType); void LinkVSync(void); bool8 HandleLinkConnection(void); void LocalLinkPlayerToBlock(void); void LinkPlayerFromBlock(u32 who); void SetLinkErrorFromRfu(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 isConnectionError); -u8 sub_800A8D4(void); -void sub_800AA24(void); -void sub_800A900(u8 a0); -u8 sub_800A8A4(void); -void sub_800A9A4(void); +u8 GetLinkPlayerCountAsBitFlags(void); +void ResetLinkPlayerCount(void); +void SaveLinkPlayers(u8 numPlayers); +u8 GetSavedLinkPlayerCountAsBitFlags(void); +void CheckLinkPlayersMatchSaved(void); void SetLocalLinkPlayerId(u8 playerId); bool32 IsSendingKeysToLink(void); u32 GetLinkRecvQueueLength(void); diff --git a/include/mevent.h b/include/mevent.h index 3dc1621b0..8a75dde65 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -3,6 +3,12 @@ #include "global.h" +#define CARD_STAT_BATTLES_WON 0 +#define CARD_STAT_BATTLES_LOST 1 +#define CARD_STAT_NUM_TRADES 2 +#define CARD_STAT_NUM_STAMPS 3 +#define CARD_STAT_MAX_STAMPS 4 + struct MEventClientHeaderStruct { u32 unk_00; @@ -85,7 +91,7 @@ bool32 WonderCard_Test_Unk_08_6(void); u32 MENews_GetInput(u16 input); void InitMEventData(void); u16 MEvent_GetBattleCardCount(u32 command); -void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId); +void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId); u16 *GetMEventProfileECWordsMaybe(void); void ResetReceivedWonderCardFlag(void); bool32 MEventHandleReceivedWonderCard(u16 flagId); diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 99a8e1400..a44595257 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -31,7 +31,7 @@ void DrawDialogueFrame(u8 windowId, bool8 transfer); void DrawStdWindowFrame(u8 windowId, bool8 copyNow); void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram); void ClearStdWindowAndFrame(u8 windowId, bool8 copyNow); -void sub_80F771C(bool8 copyToVram); +void EraseFieldMessageBox(bool8 copyToVram); void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram); void sub_80F7768(u8 windowId, bool8 copyToVram); void Menu_LoadStdPal(void); diff --git a/include/strings.h b/include/strings.h index 63fed5e97..d904442f1 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1174,11 +1174,11 @@ extern const u8 gText_ExcellentsInARow[]; extern const u8 gText_PkmnJumpRecords[]; // cable_club -extern const u8 gUnknown_841DF82[]; -extern const u8 gUnknown_841DF8B[]; -extern const u8 gUnknown_841DF92[]; -extern const u8 gUnknown_841DF99[]; -extern const u8 gUnknown_841DFA0[]; +extern const u8 gText_NumPlayerLink[]; +extern const u8 gText_BronzeCard[]; +extern const u8 gText_CopperCard[]; +extern const u8 gText_SilverCard[]; +extern const u8 gText_GoldCard[]; // berry_crush extern const u8 gText_BerryCrush_AreYouReady[]; diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 205c49362..cd4f2c89d 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -36,7 +36,7 @@ void HandleLinkBattleSetup(void) SetWirelessCommType1(); if (!gReceivedRemoteLinkPlayers) OpenLink(); - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 0); + CreateTask(Task_WaitForLinkPlayerConnection, 0); CreateTasksForSendRecvLinkBuffers(); } } diff --git a/src/battle_records.c b/src/battle_records.c index 4bde6aec9..dbf8ccef2 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -440,7 +440,7 @@ static void UpdateBattleOutcomeOnTrainerCards(s32 battlerId) } } -void TryRecordLinkBattleOutcome(s32 battlerId) +void UpdatePlayerLinkBattleRecords(s32 battlerId) { if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(UNION_ROOM) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(UNION_ROOM)) { diff --git a/src/cable_club.c b/src/cable_club.c index e4238bb40..80e6fc78e 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -25,28 +25,38 @@ #include "constants/songs.h" #include "constants/cable_club.h" #include "constants/field_weather.h" +#include "constants/maps.h" u32 UnusedVarNeededToMatch[8]; -static void Task_Linkup0(u8 taskId); -static void Task_Linkup1(u8 taskId); -static void Task_LinkupMaster_2(u8 taskId); -static void Task_LinkupMaster_3(u8 taskId); -static void Task_LinkupMaster_4(u8 taskId); -static void Task_LinkupMaster_5(u8 taskId); -static void Task_LinkupSlave_2(u8 taskId); -static void Task_LinkupMaster_6(u8 taskId); -static void Task_Linkup_6a(u8 taskId); -static void Task_Linkup_7(u8 taskId); -static void Task_Linkup_Canceled(u8 taskId); -static void Task_Linkup_ErroredOut(u8 taskId); -static bool8 Task_Linkup_TimedOut(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_0(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_1(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_Master(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_2(u8 taskId); +static void Task_LinkupStart(u8 taskId); +static void Task_LinkupAwaitConnection(u8 taskId); +static void Task_LinkupConfirmWhenReady(u8 taskId); +static void Task_LinkupAwaitConfirmation(u8 taskId); +static void Task_LinkupTryConfirmation(u8 taskId); +static void Task_LinkupConfirm(u8 taskId); +static void Task_LinkupExchangeDataWithLeader(u8 taskId); +static void Task_LinkupCheckStatusAfterConfirm(u8 taskId); +static void Task_LinkupAwaitTrainerCardData(u8 taskId); +static void Task_StopLinkup(u8 taskId); +static void Task_LinkupFailed(u8 taskId); +static void Task_LinkupConnectionError(u8 taskId); +static bool8 TryLinkTimeout(u8 taskId); +static void Task_ReestablishLink(u8 taskId); +static void Task_ReestablishLinkAwaitConnection(u8 taskId); +static void Task_ReestablishLinkLeader(u8 taskId); +static void Task_ReestablishLinkAwaitConfirmation(u8 taskId); -static const struct WindowTemplate gUnknown_83C6AB0 = { +#define tState data[0] + + +#define tMinPlayers data[1] +#define tMaxPlayers data[2] +#define tNumPlayers data[3] +#define tTimer data[4] +#define tWindowId data[5] + +static const struct WindowTemplate sWindowTemplate_LinkPlayerCount = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 11, @@ -56,270 +66,290 @@ static const struct WindowTemplate gUnknown_83C6AB0 = { .baseBlock = 0x125 }; -static const u8 *const sStarsMessagePtrs[] = { - gUnknown_841DF8B, - gUnknown_841DF92, - gUnknown_841DF99, - gUnknown_841DFA0 +static const u8 *const sTrainerCardColorNames[] = { + gText_BronzeCard, + gText_CopperCard, + gText_SilverCard, + gText_GoldCard }; -static void CreateLinkupTask(u8 lower, u8 higher) +static void CreateLinkupTask(u8 minPlayers, u8 maxPlayers) { u8 taskId; - if (FindTaskIdByFunc(Task_Linkup0) == 0xFF) + if (FindTaskIdByFunc(Task_LinkupStart) == TASK_NONE) { - taskId = CreateTask(Task_Linkup0, 80); - gTasks[taskId].data[1] = lower; - gTasks[taskId].data[2] = higher; + taskId = CreateTask(Task_LinkupStart, 80); + gTasks[taskId].tMinPlayers = minPlayers; + gTasks[taskId].tMaxPlayers = maxPlayers; } } -static void PrintNewCountOnLinkPlayerCountDisplayWindow(u16 windowId, s32 num) +static void PrintNumPlayersInLink(u16 windowId, s32 numPlayers) { - ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_LEFT_ALIGN, 1); + ConvertIntToDecimalStringN(gStringVar1, numPlayers, STR_CONV_MODE_LEFT_ALIGN, 1); SetStdWindowBorderStyle(windowId, FALSE); - StringExpandPlaceholders(gStringVar4, gUnknown_841DF82); + StringExpandPlaceholders(gStringVar4, gText_NumPlayerLink); AddTextPrinterParameterized(windowId, FONT_2, gStringVar4, 0, 0, TEXT_SKIP_DRAW, NULL); CopyWindowToVram(windowId, COPYWIN_FULL); } -static void DestroyLinkPlayerCountDisplayWindow(u16 windowId) +static void ClearLinkPlayerCountWindow(u16 windowId) { ClearStdWindowAndFrame(windowId, FALSE); CopyWindowToVram(windowId, COPYWIN_FULL); } -static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num) +static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 numPlayers) { s16 *data = gTasks[taskId].data; - if (num != data[3]) + if (numPlayers != tNumPlayers) { - if (num < 2) - DestroyLinkPlayerCountDisplayWindow(data[5]); + if (numPlayers < 2) + ClearLinkPlayerCountWindow(tWindowId); else - PrintNewCountOnLinkPlayerCountDisplayWindow(data[5], num); - data[3] = num; + PrintNumPlayersInLink(tWindowId, numPlayers); + tNumPlayers = numPlayers; } } -static u16 sub_8080844(u8 lower, u8 higher) +static u16 ExchangeDataAndGetLinkupStatus(u8 minPlayers, u8 maxPlayers) { - switch (GetLinkPlayerDataExchangeStatusTimed(lower, higher)) + switch (GetLinkPlayerDataExchangeStatusTimed(minPlayers, maxPlayers)) { case EXCHANGE_COMPLETE: - return 1; - case EXCHANGE_IN_PROGRESS: - return 3; - case EXCHANGE_STAT_4: - return 7; - case EXCHANGE_STAT_5: - return 9; - case EXCHANGE_STAT_6: + return LINKUP_SUCCESS; + case EXCHANGE_DIFF_SELECTIONS: + return LINKUP_DIFF_SELECTIONS; + case EXCHANGE_PLAYER_NOT_READY: + return LINKUP_PLAYER_NOT_READY; + case EXCHANGE_PARTNER_NOT_READY: + return LINKUP_PARTNER_NOT_READY; + case EXCHANGE_WRONG_NUM_PLAYERS: ConvertIntToDecimalStringN(gStringVar1, GetLinkPlayerCount_2(), STR_CONV_MODE_LEFT_ALIGN, 1); - return 4; + return LINKUP_WRONG_NUM_PLAYERS; default: - return 0; + return LINKUP_ONGOING; } } -static bool32 sub_80808BC(u8 taskId) +static bool32 CheckLinkErrored(u8 taskId) { if (HasLinkErrorOccurred() == TRUE) { - gTasks[taskId].func = Task_Linkup_ErroredOut; + gTasks[taskId].func = Task_LinkupConnectionError; return TRUE; } return FALSE; } -static bool32 sub_80808F0(u8 taskId) +static bool32 CheckLinkCanceledBeforeConnection(u8 taskId) { if (JOY_NEW(B_BUTTON) && !IsLinkConnectionEstablished()) { gLinkType = 0; - gTasks[taskId].func = Task_Linkup_Canceled; + gTasks[taskId].func = Task_LinkupFailed; return TRUE; } return FALSE; } -static bool32 sub_808093C(u8 taskId) +static bool32 CheckLinkCanceled(u8 taskId) { if (IsLinkConnectionEstablished()) - { SetSuppressLinkErrorMessage(TRUE); - } + if (JOY_NEW(B_BUTTON)) { gLinkType = 0; - gTasks[taskId].func = Task_Linkup_Canceled; + gTasks[taskId].func = Task_LinkupFailed; return TRUE; } return FALSE; } -static bool32 sub_8080990(u8 taskId) +static bool32 CheckSioErrored(u8 taskId) { if (GetSioMultiSI() == TRUE) { - gTasks[taskId].func = Task_Linkup_ErroredOut; + gTasks[taskId].func = Task_LinkupConnectionError; return TRUE; } return FALSE; } -static void sub_80809C4(u8 taskId) +// Unused +static void Task_DelayedBlockRequest(u8 taskId) { gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 10) { - Link_PrepareCmd0xCCCC_Rfu0xA100(2); + SendBlockRequest(BLOCK_REQ_SIZE_100); DestroyTask(taskId); } } -static void Task_Linkup0(u8 taskId) +static void Task_LinkupStart(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { OpenLinkTimed(); - sub_800AA24(); + ResetLinkPlayerCount(); ResetLinkPlayers(); - data[5] = AddWindow(&gUnknown_83C6AB0); + tWindowId = AddWindow(&sWindowTemplate_LinkPlayerCount); } else if (data[0] > 9) { - gTasks[taskId].func = Task_Linkup1; + gTasks[taskId].func = Task_LinkupAwaitConnection; } data[0]++; } -static void Task_Linkup1(u8 taskId) +static void Task_LinkupAwaitConnection(u8 taskId) { - u8 linkPlayerCount = GetLinkPlayerCount_2(); - if (sub_80808F0(taskId) != TRUE && sub_808093C(taskId) != TRUE && linkPlayerCount >= 2) + u8 playerCount = GetLinkPlayerCount_2(); + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckLinkCanceled(taskId) == TRUE + || playerCount < 2) + return; + + SetSuppressLinkErrorMessage(TRUE); + gTasks[taskId].data[3] = 0; + if (IsLinkMaster() == TRUE) { - SetSuppressLinkErrorMessage(TRUE); - gTasks[taskId].data[3] = 0; - if (IsLinkMaster() == TRUE) - { - PlaySE(SE_PIN); - ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_2; - } - else - { - PlaySE(SE_BOO); - ShowFieldAutoScrollMessage(CableClub_Text_AwaitingLinkupBCancel); - gTasks[taskId].func = Task_LinkupSlave_2; - } + PlaySE(SE_PIN); + ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); + gTasks[taskId].func = Task_LinkupConfirmWhenReady; + } + else + { + PlaySE(SE_BOO); + ShowFieldAutoScrollMessage(CableClub_Text_AwaitingLinkupBCancel); + gTasks[taskId].func = Task_LinkupExchangeDataWithLeader; } } -static void Task_LinkupMaster_2(u8 taskId) +static void Task_LinkupConfirmWhenReady(u8 taskId) { - if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE && !GetFieldMessageBoxType()) + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckSioErrored(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + if (GetFieldMessageBoxType() == FIELD_MESSAGE_BOX_HIDDEN) { - gTasks[taskId].data[3] = 0; - gTasks[taskId].func = Task_LinkupMaster_3; + gTasks[taskId].tNumPlayers = 0; + gTasks[taskId].func = Task_LinkupAwaitConfirmation; } } -static void Task_LinkupMaster_3(u8 taskId) +static void Task_LinkupAwaitConfirmation(u8 taskId) { s16 *data = gTasks[taskId].data; s32 linkPlayerCount = GetLinkPlayerCount_2(); - if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE) + + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckSioErrored(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + UpdateLinkPlayerCountDisplay(taskId, linkPlayerCount); + if (JOY_NEW(A_BUTTON) && linkPlayerCount >= tMinPlayers) { - UpdateLinkPlayerCountDisplay(taskId, linkPlayerCount); - if (JOY_NEW(A_BUTTON) && linkPlayerCount >= data[1]) - { - sub_800A900(linkPlayerCount); - DestroyLinkPlayerCountDisplayWindow(data[5]); - ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1); - ShowFieldAutoScrollMessage(CableClub_Text_StartLinkWithXPlayersAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_4; - } + SaveLinkPlayers(linkPlayerCount); + ClearLinkPlayerCountWindow(tWindowId); + ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1); + ShowFieldAutoScrollMessage(CableClub_Text_StartLinkWithXPlayersAConfirmBCancel); + gTasks[taskId].func = Task_LinkupTryConfirmation; } + } -static void Task_LinkupMaster_4(u8 taskId) +static void Task_LinkupTryConfirmation(u8 taskId) { - if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE && !GetFieldMessageBoxType()) + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckSioErrored(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + if (GetFieldMessageBoxType() == FIELD_MESSAGE_BOX_HIDDEN) { if (GetSavedPlayerCount() != GetLinkPlayerCount_2()) { ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_2; + gTasks[taskId].func = Task_LinkupConfirmWhenReady; } else if (JOY_HELD(B_BUTTON)) { ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_2; + gTasks[taskId].func = Task_LinkupConfirmWhenReady; } else if (JOY_HELD(A_BUTTON)) { PlaySE(SE_SELECT); CheckShouldAdvanceLinkState(); - gTasks[taskId].func = Task_LinkupMaster_5; + gTasks[taskId].func = Task_LinkupConfirm; } } } -static void Task_LinkupMaster_5(u8 taskId) +static void Task_LinkupConfirm(u8 taskId) { - u8 lower = gTasks[taskId].data[1]; - u8 higher = gTasks[taskId].data[2]; - u16 *res; - if (sub_80808BC(taskId) != TRUE && Task_Linkup_TimedOut(taskId) != TRUE) + u8 minPlayers = gTasks[taskId].tMinPlayers; + u8 maxPlayers = gTasks[taskId].tMaxPlayers; + + if (CheckLinkErrored(taskId) == TRUE + || TryLinkTimeout(taskId) == TRUE) + return; + + if (GetLinkPlayerCount_2() != GetSavedPlayerCount()) { - if (GetLinkPlayerCount_2() != GetSavedPlayerCount()) - { - gTasks[taskId].func = Task_Linkup_ErroredOut; - } - else - { - res = &gSpecialVar_Result; - *res = sub_8080844(lower, higher); - if (*res) - gTasks[taskId].func = Task_LinkupMaster_6; - } + gTasks[taskId].func = Task_LinkupConnectionError; + } + else + { + u16 *result = &gSpecialVar_Result; + *result = ExchangeDataAndGetLinkupStatus(minPlayers, maxPlayers); + if (*result) + gTasks[taskId].func = Task_LinkupCheckStatusAfterConfirm; } } -static void Task_LinkupSlave_2(u8 taskId) +static void Task_LinkupExchangeDataWithLeader(u8 taskId) { - u8 lower = gTasks[taskId].data[1]; - u8 higher = gTasks[taskId].data[2]; - u16 *res; - if (sub_80808F0(taskId) != TRUE && sub_80808BC(taskId) != TRUE) + u8 minPlayers = gTasks[taskId].tMinPlayers; + u8 maxPlayers = gTasks[taskId].tMaxPlayers; + u16 *result; + + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + result = &gSpecialVar_Result; + *result = ExchangeDataAndGetLinkupStatus(minPlayers, maxPlayers); + if (*result == LINKUP_ONGOING) + return; + if (*result == LINKUP_DIFF_SELECTIONS + || *result == LINKUP_WRONG_NUM_PLAYERS) { - res = &gSpecialVar_Result; - *res = sub_8080844(lower, higher); - if (*res) - { - if (*res == 3 || *res == 4) - { - SetCloseLinkCallback(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else if (*res == 7 || *res == 9) - { - CloseLink(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else - { - gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLocalLinkPlayerId = GetMultiplayerId(); - sub_800A900(gFieldLinkPlayerCount); - TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); - gTasks[taskId].func = Task_Linkup_6a; - } - } + SetCloseLinkCallback(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else if (*result == LINKUP_PLAYER_NOT_READY + || *result == LINKUP_PARTNER_NOT_READY) + { + CloseLink(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else + { + gFieldLinkPlayerCount = GetLinkPlayerCount_2(); + gLocalLinkPlayerId = GetMultiplayerId(); + SaveLinkPlayers(gFieldLinkPlayerCount); + TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); + gTasks[taskId].func = Task_LinkupAwaitTrainerCardData; } } @@ -337,120 +367,124 @@ static bool32 AnyConnectedPartnersPlayingRS(void) return FALSE; } -static void Task_LinkupMaster_6(u8 taskId) +static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) { - if (sub_80808BC(taskId) != TRUE) + if (CheckLinkErrored(taskId) == TRUE) + return; + + if (gSpecialVar_Result == LINKUP_WRONG_NUM_PLAYERS) { - if (gSpecialVar_Result == 4) - { - if (AnyConnectedPartnersPlayingRS() == TRUE) - CloseLink(); - else - SetCloseLinkCallback(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else if (gSpecialVar_Result == 3) - { - SetCloseLinkCallback(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else if (gSpecialVar_Result == 7 || gSpecialVar_Result == 9) - { + if (AnyConnectedPartnersPlayingRS() == TRUE) CloseLink(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } else - { - gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLocalLinkPlayerId = GetMultiplayerId(); - sub_800A900(gFieldLinkPlayerCount); - TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); - gTasks[taskId].func = Task_Linkup_6a; - Link_PrepareCmd0xCCCC_Rfu0xA100(2); - } + SetCloseLinkCallback(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else if (gSpecialVar_Result == LINKUP_DIFF_SELECTIONS) + { + SetCloseLinkCallback(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else if (gSpecialVar_Result == LINKUP_PLAYER_NOT_READY + || gSpecialVar_Result == LINKUP_PARTNER_NOT_READY) + { + CloseLink(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else + { + gFieldLinkPlayerCount = GetLinkPlayerCount_2(); + gLocalLinkPlayerId = GetMultiplayerId(); + SaveLinkPlayers(gFieldLinkPlayerCount); + TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); + gTasks[taskId].func = Task_LinkupAwaitTrainerCardData; + SendBlockRequest(BLOCK_REQ_SIZE_100); } } -static void Task_Linkup_6a(u8 taskId) +static void Task_LinkupAwaitTrainerCardData(u8 taskId) { u8 i; u16 version; u8 * dest; - if (sub_80808BC(taskId) != TRUE && GetBlockReceivedStatus() == sub_800A8A4()) + + if (CheckLinkErrored(taskId) == TRUE) + return; + + if (GetBlockReceivedStatus() != GetSavedLinkPlayerCountAsBitFlags()) + return; + + for (i = 0; i < GetLinkPlayerCount(); i++) { - for(i = 0; i < GetLinkPlayerCount(); i++) + version = gLinkPlayers[i].version & 0xFF; + if (version != VERSION_FIRE_RED && version != VERSION_LEAF_GREEN) { - version = gLinkPlayers[i].version & 0xFF; - if (version != VERSION_FIRE_RED && version != VERSION_LEAF_GREEN) - { - const struct TrainerCardRSE * src = (const struct TrainerCardRSE *)gBlockRecvBuffer[i]; - gTrainerCards[i].rse = *src; - gTrainerCards[i].version = gLinkPlayers[i].version; - } - else - { - const struct TrainerCard * src = (const struct TrainerCard *)gBlockRecvBuffer[i]; - gTrainerCards[i] = *src; - } - } - SetSuppressLinkErrorMessage(FALSE); - ResetBlockReceivedFlags(); - HideFieldMessageBox(); - if (gSpecialVar_Result == 1) - { - // Dumb trick required to match - if (gLinkType == LINKTYPE_BERRY_BLENDER_SETUP) - *UnusedVarNeededToMatch += 0; - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); - EnableBothScriptContexts(); - DestroyTask(taskId); + const struct TrainerCardRSE * src = (const struct TrainerCardRSE *)gBlockRecvBuffer[i]; + gTrainerCards[i].rse = *src; + gTrainerCards[i].version = gLinkPlayers[i].version; } else { - SetCloseLinkCallback(); - gTasks[taskId].func = Task_Linkup_7; + const struct TrainerCard * src = (const struct TrainerCard *)gBlockRecvBuffer[i]; + gTrainerCards[i] = *src; } } + SetSuppressLinkErrorMessage(FALSE); + ResetBlockReceivedFlags(); + HideFieldMessageBox(); + if (gSpecialVar_Result == LINKUP_SUCCESS) + { + // Dumb trick required to match + if (gLinkType == LINKTYPE_BERRY_BLENDER_SETUP) + *UnusedVarNeededToMatch += 0; + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); + EnableBothScriptContexts(); + DestroyTask(taskId); + } + else + { + SetCloseLinkCallback(); + gTasks[taskId].func = Task_StopLinkup; + } } -static void Task_Linkup_7(u8 taskId) +static void Task_StopLinkup(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); EnableBothScriptContexts(); - RemoveWindow(gTasks[taskId].data[5]); + RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); } } -static void Task_Linkup_Canceled(u8 taskId) +static void Task_LinkupFailed(u8 taskId) { - gSpecialVar_Result = 5; - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); + gSpecialVar_Result = LINKUP_FAILED; + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); HideFieldMessageBox(); EnableBothScriptContexts(); DestroyTask(taskId); } -static void Task_Linkup_ErroredOut(u8 taskId) +static void Task_LinkupConnectionError(u8 taskId) { - gSpecialVar_Result = 6; - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); + gSpecialVar_Result = LINKUP_CONNECTION_ERROR; + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); HideFieldMessageBox(); EnableBothScriptContexts(); DestroyTask(taskId); } -static bool8 Task_Linkup_TimedOut(u8 taskId) +static bool8 TryLinkTimeout(u8 taskId) { - gTasks[taskId].data[4]++; - if (gTasks[taskId].data[4] > 600) + if (++gTasks[taskId].tTimer > 600) { - gTasks[taskId].func = Task_Linkup_ErroredOut; + gTasks[taskId].func = Task_LinkupConnectionError; return TRUE; } return FALSE; @@ -458,37 +492,47 @@ static bool8 Task_Linkup_TimedOut(u8 taskId) void TryBattleLinkup(void) { - u8 lower, higher; - higher = lower = 2; + u8 minPlayers = 2; + u8 maxPlayers = 2; + switch (gSpecialVar_0x8004) { case USING_SINGLE_BATTLE: - higher = lower = 2; + minPlayers = 2; + maxPlayers = 2; gLinkType = LINKTYPE_SINGLE_BATTLE; break; case USING_DOUBLE_BATTLE: - higher = lower = 2; + minPlayers = 2; + maxPlayers = 2; gLinkType = LINKTYPE_DOUBLE_BATTLE; break; case USING_MULTI_BATTLE: - higher = lower = 4; + minPlayers = 4; + maxPlayers = 4; gLinkType = LINKTYPE_MULTI_BATTLE; break; } - CreateLinkupTask(lower, higher); + CreateLinkupTask(minPlayers, maxPlayers); } +#undef tMinPlayers +#undef tMaxPlayers +#undef tNumPlayers +#undef tTimer +#undef tWindowId + void TryTradeLinkup(void) { - gLinkType = LINKTYPE_0x1133; + gLinkType = LINKTYPE_TRADE_SETUP; gBattleTypeFlags = 0; CreateLinkupTask(2, 2); } void TryRecordMixLinkup(void) { - gSpecialVar_Result = 0; - gLinkType = LINKTYPE_0x3311; + gSpecialVar_Result = LINKUP_ONGOING; + gLinkType = LINKTYPE_RECORD_MIX_BEFORE; gBattleTypeFlags = 0; CreateLinkupTask(2, 4); } @@ -500,10 +544,11 @@ void TryContestLinkup(void) CreateLinkupTask(4, 4); } -u8 CreateTask_ReestablishLinkInCableClubRoom(void) +u8 CreateTask_ReestablishCableClubLink(void) { - if (FuncIsActiveTask(Task_ReestablishLinkInCableClubRoom_0)) - return 0xFF; + if (FuncIsActiveTask(Task_ReestablishLink)) + return TASK_NONE; + switch (gSpecialVar_0x8004) { case USING_SINGLE_BATTLE: @@ -519,92 +564,94 @@ u8 CreateTask_ReestablishLinkInCableClubRoom(void) gLinkType = LINKTYPE_TRADE; break; case USING_RECORD_CORNER: - gLinkType = LINKTYPE_0x3322; + gLinkType = LINKTYPE_RECORD_MIX_AFTER; break; } - return CreateTask(Task_ReestablishLinkInCableClubRoom_0, 80); + return CreateTask(Task_ReestablishLink, 80); } -static void Task_ReestablishLinkInCableClubRoom_0(u8 taskId) +static void Task_ReestablishLink(u8 taskId) { s16 *data = gTasks[taskId].data; + if (data[0] == 0) { OpenLink(); ResetLinkPlayers(); - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 80); + CreateTask(Task_WaitForLinkPlayerConnection, 80); } else if (data[0] > 9) - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_1; + { + gTasks[taskId].func = Task_ReestablishLinkAwaitConnection; + } data[0]++; } -static void Task_ReestablishLinkInCableClubRoom_1(u8 taskId) +static void Task_ReestablishLinkAwaitConnection(u8 taskId) { if (GetLinkPlayerCount_2() >= 2) { if (IsLinkMaster() == TRUE) - { - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_Master; - } + gTasks[taskId].func = Task_ReestablishLinkLeader; else - { - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_2; - } + gTasks[taskId].func = Task_ReestablishLinkAwaitConfirmation; } } -static void Task_ReestablishLinkInCableClubRoom_Master(u8 taskId) +static void Task_ReestablishLinkLeader(u8 taskId) { if (GetSavedPlayerCount() == GetLinkPlayerCount_2()) { CheckShouldAdvanceLinkState(); - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_2; + gTasks[taskId].func = Task_ReestablishLinkAwaitConfirmation; } } -static void Task_ReestablishLinkInCableClubRoom_2(u8 taskId) +static void Task_ReestablishLinkAwaitConfirmation(u8 taskId) { if (gReceivedRemoteLinkPlayers == TRUE && IsLinkPlayerDataExchangeComplete() == TRUE) { - sub_800A9A4(); + CheckLinkPlayersMatchSaved(); StartSendingKeysToLink(); DestroyTask(taskId); } } +// Unused void CableClub_AskSaveTheGame(void) { Field_AskSaveTheGame(); } +#define tTimer data[1] + static void Task_StartWiredCableClubBattle(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + + switch (task->tState) { case 0: FadeScreen(FADE_TO_BLACK, 0); gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); - task->data[0]++; + task->tState++; break; case 1: if (!gPaletteFade.active) - task->data[0]++; + task->tState++; break; case 2: - task->data[1]++; - if (task->data[1] > 20) - task->data[0]++; + if (++task->tTimer > 20) + task->tState++; break; case 3: SetCloseLinkCallback(); - task->data[0]++; + task->tState++; break; case 4: if (!gReceivedRemoteLinkPlayers) - task->data[0]++; + task->tState++; break; case 5: if (gLinkPlayers[0].trainerId & 1) @@ -637,24 +684,25 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) { s16 *data = gTasks[taskId].data; int i; - switch (data[0]) + + switch (tState) { case 0: FadeScreen(FADE_TO_BLACK, 0); gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); - data[0] = 1; + tState = 1; break; case 1: if (!gPaletteFade.active) - data[0] = 2; + tState = 2; break; case 2: - SendBlock(0, &gLocalLinkPlayer, sizeof(struct LinkPlayer)); - data[0] = 3; + SendBlock(0, &gLocalLinkPlayer, sizeof(gLocalLinkPlayer)); + tState = 3; break; case 3: - if (GetBlockReceivedStatus() == sub_800A8D4()) + if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { for (i = 0; i < GetLinkPlayerCount(); i++) { @@ -662,21 +710,20 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) ConvertLinkPlayerName(&gLinkPlayers[i]); ResetBlockReceivedFlag(i); } - data[0] = 4; + tState = 4; } break; case 4: - data[1]++; - if (data[1] > 20) - data[0] = 5; + if (++tTimer > 20) + tState = 5; break; case 5: SetLinkStandbyCallback(); - data[0] = 6; + tState = 6; break; case 6: if (IsLinkTaskFinished()) - data[0] = 7; + tState = 7; break; case 7: if (gLinkPlayers[0].trainerId & 1) @@ -706,7 +753,9 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) } } -static void sub_8081624(void) +#undef tTimer + +static void CB2_ReturnFromUnionRoomBattle(void) { switch (gMain.state) { @@ -728,41 +777,42 @@ void CB2_ReturnFromCableClubBattle(void) LoadPlayerParty(); SavePlayerBag(); Special_UpdateTrainerFansAfterLinkBattle(); + if (gSpecialVar_0x8004 != USING_MULTI_BATTLE) { - TryRecordLinkBattleOutcome(gLocalLinkPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(gLocalLinkPlayerId ^ 1); if (gWirelessCommType != 0) { switch (gBattleOutcome) { case B_OUTCOME_WON: - MEvent_RecordIdOfWonderCardSenderByEventType(0, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); + MysteryGift_TryIncrementStat(CARD_STAT_BATTLES_WON, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); break; case B_OUTCOME_LOST: - MEvent_RecordIdOfWonderCardSenderByEventType(1, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); + MysteryGift_TryIncrementStat(CARD_STAT_BATTLES_LOST, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); break; } } } + if (InUnionRoom() == TRUE) - { - gMain.savedCallback = sub_8081624; - } + gMain.savedCallback = CB2_ReturnFromUnionRoomBattle; else - { gMain.savedCallback = CB2_ReturnToFieldFromMultiplayer; - } + SetMainCallback2(CB2_SetUpSaveAfterLinkBattle); } void CleanupLinkRoomState(void) { - if (gSpecialVar_0x8004 == USING_SINGLE_BATTLE || gSpecialVar_0x8004 == USING_DOUBLE_BATTLE || gSpecialVar_0x8004 == USING_MULTI_BATTLE) + if (gSpecialVar_0x8004 == USING_SINGLE_BATTLE + || gSpecialVar_0x8004 == USING_DOUBLE_BATTLE + || gSpecialVar_0x8004 == USING_MULTI_BATTLE) { LoadPlayerParty(); SavePlayerBag(); } - SetWarpDestinationToDynamicWarp(127); + SetWarpDestinationToDynamicWarp(WARP_ID_DYNAMIC); } void ExitLinkRoom(void) @@ -770,76 +820,79 @@ void ExitLinkRoom(void) QueueExitLinkRoomKey(); } +// Note: gSpecialVar_0x8005 contains the id of the seat the player entered static void Task_EnterCableClubSeat(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: ShowFieldMessage(CableClub_Text_PleaseWaitBCancel); - task->data[0] = 1; + task->tState = 1; break; case 1: if (IsFieldMessageBoxHidden()) { SetInCableClubSeat(); SetLocalLinkPlayerId(gSpecialVar_0x8005); - task->data[0] = 2; + task->tState = 2; } break; case 2: switch (GetCableClubPartnersReady()) { - case 0: + case CABLE_SEAT_WAITING: break; - case 1: + case CABLE_SEAT_SUCCESS: + // Partners linked and ready, switch to relevant link function HideFieldMessageBox(); - task->data[0] = 0; + task->tState = 0; SetStartedCableClubActivity(); SwitchTaskToFollowupFunc(taskId); break; - case 2: - task->data[0] = 3; + case CABLE_SEAT_FAILED: + task->tState = 3; break; } break; case 3: + // Exit, failure SetLinkWaitingForScript(); - sub_80F771C(TRUE); + EraseFieldMessageBox(TRUE); DestroyTask(taskId); EnableBothScriptContexts(); break; } } -static void CreateEnterCableClubSeatTaskWithFollowupFunc(TaskFunc followUpFunc) +static void CreateTask_EnterCableClubSeat(TaskFunc followUpFunc) { u8 taskId = CreateTask(Task_EnterCableClubSeat, 80); SetTaskFuncWithFollowupFunc(taskId, Task_EnterCableClubSeat, followUpFunc); ScriptContext1_Stop(); } -static void Task_StartWiredCableClubTrade(u8 taskId) +static void Task_StartWiredTrade(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: ScriptContext2_Enable(); FadeScreen(FADE_TO_BLACK, 0); ClearLinkCallback_2(); - task->data[0]++; + task->tState++; break; case 1: if (!gPaletteFade.active) - task->data[0]++; + task->tState++; break; case 2: - gSelectedTradeMonPositions[0] = 0; - gSelectedTradeMonPositions[1] = 0; + gSelectedTradeMonPositions[TRADE_PLAYER] = 0; + gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); SetCloseLinkCallback(); - task->data[0]++; + task->tState++; break; case 3: if (!gReceivedRemoteLinkPlayers) @@ -851,27 +904,27 @@ static void Task_StartWiredCableClubTrade(u8 taskId) } } -static void Task_StartWirelessCableClubTrade(u8 taskId) +static void Task_StartWirelessTrade(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: ScriptContext2_Enable(); FadeScreen(FADE_TO_BLACK, 0); ClearLinkRfuCallback(); - data[0]++; + tState++; break; case 1: if (!gPaletteFade.active) - data[0]++; + tState++; break; case 2: - gSelectedTradeMonPositions[0] = 0; - gSelectedTradeMonPositions[1] = 0; + gSelectedTradeMonPositions[TRADE_PLAYER] = 0; + gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); SetLinkStandbyCallback(); - data[0]++; + tState++; break; case 3: if (IsLinkTaskFinished()) @@ -886,19 +939,19 @@ static void Task_StartWirelessCableClubTrade(u8 taskId) void EnterTradeSeat(void) { if (gWirelessCommType) - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWirelessCableClubTrade); + CreateTask_EnterCableClubSeat(Task_StartWirelessTrade); else - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWiredCableClubTrade); + CreateTask_EnterCableClubSeat(Task_StartWiredTrade); } -static void CreateTask_StartWiredCableClubTrade(void) +static void CreateTask_StartWiredTrade(void) { - CreateTask(Task_StartWiredCableClubTrade, 80); + CreateTask(Task_StartWiredTrade, 80); } void StartWiredCableClubTrade(void) { - CreateTask_StartWiredCableClubTrade(); + CreateTask_StartWiredTrade(); ScriptContext1_Stop(); } @@ -906,12 +959,13 @@ void EnterColosseumPlayerSpot(void) { gLinkType = LINKTYPE_BATTLE; if (gWirelessCommType) - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWirelessCableClubBattle); + CreateTask_EnterCableClubSeat(Task_StartWirelessCableClubBattle); else - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWiredCableClubBattle); + CreateTask_EnterCableClubSeat(Task_StartWiredCableClubBattle); } -static void Debug_CreateTaskEnterCableClubSeat(void) +// Unused +static void CreateTask_EnterCableClubSeatNoFollowup(void) { CreateTask(Task_EnterCableClubSeat, 80); ScriptContext1_Stop(); @@ -922,23 +976,27 @@ void Script_ShowLinkTrainerCard(void) ShowTrainerCardInLink(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic); } -bool32 GetSeeingLinkPlayerCardMsg(u8 who) +bool32 GetSeeingLinkPlayerCardMsg(u8 linkPlayerIndex) { - u8 stars; - gSpecialVar_0x8006 = who; - StringCopy(gStringVar1, gLinkPlayers[who].name); - stars = GetTrainerCardStars(who); - if (stars == 0) + u8 numStars; + + gSpecialVar_0x8006 = linkPlayerIndex; + StringCopy(gStringVar1, gLinkPlayers[linkPlayerIndex].name); + + numStars = GetTrainerCardStars(linkPlayerIndex); + if (numStars == 0) return FALSE; - StringCopy(gStringVar2, sStarsMessagePtrs[stars - 1]); + + StringCopy(gStringVar2, sTrainerCardColorNames[numStars - 1]); return TRUE; } -void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId) +#define tTimer data[0] + +void Task_WaitForLinkPlayerConnection(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[0]++; - if (task->data[0] > 300) + if (++task->tTimer > 300) { CloseLink(); SetMainCallback2(CB2_LinkError); @@ -948,7 +1006,7 @@ void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId) DestroyTask(taskId); } -static void sub_8081AE4(u8 taskId) +static void Task_WaitExitToScript(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { @@ -957,8 +1015,9 @@ static void sub_8081AE4(u8 taskId) } } -static void sub_8081B08(u8 taskId) +// Unused +static void ExitLinkToScript(u8 taskId) { SetCloseLinkCallback(); - gTasks[taskId].func = sub_8081AE4; + gTasks[taskId].func = Task_WaitExitToScript; } diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 31de46ab2..fb1d71257 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -173,7 +173,7 @@ static void Task_ReturnToFieldCableLink(u8 taskId) switch (task->data[0]) { case 0: - task->data[1] = CreateTask_ReestablishLinkInCableClubRoom(); + task->data[1] = CreateTask_ReestablishCableClubLink(); task->data[0]++; break; case 1: diff --git a/src/field_message_box.c b/src/field_message_box.c index 5a682c382..8f75ce78d 100644 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,18 +1,11 @@ #include "global.h" +#include "field_message_box.h" #include "gflib.h" #include "new_menu_helpers.h" #include "quest_log.h" #include "script.h" #include "text_window.h" -enum -{ - FIELD_MESSAGE_BOX_HIDDEN, - FIELD_MESSAGE_BOX_UNUSED, - FIELD_MESSAGE_BOX_NORMAL, - FIELD_MESSAGE_BOX_AUTO_SCROLL, -}; - static EWRAM_DATA u8 sMessageBoxType = 0; static void ExpandStringAndStartDrawFieldMessageBox(const u8 *str); diff --git a/src/link.c b/src/link.c index b5167198e..26fd943c0 100644 --- a/src/link.c +++ b/src/link.c @@ -163,11 +163,11 @@ static const u16 sLinkTestFontPal[] = INCBIN_U16("graphics/interface/link_test_f static const u16 sLinkTestFontGfx[] = INCBIN_U16("graphics/interface/link_test_font.4bpp"); static const struct BlockRequest sBlockRequests[] = { - {gBlockSendBuffer, 200}, - {gBlockSendBuffer, 200}, - {gBlockSendBuffer, 100}, - {gBlockSendBuffer, 220}, - {gBlockSendBuffer, 40} + [BLOCK_REQ_SIZE_NONE] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_200] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_100] = { gBlockSendBuffer, 100 }, + [BLOCK_REQ_SIZE_220] = { gBlockSendBuffer, 220 }, + [BLOCK_REQ_SIZE_40] = { gBlockSendBuffer, 40 } }; static const char sASCIIGameFreakInc[] = "GameFreak inc."; static const char sASCIITestPrint[] = "TEST PRINT\n" @@ -788,8 +788,8 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper) cmpVal = GetLinkPlayerCount_2(); if (lower > cmpVal || cmpVal > upper) { - sPlayerDataExchangeStatus = EXCHANGE_STAT_6; - return EXCHANGE_STAT_6; + sPlayerDataExchangeStatus = EXCHANGE_WRONG_NUM_PLAYERS; + return sPlayerDataExchangeStatus; } else { @@ -815,10 +815,10 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper) sPlayerDataExchangeStatus = EXCHANGE_COMPLETE; break; case 1: - sPlayerDataExchangeStatus = EXCHANGE_STAT_4; + sPlayerDataExchangeStatus = EXCHANGE_PLAYER_NOT_READY; break; case 2: - sPlayerDataExchangeStatus = EXCHANGE_STAT_5; + sPlayerDataExchangeStatus = EXCHANGE_PARTNER_NOT_READY; break; } } @@ -829,7 +829,7 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper) } else { - sPlayerDataExchangeStatus = EXCHANGE_IN_PROGRESS; + sPlayerDataExchangeStatus = EXCHANGE_DIFF_SELECTIONS; } } } @@ -862,7 +862,7 @@ bool8 IsLinkPlayerDataExchangeComplete(void) else { retval = FALSE; - sPlayerDataExchangeStatus = EXCHANGE_IN_PROGRESS; + sPlayerDataExchangeStatus = EXCHANGE_DIFF_SELECTIONS; } return retval; } @@ -999,7 +999,7 @@ bool8 SendBlock(u8 unused, const void *src, u16 size) return InitBlockSend(src, size); } -bool8 Link_PrepareCmd0xCCCC_Rfu0xA100(u8 blockRequestType) +bool8 SendBlockRequest(u8 blockRequestType) { if (gWirelessCommType == 1) { @@ -1195,7 +1195,7 @@ void SetLinkDebugValues(u32 seed, u32 flags) gLinkDebugFlags = flags; } -u8 sub_800A8A4(void) +u8 GetSavedLinkPlayerCountAsBitFlags(void) { int i; u8 flags; @@ -1208,7 +1208,7 @@ u8 sub_800A8A4(void) return flags; } -u8 sub_800A8D4(void) +u8 GetLinkPlayerCountAsBitFlags(void) { int i; u8 flags; @@ -1221,11 +1221,11 @@ u8 sub_800A8D4(void) return flags; } -void sub_800A900(u8 a0) +void SaveLinkPlayers(u8 numPlayers) { int i; - gSavedLinkPlayerCount = a0; + gSavedLinkPlayerCount = numPlayers; gSavedMultiplayerId = GetMultiplayerId(); for (i = 0; i < MAX_RFU_PLAYERS; i++) { @@ -1265,7 +1265,7 @@ bool8 sub_800A95C(void) return FALSE; } -void sub_800A9A4(void) +void CheckLinkPlayersMatchSaved(void) { u8 i; @@ -1280,7 +1280,7 @@ void sub_800A9A4(void) } } -void sub_800AA24(void) +void ResetLinkPlayerCount(void) { gSavedLinkPlayerCount = 0; gSavedMultiplayerId = 0; diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 2cac8210a..8860deb4f 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -168,11 +168,11 @@ static const u8 sNumTrailingZeroes[] = { }; static const struct BlockRequest sBlockRequests[] = { - { gBlockSendBuffer, 200 }, - { gBlockSendBuffer, 200 }, - { gBlockSendBuffer, 100 }, - { gBlockSendBuffer, 220 }, - { gBlockSendBuffer, 40 } + [BLOCK_REQ_SIZE_NONE] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_200] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_100] = { gBlockSendBuffer, 100 }, + [BLOCK_REQ_SIZE_220] = { gBlockSendBuffer, 220 }, + [BLOCK_REQ_SIZE_40] = { gBlockSendBuffer, 40 } }; static const u16 sAcceptedSerialNos[] = { @@ -1709,7 +1709,7 @@ static void sub_80FA834(u8 taskId) { if (AreNoPlayersReceiving()) { - Rfu.cmdA100_blockRequestType = 0; + Rfu.cmdA100_blockRequestType = BLOCK_REQ_SIZE_NONE; RfuPrepareSendBuffer(RFUCMD_SEND_BLOCK_REQ); gTasks[taskId].data[0]++; } diff --git a/src/mevent.c b/src/mevent.c index 68b3cd610..386437259 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -961,7 +961,7 @@ bool32 MEventHandleReceivedWonderCard(u16 flagId) return TRUE; } -void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId) +void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId) { if (sReceivedWonderCardIsValid) { diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index e11dbb36b..58952c3c0 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -592,7 +592,7 @@ static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilem FillBgTilemapBufferRect(bg, 0, tilemapLeft - 2, tilemapTop - 1, width + 4, height + 2, STD_WINDOW_PALETTE_NUM); } -void sub_80F771C(bool8 copyToVram) +void EraseFieldMessageBox(bool8 copyToVram) { FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 0x11); if (copyToVram == TRUE) diff --git a/src/overworld.c b/src/overworld.c index 6c1420418..3911c868d 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -47,6 +47,7 @@ #include "trainer_pokemon_sprites.h" #include "vs_seeker.h" #include "wild_encounter.h" +#include "constants/cable_club.h" #include "constants/maps.h" #include "constants/region_map_sections.h" #include "constants/songs.h" @@ -2979,14 +2980,14 @@ static u16 KeyInterCB_SendNothing_2(u32 key) u32 GetCableClubPartnersReady(void) { if (IsAnyPlayerInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) - return 2; + return CABLE_SEAT_FAILED; if (sPlayerKeyInterceptCallback == KeyInterCB_Ready && sPlayerLinkStates[gLocalLinkPlayerId] != PLAYER_LINK_STATE_READY) - return 0; + return CABLE_SEAT_WAITING; if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerLinkStates[gLocalLinkPlayerId] == PLAYER_LINK_STATE_BUSY) - return 2; + return CABLE_SEAT_FAILED; if (AreAllPlayersInLinkState(PLAYER_LINK_STATE_READY) != FALSE) - return 1; - return 0; + return CABLE_SEAT_SUCCESS; + return CABLE_SEAT_WAITING; } static bool32 IsAnyPlayerExitingCableClub(void) diff --git a/src/strings.c b/src/strings.c index abbcded06..c8f85b50f 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1168,11 +1168,11 @@ const u8 gText_CommErrorEllipsis[] = _("Communication error…"); const u8 gText_MoveCloserToLinkPartner[] = _("Move closer to your link partner(s).\nAvoid obstacles between partners."); const u8 gText_ABtnRegistrationCounter[] = _("A Button: Registration Counter"); const u8 gText_ABtnTitleScreen[] = _("A Button: Title Screen"); -const u8 gUnknown_841DF82[] = _("{STR_VAR_1}P LINK"); -const u8 gUnknown_841DF8B[] = _("BRONZE"); -const u8 gUnknown_841DF92[] = _("COPPER"); -const u8 gUnknown_841DF99[] = _("SILVER"); -const u8 gUnknown_841DFA0[] = _("GOLD"); +const u8 gText_NumPlayerLink[] = _("{STR_VAR_1}P LINK"); +const u8 gText_BronzeCard[] = _("BRONZE"); +const u8 gText_CopperCard[] = _("COPPER"); +const u8 gText_SilverCard[] = _("SILVER"); +const u8 gText_GoldCard[] = _("GOLD"); const u8 gText_HelpSystemControls_A_Next[] = _("{A_BUTTON}NEXT"); const u8 gText_HelpSystemControls_PickOkEnd[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}END"); const u8 gText_HelpSystemControls_AorBtoCancel[] = _("{A_BUTTON}{B_BUTTON}CANCEL"); diff --git a/src/trade.c b/src/trade.c index c5a580b1b..a442c14c1 100644 --- a/src/trade.c +++ b/src/trade.c @@ -767,7 +767,7 @@ static void CB2_ReturnFromLinkTrade2(void) gMain.state++; } if (gWirelessCommType == 0) - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 1); + CreateTask(Task_WaitForLinkPlayerConnection, 1); } else { @@ -1346,9 +1346,7 @@ static bool8 shedinja_maker_maybe(void) break; case 3: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(1); - } + SendBlockRequest(BLOCK_REQ_SIZE_200); sTradeMenuResourcesPtr->state++; break; case 4: @@ -1365,9 +1363,7 @@ static bool8 shedinja_maker_maybe(void) break; case 7: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(1); - } + SendBlockRequest(BLOCK_REQ_SIZE_200); sTradeMenuResourcesPtr->state++; break; case 8: @@ -1384,9 +1380,7 @@ static bool8 shedinja_maker_maybe(void) break; case 11: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(1); - } + SendBlockRequest(BLOCK_REQ_SIZE_200); sTradeMenuResourcesPtr->state++; break; case 12: @@ -1403,9 +1397,7 @@ static bool8 shedinja_maker_maybe(void) break; case 15: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(3); - } + SendBlockRequest(BLOCK_REQ_SIZE_220); sTradeMenuResourcesPtr->state++; break; case 16: @@ -1422,9 +1414,7 @@ static bool8 shedinja_maker_maybe(void) break; case 19: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(4); - } + SendBlockRequest(BLOCK_REQ_SIZE_40); sTradeMenuResourcesPtr->state++; break; case 20: diff --git a/src/trade_scene.c b/src/trade_scene.c index c3b36db16..db1625648 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -2583,9 +2583,7 @@ static void CB2_HandleTradeEnded(void) IncrementGameStat(GAME_STAT_POKEMON_TRADES); } if (gWirelessCommType) - { - MEvent_RecordIdOfWonderCardSenderByEventType(2, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); - } + MysteryGift_TryIncrementStat(CARD_STAT_NUM_TRADES, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); SetContinueGameWarpStatusToDynamicWarp(); LinkFullSave_Init(); gMain.state++; diff --git a/src/union_room.c b/src/union_room.c index 45960c10a..51fbafedf 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1794,11 +1794,11 @@ static void Task_ExchangeCards(u8 taskId) { case 0: if (GetMultiplayerId() == 0) - Link_PrepareCmd0xCCCC_Rfu0xA100(2); + SendBlockRequest(BLOCK_REQ_SIZE_100); gTasks[taskId].data[0]++; break; case 1: - if (GetBlockReceivedStatus() == sub_800A8D4()) + if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { s32 i; u16 *recvBuff; From ce612de462244305d574ccbc9a7bb76b863c8343 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sun, 28 Aug 2022 16:51:45 +0200 Subject: [PATCH 046/105] Add Common_ to movements.inc --- data/event_scripts.s | 8 +-- data/maps/CeladonCity/scripts.inc | 4 +- data/maps/CeladonCity_GameCorner/scripts.inc | 2 +- data/maps/CeruleanCity/scripts.inc | 14 ++--- data/maps/CeruleanCity_House4/scripts.inc | 10 +-- data/maps/CinnabarIsland/scripts.inc | 12 ++-- data/maps/CinnabarIsland_Gym/scripts.inc | 20 +++--- .../FiveIsland_MemorialPillar/scripts.inc | 10 +-- .../FiveIsland_ResortGorgeous/scripts.inc | 2 +- .../scripts.inc | 12 ++-- .../FiveIsland_RocketWarehouse/scripts.inc | 12 ++-- data/maps/FourIsland/scripts.inc | 6 +- .../FourIsland_IcefallCave_Back/scripts.inc | 12 ++-- .../scripts.inc | 2 +- data/maps/MtEmber_Exterior/scripts.inc | 14 ++--- data/maps/MtMoon_B2F/scripts.inc | 2 +- .../OneIsland_PokemonCenter_1F/scripts.inc | 62 +++++++++---------- data/maps/PalletTown/scripts.inc | 22 +++---- .../PalletTown_PlayersHouse_1F/scripts.inc | 2 +- .../PalletTown_ProfessorOaksLab/scripts.inc | 62 +++++++++---------- data/maps/PalletTown_RivalsHouse/scripts.inc | 6 +- data/maps/PewterCity/scripts.inc | 12 ++-- data/maps/PewterCity_House1/scripts.inc | 2 +- data/maps/PewterCity_Museum_1F/scripts.inc | 10 +-- .../maps/PokemonLeague_BrunosRoom/scripts.inc | 6 +- .../PokemonLeague_ChampionsRoom/scripts.inc | 6 +- .../maps/PokemonLeague_HallOfFame/scripts.inc | 8 +-- data/maps/PokemonTower_2F/scripts.inc | 12 ++-- .../maps/Route16_NorthEntrance_1F/scripts.inc | 2 +- data/maps/Route18_EastEntrance_1F/scripts.inc | 2 +- data/maps/Route24/scripts.inc | 4 +- data/maps/Route5_SouthEntrance/scripts.inc | 2 +- data/maps/Route6_NorthEntrance/scripts.inc | 2 +- data/maps/Route7_EastEntrance/scripts.inc | 2 +- data/maps/Route8_WestEntrance/scripts.inc | 2 +- data/maps/SSAnne_2F_Corridor/scripts.inc | 2 +- data/maps/SSAnne_CaptainsOffice/scripts.inc | 6 +- data/maps/SSAnne_Exterior/scripts.inc | 2 +- data/maps/SaffronCity/scripts.inc | 2 +- data/maps/SaffronCity_Dojo/scripts.inc | 8 +-- .../scripts.inc | 8 +-- data/maps/SevenIsland_House_Room1/scripts.inc | 2 +- .../scripts.inc | 6 +- data/maps/SilphCo_11F/scripts.inc | 2 +- data/maps/SilphCo_7F/scripts.inc | 6 +- .../scripts.inc | 16 ++--- .../SixIsland_PokemonCenter_1F/scripts.inc | 6 +- data/maps/SixIsland_RuinValley/scripts.inc | 4 +- data/maps/ThreeIsland/scripts.inc | 36 +++++------ data/maps/ThreeIsland_BerryForest/scripts.inc | 4 +- .../ThreeIsland_DunsparceTunnel/scripts.inc | 2 +- .../TwoIsland_JoyfulGameCorner/scripts.inc | 14 ++--- data/maps/VermilionCity/scripts.inc | 4 +- .../VermilionCity_PokemonFanClub/scripts.inc | 8 +-- data/maps/ViridianCity/scripts.inc | 14 ++--- data/maps/ViridianCity_Mart/scripts.inc | 2 +- data/maps/ViridianCity_School/scripts.inc | 6 +- data/scripts/cable_club.inc | 2 +- data/scripts/movement.inc | 34 +++++----- data/scripts/pkmn_center_nurse.inc | 4 +- data/scripts/pokemon_league.inc | 6 +- data/scripts/questionnaire.inc | 8 +-- data/scripts/route23.inc | 6 +- data/scripts/seagallop.inc | 2 +- data/scripts/trainer_card.inc | 8 +-- data/scripts/trainer_tower.inc | 24 +++---- data/scripts/white_out.inc | 2 +- 67 files changed, 312 insertions(+), 312 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index e76eb50f5..5e349996d 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1175,16 +1175,16 @@ EventScript_ReleaseEnd:: @ Unused EventScript_DelayedLookAround:: lockall - applymovement VAR_0x8004, Movement_WalkInPlaceFasterLeft + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFasterUp + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFasterRight + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFasterDown + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 releaseall diff --git a/data/maps/CeladonCity/scripts.inc b/data/maps/CeladonCity/scripts.inc index 505e8b95f..adf2f5457 100644 --- a/data/maps/CeladonCity/scripts.inc +++ b/data/maps/CeladonCity/scripts.inc @@ -36,7 +36,7 @@ CeladonCity_EventScript_FatMan:: faceplayer msgbox CeladonCity_Text_MyTrustedPalPoliwrath closemessage - applymovement LOCALID_FAT_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_FAT_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -49,7 +49,7 @@ CeladonCity_EventScript_Poliwrath:: msgbox CeladonCity_Text_Poliwrath closemessage waitmoncry - applymovement LOCALID_POLIWRATH, Movement_FaceOriginalDirection + applymovement LOCALID_POLIWRATH, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc index 120c59af1..a0e4e67b4 100644 --- a/data/maps/CeladonCity_GameCorner/scripts.inc +++ b/data/maps/CeladonCity_GameCorner/scripts.inc @@ -106,7 +106,7 @@ CeladonCity_GameCorner_EventScript_BaldingMan:: CeladonCity_GameCorner_EventScript_FaceSlotMachine:: closemessage - applymovement VAR_LAST_TALKED, Movement_FaceOriginalDirection + applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/CeruleanCity/scripts.inc b/data/maps/CeruleanCity/scripts.inc index be2405292..98b9faa0c 100644 --- a/data/maps/CeruleanCity/scripts.inc +++ b/data/maps/CeruleanCity/scripts.inc @@ -204,9 +204,9 @@ CeruleanCity_EventScript_NoRoomForTM28:: CeruleanCity_EventScript_GruntTriggerTop:: lockall setvar VAR_TEMP_1, 0 - applymovement LOCALID_GRUNT, Movement_WalkInPlaceFasterUp + applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFasterUp waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 goto CeruleanCity_EventScript_GruntTrigger end @@ -214,9 +214,9 @@ CeruleanCity_EventScript_GruntTriggerTop:: CeruleanCity_EventScript_GruntTriggerBottom:: lockall setvar VAR_TEMP_1, 1 - applymovement LOCALID_GRUNT, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 goto CeruleanCity_EventScript_GruntTrigger end @@ -235,7 +235,7 @@ CeruleanCity_EventScript_Policeman:: faceplayer msgbox CeruleanCity_Text_PeopleHereWereRobbed closemessage - applymovement LOCALID_POLICEMAN, Movement_FaceOriginalDirection + applymovement LOCALID_POLICEMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -270,7 +270,7 @@ CeruleanCity_EventScript_Woman:: faceplayer msgbox CeruleanCity_Text_WantBrightRedBicycle closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -285,7 +285,7 @@ CeruleanCity_EventScript_Lass:: waitmessage delay 40 playse SE_PIN - applymovement LOCALID_SLOWBRO, Movement_QuestionMark + applymovement LOCALID_SLOWBRO, Common_Movement_QuestionMark waitmovement 0 delay 30 call_if_eq VAR_0x8008, 0, CeruleanCity_EventScript_SlowbroFailed1 diff --git a/data/maps/CeruleanCity_House4/scripts.inc b/data/maps/CeruleanCity_House4/scripts.inc index 8774b70ef..e812d3b73 100644 --- a/data/maps/CeruleanCity_House4/scripts.inc +++ b/data/maps/CeruleanCity_House4/scripts.inc @@ -40,7 +40,7 @@ CeruleanCity_House4_EventScript_News2:: end CeruleanCity_House4_EventScript_NewsNotSpread:: - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_FacePlayer + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox CeruleanCity_House4_Text_WishCouldShareNewsWithOthers release @@ -63,7 +63,7 @@ CeruleanCity_House4_EventScript_NewsSpread2:: end CeruleanCity_House4_EventScript_NewsDone:: - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_FacePlayer + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox CeruleanCity_House4_Text_EnjoyingMyselfWithAllSortsOfNews release @@ -71,11 +71,11 @@ CeruleanCity_House4_EventScript_NewsDone:: CeruleanCity_House4_EventScript_MovementReactionToNews:: playse SE_PIN - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_ExclamationMark + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_FacePlayer + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer waitmovement 0 - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_Delay48 + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_Delay48 waitmovement 0 return diff --git a/data/maps/CinnabarIsland/scripts.inc b/data/maps/CinnabarIsland/scripts.inc index 7746af9a7..e2e17385a 100644 --- a/data/maps/CinnabarIsland/scripts.inc +++ b/data/maps/CinnabarIsland/scripts.inc @@ -94,9 +94,9 @@ CinnabarIsland_EventScript_BillScene:: call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer1 call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer2 playse SE_PIN - applymovement LOCALID_BILL, Movement_ExclamationMark + applymovement LOCALID_BILL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_BILL, Movement_Delay48 + applymovement LOCALID_BILL, Common_Movement_Delay48 waitmovement 0 call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer1 call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer2 @@ -107,12 +107,12 @@ CinnabarIsland_EventScript_BillScene:: end CinnabarIsland_EventScript_BillFacePlayer1:: - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return CinnabarIsland_EventScript_BillFacePlayer2:: - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -124,7 +124,7 @@ CinnabarIsland_EventScript_BillApproachPlayer1:: CinnabarIsland_EventScript_BillApproachPlayer2:: applymovement LOCALID_BILL, CinnabarIsland_Movement_BillApproachPlayer2 waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -313,7 +313,7 @@ CinnabarIsland_Movement_PlayerBoardBoatFromShore:: @ Triggered when VAR_TEMP_1 is 0 CinnabarIsland_EventScript_GymDoorLocked:: lockall - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 msgbox CinnabarIsland_Text_DoorIsLocked diff --git a/data/maps/CinnabarIsland_Gym/scripts.inc b/data/maps/CinnabarIsland_Gym/scripts.inc index 58da8ac3f..38ec546f6 100644 --- a/data/maps/CinnabarIsland_Gym/scripts.inc +++ b/data/maps/CinnabarIsland_Gym/scripts.inc @@ -271,13 +271,13 @@ CinnabarIsland_Gym_EventScript_BattleQuinn:: end CinnabarIsland_Gym_EventScript_QuinnApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_QuinnApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachRight waitmovement 0 return @@ -424,13 +424,13 @@ CinnabarIsland_Gym_EventScript_BattleRamon:: end CinnabarIsland_Gym_EventScript_RamonApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_RamonApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachRight waitmovement 0 return @@ -496,13 +496,13 @@ CinnabarIsland_Gym_EventScript_BattleDerek:: end CinnabarIsland_Gym_EventScript_DerekApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_DerekApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachRight waitmovement 0 return @@ -568,13 +568,13 @@ CinnabarIsland_Gym_EventScript_BattleDusty:: end CinnabarIsland_Gym_EventScript_DustyApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_DustyApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachRight waitmovement 0 return @@ -640,13 +640,13 @@ CinnabarIsland_Gym_EventScript_BattleZac:: end CinnabarIsland_Gym_EventScript_ZacApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_ZacApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachRight waitmovement 0 return diff --git a/data/maps/FiveIsland_MemorialPillar/scripts.inc b/data/maps/FiveIsland_MemorialPillar/scripts.inc index 336b45902..0fb6a4a24 100644 --- a/data/maps/FiveIsland_MemorialPillar/scripts.inc +++ b/data/maps/FiveIsland_MemorialPillar/scripts.inc @@ -9,11 +9,11 @@ FiveIsland_MemorialPillar_EventScript_MemorialMan:: goto_if_set FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_ReturnedForTM42 msgbox FiveIsland_MemorialPillar_Text_ScrubScrub closemessage - applymovement LOCALID_MEMORIAL_MAN, Movement_FacePlayer + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_FacePlayer waitmovement 0 delay 45 msgbox FiveIsland_MemorialPillar_Text_YourMonsLookHealthy - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterUp + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox FiveIsland_MemorialPillar_Text_ThisIsWhereIBuriedMyOnix release @@ -54,10 +54,10 @@ FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: removeitem ITEM_LEMONADE msgbox FiveIsland_MemorialPillar_Text_PlacedCanOfLemonade closemessage - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterRight + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 45 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox FiveIsland_MemorialPillar_Text_ThankYouPleaseTakeThis @@ -69,7 +69,7 @@ FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: FiveIsland_MemorialPillar_EventScript_ReceivedTM42:: msgbox FiveIsland_MemorialPillar_Text_BeGoodToYourMonsToo - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterUp + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterUp waitmovement 0 setflag FLAG_GOT_TM42_AT_MEMORIAL_PILLAR return diff --git a/data/maps/FiveIsland_ResortGorgeous/scripts.inc b/data/maps/FiveIsland_ResortGorgeous/scripts.inc index a9ad66461..6ff14d475 100644 --- a/data/maps/FiveIsland_ResortGorgeous/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous/scripts.inc @@ -22,7 +22,7 @@ FiveIsland_ResortGorgeous_EventScript_SelphyReturnHomeScene:: textcolor NPC_TEXT_COLOR_FEMALE msgbox FiveIsland_ResortGorgeous_Text_SelphyThanksYouMayGoNow closemessage - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterUp + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterUp waitmovement 0 opendoor 39, 8 waitdooranim diff --git a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc index 36ada6601..885ae0d87 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc @@ -44,7 +44,7 @@ FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox FiveIsland_ResortGorgeous_House_Text_ButlerYesMyLady - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterUp + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FiveIsland_ResortGorgeous_House_Text_SelphyGiveTokenOfAppreciation @@ -65,25 +65,25 @@ FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: end FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerNorth:: - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterDown + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerNorth waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerSouth:: applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerSouth waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerEast:: - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterLeft applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerEast waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc index a5b30422f..26dd0a5b5 100644 --- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc +++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc @@ -43,7 +43,7 @@ FiveIsland_RocketWarehouse_EventScript_Computer:: FiveIsland_RocketWarehouse_EventScript_Admin2Trigger:: lockall - applymovement LOCALID_ADMIN2, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_ADMIN2, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 setvar VAR_MAP_SCENE_ROCKET_WAREHOUSE, 1 releaseall @@ -100,7 +100,7 @@ FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin2:: end FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -138,7 +138,7 @@ FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin1:: FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin1:: goto_if_eq PLAYER_X_POS, 27, EventScript_Return - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -153,17 +153,17 @@ FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitch:: return FiveIsland_RocketWarehouse_EventScript_AdminFaceSwitch:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterUp + applymovement LOCALID_ADMIN1, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_ADMIN1, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerDown:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterDown + applymovement LOCALID_ADMIN1, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc index be6dcd7cf..8d19847d2 100644 --- a/data/maps/FourIsland/scripts.inc +++ b/data/maps/FourIsland/scripts.inc @@ -29,12 +29,12 @@ FourIsland_OnFrame:: FourIsland_EventScript_RivalScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 25 applymovement LOCALID_RIVAL, FourIsland_Movement_RivalApproach diff --git a/data/maps/FourIsland_IcefallCave_Back/scripts.inc b/data/maps/FourIsland_IcefallCave_Back/scripts.inc index 987a08764..67faf20ac 100644 --- a/data/maps/FourIsland_IcefallCave_Back/scripts.inc +++ b/data/maps/FourIsland_IcefallCave_Back/scripts.inc @@ -25,19 +25,19 @@ FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: msgbox FourIsland_IcefallCave_Back_Text_ShutItLadyLeaveUsBe closemessage playse SE_PIN - applymovement LOCALID_LORELEI, Movement_ExclamationMark + applymovement LOCALID_LORELEI, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterDown + applymovement LOCALID_LORELEI, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement LOCALID_LORELEI, Movement_Delay48 + applymovement LOCALID_LORELEI, Common_Movement_Delay48 waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FourIsland_IcefallCave_Back_Text_LoreleiPlayerHelpMeKickPoachersOut closemessage - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterRight + applymovement LOCALID_LORELEI, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 18 - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterDown + applymovement LOCALID_LORELEI, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 35 applymovement LOCALID_ROCKET3, FourIsland_IcefallCave_Back_Movement_Rocket3FaceLorelei @@ -81,7 +81,7 @@ FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: delay 50 applymovement LOCALID_LORELEI, FourIsland_IcefallCave_Back_Movement_LoreleiWalkToPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FourIsland_IcefallCave_Back_Text_ThankYouThisIsAwful diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc index 474f29023..77cd336ce 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -100,7 +100,7 @@ FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft:: FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone:: textcolor NPC_TEXT_COLOR_MALE msgbox FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 showmoneybox 0, 0 msgbox FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500, MSGBOX_YESNO diff --git a/data/maps/MtEmber_Exterior/scripts.inc b/data/maps/MtEmber_Exterior/scripts.inc index d5519c96a..6bfe3cbfa 100644 --- a/data/maps/MtEmber_Exterior/scripts.inc +++ b/data/maps/MtEmber_Exterior/scripts.inc @@ -38,7 +38,7 @@ MtEmber_Exterior_EventScript_Grunt1Defeated:: end MtEmber_Exterior_EventScript_BattleGrunt1:: - applymovement LOCALID_GRUNT1, Movement_FacePlayer + applymovement LOCALID_GRUNT1, Common_Movement_FacePlayer waitmovement 0 playbgm MUS_ENCOUNTER_ROCKET, 0 msgbox MtEmber_Exterior_Text_Grunt1Intro @@ -65,7 +65,7 @@ MtEmber_Exterior_EventScript_Grunt2:: goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4, MtEmber_Exterior_EventScript_BattleGrunt2 msgbox MtEmber_Exterior_Text_YoureInTheWayGetLost closemessage - applymovement LOCALID_GRUNT2, Movement_FaceOriginalDirection + applymovement LOCALID_GRUNT2, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -91,18 +91,18 @@ MtEmber_Exterior_EventScript_RocketPasswordScene:: message MtEmber_Exterior_Text_WhatsPasswordAgain waitmessage playse SE_PIN - applymovement LOCALID_GRUNT2, Movement_QuestionMark + applymovement LOCALID_GRUNT2, Common_Movement_QuestionMark waitmovement 0 waitbuttonpress msgbox MtEmber_Exterior_Text_FirstPasswordGoldeen - applymovement LOCALID_GRUNT1, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GRUNT1, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_GRUNT1, Movement_ExclamationMark + applymovement LOCALID_GRUNT1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_GRUNT1, Movement_Delay48 + applymovement LOCALID_GRUNT1, Common_Movement_Delay48 waitmovement 0 - applymovement LOCALID_GRUNT2, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GRUNT2, Common_Movement_WalkInPlaceFasterDown waitmovement 0 call MtEmber_Exterior_EventScript_RocketsFaceDown msgbox MtEmber_Exterior_Text_SnoopsBeenListeningIn diff --git a/data/maps/MtMoon_B2F/scripts.inc b/data/maps/MtMoon_B2F/scripts.inc index 32213a5b4..d69d69d96 100644 --- a/data/maps/MtMoon_B2F/scripts.inc +++ b/data/maps/MtMoon_B2F/scripts.inc @@ -17,7 +17,7 @@ MtMoon_B2F_EventScript_ShowFossils:: MtMoon_B2F_EventScript_MiguelTrigger:: lockall - applymovement LOCALID_MIGUEL, Movement_WalkInPlaceFasterRight + applymovement LOCALID_MIGUEL, Common_Movement_WalkInPlaceFasterRight waitmovement 0 call MtMoon_B2F_EventScript_BattleMiguel releaseall diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc index 05c082315..879be6934 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc @@ -63,46 +63,46 @@ OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: applymovement LOCALID_BILL, OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillHeyThereCelio - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 playse SE_PIN - applymovement LOCALID_CELIO, Movement_ExclamationMark + applymovement LOCALID_CELIO, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement LOCALID_CELIO, Movement_Delay48 + applymovement LOCALID_CELIO, Common_Movement_Delay48 waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioCantBelieveYouCameOut msgbox OneIsland_PokemonCenter_1F_Text_BillHowsYourResearchComing - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_ThisIsMyBuddyCelio - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterRight + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterRight waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 call_if_set FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerChamp call_if_unset FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerNotChamp - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterDown + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioThatsReallyImpressive msgbox OneIsland_PokemonCenter_1F_Text_BillBringMeUpToSpeed - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPCsCantLinkWithYours closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillLetMeHelpYou - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CanYouDeliverThisMeteoritePlayer msgreceiveditem OneIsland_PokemonCenter_1F_Text_AcceptedMeteoriteFromBill, ITEM_METEORITE, 1, MUS_OBTAIN_KEY_ITEM additem ITEM_METEORITE - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterDown + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPleaseTakeThis giveitem_msg OneIsland_PokemonCenter_1F_Text_ObtainedTriPass, ITEM_TRI_PASS, 1, MUS_OBTAIN_KEY_ITEM @@ -112,9 +112,9 @@ OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: setflag FLAG_SYS_SEVII_MAP_123 msgbox OneIsland_PokemonCenter_1F_Text_BillCatchYouLater closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp waitmovement 0 setflag FLAG_SYS_PC_STORAGE_DISABLED setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 @@ -192,7 +192,7 @@ OneIsland_PokemonCenter_1F_EventScript_Bill:: end OneIsland_PokemonCenter_1F_EventScript_BillGoTakeStroll:: - applymovement LOCALID_BILL, Movement_FacePlayer + applymovement LOCALID_BILL, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_GotPCWorkingStrollAWhileMore release @@ -212,7 +212,7 @@ OneIsland_PokemonCenter_1F_EventScript_Celio:: goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 3, OneIsland_PokemonCenter_1F_EventScript_CelioPlayerMissingNationalDex msgbox OneIsland_PokemonCenter_1F_Text_SorryForBeingPoorHost closemessage - applymovement LOCALID_CELIO, Movement_FaceOriginalDirection + applymovement LOCALID_CELIO, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -272,7 +272,7 @@ OneIsland_PokemonCenter_1F_EventScript_GiveCelioSapphire:: call OneIsland_PokemonCenter_1F_EventScript_SetNetworkMachineOn special DrawWholeMapView msgbox OneIsland_PokemonCenter_1F_Text_LinkedUpWithLanette - applymovement LOCALID_CELIO, Movement_FacePlayer + applymovement LOCALID_CELIO, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_ManagedToLinkWithHoennThankYou special SetPostgameFlags @@ -304,7 +304,7 @@ OneIsland_PokemonCenter_1F_EventScript_GiveCelioRuby:: call OneIsland_PokemonCenter_1F_EventScript_SetRubyMetatile special DrawWholeMapView delay 30 - applymovement LOCALID_CELIO, Movement_FacePlayer + applymovement LOCALID_CELIO, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_MayIAskOneMoreFavor, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, OneIsland_PokemonCenter_1F_EventScript_DeclineHelpCelio @@ -344,10 +344,10 @@ OneIsland_PokemonCenter_1F_EventScript_CelioWaitingForRuby:: OneIsland_PokemonCenter_1F_EventScript_CelioRequestRuby:: msgbox OneIsland_PokemonCenter_1F_Text_CelioCaughtMoreMonMaybeICanBeUseful - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_YoullBeTradingFromTrainersFarAway - applymovement LOCALID_CELIO, Movement_FacePlayer + applymovement LOCALID_CELIO, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_NeedsSpecialGemstone setvar VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 1 @@ -440,7 +440,7 @@ OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerBottom:: OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene:: textcolor NPC_TEXT_COLOR_MALE playse SE_PIN - applymovement LOCALID_BILL, Movement_ExclamationMark + applymovement LOCALID_BILL, Common_Movement_ExclamationMark waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillOhHeyPlayer closemessage @@ -450,30 +450,30 @@ OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene:: call_if_eq VAR_TEMP_1, 4, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillBottom delay 10 msgbox OneIsland_PokemonCenter_1F_Text_BillWeGotItDone - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioJobWentQuick - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillYouveLearnedALot msgbox OneIsland_PokemonCenter_1F_Text_CelioOhReallyEhehe closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 delay 10 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 15 msgbox OneIsland_PokemonCenter_1F_Text_BillWeShouldHeadBackToKanto closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 15 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPromiseIllShowYouAroundSometime closemessage diff --git a/data/maps/PalletTown/scripts.inc b/data/maps/PalletTown/scripts.inc index 00202f054..95f757e71 100644 --- a/data/maps/PalletTown/scripts.inc +++ b/data/maps/PalletTown/scripts.inc @@ -190,10 +190,10 @@ PalletTown_EventScript_OakTrigger:: waitmessage delay 85 closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement OBJ_EVENT_ID_PLAYER, Movement_ExclamationMark + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_ExclamationMark waitmovement 0 delay 30 addobject LOCALID_PROF_OAK @@ -332,12 +332,12 @@ PalletTown_EventScript_SignLady:: goto_if_eq SIGN_LADY_READY, TRUE, PalletTown_EventScript_SignLadyStartShowSign goto_if_set FLAG_TEMP_2, PalletTown_EventScript_SignLadyGoReadSign msgbox PalletTown_Text_HmmIsThatRight - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 playse SE_PIN - applymovement LOCALID_SIGN_LADY, Movement_ExclamationMark + applymovement LOCALID_SIGN_LADY, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_SIGN_LADY, Movement_Delay48 + applymovement LOCALID_SIGN_LADY, Common_Movement_Delay48 waitmovement 0 msgbox PalletTown_Text_OhLookLook closemessage @@ -359,21 +359,21 @@ PalletTown_EventScript_SignLadyMoveOutOfWayLeft:: return PalletTown_EventScript_SignLadyDone:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 msgbox PalletTown_Text_RaisingMonsToo release end PalletTown_EventScript_SignLadyGoReadSign:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 msgbox PalletTown_Text_ReadItReadIt release end PalletTown_EventScript_SignLadyJustShowedSign:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 msgbox PalletTown_Text_SignsAreUsefulArentThey release @@ -421,8 +421,8 @@ PalletTown_EventScript_TrainerTips:: PalletTown_EventScript_SignLadyTrigger:: lockall - applymovement LOCALID_SIGN_LADY, Movement_WalkInPlaceFasterRight - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_SIGN_LADY, Common_Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 call PalletTown_EventScript_SignLadyShowSign releaseall @@ -445,7 +445,7 @@ PalletTown_EventScript_SignLadyShowSign:: return PalletTown_EventScript_SignLadyStartShowSign:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 call PalletTown_EventScript_SignLadyShowSign release diff --git a/data/maps/PalletTown_PlayersHouse_1F/scripts.inc b/data/maps/PalletTown_PlayersHouse_1F/scripts.inc index 01028e6fb..a5a7b35bb 100644 --- a/data/maps/PalletTown_PlayersHouse_1F/scripts.inc +++ b/data/maps/PalletTown_PlayersHouse_1F/scripts.inc @@ -11,7 +11,7 @@ PalletTown_PlayersHouse_1F_EventScript_Mom:: call_if_eq VAR_RESULT, MALE, PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouMale call_if_eq VAR_RESULT, FEMALE, PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouFemale closemessage - applymovement LOCALID_MOM, Movement_FaceOriginalDirection + applymovement LOCALID_MOM, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc index 8b646176d..0bd06bebb 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -140,7 +140,7 @@ PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 @@ -150,18 +150,18 @@ PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -215,7 +215,7 @@ PalletTown_ProfessorOaksLab_ChooseStarterScene:: clearflag FLAG_HIDE_OAK_IN_HIS_LAB applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter waitmovement 0 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 clearflag FLAG_DONT_TRANSITION_MUSIC savebgm MUS_DUMMY @@ -262,7 +262,7 @@ PalletTown_ProfessorOaksLab_Movement_RivalReact:: PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_PROF_OAK, Movement_FaceDown + applymovement LOCALID_PROF_OAK, Common_Movement_FaceDown waitmovement 0 msgbox PalletTown_ProfessorOaksLab_Text_OakHeyDontGoAwayYet closemessage @@ -296,13 +296,13 @@ PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight:: PalletTown_ProfessorOaksLab_EventScript_RivalBattle:: textcolor NPC_TEXT_COLOR_MALE playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons closemessage - applymovement LOCALID_PROF_OAK, Movement_FaceDown + applymovement LOCALID_PROF_OAK, Common_Movement_FaceDown waitmovement 0 goto_if_eq VAR_STARTER_MON, 0, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander goto_if_eq VAR_STARTER_MON, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur @@ -625,9 +625,9 @@ PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: closemessage delay 30 playse SE_PIN - applymovement LOCALID_PROF_OAK, Movement_ExclamationMark + applymovement LOCALID_PROF_OAK, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_PROF_OAK, Movement_Delay48 + applymovement LOCALID_PROF_OAK, Common_Movement_Delay48 waitmovement 0 call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast @@ -644,7 +644,7 @@ PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: delay 40 msgbox PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterUp + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterUp waitmovement 0 removeobject LOCALID_POKEDEX_1 delay 10 @@ -804,7 +804,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexCompleted:: call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 closemessage delay 70 @@ -966,7 +966,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth:: PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 @@ -975,52 +975,52 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth:: - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 delay 15 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest:: - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 delay 15 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast:: - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 delay 15 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth:: - applymovement LOCALID_RIVAL, Movement_FacePlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_RIVAL, Common_Movement_FacePlayer + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterUp - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest:: - applymovement LOCALID_RIVAL, Movement_FacePlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_FacePlayer + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -1036,7 +1036,7 @@ PalletTown_ProfessorOaksLab_EventScript_RivalExit:: return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -1088,7 +1088,7 @@ PalletTown_ProfessorOaksLab_EventScript_BulbasaurBall:: end PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice:: - applymovement LOCALID_PROF_OAK, Movement_FaceRight + applymovement LOCALID_PROF_OAK, Common_Movement_FaceRight waitmovement 0 showmonpic PLAYER_STARTER_SPECIES, 10, 3 textcolor NPC_TEXT_COLOR_MALE diff --git a/data/maps/PalletTown_RivalsHouse/scripts.inc b/data/maps/PalletTown_RivalsHouse/scripts.inc index 7dbca25da..1f0fd3381 100644 --- a/data/maps/PalletTown_RivalsHouse/scripts.inc +++ b/data/maps/PalletTown_RivalsHouse/scripts.inc @@ -32,7 +32,7 @@ PalletTown_RivalsHouse_EventScript_Daisy:: goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_RivalsHouse_EventScript_HeardBattledRival msgbox PalletTown_RivalsHouse_Text_HiBrothersAtLab closemessage - applymovement LOCALID_DAISY, Movement_FaceOriginalDirection + applymovement LOCALID_DAISY, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -136,12 +136,12 @@ PalletTown_RivalsHouse_EventScript_GiveTownMap:: closemessage checkitemspace ITEM_TOWN_MAP goto_if_eq VAR_RESULT, FALSE, PalletTown_RivalsHouse_EventScript_NoRoomForTownMap - applymovement LOCALID_DAISY, Movement_WalkInPlaceFasterRight + applymovement LOCALID_DAISY, Common_Movement_WalkInPlaceFasterRight waitmovement 0 removeobject LOCALID_TOWN_MAP setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2 delay 15 - applymovement LOCALID_DAISY, Movement_FacePlayer + applymovement LOCALID_DAISY, Common_Movement_FacePlayer waitmovement 0 delay 12 giveitem_msg PalletTown_RivalsHouse_Text_ReceivedTownMapFromDaisy, ITEM_TOWN_MAP, 1, MUS_OBTAIN_KEY_ITEM diff --git a/data/maps/PewterCity/scripts.inc b/data/maps/PewterCity/scripts.inc index e559e3322..3cb0e4ccb 100644 --- a/data/maps/PewterCity/scripts.inc +++ b/data/maps/PewterCity/scripts.inc @@ -691,9 +691,9 @@ PewterCity_EventScript_AideGiveRunningShoes:: call_if_eq VAR_TEMP_1, 3, PewterCity_EventScript_AideNoticePlayer waitse playse SE_PIN - applymovement LOCALID_AIDE, Movement_ExclamationMark + applymovement LOCALID_AIDE, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_AIDE, Movement_Delay48 + applymovement LOCALID_AIDE, Common_Movement_Delay48 waitmovement 0 msgbox PewterCity_Text_OhPlayer call_if_eq VAR_TEMP_1, 0, PewterCity_EventScript_AideApproachPlayer0 @@ -728,7 +728,7 @@ PewterCity_EventScript_AideGiveRunningShoes:: return PewterCity_EventScript_AideNoticePlayer:: - applymovement LOCALID_AIDE, Movement_WalkInPlaceFasterDown + applymovement LOCALID_AIDE, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -740,7 +740,7 @@ PewterCity_EventScript_AideApproachPlayer0:: PewterCity_EventScript_AideApproachPlayer1:: closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -748,7 +748,7 @@ PewterCity_EventScript_AideApproachPlayer2:: closemessage applymovement LOCALID_AIDE, PewterCity_Movement_AideApproachPlayerMid waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -756,7 +756,7 @@ PewterCity_EventScript_AideApproachPlayer3:: closemessage applymovement LOCALID_AIDE, PewterCity_Movement_AideApproachPlayerBottom waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/PewterCity_House1/scripts.inc b/data/maps/PewterCity_House1/scripts.inc index 9003913dd..d4dfee4e8 100644 --- a/data/maps/PewterCity_House1/scripts.inc +++ b/data/maps/PewterCity_House1/scripts.inc @@ -18,7 +18,7 @@ PewterCity_House1_EventScript_Nidoran:: lock faceplayer call PewterCity_House1_EventScript_DoNidoranCry - applymovement LOCALID_NIDORAN, Movement_FaceOriginalDirection + applymovement LOCALID_NIDORAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/PewterCity_Museum_1F/scripts.inc b/data/maps/PewterCity_Museum_1F/scripts.inc index e41feef0d..28c09240b 100644 --- a/data/maps/PewterCity_Museum_1F/scripts.inc +++ b/data/maps/PewterCity_Museum_1F/scripts.inc @@ -22,14 +22,14 @@ PewterCity_Museum_1F_EventScript_Scientist1BehindCounter:: PewterCity_Museum_1F_EventScript_AmberHasGeneticMatter:: msgbox PewterCity_Museum_1F_Text_AmberContainsGeneticMatter - applymovement LOCALID_SCIENTIST1, Movement_FaceOriginalDirection + applymovement LOCALID_SCIENTIST1, Common_Movement_FaceOriginalDirection waitmovement 0 release end PewterCity_Museum_1F_EventScript_ExplainAmber:: msgbox PewterCity_Museum_1F_Text_AmberIsFossilizedSap - applymovement LOCALID_SCIENTIST1, Movement_FaceOriginalDirection + applymovement LOCALID_SCIENTIST1, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -37,7 +37,7 @@ PewterCity_Museum_1F_EventScript_ExplainAmber:: PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: lockall setvar VAR_TEMP_1, 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end @@ -45,7 +45,7 @@ PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: lockall setvar VAR_TEMP_1, 1 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end @@ -53,7 +53,7 @@ PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: PewterCity_Museum_1F_EventScript_EntranceTriggerRight:: lockall setvar VAR_TEMP_1, 2 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end diff --git a/data/maps/PokemonLeague_BrunosRoom/scripts.inc b/data/maps/PokemonLeague_BrunosRoom/scripts.inc index a54266d4e..b1d6de506 100644 --- a/data/maps/PokemonLeague_BrunosRoom/scripts.inc +++ b/data/maps/PokemonLeague_BrunosRoom/scripts.inc @@ -100,16 +100,16 @@ PokemonLeague_BrunosRoom_EventScript_DefeatedBruno:: end PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayLeft:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayRight:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterRight + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc index c45d61e8b..cdbb93a2e 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc +++ b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc @@ -78,12 +78,12 @@ PokemonLeague_ChampionsRoom_EventScript_EnterRoom:: specialvar VAR_RESULT, GetStarterSpecies bufferspeciesname STR_VAR_1, VAR_RESULT msgbox PokemonLeague_ChampionsRoom_Text_OakCongratulations - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterRight - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox PokemonLeague_ChampionsRoom_Text_OakImDisappointedRival closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 msgbox PokemonLeague_ChampionsRoom_Text_OakPlayerComeWithMe diff --git a/data/maps/PokemonLeague_HallOfFame/scripts.inc b/data/maps/PokemonLeague_HallOfFame/scripts.inc index 426f594b9..e8fae588d 100644 --- a/data/maps/PokemonLeague_HallOfFame/scripts.inc +++ b/data/maps/PokemonLeague_HallOfFame/scripts.inc @@ -22,14 +22,14 @@ PokemonLeague_HallOfFame_EventScript_EnterRoom:: textcolor NPC_TEXT_COLOR_MALE applymovement OBJ_EVENT_ID_PLAYER, PokemonLeague_HallOfFame_Movement_EnterRoom waitmovement 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterLeft - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 18 msgbox PokemonLeague_HallOfFame_Text_OakCongratulations closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterUp - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 dofieldeffect FLDEFF_HALL_OF_FAME_RECORD diff --git a/data/maps/PokemonTower_2F/scripts.inc b/data/maps/PokemonTower_2F/scripts.inc index 3d7a6b715..e03faf21f 100644 --- a/data/maps/PokemonTower_2F/scripts.inc +++ b/data/maps/PokemonTower_2F/scripts.inc @@ -24,9 +24,9 @@ PokemonTower_2F_EventScript_Rival:: playbgm MUS_ENCOUNTER_RIVAL, 0 call_if_eq VAR_TEMP_1, 0, PokemonTower_2F_EventScript_RivalFacePlayerRight call_if_eq VAR_TEMP_1, 1, PokemonTower_2F_EventScript_RivalFacePlayerDown - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 msgbox PokemonTower_2F_Text_RivalIntro setvar VAR_LAST_TALKED, LOCALID_RIVAL @@ -47,14 +47,14 @@ PokemonTower_2F_EventScript_Rival:: end PokemonTower_2F_EventScript_RivalFacePlayerRight:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterRight - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return PokemonTower_2F_EventScript_RivalFacePlayerDown:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/Route16_NorthEntrance_1F/scripts.inc b/data/maps/Route16_NorthEntrance_1F/scripts.inc index b7e9fcfcc..d0e52d70f 100644 --- a/data/maps/Route16_NorthEntrance_1F/scripts.inc +++ b/data/maps/Route16_NorthEntrance_1F/scripts.inc @@ -49,7 +49,7 @@ Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger:: textcolor NPC_TEXT_COLOR_MALE msgbox Route16_NorthEntrance_1F_Text_ExcuseMeWaitUp closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 call_if_eq VAR_0x8008, 1, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidTop diff --git a/data/maps/Route18_EastEntrance_1F/scripts.inc b/data/maps/Route18_EastEntrance_1F/scripts.inc index 0c05c8beb..05e2526e4 100644 --- a/data/maps/Route18_EastEntrance_1F/scripts.inc +++ b/data/maps/Route18_EastEntrance_1F/scripts.inc @@ -49,7 +49,7 @@ Route18_EastEntrance_1F_EventScript_NeedBikeTrigger:: textcolor NPC_TEXT_COLOR_MALE msgbox Route18_EastEntrance_1F_Text_ExcuseMe closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 call_if_eq VAR_0x8008, 1, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidTop diff --git a/data/maps/Route24/scripts.inc b/data/maps/Route24/scripts.inc index bf8c685da..6a0befab8 100644 --- a/data/maps/Route24/scripts.inc +++ b/data/maps/Route24/scripts.inc @@ -40,7 +40,7 @@ Route24_EventScript_RocketTrigger:: textcolor NPC_TEXT_COLOR_MALE call_if_eq VAR_TEMP_1, 0, Route24_EventScript_RocketApproachPlayer call_if_eq VAR_TEMP_1, 1, Route24_EventScript_RocketMotionToPlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox Route24_Text_JustEarnedFabulousPrize checkitemspace ITEM_NUGGET @@ -67,7 +67,7 @@ Route24_EventScript_RocketApproachPlayer:: return Route24_EventScript_RocketMotionToPlayer:: - applymovement LOCALID_ROCKET, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_ROCKET, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return diff --git a/data/maps/Route5_SouthEntrance/scripts.inc b/data/maps/Route5_SouthEntrance/scripts.inc index fe8e06607..307de8b0d 100644 --- a/data/maps/Route5_SouthEntrance/scripts.inc +++ b/data/maps/Route5_SouthEntrance/scripts.inc @@ -25,7 +25,7 @@ Route5_SouthEntrance_EventScript_GuardTriggerRight:: Route5_SouthEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 goto_if_set FLAG_GOT_TEA, Route5_SouthEntrance_EventScript_GiveTea msgbox Route5_SouthEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route6_NorthEntrance/scripts.inc b/data/maps/Route6_NorthEntrance/scripts.inc index 9f27430d6..c7c8cb95e 100644 --- a/data/maps/Route6_NorthEntrance/scripts.inc +++ b/data/maps/Route6_NorthEntrance/scripts.inc @@ -25,7 +25,7 @@ Route6_NorthEntrance_EventScript_GuardTriggerRight:: Route6_NorthEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto_if_set FLAG_GOT_TEA, Route6_NorthEntrance_EventScript_GiveTea msgbox Route6_NorthEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route7_EastEntrance/scripts.inc b/data/maps/Route7_EastEntrance/scripts.inc index 30c776d0b..a13ec857c 100644 --- a/data/maps/Route7_EastEntrance/scripts.inc +++ b/data/maps/Route7_EastEntrance/scripts.inc @@ -25,7 +25,7 @@ Route7_EastEntrance_EventScript_GuardTriggerBottom:: Route7_EastEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 goto_if_set FLAG_GOT_TEA, Route7_EastEntrance_EventScript_GiveTea msgbox Route7_EastEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route8_WestEntrance/scripts.inc b/data/maps/Route8_WestEntrance/scripts.inc index 1ef74df1b..e0a8b5f27 100644 --- a/data/maps/Route8_WestEntrance/scripts.inc +++ b/data/maps/Route8_WestEntrance/scripts.inc @@ -25,7 +25,7 @@ Route8_WestEntrance_EventScript_GuardTriggerBottom:: Route8_WestEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 goto_if_set FLAG_GOT_TEA, Route8_WestEntrance_EventScript_GiveTea msgbox Route8_WestEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/SSAnne_2F_Corridor/scripts.inc b/data/maps/SSAnne_2F_Corridor/scripts.inc index e3d30efe1..3d09bd4bb 100644 --- a/data/maps/SSAnne_2F_Corridor/scripts.inc +++ b/data/maps/SSAnne_2F_Corridor/scripts.inc @@ -28,7 +28,7 @@ SSAnne_2F_Corridor_EventScript_RivalTrigger:: playbgm MUS_ENCOUNTER_RIVAL, 0 addobject LOCALID_RIVAL delay 10 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 call_if_eq VAR_TEMP_1, 0, SSAnne_2F_Corridor_EventScript_RivalApproachLeft diff --git a/data/maps/SSAnne_CaptainsOffice/scripts.inc b/data/maps/SSAnne_CaptainsOffice/scripts.inc index 485b93807..6ac9cb693 100644 --- a/data/maps/SSAnne_CaptainsOffice/scripts.inc +++ b/data/maps/SSAnne_CaptainsOffice/scripts.inc @@ -14,7 +14,7 @@ SSAnne_CaptainsOffice_EventScript_Captain:: waitfanfare call EventScript_RestorePrevTextColor delay 50 - applymovement LOCALID_CAPTAIN, Movement_FacePlayer + applymovement LOCALID_CAPTAIN, Common_Movement_FacePlayer waitmovement 0 msgbox SSAnne_CaptainsOffice_Text_ThankYouHaveHMForCut giveitem_msg SSAnne_CaptainsOffice_Text_ObtainedHM01FromCaptain, ITEM_HM01, 1, MUS_OBTAIN_KEY_ITEM @@ -28,13 +28,13 @@ SSAnne_CaptainsOffice_EventScript_Captain:: SSAnne_CaptainsOffice_EventScript_NoRoomForCut:: msgbox SSAnne_CaptainsOffice_Text_YouHaveNoRoomForThis closemessage - applymovement LOCALID_CAPTAIN, Movement_FaceOriginalDirection + applymovement LOCALID_CAPTAIN, Common_Movement_FaceOriginalDirection waitmovement 0 release end SSAnne_CaptainsOffice_EventScript_AlreadyGotCut:: - applymovement LOCALID_CAPTAIN, Movement_FacePlayer + applymovement LOCALID_CAPTAIN, Common_Movement_FacePlayer waitmovement 0 msgbox SSAnne_CaptainsOffice_Text_SSAnneWillSetSailSoon release diff --git a/data/maps/SSAnne_Exterior/scripts.inc b/data/maps/SSAnne_Exterior/scripts.inc index e6043855d..ed084fb89 100644 --- a/data/maps/SSAnne_Exterior/scripts.inc +++ b/data/maps/SSAnne_Exterior/scripts.inc @@ -38,7 +38,7 @@ SSAnne_Exterior_WalkDown:: return SSAnne_Exterior_WalkInPlaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/SaffronCity/scripts.inc b/data/maps/SaffronCity/scripts.inc index 530ce140c..3d517bf43 100644 --- a/data/maps/SaffronCity/scripts.inc +++ b/data/maps/SaffronCity/scripts.inc @@ -44,7 +44,7 @@ SaffronCity_EventScript_RocketGrunt7:: SaffronCity_EventScript_DoorGuardGrunt:: lock goto_if_set FLAG_RESCUED_MR_FUJI, SaffronCity_EventScript_DoorGuardAsleep - applymovement LOCALID_DOOR_GUARD_GRUNT, Movement_FacePlayer + applymovement LOCALID_DOOR_GUARD_GRUNT, Common_Movement_FacePlayer waitmovement 0 msgbox SaffronCity_Text_ImASecurityGuard release diff --git a/data/maps/SaffronCity_Dojo/scripts.inc b/data/maps/SaffronCity_Dojo/scripts.inc index 680dc871e..b66ad6cee 100644 --- a/data/maps/SaffronCity_Dojo/scripts.inc +++ b/data/maps/SaffronCity_Dojo/scripts.inc @@ -6,7 +6,7 @@ SaffronCity_Dojo_MapScripts:: SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: lockall setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 releaseall end @@ -14,7 +14,7 @@ SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: SaffronCity_Dojo_EventScript_TriggerMasterBattleRight:: lockall setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 releaseall end @@ -25,7 +25,7 @@ SaffronCity_Dojo_EventScript_HitmonleeBall:: goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon showmonpic SPECIES_HITMONLEE, 10, 3 setvar VAR_TEMP_1, SPECIES_HITMONLEE - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox SaffronCity_Dojo_Text_YouWantHitmonlee, MSGBOX_YESNO @@ -46,7 +46,7 @@ SaffronCity_Dojo_EventScript_HitmonchanBall:: goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon showmonpic SPECIES_HITMONCHAN, 10, 3 setvar VAR_TEMP_1, SPECIES_HITMONCHAN - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox SaffronCity_Dojo_Text_YouWantHitmonchan, MSGBOX_YESNO diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc index d4979c25c..698abf617 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc @@ -19,18 +19,18 @@ SaffronCity_PokemonTrainerFanClub_OnFrame:: SaffronCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement LOCALID_BATTLE_GIRL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BATTLE_GIRL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_BATTLE_GIRL, Movement_ExclamationMark + applymovement LOCALID_BATTLE_GIRL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_BATTLE_GIRL, Movement_Delay48 + applymovement LOCALID_BATTLE_GIRL, Common_Movement_Delay48 waitmovement 0 msgbox SaffronCity_PokemonTrainerFanClub_Text_HuhYou closemessage applymovement LOCALID_BATTLE_GIRL, SaffronCity_PokemonTrainerFanClub_Movement_FanApproachPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox SaffronCity_PokemonTrainerFanClub_Text_YourePlayerWereYourFansNow setvar VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2 diff --git a/data/maps/SevenIsland_House_Room1/scripts.inc b/data/maps/SevenIsland_House_Room1/scripts.inc index d9da2eca2..056519ed2 100644 --- a/data/maps/SevenIsland_House_Room1/scripts.inc +++ b/data/maps/SevenIsland_House_Room1/scripts.inc @@ -39,7 +39,7 @@ SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle:: applymovement LOCALID_OLD_WOMAN, SevenIsland_House_Room1_Movement_OldWomanWalkBehindPlayer waitmovement 0 copyobjectxytoperm LOCALID_OLD_WOMAN - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1, SevenIsland_House_Room1_EventScript_BattleWonComment call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2, SevenIsland_House_Room1_EventScript_BattleLostComment diff --git a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc index f8b966a94..07cd151e7 100644 --- a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc +++ b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc @@ -11,7 +11,7 @@ SevenIsland_SevaultCanyon_House_EventScript_BaldingMan:: waitmovement 0 fadedefaultbgm delay 30 - applymovement LOCALID_BALDING_MAN, Movement_FacePlayer + applymovement LOCALID_BALDING_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn textcolor NPC_TEXT_COLOR_NEUTRAL @@ -34,12 +34,12 @@ SevenIsland_SevaultCanyon_House_EventScript_BaldingMan:: end SevenIsland_SevaultCanyon_House_EventScript_PlayerFaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return SevenIsland_SevaultCanyon_House_EventScript_AlreadyDanced:: - applymovement LOCALID_BALDING_MAN, Movement_FacePlayer + applymovement LOCALID_BALDING_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn release diff --git a/data/maps/SilphCo_11F/scripts.inc b/data/maps/SilphCo_11F/scripts.inc index 08411f199..3cc1f6841 100644 --- a/data/maps/SilphCo_11F/scripts.inc +++ b/data/maps/SilphCo_11F/scripts.inc @@ -61,7 +61,7 @@ SilphCo_11F_EventScript_GiovanniTriggerRight:: SilphCo_11F_EventScript_BattleGiovanni:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_GIOVANNI, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GIOVANNI, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 25 msgbox SilphCo_11F_Text_GiovanniIntro diff --git a/data/maps/SilphCo_7F/scripts.inc b/data/maps/SilphCo_7F/scripts.inc index afa40c8fb..d4db57800 100644 --- a/data/maps/SilphCo_7F/scripts.inc +++ b/data/maps/SilphCo_7F/scripts.inc @@ -35,10 +35,10 @@ SilphCo_7F_EventScript_RivalTriggerBottom:: SilphCo_7F_EventScript_RivalScene:: textcolor NPC_TEXT_COLOR_MALE playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 msgbox SilphCo_7F_Text_RivalWhatKeptYou call_if_eq VAR_TEMP_1, 0, SilphCo_7F_EventScript_RivalApproachTop diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc index 59c3a7e17..bb32e7d0c 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc @@ -60,22 +60,22 @@ SixIsland_DottedHole_SapphireRoom_EventScript_Sapphire:: @ Lots of redundant scripts below SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -102,28 +102,28 @@ SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireWest:: SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireNorth:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireSouth:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireEast:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireWest:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return diff --git a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc index 3e23e6839..9efdc8681 100644 --- a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc @@ -22,12 +22,12 @@ SixIsland_PokemonCenter_1F_OnFrame:: SixIsland_PokemonCenter_1F_EventScript_RivalScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 25 applymovement LOCALID_RIVAL, SixIsland_PokemonCenter_1F_Movement_RivalApproach diff --git a/data/maps/SixIsland_RuinValley/scripts.inc b/data/maps/SixIsland_RuinValley/scripts.inc index 808bed3d0..6df247886 100644 --- a/data/maps/SixIsland_RuinValley/scripts.inc +++ b/data/maps/SixIsland_RuinValley/scripts.inc @@ -15,10 +15,10 @@ SixIsland_RuinValley_EventScript_OpenDottedHoleDoor:: SixIsland_RuinValley_EventScript_Scientist:: lock msgbox SixIsland_RuinValley_Text_CantFigureOutHowToGetInside - applymovement LOCALID_SCIENTIST, Movement_FacePlayer + applymovement LOCALID_SCIENTIST, Common_Movement_FacePlayer waitmovement 0 msgbox SixIsland_RuinValley_Text_IFoundThisPlace - applymovement LOCALID_SCIENTIST, Movement_FaceOriginalDirection + applymovement LOCALID_SCIENTIST, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/ThreeIsland/scripts.inc b/data/maps/ThreeIsland/scripts.inc index c88307195..589ddca21 100644 --- a/data/maps/ThreeIsland/scripts.inc +++ b/data/maps/ThreeIsland/scripts.inc @@ -44,14 +44,14 @@ ThreeIsland_EventScript_AntiBiker1:: end ThreeIsland_EventScript_AntiBiker1GotFullRestore:: - applymovement LOCALID_ANTIBIKER1, Movement_FacePlayer + applymovement LOCALID_ANTIBIKER1, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_Text_YouveGotImpressiveMons release end ThreeIsland_EventScript_GiveFullRestore:: - applymovement LOCALID_ANTIBIKER1, Movement_FacePlayer + applymovement LOCALID_ANTIBIKER1, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_Text_ThankYouOhYourMonGotHurt checkitemspace ITEM_FULL_RESTORE @@ -95,23 +95,23 @@ ThreeIsland_EventScript_BikerArgumentScene:: return ThreeIsland_EventScript_PlayerFaceUp:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @ Unused ThreeIsland_EventScript_PlayerFaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return ThreeIsland_EventScript_PlayerFaceLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return ThreeIsland_EventScript_PlayerFaceRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -136,7 +136,7 @@ ThreeIsland_EventScript_AntiBiker2:: end ThreeIsland_EventScript_AntiBiker2BikersGone:: - applymovement LOCALID_ANTIBIKER2, Movement_FacePlayer + applymovement LOCALID_ANTIBIKER2, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_Text_LostelleWentOffTowardsBondBridge release @@ -204,12 +204,12 @@ ThreeIsland_EventScript_BattleBikersTriggerRight:: ThreeIsland_EventScript_BattleBikersScene:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_BIKER1, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER1, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_BIKER1, Movement_ExclamationMark + applymovement LOCALID_BIKER1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_BIKER1, Movement_Delay48 + applymovement LOCALID_BIKER1, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_BIKER1, ThreeIsland_Movement_BikerApproach waitmovement 0 @@ -239,10 +239,10 @@ ThreeIsland_EventScript_BattleBikersScene:: msgbox ThreeIsland_Text_Biker3Intro setvar VAR_LAST_TALKED, LOCALID_BIKER3 trainerbattle_no_intro TRAINER_BIKER_GOON_3, ThreeIsland_Text_Biker3Defeat - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement LOCALID_BIKER4, Movement_WalkInPlaceFasterDown - applymovement LOCALID_BIKER5, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER4, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER5, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox ThreeIsland_Text_Biker3PostBattle closemessage @@ -272,33 +272,33 @@ ThreeIsland_EventScript_BattleBikersScene:: end ThreeIsland_EventScript_PaxtonApproachLeft:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachLeft waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMidLeft:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidLeft waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMid:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMid applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMidRight:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidRight waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachRight:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachRight waitmovement 0 diff --git a/data/maps/ThreeIsland_BerryForest/scripts.inc b/data/maps/ThreeIsland_BerryForest/scripts.inc index c5e8841de..8aeed468c 100644 --- a/data/maps/ThreeIsland_BerryForest/scripts.inc +++ b/data/maps/ThreeIsland_BerryForest/scripts.inc @@ -14,7 +14,7 @@ ThreeIsland_BerryForest_EventScript_Lostelle:: faceplayer msgbox ThreeIsland_BerryForest_Text_HelpScaryPokemon playse SE_PIN - applymovement LOCALID_LOSTELLE, Movement_ExclamationMark + applymovement LOCALID_LOSTELLE, Common_Movement_ExclamationMark waitmovement 0 applymovement LOCALID_LOSTELLE, ThreeIsland_BerryForest_Movement_LostelleLookAround waitmovement 0 @@ -26,7 +26,7 @@ ThreeIsland_BerryForest_EventScript_Lostelle:: setwildbattle SPECIES_HYPNO, 30 dowildbattle special QuestLog_CutRecording - applymovement LOCALID_LOSTELLE, Movement_FacePlayer + applymovement LOCALID_LOSTELLE, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_BerryForest_Text_ThankYouHaveThis giveitem ITEM_IAPAPA_BERRY diff --git a/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc b/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc index 20826c539..2c66fb6f4 100644 --- a/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc +++ b/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc @@ -29,7 +29,7 @@ ThreeIsland_DunsparceTunnel_EventScript_Prospector:: goto_if_eq VAR_RESULT, TRUE, ThreeIsland_DunsparceTunnel_EventScript_ProspectorStruckGold msgbox ThreeIsland_DunsparceTunnel_Text_ProspectingForGold closemessage - applymovement LOCALID_PROSPECTOR, Movement_FaceOriginalDirection + applymovement LOCALID_PROSPECTOR, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc index ab2e4a8bf..aaa26dce3 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc +++ b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc @@ -43,7 +43,7 @@ TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene:: special BufferBigGuyOrBigGirlString msgbox TwoIsland_JoyfulGameCorner_Text_LostelleItsOkayDaddy closemessage - applymovement LOCALID_LOSTELLE, Movement_WalkInPlaceFasterDown + applymovement LOCALID_LOSTELLE, Common_Movement_WalkInPlaceFasterDown waitmovement 0 setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3 releaseall @@ -56,16 +56,16 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_WhereHasLostelleGottenTo closemessage - applymovement LOCALID_DADDY, Movement_WalkInPlaceFasterDown + applymovement LOCALID_DADDY, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_DADDY, Movement_ExclamationMark + applymovement LOCALID_DADDY, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_DADDY, Movement_Delay48 + applymovement LOCALID_DADDY, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_DADDY, Movement_171527 waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_PleaseHelpFindLostelle closemessage @@ -78,12 +78,12 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: applymovement LOCALID_BIKER, TwoIsland_JoyfulGameCorner_Movement_BikerLookAround waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_IsThisOnlyThreeIsland - applymovement LOCALID_BIKER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_BIKER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_ThisIsTwoIslandMoveIt msgbox TwoIsland_JoyfulGameCorner_Text_TheseIslandsAreConfusing closemessage - applymovement LOCALID_BIKER, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_EXIT removeobject LOCALID_BIKER diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc index 9b7028145..004d6e7c6 100644 --- a/data/maps/VermilionCity/scripts.inc +++ b/data/maps/VermilionCity/scripts.inc @@ -191,8 +191,8 @@ VermilionCity_EventScript_ExitedTicketCheck:: VermilionCity_EventScript_CheckTicket:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_FERRY_SAILOR, Movement_WalkInPlaceFasterLeft - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_FERRY_SAILOR, Common_Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto_if_eq VAR_MAP_SCENE_VERMILION_CITY, 3, VermilionCity_EventScript_CheckSeagallopPresentTrigger msgbox VermilionCity_Text_DoYouHaveATicket diff --git a/data/maps/VermilionCity_PokemonFanClub/scripts.inc b/data/maps/VermilionCity_PokemonFanClub/scripts.inc index 1ef77430e..b5c9e005c 100644 --- a/data/maps/VermilionCity_PokemonFanClub/scripts.inc +++ b/data/maps/VermilionCity_PokemonFanClub/scripts.inc @@ -57,7 +57,7 @@ VermilionCity_PokemonFanClub_EventScript_Woman:: goto_if_set SPOKE_TO_FAT_MAN_LAST, VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan msgbox VermilionCity_PokemonFanClub_Text_AdoreMySeel closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 setflag SPOKE_TO_WOMAN_LAST release @@ -66,7 +66,7 @@ VermilionCity_PokemonFanClub_EventScript_Woman:: VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan:: msgbox VermilionCity_PokemonFanClub_Text_SeelFarMoreAttractive closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 clearflag SPOKE_TO_FAT_MAN_LAST release @@ -78,7 +78,7 @@ VermilionCity_PokemonFanClub_EventScript_FatMan:: goto_if_set SPOKE_TO_WOMAN_LAST, VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman msgbox VermilionCity_PokemonFanClub_Text_AdmirePikachusTail closemessage - applymovement LOCALID_FAT_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_FAT_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 setflag SPOKE_TO_FAT_MAN_LAST release @@ -87,7 +87,7 @@ VermilionCity_PokemonFanClub_EventScript_FatMan:: VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman:: msgbox VermilionCity_PokemonFanClub_Text_PikachuTwiceAsCute closemessage - applymovement LOCALID_FAT_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_FAT_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 clearflag SPOKE_TO_WOMAN_LAST release diff --git a/data/maps/ViridianCity/scripts.inc b/data/maps/ViridianCity/scripts.inc index 85edc6686..5793034d9 100644 --- a/data/maps/ViridianCity/scripts.inc +++ b/data/maps/ViridianCity/scripts.inc @@ -43,7 +43,7 @@ ViridianCity_EventScript_TryUnlockGym:: ViridianCity_EventScript_GymDoorLocked:: lockall textcolor NPC_TEXT_COLOR_NEUTRAL - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 msgbox ViridianCity_Text_GymDoorsAreLocked @@ -88,7 +88,7 @@ ViridianCity_EventScript_OldMan:: goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 1, ViridianCity_EventScript_OldManGymLeaderReturned msgbox ViridianCity_Text_GymClosedWonderWhoLeaderIs closemessage - applymovement LOCALID_OLD_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_OLD_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -180,7 +180,7 @@ ViridianCity_EventScript_Woman:: ViridianCity_EventScript_WomanRoadBlocked:: msgbox ViridianCity_Text_GrandpaHasntHadCoffeeYet closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -206,9 +206,9 @@ ViridianCity_Movement_WalkDown:: ViridianCity_EventScript_TutorialTriggerLeft:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_TUTORIAL_MAN, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 call ViridianCity_EventScript_DoTutorialBattle release @@ -217,9 +217,9 @@ ViridianCity_EventScript_TutorialTriggerLeft:: ViridianCity_EventScript_TutorialTriggerRight:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFasterRight + applymovement LOCALID_TUTORIAL_MAN, Common_Movement_WalkInPlaceFasterRight waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 call ViridianCity_EventScript_DoTutorialBattle release diff --git a/data/maps/ViridianCity_Mart/scripts.inc b/data/maps/ViridianCity_Mart/scripts.inc index 6ff805858..4a2ed71d1 100644 --- a/data/maps/ViridianCity_Mart/scripts.inc +++ b/data/maps/ViridianCity_Mart/scripts.inc @@ -21,7 +21,7 @@ ViridianCity_Mart_OnFrame:: ViridianCity_Mart_EventScript_ParcelScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_CLERK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_CLERK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox ViridianCity_Mart_Text_YouCameFromPallet closemessage diff --git a/data/maps/ViridianCity_School/scripts.inc b/data/maps/ViridianCity_School/scripts.inc index 658dfdf0c..fdb02d481 100644 --- a/data/maps/ViridianCity_School/scripts.inc +++ b/data/maps/ViridianCity_School/scripts.inc @@ -9,7 +9,7 @@ ViridianCity_School_EventScript_Lass:: faceplayer msgbox ViridianCity_School_Text_TryingToMemorizeNotes closemessage - applymovement LOCALID_LASS, Movement_WalkInPlaceFasterUp + applymovement LOCALID_LASS, Common_Movement_WalkInPlaceFasterUp waitmovement 0 release end @@ -19,7 +19,7 @@ ViridianCity_School_EventScript_Woman:: faceplayer msgbox ViridianCity_School_Text_ReadBlackboardCarefully closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -36,7 +36,7 @@ ViridianCity_School_EventScript_Notebook:: msgbox ViridianCity_School_Text_TurnThePage, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, ViridianCity_School_EventScript_StopReadingNotebook msgbox ViridianCity_School_Text_NotebookFourthPage - applymovement LOCALID_LASS, Movement_WalkInPlaceFasterUp + applymovement LOCALID_LASS, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox ViridianCity_School_Text_HeyDontLookAtMyNotes diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index b225958a3..d4936ab7f 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -181,7 +181,7 @@ CableClub_EventScript_PlayerExitLinkRoom:: CableClub_EventScript_Tutorial:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox CableClub_Text_FirstTimeRightThisWay closemessage diff --git a/data/scripts/movement.inc b/data/scripts/movement.inc index 52e5a2c96..51e486794 100644 --- a/data/scripts/movement.inc +++ b/data/scripts/movement.inc @@ -1,55 +1,55 @@ -Movement_QuestionMark:: +Common_Movement_QuestionMark:: emote_question_mark step_end -Movement_ExclamationMark:: +Common_Movement_ExclamationMark:: emote_exclamation_mark step_end -Movement_Delay48:: +Common_Movement_Delay48:: delay_16 delay_16 delay_16 step_end -Movement_FacePlayer:: +Common_Movement_FacePlayer:: face_player step_end @ Unused -Movement_FaceAwayPlayer:: +Common_Movement_FaceAwayPlayer:: face_away_player step_end -Movement_FaceOriginalDirection:: +Common_Movement_FaceOriginalDirection:: face_original_direction step_end -Movement_WalkInPlaceFasterLeft:: +Common_Movement_WalkInPlaceFasterLeft:: walk_in_place_faster_left step_end -Movement_WalkInPlaceFasterUp:: +Common_Movement_WalkInPlaceFasterUp:: walk_in_place_faster_up step_end -Movement_WalkInPlaceFasterRight:: +Common_Movement_WalkInPlaceFasterRight:: walk_in_place_faster_right step_end -Movement_WalkInPlaceFasterDown:: +Common_Movement_WalkInPlaceFasterDown:: walk_in_place_faster_down step_end -Movement_FaceRight:: +Common_Movement_FaceRight:: face_right step_end -Movement_FaceDown:: +Common_Movement_FaceDown:: face_down step_end -Movement_WalkUp5:: +Common_Movement_WalkUp5:: walk_up walk_up walk_up @@ -58,25 +58,25 @@ Movement_WalkUp5:: step_end @ Unused -Movement_WalkUp4:: +Common_Movement_WalkUp4:: walk_up walk_up walk_up walk_up step_end -Movement_Delay32:: +Common_Movement_Delay32:: delay_16 delay_16 step_end @ Unused -Movement_WalkUp:: +Common_Movement_WalkUp:: walk_up step_end @ Unused -Movement_WalkUp2:: +Common_Movement_WalkUp2:: walk_up walk_up step_end diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index bec40c40c..f92ff3183 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -19,11 +19,11 @@ EventScript_PkmnCenterNurse_HealPkmn:: end EventScript_PkmnCenterNurse_TakeAndHealPkmn:: - applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFasterLeft + applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 dofieldeffect FLDEFF_POKECENTER_HEAL waitfieldeffect FLDEFF_POKECENTER_HEAL - applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFasterDown + applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown waitmovement 0 special HealPlayerParty return diff --git a/data/scripts/pokemon_league.inc b/data/scripts/pokemon_league.inc index 03295279e..f1d018499 100644 --- a/data/scripts/pokemon_league.inc +++ b/data/scripts/pokemon_league.inc @@ -1,5 +1,5 @@ PokemonLeague_EventScript_OpenDoor:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_Delay32 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay32 waitmovement 0 playse SE_RS_DOOR call PokemonLeague_EventScript_SetDoorOpen @@ -8,7 +8,7 @@ PokemonLeague_EventScript_OpenDoor:: return PokemonLeague_EventScript_EnterRoom:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkUp5 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp5 waitmovement 0 setflag FLAG_TEMP_2 playse SE_UNLOCK @@ -32,7 +32,7 @@ PokemonLeague_EventScript_PreventExit:: end PokemonLeague_EventScript_OpenDoorLance:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_Delay32 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay32 waitmovement 0 playse SE_RS_DOOR setmetatile 6, 4, METATILE_PokemonLeague_Door_Top_Open, 1 diff --git a/data/scripts/questionnaire.inc b/data/scripts/questionnaire.inc index f3bb76a3b..dd79200c6 100644 --- a/data/scripts/questionnaire.inc +++ b/data/scripts/questionnaire.inc @@ -15,12 +15,12 @@ EventScript_Questionnaire:: end EventScript_EnableMysteryGift:: - applymovement VAR_0x8008, Movement_FaceDown + applymovement VAR_0x8008, Common_Movement_FaceDown waitmovement 0 playse SE_PIN - applymovement VAR_0x8008, Movement_ExclamationMark + applymovement VAR_0x8008, Common_Movement_ExclamationMark waitmovement 0 - applymovement VAR_0x8008, Movement_Delay48 + applymovement VAR_0x8008, Common_Movement_Delay48 waitmovement 0 msgbox Text_YouKnowThoseWords setflag FLAG_SYS_MYSTERY_GIFT_ENABLED @@ -37,7 +37,7 @@ EventScript_DeclineQuestionnaire:: end EventScript_TookQuestionnaire:: - applymovement VAR_0x8008, Movement_FaceDown + applymovement VAR_0x8008, Common_Movement_FaceDown waitmovement 0 msgbox Text_QuestionnaireThankYou releaseall diff --git a/data/scripts/route23.inc b/data/scripts/route23.inc index 7a7b838a0..9d9a616cb 100644 --- a/data/scripts/route23.inc +++ b/data/scripts/route23.inc @@ -114,7 +114,7 @@ Route23_EventScript_RecognizeBadge:: Route23_EventScript_BadgeGuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement VAR_0x8009, Movement_WalkInPlaceFasterLeft + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 switch VAR_TEMP_1 case 1, Route23_EventScript_CheckBoulderBadgeTrigger @@ -173,7 +173,7 @@ Route23_EventScript_MissingBoulderBadgeTrigger:: msgbox Text_CantLetYouPass closemessage applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown - applymovement VAR_0x8009, Movement_WalkInPlaceFasterDown + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterDown waitmovement 0 releaseall end @@ -186,7 +186,7 @@ Route23_EventScript_MissingBadgeTrigger:: closemessage waitse applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown - applymovement VAR_0x8009, Movement_WalkInPlaceFasterDown + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterDown waitmovement 0 releaseall end diff --git a/data/scripts/seagallop.inc b/data/scripts/seagallop.inc index 9cbd502b6..f2c8bae3a 100644 --- a/data/scripts/seagallop.inc +++ b/data/scripts/seagallop.inc @@ -117,7 +117,7 @@ EventScript_CancelSail:: VermilionCity_EventScript_WalkUpPier:: closemessage - applymovement LOCALID_FERRY_SAILOR, Movement_FaceOriginalDirection + applymovement LOCALID_FERRY_SAILOR, Common_Movement_FaceOriginalDirection applymovement OBJ_EVENT_ID_PLAYER, VermilionCity_Movement_WalkUp waitmovement 0 releaseall diff --git a/data/scripts/trainer_card.inc b/data/scripts/trainer_card.inc index 09a4c38f5..3bb906554 100644 --- a/data/scripts/trainer_card.inc +++ b/data/scripts/trainer_card.inc @@ -74,12 +74,12 @@ FourIsland_House2_EventScript_StickerMan:: FourIsland_House2_EventScript_MeetStickerMan:: setflag FLAG_MET_STICKER_MAN msgbox FourIsland_House2_Text_WishICouldShowOffStickers - applymovement LOCALID_STICKER_MAN, Movement_FacePlayer + applymovement LOCALID_STICKER_MAN, Common_Movement_FacePlayer waitmovement 0 playse SE_PIN - applymovement LOCALID_STICKER_MAN, Movement_ExclamationMark + applymovement LOCALID_STICKER_MAN, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_STICKER_MAN, Movement_Delay48 + applymovement LOCALID_STICKER_MAN, Common_Movement_Delay48 waitmovement 0 goto_if_eq VAR_0x8008, 0, FourIsland_House2_EventScript_StickerManNothingToBrag message FourIsland_House2_Text_GiveYouStickerIfYouBrag @@ -88,7 +88,7 @@ FourIsland_House2_EventScript_MeetStickerMan:: end FourIsland_House2_EventScript_StickerManAskForBrag:: - applymovement LOCALID_STICKER_MAN, Movement_FacePlayer + applymovement LOCALID_STICKER_MAN, Common_Movement_FacePlayer waitmovement 0 goto_if_questlog EventScript_ReleaseEnd special QuestLog_CutRecording diff --git a/data/scripts/trainer_tower.inc b/data/scripts/trainer_tower.inc index fe239dd1d..e64f9b768 100644 --- a/data/scripts/trainer_tower.inc +++ b/data/scripts/trainer_tower.inc @@ -109,9 +109,9 @@ TrainerTower_EventScript_TriggerBattle:: TrainerTower_EventScript_DoSingleBattle: ttower_encountermusic - applymovement LOCALID_TRAINER_SINGLES, Movement_ExclamationMark + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_SINGLES, Movement_Delay48 + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_Delay48 waitmovement 0 setvar DISABLE_SINGLES_TRIGGER, TRUE applymovement LOCALID_TRAINER_SINGLES, TrainerTower_Movement_SingleTrainerApproach @@ -144,9 +144,9 @@ TrainerTower_EventScript_DoKnockoutBattle:: TrainerTower_EventScript_DoKnockoutBattle1: ttower_encountermusic - applymovement LOCALID_TRAINER_KNOCKOUT, Movement_ExclamationMark + applymovement LOCALID_TRAINER_KNOCKOUT, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_KNOCKOUT, Movement_Delay48 + applymovement LOCALID_TRAINER_KNOCKOUT, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_TRAINER_KNOCKOUT, TrainerTower_Movement_BottomKnockoutTrainerApproach waitmovement 0 @@ -154,9 +154,9 @@ TrainerTower_EventScript_DoKnockoutBattle1: TrainerTower_EventScript_DoKnockoutBattle2:: ttower_encountermusic - applymovement LOCALID_TRAINER_DOUBLES1, Movement_ExclamationMark + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_DOUBLES1, Movement_Delay48 + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_TRAINER_DOUBLES1, TrainerTower_Movement_TopKnockoutTrainerApproach waitmovement 0 @@ -164,9 +164,9 @@ TrainerTower_EventScript_DoKnockoutBattle2:: TrainerTower_EventScript_DoKnockoutBattle3:: ttower_encountermusic - applymovement LOCALID_TRAINER_SINGLES, Movement_ExclamationMark + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_SINGLES, Movement_Delay48 + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_TRAINER_SINGLES, TrainerTower_Movement_RightKnockoutTrainerApproach waitmovement 0 @@ -339,9 +339,9 @@ TrainerTower_EventScript_DoubleBattleTriggerTop:: ttower_checkdoubles goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, TrainerTower_EventScript_IneligibleForDoubleBattle ttower_encountermusic - applymovement LOCALID_TRAINER_DOUBLES1, Movement_ExclamationMark + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_DOUBLES1, Movement_Delay48 + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_Delay48 goto TrainerTower_EventScript_TriggerDoubleBattle TrainerTower_EventScript_DoubleBattleTriggerBottom:: @@ -349,9 +349,9 @@ TrainerTower_EventScript_DoubleBattleTriggerBottom:: ttower_checkdoubles goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, TrainerTower_EventScript_IneligibleForDoubleBattle ttower_encountermusic - applymovement LOCALID_TRAINER_DOUBLES2, Movement_ExclamationMark + applymovement LOCALID_TRAINER_DOUBLES2, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_DOUBLES2, Movement_Delay48 + applymovement LOCALID_TRAINER_DOUBLES2, Common_Movement_Delay48 TrainerTower_EventScript_TriggerDoubleBattle: waitmovement 0 setvar DISABLE_DOUBLES_TRIGGER, TRUE diff --git a/data/scripts/white_out.inc b/data/scripts/white_out.inc index cbf593c82..6ec14717b 100644 --- a/data/scripts/white_out.inc +++ b/data/scripts/white_out.inc @@ -24,7 +24,7 @@ EventScript_AfterWhiteOutHealMsg:: EventScript_AfterWhiteOutMomHeal:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement LOCALID_MOM, Movement_WalkInPlaceFasterDown + applymovement LOCALID_MOM, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox Text_HadQuiteAnExperienceTakeRest call EventScript_OutOfCenterPartyHeal From 17a8498701bbcb1cad82b81388d580399e69ae98 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 30 Aug 2022 14:07:57 -0400 Subject: [PATCH 047/105] Fix battle message charmap copied from emerald --- charmap.txt | 10 +++------- data/battle_scripts_1.s | 4 ++-- include/constants/battle_string_ids.h | 4 ++-- src/battle_message.c | 15 +++++++++------ 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/charmap.txt b/charmap.txt index 150b4a156..8aba3a327 100644 --- a/charmap.txt +++ b/charmap.txt @@ -406,13 +406,9 @@ B_ATK_PREFIX2 = FD 2A B_DEF_PREFIX2 = FD 2B B_ATK_PREFIX3 = FD 2C B_DEF_PREFIX3 = FD 2D -B_TRAINER2_CLASS = FD 2E -B_TRAINER2_NAME = FD 2F -B_TRAINER2_LOSE_TEXT = FD 30 -B_TRAINER2_WIN_TEXT = FD 31 -B_PARTNER_CLASS = FD 32 -B_PARTNER_NAME = FD 33 -B_BUFF3 = FD 34 +B_TRAINER2_LOSE_TEXT = FD 2E +B_TRAINER2_WIN_TEXT = FD 2F +B_BUFF3 = FD 30 @ indicates the end of a town/city name (before " TOWN" or " CITY") NAME_END = FC 00 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 674bb50d8..8aa0a1004 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2977,7 +2977,7 @@ BattleScript_BattleTowerLostLostSkipMonRecall:: waitstate printstring STRINGID_TRAINER1WINTEXT jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_BattleTowerLostLostSkipDouble - printstring STRINGID_TRAINER2NAME + printstring STRINGID_TRAINER2WINTEXT BattleScript_BattleTowerLostLostSkipDouble:: end2 @@ -2995,7 +2995,7 @@ BattleScript_BattleTowerTrainerBattleWon:: jumpifnotbattletype BATTLE_TYPE_TRAINER_TOWER, BattleScript_BattleTowerEtcTrainerBattleWonSkipText printstring STRINGID_TRAINER1LOSETEXT jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_BattleTowerEtcTrainerBattleWonSkipText - printstring STRINGID_TRAINER2CLASS + printstring STRINGID_TRAINER2LOSETEXT BattleScript_BattleTowerEtcTrainerBattleWonSkipText:: pickup end2 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index c648ad7be..24cc01ca6 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -373,8 +373,8 @@ #define STRINGID_POKEFLUTECATCHY 372 #define STRINGID_POKEFLUTE 373 #define STRINGID_MONHEARINGFLUTEAWOKE 374 -#define STRINGID_TRAINER2CLASS 375 -#define STRINGID_TRAINER2NAME 376 +#define STRINGID_TRAINER2LOSETEXT 375 +#define STRINGID_TRAINER2WINTEXT 376 #define STRINGID_PLAYERWHITEDOUT 377 #define STRINGID_MONTOOSCAREDTOMOVE 378 #define STRINGID_GHOSTGETOUTGETOUT 379 diff --git a/src/battle_message.c b/src/battle_message.c index 43ebc8444..f1d6430da 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -44,13 +44,13 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst); static const u8 sText_Empty1[] = _(""); static const u8 sText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}"); -static const u8 sText_Trainer2Class[] = _("{B_TRAINER2_CLASS}"); +static const u8 sText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); static const u8 sText_Trainer1RecallPkmn1[] = _("{B_TRAINER1_NAME}: {B_OPPONENT_MON1_NAME}, come back!"); static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); static const u8 sText_Trainer1RecallPkmn2[] = _("{B_TRAINER1_NAME}: {B_OPPONENT_MON2_NAME}, come back!"); static const u8 sText_Trainer1RecallBoth[] = _("{B_TRAINER1_NAME}: {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME}, come back!"); -static const u8 sText_Trainer2Name[] = _("{B_TRAINER2_NAME}"); -static const u8 sText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_TRAINER2_LOSE_TEXT} EXP. Points!\p"); +static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); +static const u8 sText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_BUFF3} EXP. Points!\p"); static const u8 sText_EmptyString4[] = _(""); static const u8 sText_ABoosted[] = _(" a boosted"); static const u8 sText_PkmnGrewToLv[] = _("{B_BUFF1} grew to\nLV. {B_BUFF2}!{WAIT_SE}\p"); @@ -878,8 +878,8 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST [STRINGID_POKEFLUTECATCHY - BATTLESTRINGS_TABLE_START] = sText_PlayedFluteCatchyTune, [STRINGID_POKEFLUTE - BATTLESTRINGS_TABLE_START] = sText_PlayedThe, [STRINGID_MONHEARINGFLUTEAWOKE - BATTLESTRINGS_TABLE_START] = sText_PkmnHearingFluteAwoke, - [STRINGID_TRAINER2CLASS - BATTLESTRINGS_TABLE_START] = sText_Trainer2Class, - [STRINGID_TRAINER2NAME - BATTLESTRINGS_TABLE_START] = sText_Trainer2Name, + [STRINGID_TRAINER2LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2LoseText, + [STRINGID_TRAINER2WINTEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2WinText, [STRINGID_PLAYERWHITEDOUT - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout2, [STRINGID_MONTOOSCAREDTOMOVE - BATTLESTRINGS_TABLE_START] = sText_TooScaredToMove, [STRINGID_GHOSTGETOUTGETOUT - BATTLESTRINGS_TABLE_START] = sText_GetOutGetOut, @@ -2805,7 +2805,10 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) { bool8 BattleStringShouldBeColored(u16 stringId) { - if (stringId == STRINGID_TRAINER1LOSETEXT || stringId == STRINGID_TRAINER2CLASS || stringId == STRINGID_TRAINER1WINTEXT || stringId == STRINGID_TRAINER2NAME) + if (stringId == STRINGID_TRAINER1LOSETEXT + || stringId == STRINGID_TRAINER2LOSETEXT + || stringId == STRINGID_TRAINER1WINTEXT + || stringId == STRINGID_TRAINER2WINTEXT) return TRUE; return FALSE; } From dcdf31f020d15f73db75ce387450a1fb2c2283d9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 2 Sep 2022 19:14:44 -0400 Subject: [PATCH 048/105] Sync fieldmap --- include/fieldmap.h | 6 +- include/global.fieldmap.h | 25 +++-- src/event_object_movement.c | 10 +- src/field_camera.c | 60 +++++------ src/field_control_avatar.c | 4 +- src/field_effect.c | 4 +- src/field_effect_helpers.c | 2 +- src/field_player_avatar.c | 2 +- src/field_specials.c | 20 ++-- src/fieldmap.c | 198 ++++++++++++++++++------------------ src/fldeff_cut.c | 4 +- src/item_use.c | 2 +- src/overworld.c | 2 +- src/scrcmd.c | 6 +- src/shop.c | 10 +- src/special_field_anim.c | 24 ++--- 16 files changed, 191 insertions(+), 188 deletions(-) diff --git a/include/fieldmap.h b/include/fieldmap.h index 91e976294..65ab57a1e 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -28,14 +28,14 @@ u32 MapGridGetMetatileBehaviorAt(s16, s16); u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y); void MapGridSetMetatileIdAt(s32, s32, u16); void MapGridSetMetatileEntryAt(s32, s32, u16); -u8 MapGridGetZCoordAt(s32 x, s32 y); +u8 MapGridGetElevationAt(s32 x, s32 y); void GetCameraCoords(u16 *, u16 *); -bool8 MapGridIsImpassableAt(s32, s32); +bool8 MapGridGetCollisionAt(s32, s32); s32 GetMapBorderIdAt(s32, s32); bool32 CanCameraMoveInDirection(s32); const struct MapHeader * GetMapHeaderFromConnection(struct MapConnection * connection); struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y); -void Fieldmap_ApplyGlobalTintToPaletteSlot(u8 slot, u8 count); +void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count); void SaveMapView(void); u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType); u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attributeType); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 7ab2c12e4..d9be6a29a 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,13 +1,23 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H -#define METATILE_BEHAVIOR_MASK 0x00FF -#define METATILE_COLLISION_MASK 0x0C00 -#define METATILE_ID_MASK 0x03FF -#define METATILE_ID_UNDEFINED 0x03FF -#define METATILE_ELEVATION_SHIFT 12 -#define METATILE_COLLISION_SHIFT 10 -#define METATILE_ELEVATION_MASK 0xF000 +// Masks/shifts for blocks in the map grid +// Map grid blocks consist of a 10 bit metatile id, a 2 bit collision value, and a 4 bit elevation value +// This is the data stored in each data/layouts/*/map.bin file +#define MAPGRID_METATILE_ID_MASK 0x03FF // Bits 0-9 +#define MAPGRID_COLLISION_MASK 0x0C00 // Bits 10-11 +#define MAPGRID_ELEVATION_MASK 0xF000 // Bits 12-15 +#define MAPGRID_COLLISION_SHIFT 10 +#define MAPGRID_ELEVATION_SHIFT 12 + +// An undefined map grid block has all metatile id bits set and nothing else +#define MAPGRID_UNDEFINED MAPGRID_METATILE_ID_MASK + +enum { + METATILE_LAYER_TYPE_NORMAL, // Metatile uses middle and top bg layers + METATILE_LAYER_TYPE_COVERED, // Metatile uses bottom and middle bg layers + METATILE_LAYER_TYPE_SPLIT, // Metatile uses bottom and top bg layers +}; #define METATILE_ID(tileset, name) (METATILE_##tileset##_##name) @@ -22,6 +32,7 @@ enum METATILE_ATTRIBUTE_LAYER_TYPE, METATILE_ATTRIBUTE_7, METATILE_ATTRIBUTE_COUNT, + METATILE_ATTRIBUTES_ALL = 255 // Special id to get the full attributes value }; enum diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3c2707173..44d37b289 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -4854,7 +4854,7 @@ u8 GetCollisionAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u32 dir) u8 direction = dir; if (IsCoordOutsideObjectEventMovementRange(objectEvent, x, y)) return COLLISION_OUTSIDE_RANGE; - else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction)) + else if (MapGridGetCollisionAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction)) return COLLISION_IMPASSABLE; else if (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction)) return COLLISION_IMPASSABLE; @@ -4871,7 +4871,7 @@ u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 d if (IsCoordOutsideObjectEventMovementRange(objectEvent, x, y)) flags |= 1; - if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) + if (MapGridGetCollisionAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) flags |= 2; if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) flags |= 4; @@ -8380,7 +8380,7 @@ bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y) if (z == 0) return FALSE; - mapZ = MapGridGetZCoordAt(x, y); + mapZ = MapGridGetElevationAt(x, y); if (mapZ == 0 || mapZ == 0xF) return FALSE; @@ -8433,8 +8433,8 @@ u8 ZCoordToPriority(u8 z) void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent) { - u8 z = MapGridGetZCoordAt(objEvent->currentCoords.x, objEvent->currentCoords.y); - u8 z2 = MapGridGetZCoordAt(objEvent->previousCoords.x, objEvent->previousCoords.y); + u8 z = MapGridGetElevationAt(objEvent->currentCoords.x, objEvent->currentCoords.y); + u8 z2 = MapGridGetElevationAt(objEvent->previousCoords.x, objEvent->previousCoords.y); if (z == 0xF || z2 == 0xF) return; diff --git a/src/field_camera.c b/src/field_camera.c index 61521a227..a7a9e7376 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -211,13 +211,13 @@ void CurrentMapDrawMetatileAt(int x, int y) } } -void DrawDoorMetatileAt(int x, int y, const u16 *arr) +void DrawDoorMetatileAt(int x, int y, const u16 *tiles) { int offset = MapPosToBgTilemapOffset(&sFieldCameraOffset, x, y); if (offset >= 0) { - DrawMetatile(1, arr, offset); + DrawMetatile(1, tiles, offset); // sFieldCameraOffset.copyBGToVRAM = TRUE; } } @@ -239,16 +239,16 @@ static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * 8, offset); } -static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset) +static void DrawMetatile(s32 metatileLayerType, const u16 *tiles, u16 offset) { switch (metatileLayerType) { - case 2: // LAYER_TYPE_ + case METATILE_LAYER_TYPE_SPLIT: // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gBGTilemapBuffers3[offset] = tiles[0]; + gBGTilemapBuffers3[offset + 1] = tiles[1]; + gBGTilemapBuffers3[offset + 0x20] = tiles[2]; + gBGTilemapBuffers3[offset + 0x21] = tiles[3]; // Draw transparent tiles to the middle background layer. gBGTilemapBuffers1[offset] = 0; @@ -257,23 +257,23 @@ static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset gBGTilemapBuffers1[offset + 0x21] = 0; // Draw metatile's top layer to the top background layer. - gBGTilemapBuffers2[offset] = metatiles[4]; - gBGTilemapBuffers2[offset + 1] = metatiles[5]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + gBGTilemapBuffers2[offset] = tiles[4]; + gBGTilemapBuffers2[offset + 1] = tiles[5]; + gBGTilemapBuffers2[offset + 0x20] = tiles[6]; + gBGTilemapBuffers2[offset + 0x21] = tiles[7]; break; - case 1: // LAYER_TYPE_COVERED_BY_OBJECTS + case METATILE_LAYER_TYPE_COVERED: // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gBGTilemapBuffers3[offset] = tiles[0]; + gBGTilemapBuffers3[offset + 1] = tiles[1]; + gBGTilemapBuffers3[offset + 0x20] = tiles[2]; + gBGTilemapBuffers3[offset + 0x21] = tiles[3]; // Draw metatile's top layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[4]; - gBGTilemapBuffers1[offset + 1] = metatiles[5]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[7]; + gBGTilemapBuffers1[offset] = tiles[4]; + gBGTilemapBuffers1[offset + 1] = tiles[5]; + gBGTilemapBuffers1[offset + 0x20] = tiles[6]; + gBGTilemapBuffers1[offset + 0x21] = tiles[7]; // Draw transparent tiles to the top background layer. gBGTilemapBuffers2[offset] = 0; @@ -281,7 +281,7 @@ static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset gBGTilemapBuffers2[offset + 0x20] = 0; gBGTilemapBuffers2[offset + 0x21] = 0; break; - case 0: // LAYER_TYPE_NORMAL + case METATILE_LAYER_TYPE_NORMAL: // Draw garbage to the bottom background layer. gBGTilemapBuffers3[offset] = 0x3014; gBGTilemapBuffers3[offset + 1] = 0x3014; @@ -289,16 +289,16 @@ static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset gBGTilemapBuffers3[offset + 0x21] = 0x3014; // Draw metatile's bottom layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[0]; - gBGTilemapBuffers1[offset + 1] = metatiles[1]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[3]; + gBGTilemapBuffers1[offset] = tiles[0]; + gBGTilemapBuffers1[offset + 1] = tiles[1]; + gBGTilemapBuffers1[offset + 0x20] = tiles[2]; + gBGTilemapBuffers1[offset + 0x21] = tiles[3]; // Draw metatile's top layer to the top background layer, which covers object event sprites. - gBGTilemapBuffers2[offset] = metatiles[4]; - gBGTilemapBuffers2[offset + 1] = metatiles[5]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + gBGTilemapBuffers2[offset] = tiles[4]; + gBGTilemapBuffers2[offset + 1] = tiles[5]; + gBGTilemapBuffers2[offset + 0x20] = tiles[6]; + gBGTilemapBuffers2[offset + 0x21] = tiles[7]; break; } ScheduleBgCopyTilemapToVram(1); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 9b3d23fe7..fa4ec8016 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -200,7 +200,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) ResetFacingNpcOrSignPostVars(); playerDirection = GetPlayerFacingDirection(); GetPlayerPosition(&position); - metatileAttributes = MapGridGetMetatileAttributeAt(position.x, position.y, 0xFF); + metatileAttributes = MapGridGetMetatileAttributeAt(position.x, position.y, METATILE_ATTRIBUTES_ALL); metatileBehavior = MapGridGetMetatileBehaviorAt(position.x, position.y); FieldClearPlayerInput(&gInputToStoreInQuestLogMaybe); @@ -354,7 +354,7 @@ static void GetInFrontOfPlayerPosition(struct MapPosition *position) GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y); PlayerGetDestCoords(&x, &y); - if (MapGridGetZCoordAt(x, y) != 0) + if (MapGridGetElevationAt(x, y) != 0) position->height = PlayerGetZCoord(); else position->height = 0; diff --git a/src/field_effect.c b/src/field_effect.c index 541ceba13..a81ab8d9d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2740,9 +2740,7 @@ static void LoadFieldMoveStreaksTilemapToVram(u16 screenbase) u16 *dest; dest = (u16 *)(VRAM + (10 * 32) + screenbase); for (i = 0; i < (10 * 32); i++, dest++) - { - *dest = sFieldMoveStreaksOutdoors_Tilemap[i] | METATILE_ELEVATION_MASK; - } + *dest = sFieldMoveStreaksOutdoors_Tilemap[i] | 0xF000; } static void (*const sShowMonIndoorsEffectFuncs[])(struct Task *) = { diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 9a7dc201d..6fafac439 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -1041,7 +1041,7 @@ void SynchroniseSurfPosition(struct ObjectEvent *playerObject, struct Sprite *su for (i = DIR_SOUTH; i <= DIR_EAST; i++, x = surfBlobSprite->data[6], y = surfBlobSprite->data[7]) { MoveCoords(i, &x, &y); - if (MapGridGetZCoordAt(x, y) == 3) + if (MapGridGetElevationAt(x, y) == 3) { surfBlobSprite->data[5]++; break; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index fd1c67ccd..c8b947c7f 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -597,7 +597,7 @@ static const u8 sQuestLogSurfDismountActionIds[] = { static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - && MapGridGetZCoordAt(x, y) == 3 + && MapGridGetElevationAt(x, y) == 3 && GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT) { QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[direction], 16); diff --git a/src/field_specials.c b/src/field_specials.c index a24017a8c..c26070132 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -280,7 +280,7 @@ static void PcTurnOnUpdateMetatileId(bool16 flickerOff) else if (gSpecialVar_0x8004 == 2) metatileId = METATILE_GenericBuilding1_PlayersPCOn; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + 7, gSaveBlock1Ptr->pos.y + deltaY + 7, metatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + MAP_OFFSET, gSaveBlock1Ptr->pos.y + deltaY + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); } void AnimatePcTurnOff() @@ -311,13 +311,13 @@ void AnimatePcTurnOff() metatileId = METATILE_GenericBuilding1_PlayersPCOff; else if (gSpecialVar_0x8004 == 2) metatileId = METATILE_GenericBuilding1_PlayersPCOff; - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + 7, gSaveBlock1Ptr->pos.y + deltaY + 7, metatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + MAP_OFFSET, gSaveBlock1Ptr->pos.y + deltaY + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); DrawWholeMapView(); } void SpawnCameraObject(void) { - u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_YOUNGSTER, 8, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); + u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_YOUNGSTER, 8, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + MAP_OFFSET, gSaveBlock1Ptr->pos.y + MAP_OFFSET, 3); gObjectEvents[objectEventId].invisible = TRUE; CameraObjectSetFollowedObjectId(gObjectEvents[objectEventId].spriteId); } @@ -1139,9 +1139,7 @@ static void Task_AnimateElevatorWindowView(u8 taskId) for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) - { - MapGridSetMetatileIdAt(j + 8, i + 7, sElevatorWindowMetatilesGoingUp[i][data[0] % 3] | METATILE_COLLISION_MASK); - } + MapGridSetMetatileIdAt(j + 1 + MAP_OFFSET, i + MAP_OFFSET, sElevatorWindowMetatilesGoingUp[i][data[0] % 3] | MAPGRID_COLLISION_MASK); } } else @@ -1149,9 +1147,7 @@ static void Task_AnimateElevatorWindowView(u8 taskId) for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) - { - MapGridSetMetatileIdAt(j + 8, i + 7, sElevatorWindowMetatilesGoingDown[i][data[0] % 3] | METATILE_COLLISION_MASK); - } + MapGridSetMetatileIdAt(j + 1 + MAP_OFFSET, i + MAP_OFFSET, sElevatorWindowMetatilesGoingDown[i][data[0] % 3] | MAPGRID_COLLISION_MASK); } } DrawWholeMapView(); @@ -2153,7 +2149,7 @@ void DoPokemonLeagueLightingEffect(void) LoadPalette(sEliteFourLightingPalettes[0], 0x70, 0x20); } data[1] = 0; - Fieldmap_ApplyGlobalTintToPaletteSlot(7, 1); + ApplyGlobalTintToPaletteSlot(7, 1); } } @@ -2180,7 +2176,7 @@ static void Task_RunPokemonLeagueLightingEffect(u8 taskId) data[0] = sEliteFourLightingTimers[data[1]]; LoadPalette(sEliteFourLightingPalettes[data[1]], 0x70, 0x20); } - Fieldmap_ApplyGlobalTintToPaletteSlot(7, 1); + ApplyGlobalTintToPaletteSlot(7, 1); } } @@ -2197,7 +2193,7 @@ static void Task_CancelPokemonLeagueLightingEffect(u8 taskId) { LoadPalette(sEliteFourLightingPalettes[11], 0x70, 0x20); } - Fieldmap_ApplyGlobalTintToPaletteSlot(7, 1); + ApplyGlobalTintToPaletteSlot(7, 1); if (gPaletteFade.active) { BlendPalettes(0x00000080, 16, RGB_BLACK); diff --git a/src/fieldmap.c b/src/fieldmap.c index 33a1d82cc..e51e9aca7 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -14,6 +14,15 @@ struct ConnectionFlags u8 east:1; }; +struct BackupMapLayout VMap; +EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {}; +EWRAM_DATA struct MapHeader gMapHeader = {}; +EWRAM_DATA struct Camera gCamera = {}; +static EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {}; +EWRAM_DATA u8 gGlobalFieldTintMode = QL_TINT_NONE; + +static const struct ConnectionFlags sDummyConnectionFlags = {}; + static void InitMapLayoutData(struct MapHeader *); static void InitBackupMapLayoutData(u16 *, u16, u16); static void InitBackupMapLayoutConnections(struct MapHeader *); @@ -27,46 +36,39 @@ static bool8 IsPosInIncomingConnectingMap(u8, s32, s32, struct MapConnection *); static bool8 IsCoordInIncomingConnectingMap(s32, s32, s32, s32); static u32 GetAttributeByMetatileIdAndMapLayout(const struct MapLayout *, u16, u8); -#define MapGridGetBorderTileAt(x, y) ({ \ - u16 block; \ - s32 xprime; \ - s32 yprime; \ - \ - const struct MapLayout *mapLayout = gMapHeader.mapLayout; \ - \ - xprime = x - 7; \ - xprime += 8 * mapLayout->borderWidth; \ - xprime %= mapLayout->borderWidth; \ - \ - yprime = y - 7; \ - yprime += 8 * mapLayout->borderHeight; \ - yprime %= mapLayout->borderHeight; \ - \ - block = mapLayout->border[xprime + yprime * mapLayout->borderWidth] | METATILE_COLLISION_MASK; \ +#define GetBorderBlockAt(x, y) ({ \ + u16 block; \ + s32 xprime; \ + s32 yprime; \ + \ + const struct MapLayout *mapLayout = gMapHeader.mapLayout; \ + \ + xprime = x - MAP_OFFSET; \ + xprime += 8 * mapLayout->borderWidth; \ + xprime %= mapLayout->borderWidth; \ + \ + yprime = y - MAP_OFFSET; \ + yprime += 8 * mapLayout->borderHeight; \ + yprime %= mapLayout->borderHeight; \ + \ + block = mapLayout->border[xprime + yprime * mapLayout->borderWidth] | MAPGRID_COLLISION_MASK; \ }) #define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize) -#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt(x, y)) - -struct BackupMapLayout VMap; -EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {}; -EWRAM_DATA struct MapHeader gMapHeader = {}; -EWRAM_DATA struct Camera gCamera = {}; -static EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {}; -EWRAM_DATA u8 gGlobalFieldTintMode = QL_TINT_NONE; - -static const struct ConnectionFlags sDummyConnectionFlags = {}; +#define GetMapGridBlockAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : GetBorderBlockAt(x, y)) +// Masks/shifts for metatile attributes +// This is the format of the data stored in each data/tilesets/*/*/metatile_attributes.bin file static const u32 sMetatileAttrMasks[METATILE_ATTRIBUTE_COUNT] = { - [METATILE_ATTRIBUTE_BEHAVIOR] = 0x000001ff, - [METATILE_ATTRIBUTE_TERRAIN] = 0x00003e00, - [METATILE_ATTRIBUTE_2] = 0x0003c000, - [METATILE_ATTRIBUTE_3] = 0x00fc0000, - [METATILE_ATTRIBUTE_ENCOUNTER_TYPE] = 0x07000000, - [METATILE_ATTRIBUTE_5] = 0x18000000, - [METATILE_ATTRIBUTE_LAYER_TYPE] = 0x60000000, - [METATILE_ATTRIBUTE_7] = 0x80000000 + [METATILE_ATTRIBUTE_BEHAVIOR] = 0x000001ff, // Bits 0-8 + [METATILE_ATTRIBUTE_TERRAIN] = 0x00003e00, // Bits 9-13 + [METATILE_ATTRIBUTE_2] = 0x0003c000, // Bits 14-17 + [METATILE_ATTRIBUTE_3] = 0x00fc0000, // Bits 18-23 + [METATILE_ATTRIBUTE_ENCOUNTER_TYPE] = 0x07000000, // Bits 24-26 + [METATILE_ATTRIBUTE_5] = 0x18000000, // Bits 27-28 + [METATILE_ATTRIBUTE_LAYER_TYPE] = 0x60000000, // Bits 29-30 + [METATILE_ATTRIBUTE_7] = 0x80000000 // Bit 31 }; static const u8 sMetatileAttrShifts[METATILE_ATTRIBUTE_COUNT] = { @@ -101,10 +103,10 @@ void InitMapFromSavedGame(void) static void InitMapLayoutData(struct MapHeader * mapHeader) { const struct MapLayout * mapLayout = mapHeader->mapLayout; - CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill(MAPGRID_UNDEFINED << 16 | MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); VMap.map = gBackupMapData; - VMap.Xsize = mapLayout->width + 15; - VMap.Ysize = mapLayout->height + 14; + VMap.Xsize = mapLayout->width + MAP_OFFSET_W; + VMap.Ysize = mapLayout->height + MAP_OFFSET_H; AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, ABSPATH("fieldmap.c"), 158); InitBackupMapLayoutData(mapLayout->map, mapLayout->width, mapLayout->height); InitBackupMapLayoutConnections(mapHeader); @@ -114,12 +116,12 @@ static void InitBackupMapLayoutData(u16 *map, u16 width, u16 height) { s32 y; u16 *dest = VMap.map; - dest += VMap.Xsize * 7 + 7; + dest += VMap.Xsize * 7 + MAP_OFFSET; for (y = 0; y < height; y++) { CpuCopy16(map, dest, width * sizeof(u16)); - dest += width + 15; + dest += width + MAP_OFFSET_W; map += width; } } @@ -197,8 +199,8 @@ static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHea if (connectedMapHeader) { cWidth = connectedMapHeader->mapLayout->width; - x = offset + 7; - y = mapHeader->mapLayout->height + 7; + x = offset + MAP_OFFSET; + y = mapHeader->mapLayout->height + MAP_OFFSET; if (x < 0) { x2 = -x; @@ -222,7 +224,7 @@ static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHea x, y, connectedMapHeader, x2, /*y2*/ 0, - width, /*height*/ 7); + width, /*height*/ MAP_OFFSET); } } @@ -237,8 +239,8 @@ static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHea { cWidth = connectedMapHeader->mapLayout->width; cHeight = connectedMapHeader->mapLayout->height; - x = offset + 7; - y2 = cHeight - 7; + x = offset + MAP_OFFSET; + y2 = cHeight - MAP_OFFSET; if (x < 0) { x2 = -x; @@ -262,7 +264,7 @@ static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHea x, /*y*/ 0, connectedMapHeader, x2, y2, - width, /*height*/ 7); + width, /*height*/ MAP_OFFSET); } } @@ -277,8 +279,8 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead { cWidth = connectedMapHeader->mapLayout->width; cHeight = connectedMapHeader->mapLayout->height; - y = offset + 7; - x2 = cWidth - 7; + y = offset + MAP_OFFSET; + x2 = cWidth - MAP_OFFSET; if (y < 0) { y2 = -y; @@ -301,7 +303,7 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead /*x*/ 0, y, connectedMapHeader, x2, y2, - /*width*/ 7, height); + /*width*/ MAP_OFFSET, height); } } @@ -314,8 +316,8 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead if (connectedMapHeader) { cHeight = connectedMapHeader->mapLayout->height; - x = mapHeader->mapLayout->width + 7; - y = offset + 7; + x = mapHeader->mapLayout->width + MAP_OFFSET; + y = offset + MAP_OFFSET; if (y < 0) { y2 = -y; @@ -338,43 +340,43 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead x, y, connectedMapHeader, /*x2*/ 0, y2, - /*width*/ 8, height); + /*width*/ MAP_OFFSET + 1, height); } } -u8 MapGridGetZCoordAt(s32 x, s32 y) +u8 MapGridGetElevationAt(s32 x, s32 y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) + if (block == MAPGRID_UNDEFINED) return 0; - return block >> METATILE_ELEVATION_SHIFT; + return block >> MAPGRID_ELEVATION_SHIFT; } -u8 MapGridIsImpassableAt(s32 x, s32 y) +u8 MapGridGetCollisionAt(s32 x, s32 y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) + if (block == MAPGRID_UNDEFINED) return TRUE; - return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; + return (block & MAPGRID_COLLISION_MASK) >> MAPGRID_COLLISION_SHIFT; } u32 MapGridGetMetatileIdAt(s32 x, s32 y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) - return MapGridGetBorderTileAt(x, y) & METATILE_ID_MASK; + if (block == MAPGRID_UNDEFINED) + return GetBorderBlockAt(x, y) & MAPGRID_METATILE_ID_MASK; - return block & METATILE_ID_MASK; + return block & MAPGRID_METATILE_ID_MASK; } u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType) { - if (attributeType >= METATILE_ATTRIBUTE_COUNT) + if (attributeType >= METATILE_ATTRIBUTE_COUNT) // Check for METATILE_ATTRIBUTES_ALL return attributes; return (attributes & sMetatileAttrMasks[attributeType]) >> sMetatileAttrShifts[attributeType]; @@ -402,7 +404,7 @@ void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile) if (AreCoordsWithinMapGridBounds(x, y)) { i = x + y * VMap.Xsize; - VMap.map[i] = (VMap.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); + VMap.map[i] = (VMap.map[i] & MAPGRID_ELEVATION_MASK) | (metatile & ~MAPGRID_ELEVATION_MASK); } } @@ -421,9 +423,9 @@ void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 impassable) if (AreCoordsWithinMapGridBounds(x, y)) { if (impassable) - VMap.map[x + VMap.Xsize * y] |= METATILE_COLLISION_MASK; + VMap.map[x + VMap.Xsize * y] |= MAPGRID_COLLISION_MASK; else - VMap.map[x + VMap.Xsize * y] &= ~METATILE_COLLISION_MASK; + VMap.map[x + VMap.Xsize * y] &= ~MAPGRID_COLLISION_MASK; } } @@ -457,9 +459,9 @@ void SaveMapView(void) width = VMap.Xsize; x = gSaveBlock1Ptr->pos.x; y = gSaveBlock1Ptr->pos.y; - for (i = y; i < y + 14; i++) + for (i = y; i < y + MAP_OFFSET_H; i++) { - for (j = x; j < x + 15; j++) + for (j = x; j < x + MAP_OFFSET_W; j++) *mapView++ = gBackupMapData[width * i + j]; } } @@ -501,9 +503,9 @@ static void LoadSavedMapView(void) width = VMap.Xsize; x = gSaveBlock1Ptr->pos.x; y = gSaveBlock1Ptr->pos.y; - for (i = y; i < y + 14; i++) + for (i = y; i < y + MAP_OFFSET_H; i++) { - for (j = x; j < x + 15; j++) + for (j = x; j < x + MAP_OFFSET_W; j++) { gBackupMapData[j + width * i] = *mapView; mapView++; @@ -536,19 +538,19 @@ static void MoveMapViewToBackup(u8 direction) { case CONNECTION_NORTH: y0 += 1; - y2 = 13; + y2 = MAP_OFFSET_H - 1; break; case CONNECTION_SOUTH: r8 = 1; - y2 = 13; + y2 = MAP_OFFSET_H - 1; break; case CONNECTION_WEST: x0 += 1; - x2 = 14; + x2 = MAP_OFFSET_W - 1; break; case CONNECTION_EAST: r9 = 1; - x2 = 14; + x2 = MAP_OFFSET_W - 1; break; } for (y = 0; y < y2; y++) @@ -558,7 +560,7 @@ static void MoveMapViewToBackup(u8 direction) for (x = 0; x < x2; x++) { desti = width * (y + y0); - srci = (y + r8) * 15 + r9; + srci = (y + r8) * MAP_OFFSET_W + r9; src = &mapView[srci + i]; dest = &gBackupMapData[x0 + desti + j]; *dest = *src; @@ -571,10 +573,10 @@ static void MoveMapViewToBackup(u8 direction) s32 GetMapBorderIdAt(s32 x, s32 y) { - if (MapGridGetTileAt(x, y) == METATILE_ID_UNDEFINED) + if (GetMapGridBlockAt(x, y) == MAPGRID_UNDEFINED) return CONNECTION_INVALID; - if (x >= VMap.Xsize - 8) + if (x >= VMap.Xsize - (MAP_OFFSET + 1)) { if (!gMapConnectionFlags.east) return CONNECTION_INVALID; @@ -582,7 +584,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y) return CONNECTION_EAST; } - if (x < 7) + if (x < MAP_OFFSET) { if (!gMapConnectionFlags.west) return CONNECTION_INVALID; @@ -590,7 +592,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y) return CONNECTION_WEST; } - if (y >= VMap.Ysize - 7) + if (y >= VMap.Ysize - MAP_OFFSET) { if (!gMapConnectionFlags.south) return CONNECTION_INVALID; @@ -598,7 +600,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y) return CONNECTION_SOUTH; } - if (y < 7) + if (y < MAP_OFFSET) { if (!gMapConnectionFlags.north) return CONNECTION_INVALID; @@ -611,14 +613,14 @@ s32 GetMapBorderIdAt(s32 x, s32 y) static s32 GetPostCameraMoveMapBorderId(s32 x, s32 y) { - return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + 7 + x, gSaveBlock1Ptr->pos.y + 7 + y); + return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + MAP_OFFSET + x, gSaveBlock1Ptr->pos.y + MAP_OFFSET + y); } bool32 CanCameraMoveInDirection(s32 direction) { s32 x, y; - x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x; - y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y; + x = gSaveBlock1Ptr->pos.x + MAP_OFFSET + gDirectionToVectors[direction].x; + y = gSaveBlock1Ptr->pos.y + MAP_OFFSET + gDirectionToVectors[direction].y; if (GetMapBorderIdAt(x, y) == CONNECTION_INVALID) return FALSE; @@ -774,15 +776,15 @@ struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y) { direction = connection->direction; if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE) - || (direction == CONNECTION_NORTH && y > 6) - || (direction == CONNECTION_SOUTH && y < gMapHeader.mapLayout->height + 7) - || (direction == CONNECTION_WEST && x > 6) - || (direction == CONNECTION_EAST && x < gMapHeader.mapLayout->width + 7)) + || (direction == CONNECTION_NORTH && y > MAP_OFFSET - 1) + || (direction == CONNECTION_SOUTH && y < gMapHeader.mapLayout->height + MAP_OFFSET) + || (direction == CONNECTION_WEST && x > MAP_OFFSET - 1) + || (direction == CONNECTION_EAST && x < gMapHeader.mapLayout->width + MAP_OFFSET)) { continue; } - if (IsPosInConnectingMap(connection, x - 7, y - 7) == TRUE) + if (IsPosInConnectingMap(connection, x - MAP_OFFSET, y - MAP_OFFSET) == TRUE) return connection; } } @@ -791,14 +793,14 @@ struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y) void SetCameraFocusCoords(u16 x, u16 y) { - gSaveBlock1Ptr->pos.x = x - 7; - gSaveBlock1Ptr->pos.y = y - 7; + gSaveBlock1Ptr->pos.x = x - MAP_OFFSET; + gSaveBlock1Ptr->pos.y = y - MAP_OFFSET; } void GetCameraFocusCoords(u16 *x, u16 *y) { - *x = gSaveBlock1Ptr->pos.x + 7; - *y = gSaveBlock1Ptr->pos.y + 7; + *x = gSaveBlock1Ptr->pos.x + MAP_OFFSET; + *y = gSaveBlock1Ptr->pos.y + MAP_OFFSET; } // Unused @@ -836,7 +838,7 @@ static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTil } } -static void Fieldmap_ApplyGlobalTintToPaletteEntries(u16 offset, u16 size) +static void ApplyGlobalTintToPaletteEntries(u16 offset, u16 size) { switch (gGlobalFieldTintMode) { @@ -858,7 +860,7 @@ static void Fieldmap_ApplyGlobalTintToPaletteEntries(u16 offset, u16 size) CpuCopy16(gPlttBufferUnfaded + offset, gPlttBufferFaded + offset, size * sizeof(u16)); } -void Fieldmap_ApplyGlobalTintToPaletteSlot(u8 slot, u8 count) +void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count) { switch (gGlobalFieldTintMode) { @@ -890,17 +892,17 @@ static void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u1 { LoadPalette(&black, destOffset, 2); LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - 2); - Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1); + ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1); } else if (tileset->isSecondary == TRUE) { LoadPalette(((u16 *)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); - Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); + ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); } else { LoadCompressedPalette((u32 *)tileset->palettes, destOffset, size); - Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); + ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); } } } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index e6029448c..37e16517d 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -145,7 +145,7 @@ bool8 SetUpFieldMove_Cut(void) for (j = 0; j < CUT_SIDE; j++) { x = gPlayerFacingPosition.x - 1 + j; - if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.height) { if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) { @@ -214,7 +214,7 @@ bool8 FldEff_CutGrass(void) for (j = 0; j < CUT_SIDE; j++) { x = gPlayerFacingPosition.x - 1 + j; - if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.height) { if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) { diff --git a/src/item_use.c b/src/item_use.c index 716d42b9a..e31969d27 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -312,7 +312,7 @@ static bool8 ItemUseCheckFunc_Rod(void) } else { - if (MetatileBehavior_IsSurfable(behavior) && !MapGridIsImpassableAt(x, y)) + if (MetatileBehavior_IsSurfable(behavior) && MapGridGetCollisionAt(x, y) == 0) return TRUE; if (MetatileBehavior_IsBridge(behavior) == TRUE) return TRUE; diff --git a/src/overworld.c b/src/overworld.c index 6c1420418..d3ce86dd3 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3499,7 +3499,7 @@ static bool8 LinkPlayerDetectCollision(u8 selfObjEventId, u8 a2, s16 x, s16 y) } } } - return MapGridIsImpassableAt(x, y); + return MapGridGetCollisionAt(x, y); } static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion) diff --git a/src/scrcmd.c b/src/scrcmd.c index 12a492f89..bd673cc04 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2091,15 +2091,15 @@ bool8 ScrCmd_setmetatile(struct ScriptContext * ctx) { u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - u16 tileId = VarGet(ScriptReadHalfword(ctx)); + u16 metatileId = VarGet(ScriptReadHalfword(ctx)); bool16 isImpassable = VarGet(ScriptReadHalfword(ctx)); x += MAP_OFFSET; y += MAP_OFFSET; if (!isImpassable) - MapGridSetMetatileIdAt(x, y, tileId); + MapGridSetMetatileIdAt(x, y, metatileId); else - MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, metatileId | MAPGRID_COLLISION_MASK); return FALSE; } diff --git a/src/shop.c b/src/shop.c index 7f815c486..eede818b3 100644 --- a/src/shop.c +++ b/src/shop.c @@ -751,13 +751,9 @@ static void BuyMenuDrawMapBg(void) metatileLayerType = MapGridGetMetatileLayerTypeAt(x + i, y + j); if (metatile < NUM_METATILES_IN_PRIMARY) - { BuyMenuDrawMapMetatile(i, j, (u16 *)mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType); - } else - { BuyMenuDrawMapMetatile(i, j, (u16 *)mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); - } } } } @@ -769,15 +765,15 @@ static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLaye switch (metatileLayerType) { - case 0: + case METATILE_LAYER_TYPE_NORMAL: BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer4, offset1, offset2, src); BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer2, offset1, offset2, src + 4); break; - case 1: + case METATILE_LAYER_TYPE_COVERED: BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer3, offset1, offset2, src); BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer4, offset1, offset2, src + 4); break; - case 2: + case METATILE_LAYER_TYPE_SPLIT: BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer3, offset1, offset2, src); BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer2, offset1, offset2, src + 4); break; diff --git a/src/special_field_anim.c b/src/special_field_anim.c index 4193f0b5a..370c0e375 100644 --- a/src/special_field_anim.c +++ b/src/special_field_anim.c @@ -137,13 +137,13 @@ static void Task_DrawEscalator(u8 taskId) SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomRail, 0); break; case 2: - SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomNext, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomNext, MAPGRID_COLLISION_MASK); break; case 3: SetEscalatorMetatile(taskId, sEscalatorMetatiles_Bottom, 0); break; case 4: - SetEscalatorMetatile(taskId, sEscalatorMetatiles_TopNext, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_TopNext, MAPGRID_COLLISION_MASK); break; case 5: SetEscalatorMetatile(taskId, sEscalatorMetatiles_Top, 0); @@ -254,13 +254,13 @@ static void Task_DrawTeleporterHousing(u8 taskId) // Alternate the teleporter light / brightness of the teleporter door if ((tState & 1) == 0) { - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Yellow | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_HalfGlowing | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Yellow | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_HalfGlowing | MAPGRID_COLLISION_MASK); } else { - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Red | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_FullGlowing | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Red | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_FullGlowing | MAPGRID_COLLISION_MASK); } CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 2); @@ -275,8 +275,8 @@ static void Task_DrawTeleporterHousing(u8 taskId) if (tState != 13) return; - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Green | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Green | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 2); DestroyTask(taskId); @@ -305,8 +305,8 @@ static void Task_DrawTeleporterCable(u8 taskId) if (tState != 0) { // Set default cable tiles to clear the ball - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Cable_Top | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_Cable_Bottom | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Cable_Top | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_Cable_Bottom | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 1); @@ -321,8 +321,8 @@ static void Task_DrawTeleporterCable(u8 taskId) } // Draw the cable ball - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_CableBall_Top | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_CableBall_Bottom | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_CableBall_Top | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_CableBall_Bottom | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 1); } From d5dfd66812e56147bdfef38aab4c4ebde73364f7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 2 Sep 2022 19:42:26 -0400 Subject: [PATCH 049/105] CpuFastFill -> CpuFastFill16 in fieldmap --- src/fieldmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fieldmap.c b/src/fieldmap.c index e51e9aca7..1b50b8277 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -103,7 +103,7 @@ void InitMapFromSavedGame(void) static void InitMapLayoutData(struct MapHeader * mapHeader) { const struct MapLayout * mapLayout = mapHeader->mapLayout; - CpuFastFill(MAPGRID_UNDEFINED << 16 | MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill16(MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); VMap.map = gBackupMapData; VMap.Xsize = mapLayout->width + MAP_OFFSET_W; VMap.Ysize = mapLayout->height + MAP_OFFSET_H; From 859ca7994eb2f5cd6cd5bcd8b50fcba5989f0e2e Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Sat, 3 Sep 2022 23:27:56 +0800 Subject: [PATCH 050/105] Document Pokemon storage system --- include/box_party_pokemon_dropdown.h | 26 +- include/graphics.h | 10 +- include/pokemon_storage_system.h | 21 +- include/pokemon_storage_system_internal.h | 625 +++--- src/berry_pouch.c | 2 +- src/box_party_pokemon_dropdown.c | 268 +-- src/graphics.c | 12 +- src/item_menu.c | 2 +- src/pokemon_storage_system_2.c | 290 ++- src/pokemon_storage_system_3.c | 2123 +++++++++++---------- src/pokemon_storage_system_4.c | 1266 ++++++------ src/pokemon_storage_system_5.c | 1576 ++++++++------- src/pokemon_storage_system_6.c | 154 +- src/pokemon_storage_system_7.c | 500 +++-- src/pokemon_storage_system_8.c | 349 ++-- src/tm_case.c | 2 +- 16 files changed, 3645 insertions(+), 3581 deletions(-) diff --git a/include/box_party_pokemon_dropdown.h b/include/box_party_pokemon_dropdown.h index 795a22e67..5e925e8a2 100644 --- a/include/box_party_pokemon_dropdown.h +++ b/include/box_party_pokemon_dropdown.h @@ -1,24 +1,12 @@ #ifndef GUARD_BOX_PARTY_POKEMON_DROPDOWN_H #define GUARD_BOX_PARTY_POKEMON_DROPDOWN_H -enum -{ - BPPD_MOVE_INNER_LEFT = 0, - BPPD_MOVE_OUTER_LEFT, - BPPD_MOVE_INNER_TOP, - BPPD_MOVE_OUTER_TOP, - BPPD_MOVE_INNER_X, - BPPD_MOVE_INNER_Y -}; - -void AllocBoxPartyPokemonDropdowns(u8 num); -void FreeBoxPartyPokemonDropdowns(void); -void CopyAllBoxPartyPokemonDropdownsToVram(void); -void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height); -void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src); -void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y); -void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height); -void AdjustBoxPartyPokemonDropdownPos(u8 a0, u8 a1, s8 a2); -void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx); +void TilemapUtil_Init(u8 numTilemapIds); +void TilemapUtil_Free(void); +void TilemapUtil_SetTilemap(u8 tilemapId, u8 bg, const void *tilemap, u16 width, u16 height); +void TilemapUtil_SetPos(u8 tilemapId, u16 destX, u16 destY); +void TilemapUtil_SetRect(u8 tilemapId, u16 x, u16 y, u16 width, u16 height); +void TilemapUtil_Move(u8 tilemapId, u8 mode, s8 param); +void TilemapUtil_Update(u8 tilemapId); #endif //GUARD_BOX_PARTY_POKEMON_DROPDOWN_H diff --git a/include/graphics.h b/include/graphics.h index 6739f937b..02cc0082e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4928,11 +4928,11 @@ extern const u16 gNamingScreenInputArrow_Gfx[]; extern const u16 gNamingScreenUnderscore_Gfx[]; // pokemon_storage_system -extern const u32 gPSSMenu_Gfx[]; -extern const u32 gUnknown_8E9CAEC[]; -extern const u16 gPSSMenu_Pal[]; -extern const u16 gUnknown_8E9C3F8[]; -extern const u16 gUnknown_8E9C418[]; +extern const u32 gPokeStorageMenu_Gfx[]; +extern const u32 gPokeStoragePartyMenu_Tilemap[]; +extern const u16 gPokeStoragePartyMenu_Pal[]; +extern const u16 gPokeStorageInterface_Pal[]; +extern const u16 gPokeStorageInterface_NoDisplayMon_Pal[]; // pokedex_screen extern const u16 gDexScreen_TopMenuIconPals_AtoZ[]; diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index f111796d8..388d3dba5 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -4,7 +4,18 @@ #include "global.h" #define TOTAL_BOXES_COUNT 14 -#define IN_BOX_COUNT 30 +#define IN_BOX_ROWS 5 // Number of rows, 6 Pokémon per row +#define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column +#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS) + +/* + COLUMNS +ROWS 0 1 2 3 4 5 + 6 7 8 9 10 11 + 12 13 14 15 16 17 + 18 19 20 21 22 23 + 24 25 26 27 28 29 +*/ enum { @@ -20,10 +31,10 @@ enum WALLPAPER_SEAFLOOR, WALLPAPER_RIVER, WALLPAPER_SKY, - WALLPAPER_POLKADOT, + WALLPAPER_STARS, WALLPAPER_POKECENTER, - WALLPAPER_MACHINE, - WALLPAPER_PLAIN, + WALLPAPER_TILES, + WALLPAPER_SIMPLE, WALLPAPER_COUNT }; #define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA @@ -34,7 +45,7 @@ void SetBoxMonNickAt(u8 boxId, u8 monPosition, const u8 *newNick); s16 CompactPartySlots(void); u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, s32 request); void ZeroBoxMonAt(u8 boxId, u8 monPosition); -void Cb2_ReturnToPSS(void); +void CB2_ReturnToPokeStorage(void); void ResetPokemonStorageSystem(void); u8 StorageGetCurrentBox(void); void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *buffer, s32 bytesToBuffer); diff --git a/include/pokemon_storage_system_internal.h b/include/pokemon_storage_system_internal.h index 3582d1f32..9c1984825 100644 --- a/include/pokemon_storage_system_internal.h +++ b/include/pokemon_storage_system_internal.h @@ -4,9 +4,6 @@ #include "pokemon_storage_system.h" #include "mon_markings.h" -#define IN_BOX_COLUMNS 5 -#define IN_BOX_ROWS 6 - // The maximum number of Pokémon icons that can appear on-screen. // By default the limit is 40 (though in practice only 37 can be). #define MAX_MON_ICONS (IN_BOX_COUNT + PARTY_SIZE + 1 >= 40 ? IN_BOX_COUNT + PARTY_SIZE + 1 : 40) @@ -16,13 +13,6 @@ // between 2 Pokémon with held items #define MAX_ITEM_ICONS 3 -enum -{ - MODE_PARTY, - MODE_BOX, - MODE_2, -}; - enum { OPTION_WITHDRAW, @@ -35,139 +25,200 @@ enum enum { - PC_TEXT_EXIT_BOX, - PC_TEXT_WHAT_YOU_DO, - PC_TEXT_PICK_A_THEME, - PC_TEXT_PICK_A_WALLPAPER, - PC_TEXT_IS_SELECTED, - PC_TEXT_JUMP_TO_WHICH_BOX, - PC_TEXT_DEPOSIT_IN_WHICH_BOX, - PC_TEXT_WAS_DEPOSITED, - PC_TEXT_BOX_IS_FULL, - PC_TEXT_RELEASE_POKE, - PC_TEXT_WAS_RELEASED, - PC_TEXT_BYE_BYE, - PC_TEXT_MARK_POKE, - PC_TEXT_LAST_POKE, - PC_TEXT_PARTY_FULL, - PC_TEXT_HOLDING_POKE, - PC_TEXT_WHICH_ONE_WILL_TAKE, - PC_TEXT_CANT_RELEASE_EGG, - PC_TEXT_CONTINUE_BOX, - PC_TEXT_CAME_BACK, - PC_TEXT_WORRIED, - PC_TEXT_SURPRISE, - PC_TEXT_PLEASE_REMOVE_MAIL, - PC_TEXT_IS_SELECTED2, - PC_TEXT_GIVE_TO_MON, - PC_TEXT_PLACED_IN_BAG, - PC_TEXT_BAG_FULL, - PC_TEXT_PUT_IN_BAG, - PC_TEXT_ITEM_IS_HELD, - PC_TEXT_CHANGED_TO_ITEM, - PC_TEXT_CANT_STORE_MAIL, + MENU_TEXT_CANCEL, + MENU_TEXT_STORE, + MENU_TEXT_WITHDRAW, + MENU_TEXT_MOVE, + MENU_TEXT_SHIFT, + MENU_TEXT_PLACE, + MENU_TEXT_SUMMARY, + MENU_TEXT_RELEASE, + MENU_TEXT_MARK, + MENU_TEXT_JUMP, + MENU_TEXT_WALLPAPER, + MENU_TEXT_NAME, + MENU_TEXT_TAKE, + MENU_TEXT_GIVE, + MENU_TEXT_GIVE2, + MENU_TEXT_SWITCH, + MENU_TEXT_BAG, + MENU_TEXT_INFO, + MENU_TEXT_SCENERY_1, + MENU_TEXT_SCENERY_2, + MENU_TEXT_SCENERY_3, + MENU_TEXT_ETCETERA, + MENU_TEXT_FOREST, + MENU_TEXT_CITY, + MENU_TEXT_DESERT, + MENU_TEXT_SAVANNA, + MENU_TEXT_CRAG, + MENU_TEXT_VOLCANO, + MENU_TEXT_SNOW, + MENU_TEXT_CAVE, + MENU_TEXT_BEACH, + MENU_TEXT_SEAFLOOR, + MENU_TEXT_RIVER, + MENU_TEXT_SKY, + MENU_TEXT_POLKADOT, + MENU_TEXT_POKECENTER, + MENU_TEXT_MACHINE, + MENU_TEXT_SIMPLE, +}; + +// Return IDs for input handlers +enum { + INPUT_NONE, + INPUT_MOVE_CURSOR, + INPUT_2, // Unused + INPUT_3, // Unused + INPUT_CLOSE_BOX, + INPUT_SHOW_PARTY, + INPUT_HIDE_PARTY, + INPUT_BOX_OPTIONS, + INPUT_IN_MENU, + INPUT_SCROLL_RIGHT, + INPUT_SCROLL_LEFT, + INPUT_DEPOSIT, + INPUT_WITHDRAW, + INPUT_MOVE_MON, + INPUT_SHIFT_MON, + INPUT_PLACE_MON, + INPUT_TAKE_ITEM, + INPUT_GIVE_ITEM, + INPUT_SWITCH_ITEMS, + INPUT_PRESSED_B, + INPUT_MULTIMOVE_START, + INPUT_MULTIMOVE_CHANGE_SELECTION, + INPUT_MULTIMOVE_SINGLE, + INPUT_MULTIMOVE_GRAB_SELECTION, + INPUT_MULTIMOVE_UNABLE, + INPUT_MULTIMOVE_MOVE_MONS, + INPUT_MULTIMOVE_PLACE_MONS, }; enum { - PC_TEXT_FMT_NORMAL, - PC_TEXT_FMT_MON_NAME_1, - PC_TEXT_FMT_MON_NAME_2, - PC_TEXT_FMT_MON_NAME_3, - PC_TEXT_FMT_MON_NAME_4, - PC_TEXT_FMT_MON_NAME_5, - PC_TEXT_FMT_MON_NAME_6, - PC_TEXT_FMT_ITEM_NAME, + RELEASE_MON_NOT_ALLOWED, + RELEASE_MON_ALLOWED, + RELEASE_MON_UNDETERMINED = -1, }; enum { - PC_TEXT_CANCEL, - PC_TEXT_STORE, - PC_TEXT_WITHDRAW, - PC_TEXT_MOVE, - PC_TEXT_SHIFT, - PC_TEXT_PLACE, - PC_TEXT_SUMMARY, - PC_TEXT_RELEASE, - PC_TEXT_MARK, - PC_TEXT_JUMP, - PC_TEXT_WALLPAPER, - PC_TEXT_NAME, - PC_TEXT_TAKE, - PC_TEXT_GIVE, - PC_TEXT_GIVE2, - PC_TEXT_SWITCH, - PC_TEXT_BAG, - PC_TEXT_INFO, - PC_TEXT_SCENERY1, - PC_TEXT_SCENERY2, - PC_TEXT_SCENERY3, - PC_TEXT_ETCETERA, - PC_TEXT_FOREST, - PC_TEXT_CITY, - PC_TEXT_DESERT, - PC_TEXT_SAVANNA, - PC_TEXT_CRAG, - PC_TEXT_VOLCANO, - PC_TEXT_SNOW, - PC_TEXT_CAVE, - PC_TEXT_BEACH, - PC_TEXT_SEAFLOOR, - PC_TEXT_RIVER, - PC_TEXT_SKY, - PC_TEXT_POLKADOT, - PC_TEXT_POKECENTER, - PC_TEXT_MACHINE, - PC_TEXT_SIMPLE, + MODE_PARTY, + MODE_BOX, + MODE_MOVE, }; enum { CURSOR_AREA_IN_BOX, CURSOR_AREA_IN_PARTY, - CURSOR_AREA_BOX, + CURSOR_AREA_BOX_TITLE, CURSOR_AREA_BUTTONS, // Party Pokemon and Close Box }; +#define CURSOR_AREA_IN_HAND CURSOR_AREA_BOX_TITLE // Alt name for cursor area used by Move Items + +// IDs for InitMonPlaceChange +enum +{ + CHANGE_GRAB, + CHANGE_PLACE, + CHANGE_SHIFT, +}; + +// IDs for the main functions for moving multiple Pokémon. +// Given as arguments to MultiMove_SetFunction +enum +{ + MULTIMOVE_START, + MULTIMOVE_SINGLE, + MULTIMOVE_CHANGE_SELECTION, + MULTIMOVE_GRAB_SELECTION, + MULTIMOVE_MOVE_MONS, + MULTIMOVE_PLACE_MONS, +}; enum { - SCREEN_CHANGE_EXIT_BOX, - SCREEN_CHANGE_SUMMARY_SCREEN, - SCREEN_CHANGE_NAME_BOX, - SCREEN_CHANGE_ITEM_FROM_BAG, + PALTAG_MON_ICON_0 = 56000, + PALTAG_MON_ICON_1, // Used implicitly in CreateMonIconSprite + PALTAG_MON_ICON_2, // Used implicitly in CreateMonIconSprite + PALTAG_3, // Unused + PALTAG_4, // Unused + PALTAG_5, // Unused + PALTAG_DISPLAY_MON, + PALTAG_MISC_1, // Used by cursor in multimove mode, choose box menu popup + PALTAG_MARKING_COMBO, + PALTAG_BOX_TITLE, + PALTAG_MISC_2, // Used by waveforms, cursor in normal mode, cursor shadow, box scroll arrows + PALTAG_ITEM_ICON_0, + PALTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites + PALTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites + PALTAG_MARKING_MENU, }; -#define TAG_PAL_WAVEFORM 0xDACA -#define TAG_PAL_DAC8 0xDAC8 -#define TAG_PAL_DAC6 0xDAC6 -#define TAG_PAL_DACE 0xDACE -#define TAG_PAL_DAC7 0xDAC7 -#define TAG_PAL_DAC9 0xDAC9 -#define TAG_PAL_DAC0 0xDAC0 -#define TAG_PAL_DACB 0xDACB +enum +{ + GFXTAG_CURSOR, + GFXTAG_CURSOR_SHADOW, + GFXTAG_DISPLAY_MON, + GFXTAG_BOX_TITLE, + GFXTAG_BOX_TITLE_ALT, + GFXTAG_WAVEFORM, + GFXTAG_BOX_SCROLL_ARROW, + GFXTAG_ITEM_ICON_0, + GFXTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites + GFXTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites + GFXTAG_CHOOSE_BOX_MENU_CENTER, + GFXTAG_CHOOSE_BOX_MENU_CORNERS, // Used implicitly in LoadChooseBoxMenuGfx + GFXTAG_12, // Unused + GFXTAG_MARKING_MENU, + GFXTAG_14, // Unused + GFXTAG_15, // Unused + GFXTAG_MARKING_COMBO, + GFXTAG_17, // Unused + GFXTAG_MON_ICON, +}; -#define TAG_TILE_WAVEFORM 0x5 -#define TAG_TILE_10 0x10 -#define TAG_TILE_2 0x2 -#define TAG_TILE_D 0xD -#define TAG_TILE_A 0xA -#define TAG_TILE_3 0x3 -#define TAG_TILE_4 0x4 -#define TAG_TILE_12 0x12 -#define TAG_TILE_7 0x7 -#define TAG_TILE_0 0x0 -#define TAG_TILE_1 0x1 -#define TAG_TILE_6 0x6 +// Special box ids for the choose box menu +#define BOXID_NONE_CHOSEN 200 +#define BOXID_CANCELED 201 -struct WallpaperTable + +enum { + CURSOR_ANIM_BOUNCE, + CURSOR_ANIM_STILL, + CURSOR_ANIM_OPEN, + CURSOR_ANIM_FIST, +}; + +enum +{ + RELEASE_ANIM_RELEASE, + RELEASE_ANIM_COME_BACK, +}; + +// IDs for the item icons affine anims +enum +{ + ITEM_ANIM_NONE, + ITEM_ANIM_APPEAR, + ITEM_ANIM_DISAPPEAR, + ITEM_ANIM_PICK_UP, + ITEM_ANIM_PUT_DOWN, + ITEM_ANIM_PUT_AWAY, + ITEM_ANIM_LARGE, +}; + +struct Wallpaper { const u32 *tiles; const u32 *tileMap; const u16 *palettes; }; -struct StorageAction +struct StorageMessage { const u8 *text; u8 format; @@ -176,7 +227,7 @@ struct StorageAction struct ChooseBoxMenu { struct Sprite *menuSprite; - struct Sprite *menuSideSprites[4]; + struct Sprite *menuCornerSprites[4]; u32 unused1[3]; struct Sprite *arrowSprites[2]; u8 buffer[0x200]; // passed but not used @@ -212,7 +263,7 @@ struct UnkUtil u8 max; }; -struct PSS_ItemIconSprite +struct PokeStorageItemIcon { struct Sprite *sprite; u8 *tiles; @@ -222,12 +273,12 @@ struct PSS_ItemIconSprite u8 active; }; -struct PssQuestLogBuffer +struct PokeStorageQuestLogData { - u16 species; + u16 species1; u16 species2; - u8 fromBox; - u8 toBox; + u8 box1; + u8 box2; }; struct PokemonStorageSystemData @@ -235,7 +286,7 @@ struct PokemonStorageSystemData u8 state; u8 boxOption; u8 screenChangeType; - bool8 isReshowingPSS; + bool8 isReopening; u8 taskId; struct UnkUtil unkUtil; struct UnkUtilData unkUtilData[8]; @@ -262,8 +313,8 @@ struct PokemonStorageSystemData u16 scrollUnused5; // Never read u16 scrollUnused6; // Never read u8 filler1[22]; - u8 field_2F8[512]; - u8 field_4F8[512]; + u8 boxTitleTiles[512]; + u8 boxTitleUnused[512]; u8 boxTitleCycleId; u8 wallpaperLoadState; // Written to, but never read. u8 wallpaperLoadBoxId; @@ -276,7 +327,7 @@ struct PokemonStorageSystemData struct Sprite *arrowSprites[2]; u32 wallpaperPalBits; u8 filler2[80]; // Unused - u16 unkUnused1; // Never read. + u16 unusedField1; // Never read. s16 wallpaperSetId; s16 wallpaperId; u16 wallpaperTilemap[360]; @@ -285,112 +336,114 @@ struct PokemonStorageSystemData u8 scrollToBoxId; s8 scrollDirection; // u8 *wallpaperTiles; // used only in Emerald for Walda - /* 0a68 */ struct Sprite *movingMonSprite; - /* 0a6c */ struct Sprite *partySprites[PARTY_SIZE]; - /* 0a84 */ struct Sprite *boxMonsSprites[IN_BOX_COUNT]; - /* 0afc */ struct Sprite **shiftMonSpritePtr; - /* 0b00 */ struct Sprite **releaseMonSpritePtr; - /* 0b04 */ u16 numIconsPerSpecies[MAX_MON_ICONS]; - /* 0b54 */ u16 iconSpeciesList[MAX_MON_ICONS]; - /* 0ba4 */ u16 boxSpecies[IN_BOX_COUNT]; - /* 0be0 */ u32 boxPersonalities[IN_BOX_COUNT]; - /* 0c58 */ u8 incomingBoxId; - /* 0c59 */ u8 shiftTimer; - /* 0c5a */ u8 numPartyToCompact; - /* 0c5c */ u16 iconScrollDistance; - /* 0c5e */ s16 iconScrollPos; - /* 0c60 */ s16 iconScrollSpeed; - /* 0c62 */ u16 iconScrollNumIncoming; - /* 0c64 */ u8 iconScrollCurColumn; - /* 0c65 */ s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection - /* 0c66 */ u8 iconScrollState; - /* 0c67 */ u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId - /* 0c68 */ struct WindowTemplate menuWindow; - /* 0c70 */ struct StorageMenu menuItems[7]; - /* 0ca8 */ u8 menuItemsCount; - /* 0ca9 */ u8 menuWidth; - /* 0caa */ u8 menuUnusedField; // Never read. - /* 0cac */ u16 menuWindowId; - /* 0cb0 */ struct Sprite *cursorSprite; - /* 0cb4 */ struct Sprite *cursorShadowSprite; - /* 0cb8 */ s32 cursorNewX; - /* 0cbc */ s32 cursorNewY; - /* 0cc0 */ u32 cursorSpeedX; - /* 0cc4 */ u32 cursorSpeedY; - /* 0cc8 */ s16 cursorTargetX; - /* 0cca */ s16 cursorTargetY; - /* 0ccc */ u16 cursorMoveSteps; - /* 0cce */ s8 cursorVerticalWrap; - /* 0ccf */ s8 cursorHorizontalWrap; - /* 0cd0 */ u8 newCursorArea; - /* 0cd1 */ u8 newCursorPosition; - /* 0cd2 */ u8 cursorPrevHorizPos; - /* 0cd3 */ u8 cursorFlipTimer; - /* 0cd4 */ u8 cursorPalNums[2]; - /* 0cd8 */ const u32 *displayMonPalette; - /* 0cdc */ u32 displayMonPersonality; - /* 0ce0 */ u16 displayMonSpecies; - /* 0ce2 */ u16 displayMonItemId; - /* 0ce4 */ u16 displayUnusedVar; - /* 0ce6 */ bool8 setMosaic; - /* 0ce7 */ u8 displayMonMarkings; - /* 0ce8 */ u8 displayMonLevel; - /* 0ce9 */ bool8 displayMonIsEgg; - /* 0cea */ u8 displayMonName[POKEMON_NAME_LENGTH + 1]; - /* 0cf5 */ u8 displayMonTexts[4][36]; - /* 0d88 */ bool8 (*monPlaceChangeFunc)(void); - /* 0d8c */ u8 monPlaceChangeState; - /* 0d8d */ u8 shiftBoxId; - /* 0d90 */ struct Sprite *markingComboSprite; - /* 0d94 */ struct Sprite *waveformSprites[2]; - /* 0d9c */ u16 *markingComboTilesPtr; - /* 0da0 */ struct MonMarkingsMenu markMenu; - /* 1e58 */ struct ChooseBoxMenu field_1E5C; - /* 20a0 */ struct Pokemon movingMon; - /* 2104 */ struct Pokemon field_2108; - /* 2168 */ u8 field_216C; - /* 2169 */ u8 field_216D; - /* 216c */ bool8 isSurfMon; - /* 216d */ bool8 isDiveMon; - /* 216a */ s8 field_216E; - /* 216b */ s8 field_216F; - /* 216e */ s8 field_2170; - /* 216f */ s8 field_2171; - /* 2170 */ u16 field_2172; - /* 2172 */ u16 field_2176[3]; - /* 2178 */ u8 field_2186; - /* 2179 */ u8 field_2187; - /* 217a */ u8 summaryScreenMode; - /* 217c */ union + struct Sprite *movingMonSprite; + struct Sprite *partySprites[PARTY_SIZE]; + struct Sprite *boxMonsSprites[IN_BOX_COUNT]; + struct Sprite **shiftMonSpritePtr; + struct Sprite **releaseMonSpritePtr; + u16 numIconsPerSpecies[MAX_MON_ICONS]; + u16 iconSpeciesList[MAX_MON_ICONS]; + u16 boxSpecies[IN_BOX_COUNT]; + u32 boxPersonalities[IN_BOX_COUNT]; + u8 incomingBoxId; + u8 shiftTimer; + u8 numPartySpritesToCompact; + u16 iconScrollDistance; + s16 iconScrollPos; + s16 iconScrollSpeed; + u16 iconScrollNumIncoming; + u8 iconScrollCurColumn; + s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection + u8 iconScrollState; + u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId + struct WindowTemplate menuWindow; + struct StorageMenu menuItems[7]; + u8 menuItemsCount; + u8 menuWidth; + u8 menuUnusedField; // Never read. + u16 menuWindowId; + struct Sprite *cursorSprite; + struct Sprite *cursorShadowSprite; + s32 cursorNewX; + s32 cursorNewY; + u32 cursorSpeedX; + u32 cursorSpeedY; + s16 cursorTargetX; + s16 cursorTargetY; + u16 cursorMoveSteps; + s8 cursorVerticalWrap; + s8 cursorHorizontalWrap; + u8 newCursorArea; + u8 newCursorPosition; + u8 cursorPrevPartyPos; + u8 cursorFlipTimer; + u8 cursorPalNums[2]; + const u32 *displayMonPalette; + u32 displayMonPersonality; + u16 displayMonSpecies; + u16 displayMonItemId; + u16 displayUnusedVar; + bool8 setMosaic; + u8 displayMonMarkings; + u8 displayMonLevel; + bool8 displayMonIsEgg; + u8 displayMonNickname[POKEMON_NAME_LENGTH + 1]; + u8 displayMonTexts[4][36]; // nickname, species name, gender and level, item name + bool8 (*monPlaceChangeFunc)(void); + u8 monPlaceChangeState; + u8 shiftBoxId; + struct Sprite *markingComboSprite; + struct Sprite *waveformSprites[2]; + u16 *markingComboTilesPtr; + struct MonMarkingsMenu markMenu; + struct ChooseBoxMenu chooseBoxMenu; + struct Pokemon movingMon; + struct Pokemon tempMon; + s8 releaseMonStatus; + bool8 releaseMonStatusResolved; + bool8 isSurfMon; + bool8 isDiveMon; + s8 releaseCheckBoxId; + s8 releaseCheckBoxPos; + s8 releaseBoxId; + s8 releaseBoxPos; + u16 releaseCheckState; + u16 restrictedMoveList[3]; + u8 summaryLastIndex; + u8 summaryCursorPos; + u8 summaryScreenMode; + union { struct Pokemon *mon; struct BoxPokemon *box; - } field_218C; - /* 2180 */ u8 field_2190[40]; - /* 21a8 */ u8 field_21B8[40]; - /* 21d0 */ u8 field_21E0[POKEMON_NAME_LENGTH + 1]; - /* 21db */ u8 itemName[20]; - /* 21ef */ u8 inBoxMovingMode; - /* 21f0 */ u16 field_2200; - /* 21f4 */ struct PSS_ItemIconSprite itemIcons[MAX_ITEM_ICONS]; - /* 2224 */ u16 movingItemId; - /* 2226 */ u16 itemInfoWindowOffset; - /* 2228 */ struct PssQuestLogBuffer qlogBuffer; - /* 2230 */ u16 field_2238; - /* 2232 */ u16 field_223A; - /* 2234 */ u16 *field_223C; - /* 2238 */ struct Sprite *cursorMonSprite; - /* 223c */ u16 field_2244[0x40]; - /* 22bc */ u8 field_22C4[0x800]; - /* 2abc */ u8 field_2AC4[0x1800]; - /* 42bc */ u8 itemIconBuffer[0x800]; - /* 4abc */ u8 field_4AC4[0x1000]; - /* 5abc */ u8 field_5AC4[0x800]; -}; // size=62bc + } summaryMonPtr; + u8 actionText[40]; + u8 boxTitleText[40]; + u8 releaseMonName[POKEMON_NAME_LENGTH + 1]; + u8 itemName[20]; + u8 inBoxMovingMode; + u16 multiMoveWindowId; + struct PokeStorageItemIcon itemIcons[MAX_ITEM_ICONS]; + u16 movingItemId; + u16 itemInfoWindowOffset; + struct PokeStorageQuestLogData pokeStorageQuestLogData; + u16 unusedField2; + u16 displayMonPalOffset; + u16 *displayMonTilePtr; + struct Sprite *displayMonSprite; + u16 displayMonPalBuffer[0x20]; + u8 unusedBuffer1[0x40]; + u8 tileBuffer[0x800]; + u8 unusedBuffer2[0x1800]; + u8 itemIconBuffer[0x200]; + u8 unusedBuffer3[0x600]; + u8 wallpaperBgTilemapBuffer[0x1000]; + u8 menuTilemapBuffer[0x800]; +}; -extern struct PokemonStorageSystemData *gPSSData; +extern struct PokemonStorageSystemData *gStorage; -void Cb2_EnterPSS(u8 a0); +void EnterPokeStorage(u8 boxOption); u8 GetCurrentBoxOption(void); struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); void SetBoxWallpaper(u8 boxId, u8 wallpaperId); @@ -400,46 +453,46 @@ void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon * src); void CB2_ExitPokeStorage(void); void FreeBoxSelectionPopupSpriteGfx(void); -void sub_808C940(u8 curBox); -void sub_808C950(void); +void CreateChooseBoxMenuSprites(u8 curBox); +void DestroyChooseBoxMenuSprites(void); u8 HandleBoxChooseSelectionInput(void); -void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal); +void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *menu, u16 tileTag, u16 palTag, u8 subpriority, bool32 loadPal); void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst); -void sub_80922C0(void); -void sub_8092340(void); -bool8 sub_80924A8(void); -void sub_8092AE4(void); -void sub_8092B3C(u8 a0); -void sub_8092B50(void); -void sub_8092B5C(void); -u8 sub_8092B70(void); -void sub_8092F54(void); -void sub_8093174(void); -void sub_8093194(void); -bool8 sub_80931EC(void); -void sub_8093264(void); -void sub_8093630(void); -void sub_8093660(void); -void sub_80936B8(void); -void sub_80937B4(void); -void sub_8094D14(u8 a0); -u8 sub_8094D34(void); -void sub_8094D60(void); -void sub_8094D84(void); -bool8 sub_8094F90(void); -s16 sub_8094F94(void); -void sub_8095024(void); -bool8 sub_8095050(void); -void sub_80950A4(void); -void sub_80950BC(u8 a0); -bool8 sub_80950D0(void); +void InitCursor(void); +void InitCursorOnReopen(void); +bool8 UpdateCursorPos(void); +void SetCursorInParty(void); +void SetCursorBoxPosition(u8 cursorBoxPosition); +void ClearSavedCursorPos(void); +void SaveCursorPos(void); +u8 GetSavedCursorPos(void); +void DoTrySetDisplayMonData(void); +void ResetSelectionAfterDeposit(void); +void InitReleaseMon(void); +bool8 TryHideReleaseMon(void); +void TrySetCursorFistAnim(void); +void SaveMovingMon(void); +void LoadSavedMovingMon(void); +void InitSummaryScreenData(void); +void SetSelectionAfterSummaryScreen(void); +void StartCursorAnim(u8 animNum); +u8 GetMovingMonOriginalBoxId(void); +void TryHideItemAtCursor(void); +void TryShowItemAtCursor(void); +bool8 IsMenuLoading(void); +s16 HandleMenuInput(void); +void RemoveMenu(void); +bool8 MultiMove_Init(void); +void MultiMove_Free(void); +void MultiMove_SetFunction(u8 funcId); +bool8 MultiMove_RunFunction(void); void CreateItemIconSprites(void); -void sub_8096088(void); -void sub_80960C0(void); -bool8 sub_809610C(void); +void MoveItemFromCursorToBag(void); +void MoveHeldItemWithPartyMenu(void); +bool8 IsItemIconAnimActive(void); const u8 *GetMovingItemName(void); void InitItemInfoWindow(void); bool8 UpdateItemInfoWindowSlideIn(void); @@ -455,7 +508,7 @@ u8 GetBoxCursorPosition(void); u16 GetMovingItem(void); u8 HandleInput(void); void InitCanReleaseMonVars(void); -void InitMonPlaceChange(u8 a0); +void InitMonPlaceChange(u8 type); bool8 IsActiveItemMoving(void); bool8 IsCursorOnCloseBox(void); bool8 IsMonBeingMoved(void); @@ -474,47 +527,47 @@ void SetWallpaperForCurrentBox(u8 wallpaper); bool8 TryStorePartyMonInBox(u8 boxId); void InitMenu(void); void SetMenuText(u8 textId); -void sub_8095C84(u8 cursorArea, u8 cursorPos); -void sub_8095E2C(u16 itemId); +void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos); +void InitItemIconInCursor(u16 itemId); u8 GetBoxWallpaper(u8 boxId); bool8 IsCursorOnBoxTitle(void); bool8 IsCursorInBox(void); -void sub_808FFAC(void); +void InitMonIconFields(void); struct Sprite *CreateMonIconSprite(u16 species, u32 pid, s16 x, s16 y, u8 priority, u8 subpriority); void CreatePartyMonsSprites(bool8 species); -void sub_80909F4(void); -bool8 sub_8090A60(void); -void sub_8090B98(s16 yDelta); +void CompactPartySprites(void); +u8 GetNumPartySpritesCompacting(void); +void MovePartySprites(s16 yDelta); void DestroyAllPartyMonIcons(void); -void sub_8091114(void); -bool8 sub_8091150(void); -void sub_80913DC(u8 box); -bool8 sub_809140C(void); +void DoReleaseMonComeBackAnim(void); +bool8 ResetReleaseMonSpritePtr(void); +void CreateInitBoxTask(u8 boxId); +bool8 IsInitBoxActive(void); void AnimateBoxScrollArrows(bool8 species); void CreateMovingMonIcon(void); -void sub_8090E08(u8 boxId, u8 cursorPos); -bool8 sub_8090E74(void); -void sub_8090CC0(u8 cursorArea, u8 cursorPos); -void sub_8090D58(u8 cursorArea, u8 cursorPos); +void SetShiftMonSpritePtr(u8 boxId, u8 position); +bool8 ShiftMons(void); +void SetMovingMonSprite(u8 cursorArea, u8 cursorPos); +void SetPlacedMonSprite(u8 cursorArea, u8 cursorPos); void DestroyPartyMonIcon(u8 partyId); void DestroyMovingMonIcon(void); s16 GetFirstFreeBoxSpot(u8 boxId); -void sub_80901EC(u8 boxPosition); -void sub_8090FC4(u8 mode, u8 position); -bool8 sub_8091084(void); -void sub_80910CC(void); +void CreateBoxMonIconAtPos(u8 boxPosition); +void DoReleaseMonAnim(u8 mode, u8 position); +bool8 TryHideReleaseMonSprite(void); +void DestroyReleaseMonIcon(void); u8 CountPartyMons(void); u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore); -s8 sub_8094E50(u8 a0); -bool8 sub_8095474(u8 action); -u8 sub_8095AA0(void); -bool8 sub_8095ABC(void); -void sub_8095D44(u8 cursorArea, u8 cursorPos); -void sub_8094CD4(u8 *arg0, u8 *arg1); -void sub_8094D40(void); -void sub_8092BAC(bool8 arg0); +s8 GetMenuItemTextId(u8 menuIndex); +bool8 MultiMove_TryMoveGroup(u8 dir); +u8 MultiMove_GetOriginPosition(void); +bool8 MultiMove_CanPlaceSelection(void); +void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos); +void GetCursorBoxColumnAndRow(u8 *column, u8 *row); +void SetCursorPriorityTo1(void); +void InitMultiMonPlaceChange(bool8 moveCursorUp); void DestroyBoxMonIconAtPosition(u8 boxPosition); void SetBoxMonIconObjMode(u8 cursorPos, u8 objMode); void SetPartyMonIconObjMode(u8 cursorPos, u8 objMode); diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 80fa333f7..576bc8d4f 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -1258,7 +1258,7 @@ static void Task_ContextMenu_FromPartyGiveMenu(u8 taskId) static void Task_ContextMenu_FromPokemonPC(u8 taskId) { - sResources->exitCallback = Cb2_ReturnToPSS; + sResources->exitCallback = CB2_ReturnToPokeStorage; gTasks[taskId].func = BerryPouch_StartFadeToExitCallback; } diff --git a/src/box_party_pokemon_dropdown.c b/src/box_party_pokemon_dropdown.c index 09767f3d9..f4cf05bd8 100644 --- a/src/box_party_pokemon_dropdown.c +++ b/src/box_party_pokemon_dropdown.c @@ -3,210 +3,236 @@ #include "box_party_pokemon_dropdown.h" #include "malloc.h" -struct BPPD_MapRect +// Handles 3 particular tilemaps ("PKMN Data" text, party menu, close box +// button) used for Pokémon Storage System in a somewhat unusual way. +// For example, while the cursor is on the Close Box button it flashes between +// two states alternately. Both these states are their own part of the same +// tilemap that's always present. The utility shifts the tilemap up and down +// to show/hide the states, and limits the view with a rectangle that only +// reveals one at a time. + +struct TilemapUtil_RectData { + s16 x; + s16 y; + u16 width; + u16 height; s16 destX; s16 destY; +}; + +struct TilemapUtil +{ + struct TilemapUtil_RectData prev; // Only read in unused function + struct TilemapUtil_RectData cur; + const void *savedTilemap; // Only written in unused function + const void *tilemap; + u16 altWidth; // Never read + u16 altHeight; // Never read u16 width; u16 height; - s16 destX2; - s16 destY2; + u16 rowSize; // Never read + u8 tileSize; + u8 bg; + bool8 active; // Only read in unused function }; -struct BPPD_Struct -{ - struct BPPD_MapRect map1Rect; - struct BPPD_MapRect map2Rect; - const void *src1; - const void *src2; - u16 src1Height; - u16 src1Width; - u16 src2Width; - u16 src2Height; - u16 bytesPerRow; - u8 mapSize; - u8 bgId; - bool8 bgUpdateScheduled; -}; +static EWRAM_DATA struct TilemapUtil *sTilemapUtil = NULL; +static EWRAM_DATA u16 sNumTilemapUtilIds = 0; -static EWRAM_DATA struct BPPD_Struct * sBoxPartyPokemonDropdownPtr = NULL; -static EWRAM_DATA u16 sBoxPartyPokemonDropdownCount = 0; - -static void PushMap1(u8 idx); -static void PushMap2(u8 idx); +static void TilemapUtil_DrawPrev(u8 tilemapId); +static void TilemapUtil_Draw(u8 tilemapId); static const struct { - u16 height; u16 width; -} sBGdims[2][4] = { + u16 height; +} sTilemapDimensions[2][4] = { { - {0x0100, 0x0100}, - {0x0200, 0x0100}, - {0x0100, 0x0200}, - {0x0200, 0x0200} + { 256, 256}, + { 512, 256}, + { 256, 512}, + { 512, 512} }, { - {0x0080, 0x0080}, - {0x0100, 0x0100}, - {0x0200, 0x0200}, - {0x0400, 0x0400} + { 128, 128}, + { 256, 256}, + { 512, 512}, + {1024, 1024} } }; -void AllocBoxPartyPokemonDropdowns(u8 num) +void TilemapUtil_Init(u8 numTilemapIds) { u16 i; - sBoxPartyPokemonDropdownPtr = Alloc(num * sizeof(struct BPPD_Struct)); - sBoxPartyPokemonDropdownCount = sBoxPartyPokemonDropdownPtr == NULL ? 0 : num; - for (i = 0; i < sBoxPartyPokemonDropdownCount; i++) + sTilemapUtil = Alloc(numTilemapIds * sizeof(struct TilemapUtil)); + sNumTilemapUtilIds = sTilemapUtil == NULL ? 0 : numTilemapIds; + for (i = 0; i < sNumTilemapUtilIds; i++) { - sBoxPartyPokemonDropdownPtr[i].src1 = NULL; - sBoxPartyPokemonDropdownPtr[i].bgUpdateScheduled = FALSE; + sTilemapUtil[i].savedTilemap = NULL; + sTilemapUtil[i].active = FALSE; } } -void FreeBoxPartyPokemonDropdowns(void) +void TilemapUtil_Free(void) { - Free(sBoxPartyPokemonDropdownPtr); + Free(sTilemapUtil); } -void CopyAllBoxPartyPokemonDropdownsToVram(void) +// Unused +void TilemapUtil_UpdateAll(void) { int i; - for (i = 0; i < sBoxPartyPokemonDropdownCount; i++) + for (i = 0; i < sNumTilemapUtilIds; i++) { - if (sBoxPartyPokemonDropdownPtr[i].bgUpdateScheduled == TRUE) - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(i); + if (sTilemapUtil[i].active == TRUE) + TilemapUtil_Update(i); } } -void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height) +void TilemapUtil_SetTilemap(u8 tilemapId, u8 bg, const void *tilemap, u16 width, u16 height) { u16 screenSize; u16 bgType; - if (idx < sBoxPartyPokemonDropdownCount) + if (tilemapId < sNumTilemapUtilIds) { - sBoxPartyPokemonDropdownPtr[idx].src1 = NULL; - sBoxPartyPokemonDropdownPtr[idx].src2 = src; - sBoxPartyPokemonDropdownPtr[idx].bgId = bgId; - sBoxPartyPokemonDropdownPtr[idx].src2Width = width; - sBoxPartyPokemonDropdownPtr[idx].src2Height = height; - screenSize = GetBgAttribute(bgId, BG_ATTR_SCREENSIZE); - bgType = GetBgAttribute(bgId, BG_ATTR_BGTYPE); - sBoxPartyPokemonDropdownPtr[idx].src1Height = sBGdims[bgType][screenSize].height; - sBoxPartyPokemonDropdownPtr[idx].src1Width = sBGdims[bgType][screenSize].width; + sTilemapUtil[tilemapId].savedTilemap = NULL; + sTilemapUtil[tilemapId].tilemap = tilemap; + sTilemapUtil[tilemapId].bg = bg; + sTilemapUtil[tilemapId].width = width; + sTilemapUtil[tilemapId].height = height; + + screenSize = GetBgAttribute(bg, BG_ATTR_SCREENSIZE); + bgType = GetBgAttribute(bg, BG_ATTR_BGTYPE); + sTilemapUtil[tilemapId].altWidth = sTilemapDimensions[bgType][screenSize].width; + sTilemapUtil[tilemapId].altHeight = sTilemapDimensions[bgType][screenSize].height; if (bgType != 0) - sBoxPartyPokemonDropdownPtr[idx].mapSize = 1; + sTilemapUtil[tilemapId].tileSize = 1; else - sBoxPartyPokemonDropdownPtr[idx].mapSize = 2; - sBoxPartyPokemonDropdownPtr[idx].bytesPerRow = width * sBoxPartyPokemonDropdownPtr[idx].mapSize; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width = width; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height = height; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX = 0; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY = 0; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 = 0; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 = 0; - sBoxPartyPokemonDropdownPtr[idx].map1Rect = sBoxPartyPokemonDropdownPtr[idx].map2Rect; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; + sTilemapUtil[tilemapId].tileSize = 2; + sTilemapUtil[tilemapId].rowSize = width * sTilemapUtil[tilemapId].tileSize; + sTilemapUtil[tilemapId].cur.width = width; + sTilemapUtil[tilemapId].cur.height = height; + sTilemapUtil[tilemapId].cur.x = 0; + sTilemapUtil[tilemapId].cur.y = 0; + sTilemapUtil[tilemapId].cur.destX = 0; + sTilemapUtil[tilemapId].cur.destY = 0; + sTilemapUtil[tilemapId].prev = sTilemapUtil[tilemapId].cur; + sTilemapUtil[tilemapId].active = TRUE; } } -void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src) +// Unused +void TilemapUtil_SetSavedMap(u8 tilemapId, const void *tilemap) { - if (idx < sBoxPartyPokemonDropdownCount) + if (tilemapId < sNumTilemapUtilIds) { - sBoxPartyPokemonDropdownPtr[idx].src1 = src; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; + sTilemapUtil[tilemapId].savedTilemap = tilemap; + sTilemapUtil[tilemapId].active = TRUE; } } -void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y) +void TilemapUtil_SetPos(u8 tilemapId, u16 destX, u16 destY) { - if (idx < sBoxPartyPokemonDropdownCount) + if (tilemapId < sNumTilemapUtilIds) { - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 = x; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 = y; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; + sTilemapUtil[tilemapId].cur.destX = destX; + sTilemapUtil[tilemapId].cur.destY = destY; + sTilemapUtil[tilemapId].active = TRUE; } } -void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height) +void TilemapUtil_SetRect(u8 tilemapId, u16 x, u16 y, u16 width, u16 height) { - if (idx < sBoxPartyPokemonDropdownCount) + if (tilemapId < sNumTilemapUtilIds) { - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX = x; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY = y; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width = width; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height = height; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; + sTilemapUtil[tilemapId].cur.x = x; + sTilemapUtil[tilemapId].cur.y = y; + sTilemapUtil[tilemapId].cur.width = width; + sTilemapUtil[tilemapId].cur.height = height; + sTilemapUtil[tilemapId].active = TRUE; } } -void AdjustBoxPartyPokemonDropdownPos(u8 idx, u8 op, s8 param) +void TilemapUtil_Move(u8 tilemapId, u8 mode, s8 param) { - if (idx < sBoxPartyPokemonDropdownCount) + if (tilemapId < sNumTilemapUtilIds) { - switch (op) + switch (mode) { - case BPPD_MOVE_INNER_LEFT: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 += param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width -= param; + case 0: + sTilemapUtil[tilemapId].cur.destX += param; + sTilemapUtil[tilemapId].cur.width -= param; break; - case BPPD_MOVE_OUTER_LEFT: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX += param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width += param; + case 1: + sTilemapUtil[tilemapId].cur.x += param; + sTilemapUtil[tilemapId].cur.width += param; break; - case BPPD_MOVE_INNER_TOP: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 += param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height -= param; + case 2: + sTilemapUtil[tilemapId].cur.destY += param; + sTilemapUtil[tilemapId].cur.height -= param; break; - case BPPD_MOVE_OUTER_TOP: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY -= param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height += param; + case 3: // this is the only mode ever used + sTilemapUtil[tilemapId].cur.y -= param; + sTilemapUtil[tilemapId].cur.height += param; break; - case BPPD_MOVE_INNER_X: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 += param; + case 4: + sTilemapUtil[tilemapId].cur.destX += param; break; - case BPPD_MOVE_INNER_Y: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 += param; + case 5: + sTilemapUtil[tilemapId].cur.destY += param; break; } - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; + sTilemapUtil[tilemapId].active = TRUE; } } -void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx) +void TilemapUtil_Update(u8 tilemapId) { - if (idx < sBoxPartyPokemonDropdownCount) + if (tilemapId < sNumTilemapUtilIds) { - if (sBoxPartyPokemonDropdownPtr[idx].src1 != NULL) - PushMap1(idx); - PushMap2(idx); - sBoxPartyPokemonDropdownPtr[idx].map1Rect = sBoxPartyPokemonDropdownPtr[idx].map2Rect; + if (sTilemapUtil[tilemapId].savedTilemap != NULL) // Always false + TilemapUtil_DrawPrev(tilemapId); + TilemapUtil_Draw(tilemapId); + sTilemapUtil[tilemapId].prev = sTilemapUtil[tilemapId].cur; } } -static void PushMap1(u8 idx) +// Never called, see TilemapUtil_Update +static void TilemapUtil_DrawPrev(u8 tilemapId) { int i; - int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src1Height; - const void *addr = sBoxPartyPokemonDropdownPtr[idx].src1 + run * sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2 * sBoxPartyPokemonDropdownPtr[idx].mapSize; - for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map1Rect.height; i++) + int rowSize = sTilemapUtil[tilemapId].tileSize * sTilemapUtil[tilemapId].altWidth; + const void *tiles = sTilemapUtil[tilemapId].savedTilemap + + rowSize * sTilemapUtil[tilemapId].prev.destY + + sTilemapUtil[tilemapId].prev.destX * sTilemapUtil[tilemapId].tileSize; + for (i = 0; i < sTilemapUtil[tilemapId].prev.height; i++) { - CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map1Rect.width, 1); - addr += run; + CopyToBgTilemapBufferRect(sTilemapUtil[tilemapId].bg, + tiles, + sTilemapUtil[tilemapId].prev.destX, + sTilemapUtil[tilemapId].prev.destY + i, + sTilemapUtil[tilemapId].prev.width, + 1); + tiles += rowSize; } } -static void PushMap2(u8 idx) +static void TilemapUtil_Draw(u8 tilemapId) { int i; - int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src2Width; - const void *addr = sBoxPartyPokemonDropdownPtr[idx].src2 + run * sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX * sBoxPartyPokemonDropdownPtr[idx].mapSize; - for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map2Rect.height; i++) + int rowSize = sTilemapUtil[tilemapId].tileSize * sTilemapUtil[tilemapId].width; + const void *tiles = sTilemapUtil[tilemapId].tilemap + + rowSize * sTilemapUtil[tilemapId].cur.y + + sTilemapUtil[tilemapId].cur.x * sTilemapUtil[tilemapId].tileSize; + for (i = 0; i < sTilemapUtil[tilemapId].cur.height; i++) { - CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map2Rect.width, 1); - addr += run; + CopyToBgTilemapBufferRect(sTilemapUtil[tilemapId].bg, + tiles, + sTilemapUtil[tilemapId].cur.destX, + sTilemapUtil[tilemapId].cur.destY + i, + sTilemapUtil[tilemapId].cur.width, + 1); + tiles += rowSize; } } diff --git a/src/graphics.c b/src/graphics.c index cf3f6bd37..cf1935730 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1251,13 +1251,11 @@ const u32 gPokeSummary_StatusAilmentIconTiles[] = INCBIN_U32("graphics/interface const u16 gDexScreen_TopMenuIconPals_AtoZ[] = INCBIN_U16("graphics/pokedex/cat_icon_abc.gbapal"); const u32 gDexScreen_TopMenuIconTiles_AtoZ[] = INCBIN_U32("graphics/pokedex/cat_icon_abc.4bpp.lz"); -const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal"); -const u16 gUnknown_8E9C3F8[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal"); -const u16 gUnknown_8E9C418[] = INCBIN_U16("graphics/interface/box_tiles_pal3.gbapal"); -const u32 gPSSMenu_Gfx[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz"); - -const u32 gUnknown_8E9CAEC[] = INCBIN_U32("graphics/unknown/unknown_E9CAEC.bin.lz"); - +const u16 gPokeStoragePartyMenu_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal"); +const u16 gPokeStorageInterface_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal"); +const u16 gPokeStorageInterface_NoDisplayMon_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal3.gbapal"); +const u32 gPokeStorageMenu_Gfx[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz"); +const u32 gPokeStoragePartyMenu_Tilemap[] = INCBIN_U32("graphics/unknown/unknown_E9CAEC.bin.lz"); const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/misc/markings2.gbapal"); const u16 gMonMarkingsMenu_Gfx[] = INCBIN_U16("graphics/misc/markings2.4bpp"); diff --git a/src/item_menu.c b/src/item_menu.c index bf51d2f31..f04ac59d5 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1784,7 +1784,7 @@ static void GoToBerryPouch_PCBox(void) static void ReturnToBagMenuFromSubmenu_PCBox(void) { - GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, Cb2_ReturnToPSS); + GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, CB2_ReturnToPokeStorage); } static void Task_ItemContext_Sell(u8 taskId) diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c index 1f9c7a4e5..421c74681 100644 --- a/src/pokemon_storage_system_2.c +++ b/src/pokemon_storage_system_2.c @@ -16,22 +16,20 @@ #include "constants/help_system.h" static EWRAM_DATA u8 sPreviousBoxOption = 0; -static EWRAM_DATA struct ChooseBoxMenu *sBoxSelectionPopupSpriteManager = NULL; +static EWRAM_DATA struct ChooseBoxMenu *sChooseBoxMenu = NULL; -static void PSS_CreatePCMenu(u8 whichMenu, s16 *windowIdPtr); +static void CreatePCMainMenu(u8 whichMenu, s16 *windowIdPtr); static void ChooseBoxMenu_CreateSprites(u8 curBox); -static void sub_808CBA4(void); -static void UpdateBoxNameAndCountSprite_WraparoundRight(void); -static void UpdateBoxNameAndCountSprite_WraparoundLeft(void); -static void PrintBoxNameAndCountToSprite(void); -static void PrintToSpriteWithTagUnk0240(const u8 *a0, u16 x, u16 y); -static void sub_808CD64(struct Sprite *sprite); +static void ChooseBoxMenu_DestroySprites(void); +static void ChooseBoxMenu_MoveRight(void); +static void ChooseBoxMenu_MoveLeft(void); +static void ChooseBoxMenu_PrintBoxNameAndCount(void); +static void ChooseBoxMenu_PrintTextToSprite(const u8 *a0, u16 x, u16 y); +static void SpriteCB_ChooseBoxArrow(struct Sprite *sprite); -// Forward declarations - -static const u16 sBoxSelectionPopupPalette[]; -static const u16 sBoxSelectionPopupCenterTiles[]; -static const u16 sBoxSelectionPopupSidesTiles[]; +static const u16 sChooseBoxMenu_Pal[]; +static const u8 sChooseBoxMenuCenter_Gfx[]; +static const u8 sChooseBoxMenuCorners_Gfx[]; struct { const u8 *text; @@ -44,7 +42,7 @@ struct { [OPTION_EXIT] = {gText_SeeYa, gText_SeeYaDescription} }; -void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *buffer, s32 bytesToBuffer) +void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *unused, s32 bytesToBuffer) { s32 i, tileBytesToBuffer, remainingBytes; u16 windowId; @@ -90,7 +88,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero RemoveWindow(windowId); } -static void PrintStringToBufferCopyNow(const u8 *string, void *dst, u16 rise, u8 bgClr, u8 fgClr, u8 shClr, u8 *buffer) +static void PrintStringToBufferCopyNow(const u8 *string, void *dst, u16 offset, u8 bgColor, u8 fgColor, u8 shadowColor, u8 *unused) { u32 var; u8 windowId; @@ -102,15 +100,15 @@ static void PrintStringToBufferCopyNow(const u8 *string, void *dst, u16 rise, u8 winTemplate.height = 2; var = winTemplate.width * 32; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, PIXEL_FILL(bgClr)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(bgColor)); tileData1 = (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; - txtColor[0] = bgClr; - txtColor[1] = fgClr; - txtColor[2] = shClr; + txtColor[0] = bgColor; + txtColor[1] = fgColor; + txtColor[2] = shadowColor; AddTextPrinterParameterized4(windowId, FONT_1, 0, 2, 0, 0, txtColor, -1, string); CpuCopy16(tileData1, dst, var); - CpuCopy16(tileData2, dst + rise, var); + CpuCopy16(tileData2, dst + offset, var); RemoveWindow(windowId); } @@ -147,10 +145,8 @@ u8 CountPartyNonEggMons(void) for (i = 0, count = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE - && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) - { + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) count++; - } } return count; @@ -163,12 +159,10 @@ u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore) for (i = 0, count = 0; i < PARTY_SIZE; i++) { if (i != slotToIgnore - && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE - && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) - && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) - { + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) + && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) count++; - } } return count; @@ -186,9 +180,7 @@ u8 CountPartyMons(void) for (i = 0, count = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE) - { count++; - } } return count; @@ -205,7 +197,8 @@ static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n) return str; } -static void sub_808C25C(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) +// Unused +static void UnusedWriteRectCpu(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) { u16 i; @@ -231,16 +224,6 @@ static void UnusedWriteRectDma(u16 *dest, u16 dest_left, u16 dest_top, u16 width Dma3FillLarge16_(0, dest, width); } - -//------------------------------------------------------------------------------ -// SECTION: Main menu -// -// The below functions generally handle the PC main menu where the main -// options can be selected (Withdraw, Deposit, etc.), as well as exiting -// Pokémon Storage back to this menu. -//------------------------------------------------------------------------------ - - enum { STATE_LOAD, STATE_FADE_IN, @@ -263,7 +246,7 @@ static void Task_PCMainMenu(u8 taskId) { case STATE_LOAD: SetHelpContext(HELPCONTEXT_BILLS_PC); - PSS_CreatePCMenu(task->tSelectedOption, &task->tWindowId); + CreatePCMainMenu(task->tSelectedOption, &task->tWindowId); LoadStdWindowFrameGfx(); DrawDialogueFrame(0, FALSE); FillWindowPixelBuffer(0, PIXEL_FILL(1)); @@ -274,9 +257,8 @@ static void Task_PCMainMenu(u8 taskId) break; case STATE_FADE_IN: if (IsWeatherNotFadingIn()) - { task->tState++; - } + break; case STATE_HANDLE_INPUT: task->tInput = Menu_ProcessInput(); @@ -305,14 +287,14 @@ static void Task_PCMainMenu(u8 taskId) DestroyTask(taskId); break; default: - if (task->tInput == 0 && CountPartyMons() == PARTY_SIZE) + if (task->tInput == OPTION_WITHDRAW && CountPartyMons() == PARTY_SIZE) { // Can't withdraw FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, FONT_2, gText_PartyFull, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); - task->tState = 3; + task->tState = STATE_ERROR_MSG; } - else if (task->tInput == 1 && CountPartyMons() == 1) + else if (task->tInput == OPTION_DEPOSIT && CountPartyMons() == 1) { // Can't deposit FillWindowPixelBuffer(0, PIXEL_FILL(1)); @@ -362,7 +344,7 @@ static void Task_PCMainMenu(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - Cb2_EnterPSS(task->tInput); + EnterPokeStorage(task->tInput); DestroyTask(taskId); } break; @@ -372,7 +354,7 @@ static void Task_PCMainMenu(u8 taskId) void ShowPokemonStorageSystemPC(void) { u8 taskId = CreateTask(Task_PCMainMenu, 80); - gTasks[taskId].tState = 0; + gTasks[taskId].tState = STATE_LOAD; gTasks[taskId].tSelectedOption = 0; LockPlayerFieldControls(); } @@ -384,14 +366,14 @@ static void FieldTask_ReturnToPcMenu(void) SetVBlankCallback(NULL); taskId = CreateTask(Task_PCMainMenu, 80); - gTasks[taskId].tState = 0; + gTasks[taskId].tState = STATE_LOAD; gTasks[taskId].tSelectedOption = sPreviousBoxOption; Task_PCMainMenu(taskId); SetVBlankCallback(vblankCb); FadeInFromBlack(); } -static const struct WindowTemplate sUnknown_83CDA48 = { +static const struct WindowTemplate sWindowTemplate_MainMenu = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -401,14 +383,13 @@ static const struct WindowTemplate sUnknown_83CDA48 = { .baseBlock = 0x001 }; -static void PSS_CreatePCMenu(u8 whichMenu, s16 *windowIdPtr) +static void CreatePCMainMenu(u8 whichMenu, s16 *windowIdPtr) { - s16 windowId; - windowId = AddWindow(&sUnknown_83CDA48); + s16 windowId = AddWindow(&sWindowTemplate_MainMenu); DrawStdWindowFrame(windowId, FALSE); - PrintTextArray(windowId, FONT_2, GetMenuCursorDimensionByFont(FONT_2, 0), 2, 16, NELEMS(sMainMenuTexts), (void *)sMainMenuTexts); - Menu_InitCursor(windowId, FONT_2, 0, 2, 16, NELEMS(sMainMenuTexts), whichMenu); + PrintTextArray(windowId, FONT_2, GetMenuCursorDimensionByFont(FONT_2, 0), 2, 16, ARRAY_COUNT(sMainMenuTexts), (void *)sMainMenuTexts); + Menu_InitCursor(windowId, FONT_2, 0, 2, 16, ARRAY_COUNT(sMainMenuTexts), whichMenu); *windowIdPtr = windowId; } @@ -439,54 +420,44 @@ void ResetPokemonStorageSystem(void) SetBoxWallpaper(boxId, boxId % (MAX_DEFAULT_WALLPAPER + 1)); } - -//------------------------------------------------------------------------------ -// SECTION: Choose Box menu -// -// The below functions handle the popup menu that allows the player to cycle -// through the boxes and select one. Used when storing Pokémon in Deposit mode -// and for the Jump feature. -//------------------------------------------------------------------------------ - - -void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal) +void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *menu, u16 tileTag, u16 palTag, u8 subpriority, bool32 loadPal) { struct SpritePalette palette = { - sBoxSelectionPopupPalette, palTag + sChooseBoxMenu_Pal, palTag }; struct SpriteSheet sheets[] = { - {sBoxSelectionPopupCenterTiles, 0x800, tileTag}, - {sBoxSelectionPopupSidesTiles, 0x180, tileTag + 1}, + {sChooseBoxMenuCenter_Gfx, 0x800, tileTag}, + {sChooseBoxMenuCorners_Gfx, 0x180, tileTag + 1}, {} }; - if (loadPal) + if (loadPal) // Always false LoadSpritePalette(&palette); LoadSpriteSheets(sheets); - sBoxSelectionPopupSpriteManager = a0; - a0->tileTag = tileTag; - a0->paletteTag = palTag; - a0->subpriority = a3; - a0->loadedPalette = loadPal; + sChooseBoxMenu = menu; + menu->tileTag = tileTag; + menu->paletteTag = palTag; + menu->subpriority = subpriority; + menu->loadedPalette = loadPal; } void FreeBoxSelectionPopupSpriteGfx(void) { - if (sBoxSelectionPopupSpriteManager->loadedPalette) - FreeSpritePaletteByTag(sBoxSelectionPopupSpriteManager->paletteTag); - FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tileTag); - FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tileTag + 1); + if (sChooseBoxMenu->loadedPalette) + FreeSpritePaletteByTag(sChooseBoxMenu->paletteTag); + FreeSpriteTilesByTag(sChooseBoxMenu->tileTag); + FreeSpriteTilesByTag(sChooseBoxMenu->tileTag + 1); } -void sub_808C940(u8 curBox) +void CreateChooseBoxMenuSprites(u8 curBox) { ChooseBoxMenu_CreateSprites(curBox); } -void sub_808C950(void) +void DestroyChooseBoxMenuSprites(void) { - sub_808CBA4(); + ChooseBoxMenu_DestroySprites(); } u8 HandleBoxChooseSelectionInput(void) @@ -494,60 +465,61 @@ u8 HandleBoxChooseSelectionInput(void) if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - return 201; + return BOXID_CANCELED; } if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - return sBoxSelectionPopupSpriteManager->curBox; + return sChooseBoxMenu->curBox; } if (JOY_NEW(DPAD_LEFT)) { PlaySE(SE_SELECT); - UpdateBoxNameAndCountSprite_WraparoundLeft(); + ChooseBoxMenu_MoveLeft(); } else if (JOY_NEW(DPAD_RIGHT)) { PlaySE(SE_SELECT); - UpdateBoxNameAndCountSprite_WraparoundRight(); + ChooseBoxMenu_MoveRight(); } - return 200; + return BOXID_NONE_CHOSEN; } -static const union AnimCmd gUnknown_83CDA50[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_TopLeft[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CDA58[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_BottomLeft[] = { ANIMCMD_FRAME( 4, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CDA60[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_TopRight[] = { ANIMCMD_FRAME( 6, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CDA68[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_BottomRight[] = { ANIMCMD_FRAME(10, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83CDA70[] = { - gUnknown_83CDA50, - gUnknown_83CDA58, - gUnknown_83CDA60, - gUnknown_83CDA68 +static const union AnimCmd *const sAnims_ChooseBoxMenu[] = { + sAnim_ChooseBoxMenu_TopLeft, + sAnim_ChooseBoxMenu_BottomLeft, + sAnim_ChooseBoxMenu_TopRight, + sAnim_ChooseBoxMenu_BottomRight, }; -static const union AffineAnimCmd gUnknown_83CDA80[] = { +static const union AffineAnimCmd sAffineAnim_ChooseBoxMenu[] = { AFFINEANIMCMD_FRAME(224, 224, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_83CDA90[] = { - gUnknown_83CDA80 +// Unused +static const union AffineAnimCmd *const sAffineAnims_ChooseBoxMenu[] = { + sAffineAnim_ChooseBoxMenu }; static void ChooseBoxMenu_CreateSprites(u8 curBox) @@ -562,112 +534,112 @@ static void ChooseBoxMenu_CreateSprites(u8 curBox) 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; { - const u8 gUnknown_83CDA94[] = _("/30"); + const u8 sText_OutOf30[] = _("/30"); - sBoxSelectionPopupSpriteManager->curBox = curBox; - template.tileTag = sBoxSelectionPopupSpriteManager->tileTag; - template.paletteTag = sBoxSelectionPopupSpriteManager->paletteTag; + sChooseBoxMenu->curBox = curBox; + template.tileTag = sChooseBoxMenu->tileTag; + template.paletteTag = sChooseBoxMenu->paletteTag; spriteId = CreateSprite(&template, 160, 96, 0); - sBoxSelectionPopupSpriteManager->menuSprite = gSprites + spriteId; + sChooseBoxMenu->menuSprite = gSprites + spriteId; - // Manual subsprites oamData.shape = SPRITE_SHAPE(8x32); oamData.size = SPRITE_SIZE(8x32); - template.tileTag = sBoxSelectionPopupSpriteManager->tileTag + 1; - template.anims = gUnknown_83CDA70; - for (i = 0; i < 4; i++) + template.tileTag = sChooseBoxMenu->tileTag + 1; + template.anims = sAnims_ChooseBoxMenu; + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->menuCornerSprites); i++) { - u16 r5; - spriteId = CreateSprite(&template, 124, 80, sBoxSelectionPopupSpriteManager->subpriority); - sBoxSelectionPopupSpriteManager->menuSideSprites[i] = gSprites + spriteId; - r5 = 0; + // corner sprites are created in order of top left, bottom left, top right, bottom right + u16 animNum; + spriteId = CreateSprite(&template, 124, 80, sChooseBoxMenu->subpriority); // place at top left + sChooseBoxMenu->menuCornerSprites[i] = &gSprites[spriteId]; + animNum = 0; if (i & 2) { - sBoxSelectionPopupSpriteManager->menuSideSprites[i]->x = 196; - r5 = 2; + sChooseBoxMenu->menuCornerSprites[i]->x = 196; // move to bottom + animNum = 2; } if (i & 1) { - sBoxSelectionPopupSpriteManager->menuSideSprites[i]->y = 112; - sBoxSelectionPopupSpriteManager->menuSideSprites[i]->oam.size = SPRITE_SIZE(8x16); - r5++; + sChooseBoxMenu->menuCornerSprites[i]->y = 112; // move to right + sChooseBoxMenu->menuCornerSprites[i]->oam.size = SPRITE_SIZE(8x16); + animNum++; } - StartSpriteAnim(sBoxSelectionPopupSpriteManager->menuSideSprites[i], r5); + StartSpriteAnim(sChooseBoxMenu->menuCornerSprites[i], animNum); } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->arrowSprites); i++) { - sBoxSelectionPopupSpriteManager->arrowSprites[i] = CreateChooseBoxArrows(72 * i + 0x7c, 0x58, i, 0, sBoxSelectionPopupSpriteManager->subpriority); - if (sBoxSelectionPopupSpriteManager->arrowSprites[i]) + sChooseBoxMenu->arrowSprites[i] = CreateChooseBoxArrows(72 * i + 124, 88, i, 0, sChooseBoxMenu->subpriority); + if (sChooseBoxMenu->arrowSprites[i]) { - sBoxSelectionPopupSpriteManager->arrowSprites[i]->data[0] = (i == 0 ? -1 : 1); - sBoxSelectionPopupSpriteManager->arrowSprites[i]->callback = sub_808CD64; + sChooseBoxMenu->arrowSprites[i]->data[0] = (i == 0 ? -1 : 1); + sChooseBoxMenu->arrowSprites[i]->callback = SpriteCB_ChooseBoxArrow; } } - PrintBoxNameAndCountToSprite(); - PrintToSpriteWithTagUnk0240(gUnknown_83CDA94, 5, 3); + ChooseBoxMenu_PrintBoxNameAndCount(); + ChooseBoxMenu_PrintTextToSprite(sText_OutOf30, 5, 3); } } -static void sub_808CBA4(void) +static void ChooseBoxMenu_DestroySprites(void) { u16 i; - if (sBoxSelectionPopupSpriteManager->menuSprite) + if (sChooseBoxMenu->menuSprite) { - DestroySprite(sBoxSelectionPopupSpriteManager->menuSprite); - sBoxSelectionPopupSpriteManager->menuSprite = NULL; + DestroySprite(sChooseBoxMenu->menuSprite); + sChooseBoxMenu->menuSprite = NULL; } - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->menuCornerSprites); i++) { - if (sBoxSelectionPopupSpriteManager->menuSideSprites[i]) + if (sChooseBoxMenu->menuCornerSprites[i]) { - DestroySprite(sBoxSelectionPopupSpriteManager->menuSideSprites[i]); - sBoxSelectionPopupSpriteManager->menuSideSprites[i] = NULL; + DestroySprite(sChooseBoxMenu->menuCornerSprites[i]); + sChooseBoxMenu->menuCornerSprites[i] = NULL; } } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->arrowSprites); i++) { - if (sBoxSelectionPopupSpriteManager->arrowSprites[i]) - DestroySprite(sBoxSelectionPopupSpriteManager->arrowSprites[i]); + if (sChooseBoxMenu->arrowSprites[i]) + DestroySprite(sChooseBoxMenu->arrowSprites[i]); } } -static void UpdateBoxNameAndCountSprite_WraparoundRight(void) +static void ChooseBoxMenu_MoveRight(void) { - if (++sBoxSelectionPopupSpriteManager->curBox >= TOTAL_BOXES_COUNT) - sBoxSelectionPopupSpriteManager->curBox = 0; - PrintBoxNameAndCountToSprite(); + if (++sChooseBoxMenu->curBox >= TOTAL_BOXES_COUNT) + sChooseBoxMenu->curBox = 0; + ChooseBoxMenu_PrintBoxNameAndCount(); } -static void UpdateBoxNameAndCountSprite_WraparoundLeft(void) +static void ChooseBoxMenu_MoveLeft(void) { - sBoxSelectionPopupSpriteManager->curBox = (sBoxSelectionPopupSpriteManager->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : sBoxSelectionPopupSpriteManager->curBox - 1); - PrintBoxNameAndCountToSprite(); + sChooseBoxMenu->curBox = (sChooseBoxMenu->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : sChooseBoxMenu->curBox - 1); + ChooseBoxMenu_PrintBoxNameAndCount(); } -static void PrintBoxNameAndCountToSprite(void) +static void ChooseBoxMenu_PrintBoxNameAndCount(void) { - u8 nPokemonInBox = CountMonsInBox(sBoxSelectionPopupSpriteManager->curBox); - u8 *boxName = StringCopy(sBoxSelectionPopupSpriteManager->strbuf, GetBoxNamePtr(sBoxSelectionPopupSpriteManager->curBox)); + u8 numMonInBox = CountMonsInBox(sChooseBoxMenu->curBox); + u8 *boxName = StringCopy(sChooseBoxMenu->strbuf, GetBoxNamePtr(sChooseBoxMenu->curBox)); - while (boxName < sBoxSelectionPopupSpriteManager->strbuf + BOX_NAME_LENGTH) + while (boxName < sChooseBoxMenu->strbuf + BOX_NAME_LENGTH) *boxName++ = CHAR_SPACE; *boxName = EOS; - PrintToSpriteWithTagUnk0240(sBoxSelectionPopupSpriteManager->strbuf, 0, 1); + ChooseBoxMenu_PrintTextToSprite(sChooseBoxMenu->strbuf, 0, 1); - ConvertIntToDecimalStringN(sBoxSelectionPopupSpriteManager->strbuf, nPokemonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(sChooseBoxMenu->strbuf, numMonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2); - PrintToSpriteWithTagUnk0240(sBoxSelectionPopupSpriteManager->strbuf, 3, 3); + ChooseBoxMenu_PrintTextToSprite(sChooseBoxMenu->strbuf, 3, 3); } -static void PrintToSpriteWithTagUnk0240(const u8 *str, u16 x, u16 y) +static void ChooseBoxMenu_PrintTextToSprite(const u8 *str, u16 x, u16 y) { - u16 tileStart = GetSpriteTileStartByTag(sBoxSelectionPopupSpriteManager->tileTag); - PrintStringToBufferCopyNow(str, (void *)(OBJ_VRAM0 + tileStart * 32 + 256 * y + 32 * x), 0x100, TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5, sBoxSelectionPopupSpriteManager->buffer); + void *dst = (void *)(OBJ_VRAM0 + GetSpriteTileStartByTag(sChooseBoxMenu->tileTag) * 32 + 256 * y + 32 * x); + PrintStringToBufferCopyNow(str, dst, 0x100, TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5, sChooseBoxMenu->buffer); } -static void sub_808CD64(struct Sprite *sprite) +static void SpriteCB_ChooseBoxArrow(struct Sprite *sprite) { if (++sprite->data[1] > 3) { @@ -681,8 +653,8 @@ static void sub_808CD64(struct Sprite *sprite) } } -// Forward-declared rodata +// Unused, since LoadChooseBoxMenuGfx is always called with `loadPal` as false +static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CDA98.gbapal"); -static const u16 sBoxSelectionPopupPalette[] = INCBIN_U16("graphics/interface/pss_unk_83CDA98.gbapal"); -static const u16 sBoxSelectionPopupCenterTiles[] = INCBIN_U16("graphics/interface/pss_unk_83CDAB8.4bpp"); -static const u16 sBoxSelectionPopupSidesTiles[] = INCBIN_U16("graphics/interface/pss_unk_83CE2B8.4bpp"); +static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/interface/pss_unk_83CDAB8.4bpp"); +static const u8 sChooseBoxMenuCorners_Gfx[] = INCBIN_U8("graphics/interface/pss_unk_83CE2B8.4bpp"); diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c index 46212d06c..4e41447e0 100644 --- a/src/pokemon_storage_system_3.c +++ b/src/pokemon_storage_system_3.c @@ -26,124 +26,192 @@ #include "constants/help_system.h" #include "constants/songs.h" -EWRAM_DATA struct PokemonStorageSystemData *gPSSData = NULL; +EWRAM_DATA struct PokemonStorageSystemData *gStorage = NULL; static EWRAM_DATA bool8 sInPartyMenu = 0; static EWRAM_DATA u8 sCurrentBoxOption = 0; -static EWRAM_DATA u8 gUnknown_20397B6 = 0; +static EWRAM_DATA u8 sDepositBoxId = 0; static EWRAM_DATA u8 sWhichToReshow = 0; static EWRAM_DATA u8 sLastUsedBox = 0; -static EWRAM_DATA u16 gUnknown_20397BA = ITEM_NONE; +static EWRAM_DATA u16 sMovingItemId = ITEM_NONE; -static void Cb_InitPSS(u8 taskId); -static void Cb_ShowPSS(u8 taskId); -static void Cb_ReshowPSS(u8 taskId); -static void Cb_MainPSS(u8 taskId); -static void Cb_ShowPartyPokemon(u8 taskId); -static void Cb_HidePartyPokemon(u8 taskId); -static void Cb_OnSelectedMon(u8 taskId); -static void Cb_MoveMon(u8 taskId); -static void Cb_PlaceMon(u8 taskId); -static void Cb_ShiftMon(u8 taskId); -static void Cb_WithdrawMon(u8 taskId); -static void Cb_DepositMenu(u8 taskId); -static void Cb_ReleaseMon(u8 taskId); -static void Cb_ShowMarkMenu(u8 taskId); -static void Cb_TakeItemForMoving(u8 taskId); -static void Cb_GiveMovingItemToMon(u8 taskId); -static void Cb_ItemToBag(u8 taskId); -static void Cb_SwitchSelectedItem(u8 taskId); -static void Cb_ShowItemInfo(u8 taskId); -static void Cb_HandleMovingMonFromParty(u8 taskId); -static void Cb_PrintCantStoreMail(u8 taskId); -static void Cb_HandleBoxOptions(u8 taskId); -static void Cb_HandleWallpapers(u8 taskId); -static void Cb_JumpBox(u8 taskId); -static void Cb_NameBox(u8 taskId); -static void Cb_ShowMonSummary(u8 taskId); -static void Cb_GiveItemFromBag(u8 taskId); -static void Cb_OnCloseBoxPressed(u8 taskId); -static void Cb_OnBPressed(u8 taskId); -static void Cb_ChangeScreen(u8 taskId); +static void Task_InitPokeStorage(u8 taskId); +static void Task_ShowPokeStorage(u8 taskId); +static void Task_ReshowPokeStorage(u8 taskId); +static void Task_PokeStorageMain(u8 taskId); +static void Task_ShowPartyPokemon(u8 taskId); +static void Task_HidePartyPokemon(u8 taskId); +static void Task_OnSelectedMon(u8 taskId); +static void Task_MoveMon(u8 taskId); +static void Task_PlaceMon(u8 taskId); +static void Task_ShiftMon(u8 taskId); +static void Task_WithdrawMon(u8 taskId); +static void Task_DepositMenu(u8 taskId); +static void Task_ReleaseMon(u8 taskId); +static void Task_ShowMarkMenu(u8 taskId); +static void Task_TakeItemForMoving(u8 taskId); +static void Task_GiveMovingItemToMon(u8 taskId); +static void Task_ItemToBag(u8 taskId); +static void Task_SwitchSelectedItem(u8 taskId); +static void Task_ShowItemInfo(u8 taskId); +static void Task_HandleMovingMonFromParty(u8 taskId); +static void Task_PrintCantStoreMail(u8 taskId); +static void Task_HandleBoxOptions(u8 taskId); +static void Task_HandleWallpapers(u8 taskId); +static void Task_JumpBox(u8 taskId); +static void Task_NameBox(u8 taskId); +static void Task_ShowMonSummary(u8 taskId); +static void Task_GiveItemFromBag(u8 taskId); +static void Task_OnCloseBoxPressed(u8 taskId); +static void Task_OnBPressed(u8 taskId); +static void Task_ChangeScreen(u8 taskId); static void GiveChosenBagItem(void); -static void FreePSSData(void); +static void FreePokeStorageData(void); static void SetScrollingBackground(void); static void ScrollBackground(void); -static void LoadPSSMenuGfx(void); -static bool8 InitPSSWindows(void); -static void LoadWaveformSpritePalette(void); -static void sub_808F078(void); -static void PSS_CreateMonMarkingSprite(void); +static void LoadPokeStorageMenuGfx(void); +static bool8 InitPokeStorageWindows(void); +static void LoadsMiscSpritePalette(void); +static void InitPalettesAndSprites(void); +static void CreateMarkingComboSprite(void); static void CreateWaveformSprites(void); -static void RefreshCursorMonData(void); -static void BoxSetMosaic(void); -static void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite); -static bool8 BoxGetMosaic(void); -static void LoadCursorMonSprite(void); -static void LoadCursorMonGfx(u16 species, u32 pid); -static void PrintCursorMonInfo(void); -static void sub_808F5E8(void); -static void sub_808F68C(void); +static void RefreshDisplayMonData(void); +static void StartDisplayMonMosaic(void); +static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite); +static bool8 IsDisplayMonMosaicActive(void); +static void CreateDisplayMonSprite(void); +static void LoadDisplayMonGfx(u16 species, u32 personality); +static void PrintDisplayMonInfo(void); +static void UpdateWaveformAnimation(void); +static void InitSupplementalTilemaps(void); static void SetUpHidePartyMenu(void); static bool8 HidePartyMenu(void); -static void sub_808F90C(bool8 species); -static void sub_808F948(void); -static void sub_808F974(void); -static void sub_808F99C(void); -static void sub_808F9FC(void); -static void sub_808FA30(u8 pos, bool8 isPartyMon); -static void sub_808FAA8(void); +static void UpdateCloseBoxButtonTilemap(bool8 normal); +static void StartFlashingCloseBoxButton(void); +static void StopFlashingCloseBoxButton(void); +static void UpdateCloseBoxButtonFlash(void); +static void SetPartySlotTilemaps(void); +static void SetPartySlotTilemap(u8 pos, bool8 isPartyMon); +static void UpdatePartySlotColors(void); static void SetUpDoShowPartyMenu(void); static bool8 DoShowPartyMenu(void); -static void sub_808FB68(void); -static void PrintStorageActionText(u8 textId); -static void ShowYesNoWindow(s8 species); +static void InitPokeStorageBg0(void); +static void PrintStorageMessage(u8 textId); +static void ShowYesNoWindow(s8 cursorPos); static void ClearBottomWindow(void); static void AddWallpaperSetsMenu(void); static void AddWallpapersMenu(u8 wallpaperSet); -static void sub_808FDFC(void); -static void sub_808FE54(u8 species); -static void sub_808FF70(void); +static void InitCursorItemIcon(void); +static void SetPokeStorageQuestLogEvent(u8 species); +static void UpdateBoxToSendMons(void); + +enum { + TILEMAP_PKMN_DATA, // The "Pkmn Data" text at the top of the display + TILEMAP_PARTY_MENU, + TILEMAP_CLOSE_BUTTON, + TILEMAP_COUNT +}; + +enum +{ + SCREEN_CHANGE_EXIT_BOX, + SCREEN_CHANGE_SUMMARY_SCREEN, + SCREEN_CHANGE_NAME_BOX, + SCREEN_CHANGE_ITEM_FROM_BAG, +}; + +enum +{ + MSG_EXIT_BOX, + MSG_WHAT_YOU_DO, + MSG_PICK_A_THEME, + MSG_PICK_A_WALLPAPER, + MSG_IS_SELECTED, + MSG_JUMP_TO_WHICH_BOX, + MSG_DEPOSIT_IN_WHICH_BOX, + MSG_WAS_DEPOSITED, + MSG_BOX_IS_FULL, + MSG_RELEASE_POKE, + MSG_WAS_RELEASED, + MSG_BYE_BYE, + MSG_MARK_POKE, + MSG_LAST_POKE, + MSG_PARTY_FULL, + MSG_HOLDING_POKE, + MSG_WHICH_ONE_WILL_TAKE, + MSG_CANT_RELEASE_EGG, + MSG_CONTINUE_BOX, + MSG_CAME_BACK, + MSG_WORRIED, + MSG_SURPRISE, + MSG_PLEASE_REMOVE_MAIL, + MSG_IS_SELECTED2, + MSG_GIVE_TO_MON, + MSG_PLACED_IN_BAG, + MSG_BAG_FULL, + MSG_PUT_IN_BAG, + MSG_ITEM_IS_HELD, + MSG_CHANGED_TO_ITEM, + MSG_CANT_STORE_MAIL, +}; + +enum +{ + MSG_FMT_NONE, + MSG_FMT_MON_NAME_1, + MSG_FMT_MON_NAME_2, + MSG_FMT_MON_NAME_3, + MSG_FMT_RELEASE_MON_1, + MSG_FMT_RELEASE_MON_2, + MSG_FMT_RELEASE_MON_3, + MSG_FMT_ITEM_NAME, +}; static const u32 sPokemonStorageScrollingBGTileset[] = INCBIN_U32("graphics/interface/pss_unk_83CE438.4bpp.lz"); static const u32 sPokemonStorageScrollingBGTilemap[] = INCBIN_U32("graphics/interface/pss_unk_83CE4D0.bin.lz"); -static const u16 sPokemonStorageScrollingBGPalette[] = INCBIN_U16("graphics/interface/pss_unk_83CE5DC.gbapal"); -static const u32 gUnknown_83CE5FC[] = INCBIN_U32("graphics/interface/pss_unk_83CE5FC.bin.lz"); -static const u16 gUnknown_83CE6F8[] = { +// Unused +static const u16 sMenu_Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CE5DC.gbapal"); + +static const u32 sMenu_Tilemap[] = INCBIN_U32("graphics/interface/pss_unk_83CE5FC.bin.lz"); + +static const u16 sPkmnData_Tilemap[] = { 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118, 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118, }; -static const u16 gUnknown_83CE738[] = INCBIN_U16("graphics/interface/pss_unk_83CE738.gbapal"); -static const u16 gUnknown_83CE758[] = INCBIN_U16("graphics/interface/pss_unk_83CE758.gbapal"); +static const u16 sScrollingBg_Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CE738.gbapal"); +static const u16 sScrollingBgMoveItems_Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CE758.gbapal"); -static const u16 gUnknown_83CE778[] = { +static const u16 sCloseBoxButton_Tilemap[] = { 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, }; -static const u16 gUnknown_83CE7C0[] = { +static const u16 sPartySlotFilled_Tilemap[] = { 0x1140, 0x1141, 0x1141, 0x1142, 0x1150, 0x1151, 0x1151, 0x1152, 0x1160, 0x1161, 0x1161, 0x1162, }; -static const u16 gUnknown_83CE7D8[] = { +static const u16 sPartySlotEmpty_Tilemap[] = { 0x1143, 0x1144, 0x1144, 0x1145, 0x1153, 0x1154, 0x1154, 0x1155, 0x1163, 0x1164, 0x1164, 0x1165, }; -static const u16 gUnknown_83CE7F0[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.gbapal"); -static const u16 gUnknown_83CE810[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.4bpp"); -static const u16 gUnknown_83CE9D0[] = INCBIN_U16("graphics/interface/pss_unk_83CE9D0.gbapal"); -static const u16 gUnknown_83CEA10[] = INCBIN_U16("graphics/interface/pss_unk_83CEA10.gbapal"); +static const u16 sPokeStorageMisc2Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.gbapal"); +static const u16 sWaveform_Gfx[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.4bpp"); -static const struct WindowTemplate gUnknown_83CEA30[] = { +// Unused +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CE9D0.gbapal"); + +static const u16 sTextWindows_Pal[] = INCBIN_U16("graphics/interface/pss_unk_83CEA10.gbapal"); + +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 1, .tilemapLeft = 0, @@ -168,10 +236,11 @@ static const struct WindowTemplate gUnknown_83CEA30[] = { .height = 8, .paletteNum = 15, .baseBlock = 0x014 - }, DUMMY_WIN_TEMPLATE + }, + DUMMY_WIN_TEMPLATE }; -static const struct BgTemplate gUnknown_83CEA50[] = { +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, .charBaseIndex = 0, @@ -207,61 +276,60 @@ static const struct BgTemplate gUnknown_83CEA50[] = { } }; -static const struct SpritePalette sWaveformSpritePalette = { - gUnknown_83CE7F0, TAG_PAL_WAVEFORM +static const struct SpritePalette sMiscSpritePalette = { + sPokeStorageMisc2Pal, PALTAG_MISC_2 }; static const struct SpriteSheet sWaveformSpriteSheet = { - gUnknown_83CE810, 0x01c0, TAG_TILE_WAVEFORM + sWaveform_Gfx, 0x01C0, GFXTAG_WAVEFORM }; -static const struct OamData gUnknown_83CEB88; +static const struct OamData sOamData_DisplayMon; -static const struct SpriteTemplate sSpriteTemplate_CursorMon = { - .tileTag = TAG_TILE_2, - .paletteTag = TAG_PAL_DAC6, - .oam = &gUnknown_83CEB88, +static const struct SpriteTemplate sSpriteTemplate_DisplayMon = { + .tileTag = GFXTAG_DISPLAY_MON, + .paletteTag = PALTAG_DISPLAY_MON, + .oam = &sOamData_DisplayMon, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct StorageAction sPCStorageActionTexts[] = { - [PC_TEXT_EXIT_BOX] = {gText_ExitFromBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PICK_A_THEME] = {gText_PleasePickATheme, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_IS_SELECTED] = {gText_PkmnIsSelected, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WAS_DEPOSITED] = {gText_PkmnWasDeposited, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_BOX_IS_FULL] = {gText_BoxIsFull2, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_RELEASE_POKE] = {gText_ReleaseThisPokemon, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WAS_RELEASED] = {gText_PkmnWasReleased, PC_TEXT_FMT_MON_NAME_4}, - [PC_TEXT_BYE_BYE] = {gText_ByeByePkmn, PC_TEXT_FMT_MON_NAME_6}, - [PC_TEXT_MARK_POKE] = {gText_MarkYourPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_LAST_POKE] = {gText_ThatsYourLastPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PARTY_FULL] = {gText_YourPartysFull, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_HOLDING_POKE] = {gText_YoureHoldingAPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CONTINUE_BOX] = {gText_ContinueBoxOperations, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CAME_BACK] = {gText_PkmnCameBack, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_WORRIED] = {gText_WasItWorriedAboutYou, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_SURPRISE] = {gText_FourEllipsesExclamation, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_IS_SELECTED2] = {gText_PkmnIsSelected, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_GIVE_TO_MON] = {gText_GiveToAPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PLACED_IN_BAG] = {gText_PlacedItemInBag, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_BAG_FULL] = {gText_BagIsFull2, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PUT_IN_BAG] = {gText_PutItemInBag, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_ITEM_IS_HELD] = {gText_ItemIsNowHeld, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_CANT_STORE_MAIL] = {gText_MailCantBeStored, PC_TEXT_FMT_NORMAL}, +static const struct StorageMessage sMessages[] = { + [MSG_EXIT_BOX] = {gText_ExitFromBox, MSG_FMT_NONE}, + [MSG_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, MSG_FMT_NONE}, + [MSG_PICK_A_THEME] = {gText_PleasePickATheme, MSG_FMT_NONE}, + [MSG_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, MSG_FMT_NONE}, + [MSG_IS_SELECTED] = {gText_PkmnIsSelected, MSG_FMT_MON_NAME_1}, + [MSG_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, MSG_FMT_NONE}, + [MSG_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, MSG_FMT_NONE}, + [MSG_WAS_DEPOSITED] = {gText_PkmnWasDeposited, MSG_FMT_MON_NAME_1}, + [MSG_BOX_IS_FULL] = {gText_BoxIsFull2, MSG_FMT_NONE}, + [MSG_RELEASE_POKE] = {gText_ReleaseThisPokemon, MSG_FMT_NONE}, + [MSG_WAS_RELEASED] = {gText_PkmnWasReleased, MSG_FMT_RELEASE_MON_1}, + [MSG_BYE_BYE] = {gText_ByeByePkmn, MSG_FMT_RELEASE_MON_3}, + [MSG_MARK_POKE] = {gText_MarkYourPkmn, MSG_FMT_NONE}, + [MSG_LAST_POKE] = {gText_ThatsYourLastPkmn, MSG_FMT_NONE}, + [MSG_PARTY_FULL] = {gText_YourPartysFull, MSG_FMT_NONE}, + [MSG_HOLDING_POKE] = {gText_YoureHoldingAPkmn, MSG_FMT_NONE}, + [MSG_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, MSG_FMT_NONE}, + [MSG_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, MSG_FMT_NONE}, + [MSG_CONTINUE_BOX] = {gText_ContinueBoxOperations, MSG_FMT_NONE}, + [MSG_CAME_BACK] = {gText_PkmnCameBack, MSG_FMT_MON_NAME_1}, + [MSG_WORRIED] = {gText_WasItWorriedAboutYou, MSG_FMT_NONE}, + [MSG_SURPRISE] = {gText_FourEllipsesExclamation, MSG_FMT_NONE}, + [MSG_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, MSG_FMT_NONE}, + [MSG_IS_SELECTED2] = {gText_PkmnIsSelected, MSG_FMT_ITEM_NAME}, + [MSG_GIVE_TO_MON] = {gText_GiveToAPkmn, MSG_FMT_NONE}, + [MSG_PLACED_IN_BAG] = {gText_PlacedItemInBag, MSG_FMT_ITEM_NAME}, + [MSG_BAG_FULL] = {gText_BagIsFull2, MSG_FMT_NONE}, + [MSG_PUT_IN_BAG] = {gText_PutItemInBag, MSG_FMT_NONE}, + [MSG_ITEM_IS_HELD] = {gText_ItemIsNowHeld, MSG_FMT_ITEM_NAME}, + [MSG_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, MSG_FMT_ITEM_NAME}, + [MSG_CANT_STORE_MAIL] = {gText_MailCantBeStored, MSG_FMT_NONE}, }; -// Yes/No menu static const struct WindowTemplate sYesNoWindowTemplate = { .bg = 0, .tilemapLeft = 24, @@ -272,7 +340,7 @@ static const struct WindowTemplate sYesNoWindowTemplate = { .baseBlock = 0x05c }; -static const struct OamData gUnknown_83CEB88 = { +static const struct OamData sOamData_DisplayMon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -289,7 +357,7 @@ static const struct OamData gUnknown_83CEB88 = { // Waveform -static const struct OamData gUnknown_83CEB90 = { +static const struct OamData sOamData_Waveform = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -304,100 +372,100 @@ static const struct OamData gUnknown_83CEB90 = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_83CEB98[] = { +static const union AnimCmd sAnim_Waveform_LeftOff[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CEBA0[] = { +static const union AnimCmd sAnim_Waveform_LeftOn[] = { ANIMCMD_FRAME(2, 8), ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(6, 8), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_83CEBB0[] = { +static const union AnimCmd sAnim_Waveform_RightOff[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CEBB8[] = { +static const union AnimCmd sAnim_Waveform_RightOn[] = { ANIMCMD_FRAME(10, 8), ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(12, 8), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_83CEBC8[] = { - gUnknown_83CEB98, - gUnknown_83CEBA0, - gUnknown_83CEBB0, - gUnknown_83CEBB8 +static const union AnimCmd *const sAnims_Waveform[] = { + sAnim_Waveform_LeftOff, + sAnim_Waveform_LeftOn, + sAnim_Waveform_RightOff, + sAnim_Waveform_RightOn }; static const struct SpriteTemplate sSpriteTemplate_Waveform = { - .tileTag = TAG_TILE_WAVEFORM, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &gUnknown_83CEB90, - .anims = gUnknown_83CEBC8, + .tileTag = GFXTAG_WAVEFORM, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Waveform, + .anims = sAnims_Waveform, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static void VblankCb_PSS(void) +static void VBlankCB_PokeStorage(void) { LoadOam(); ProcessSpriteCopyRequests(); UnkUtil_Run(); TransferPlttBuffer(); - SetGpuReg(REG_OFFSET_BG2HOFS, gPSSData->bg2_X); + SetGpuReg(REG_OFFSET_BG2HOFS, gStorage->bg2_X); } -static void Cb2_PSS(void) +static void CB2_PokeStorage(void) { RunTasks(); DoScheduledBgTilemapCopiesToVram(); ScrollBackground(); - sub_808F99C(); + UpdateCloseBoxButtonFlash(); AnimateSprites(); BuildOamBuffer(); } -void Cb2_EnterPSS(u8 boxOption) +void EnterPokeStorage(u8 boxOption) { ResetTasks(); sCurrentBoxOption = boxOption; - gPSSData = Alloc(sizeof(struct PokemonStorageSystemData)); - if (gPSSData == NULL) + gStorage = Alloc(sizeof(struct PokemonStorageSystemData)); + if (gStorage == NULL) SetMainCallback2(CB2_ExitPokeStorage); else { - gPSSData->boxOption = boxOption; - gPSSData->isReshowingPSS = FALSE; - gUnknown_20397BA = 0; - gPSSData->state = 0; - gPSSData->taskId = CreateTask(Cb_InitPSS, 3); + gStorage->boxOption = boxOption; + gStorage->isReopening = FALSE; + sMovingItemId = 0; + gStorage->state = 0; + gStorage->taskId = CreateTask(Task_InitPokeStorage, 3); SetHelpContext(HELPCONTEXT_BILLS_PC); sLastUsedBox = StorageGetCurrentBox(); - SetMainCallback2(Cb2_PSS); + SetMainCallback2(CB2_PokeStorage); } } -void Cb2_ReturnToPSS(void) +void CB2_ReturnToPokeStorage(void) { ResetTasks(); - gPSSData = Alloc(sizeof(struct PokemonStorageSystemData)); - if (gPSSData == NULL) + gStorage = Alloc(sizeof(struct PokemonStorageSystemData)); + if (gStorage == NULL) SetMainCallback2(CB2_ExitPokeStorage); else { - gPSSData->boxOption = sCurrentBoxOption; - gPSSData->isReshowingPSS = TRUE; - gPSSData->state = 0; - gPSSData->taskId = CreateTask(Cb_InitPSS, 3); + gStorage->boxOption = sCurrentBoxOption; + gStorage->isReopening = TRUE; + gStorage->state = 0; + gStorage->taskId = CreateTask(Task_InitPokeStorage, 3); SetHelpContext(HELPCONTEXT_BILLS_PC); - SetMainCallback2(Cb2_PSS); + SetMainCallback2(CB2_PokeStorage); } } @@ -413,7 +481,7 @@ static void ResetAllBgCoords(void) SetGpuReg(REG_OFFSET_BG3VOFS, 0); } -static void sub_808CF10(void) +static void ResetForPokeStorage(void) { ResetPaletteFade(); ResetSpriteData(); @@ -421,25 +489,25 @@ static void sub_808CF10(void) FreeAllSpritePalettes(); ClearDma3Requests(); gReservedSpriteTileCount = 0x280; - UnkUtil_Init(&gPSSData->unkUtil, gPSSData->unkUtilData, 8); + UnkUtil_Init(&gStorage->unkUtil, gStorage->unkUtilData, ARRAY_COUNT(gStorage->unkUtilData)); gKeyRepeatStartDelay = 20; ClearScheduledBgCopiesToVram(); - AllocBoxPartyPokemonDropdowns(3); - SetBoxPartyPokemonDropdownMap2(0, 1, gUnknown_83CE6F8, 8, 4); - SetBoxPartyPokemonDropdownMap2Pos(0, 1, 0); - gPSSData->closeBoxFlashing = FALSE; + TilemapUtil_Init(TILEMAP_COUNT); + TilemapUtil_SetTilemap(TILEMAP_PKMN_DATA, 1, sPkmnData_Tilemap, 8, 4); + TilemapUtil_SetPos(TILEMAP_PKMN_DATA, 1, 0); + gStorage->closeBoxFlashing = FALSE; } -static void sub_808CF94(void) +static void InitStartingPosData(void) { - sub_8092B50(); - sInPartyMenu = gPSSData->boxOption == OPTION_DEPOSIT; - gUnknown_20397B6 = 0; + ClearSavedCursorPos(); + sInPartyMenu = gStorage->boxOption == OPTION_DEPOSIT; + sDepositBoxId = 0; } -static void sub_808CFC4(void) +static void SetMonIconTransparency(void) { - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11)); @@ -447,42 +515,42 @@ static void sub_808CFC4(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); } -static void SetPSSCallback(TaskFunc newFunc) +static void SetPokeStorageTask(TaskFunc newFunc) { - gTasks[gPSSData->taskId].func = newFunc; - gPSSData->state = 0; + gTasks[gStorage->taskId].func = newFunc; + gStorage->state = 0; } -static void Cb_InitPSS(u8 taskId) +static void Task_InitPokeStorage(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_DISPCNT, 0); - sub_808CF10(); - if (gPSSData->isReshowingPSS) + ResetForPokeStorage(); + if (gStorage->isReopening) { switch (sWhichToReshow) { - case 1: - sub_8093660(); + case SCREEN_CHANGE_NAME_BOX - 1: + LoadSavedMovingMon(); break; - case 0: - sub_80937B4(); + case SCREEN_CHANGE_SUMMARY_SCREEN - 1: + SetSelectionAfterSummaryScreen(); break; - case 2: + case SCREEN_CHANGE_ITEM_FROM_BAG - 1: GiveChosenBagItem(); break; } } - LoadPSSMenuGfx(); - LoadWaveformSpritePalette(); + LoadPokeStorageMenuGfx(); + LoadsMiscSpritePalette(); break; case 1: - if (!InitPSSWindows()) + if (!InitPokeStorageWindows()) { - SetPSSCallback(Cb_ChangeScreen); + SetPokeStorageTask(Task_ChangeScreen); return; } break; @@ -494,650 +562,623 @@ static void Cb_InitPSS(u8 taskId) break; case 3: ResetAllBgCoords(); - if (!gPSSData->isReshowingPSS) - sub_808CF94(); + if (!gStorage->isReopening) + InitStartingPosData(); break; case 4: - sub_808FFAC(); - if (!gPSSData->isReshowingPSS) - sub_80922C0(); + InitMonIconFields(); + if (!gStorage->isReopening) + InitCursor(); else - sub_8092340(); + InitCursorOnReopen(); break; case 5: - if (!sub_8095050()) + if (!MultiMove_Init()) { - SetPSSCallback(Cb_ChangeScreen); + SetPokeStorageTask(Task_ChangeScreen); return; } else { SetScrollingBackground(); - sub_808FB68(); + InitPokeStorageBg0(); } break; case 6: - sub_808F078(); + InitPalettesAndSprites(); break; case 7: - sub_808F68C(); + InitSupplementalTilemaps(); break; case 8: - sub_80913DC(StorageGetCurrentBox()); + CreateInitBoxTask(StorageGetCurrentBox()); break; case 9: - if (sub_809140C()) + if (IsInitBoxActive()) return; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { - gPSSData->markMenu.baseTileTag = TAG_TILE_D; - gPSSData->markMenu.basePaletteTag = TAG_PAL_DACE; - InitMonMarkingsMenu(&gPSSData->markMenu); + gStorage->markMenu.baseTileTag = GFXTAG_MARKING_MENU; + gStorage->markMenu.basePaletteTag = PALTAG_MARKING_MENU; + InitMonMarkingsMenu(&gStorage->markMenu); BufferMonMarkingsMenuTiles(); } else { CreateItemIconSprites(); - sub_808FDFC(); + InitCursorItemIcon(); } break; case 10: - sub_808CFC4(); - if (!gPSSData->isReshowingPSS) + SetMonIconTransparency(); + if (!gStorage->isReopening) { - BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); - SetPSSCallback(Cb_ShowPSS); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + SetPokeStorageTask(Task_ShowPokeStorage); } else { - BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); - SetPSSCallback(Cb_ReshowPSS); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + SetPokeStorageTask(Task_ReshowPokeStorage); } - SetVBlankCallback(VblankCb_PSS); + SetVBlankCallback(VBlankCB_PokeStorage); return; default: return; } - gPSSData->state++; + gStorage->state++; } -static void Cb_ShowPSS(u8 taskId) +static void Task_ShowPokeStorage(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: PlaySE(SE_PC_LOGIN); BeginPCScreenEffect_TurnOn(20, 0, 1); - gPSSData->state++; + gStorage->state++; break; case 1: if (!IsPCScreenEffectRunning_TurnOn()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_ReshowPSS(u8 taskId) +static void Task_ReshowPokeStorage(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, RGB_BLACK); - gPSSData->state++; + gStorage->state++; break; case 1: if (!UpdatePaletteFade()) - { - SetPSSCallback(Cb_MainPSS); - } + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_MainPSS(u8 taskId) +static void Task_PokeStorageMain(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: switch (HandleInput()) { - case 1: + case INPUT_MOVE_CURSOR: PlaySE(SE_SELECT); - gPSSData->state = 1; + gStorage->state = 1; break; - case 5: - if (gPSSData->boxOption != OPTION_MOVE_MONS && gPSSData->boxOption != OPTION_MOVE_ITEMS) + case INPUT_SHOW_PARTY: + if (gStorage->boxOption != OPTION_MOVE_MONS && gStorage->boxOption != OPTION_MOVE_ITEMS) { - PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE); - gPSSData->state = 3; + PrintStorageMessage(MSG_WHICH_ONE_WILL_TAKE); + gStorage->state = 3; } else { - sub_8092B50(); - SetPSSCallback(Cb_ShowPartyPokemon); + ClearSavedCursorPos(); + SetPokeStorageTask(Task_ShowPartyPokemon); } break; - case 6: - if (gPSSData->boxOption == OPTION_MOVE_MONS) + case INPUT_HIDE_PARTY: + if (gStorage->boxOption == OPTION_MOVE_MONS) { - if (IsMonBeingMoved() && ItemIsMail(gPSSData->displayMonItemId)) - gPSSData->state = 5; + if (IsMonBeingMoved() && ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 5; else - SetPSSCallback(Cb_HidePartyPokemon); - } - else if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - SetPSSCallback(Cb_HidePartyPokemon); + SetPokeStorageTask(Task_HidePartyPokemon); } + else if (gStorage->boxOption == OPTION_MOVE_ITEMS) + SetPokeStorageTask(Task_HidePartyPokemon); break; - case 4: - SetPSSCallback(Cb_OnCloseBoxPressed); + case INPUT_CLOSE_BOX: + SetPokeStorageTask(Task_OnCloseBoxPressed); break; - case 19: - SetPSSCallback(Cb_OnBPressed); + case INPUT_PRESSED_B: + SetPokeStorageTask(Task_OnBPressed); break; - case 7: + case INPUT_BOX_OPTIONS: PlaySE(SE_SELECT); - SetPSSCallback(Cb_HandleBoxOptions); + SetPokeStorageTask(Task_HandleBoxOptions); break; - case 8: - SetPSSCallback(Cb_OnSelectedMon); + case INPUT_IN_MENU: + SetPokeStorageTask(Task_OnSelectedMon); break; - case 9: + case INPUT_SCROLL_RIGHT: PlaySE(SE_SELECT); - gPSSData->newCurrBoxId = StorageGetCurrentBox() + 1; - if (gPSSData->newCurrBoxId >= TOTAL_BOXES_COUNT) - gPSSData->newCurrBoxId = 0; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + gStorage->newCurrBoxId = StorageGetCurrentBox() + 1; + if (gStorage->newCurrBoxId >= TOTAL_BOXES_COUNT) + gStorage->newCurrBoxId = 0; + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state = 2; + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state = 2; } else { - sub_8094D60(); - gPSSData->state = 10; + TryHideItemAtCursor(); + gStorage->state = 10; } break; - case 10: + case INPUT_SCROLL_LEFT: PlaySE(SE_SELECT); - gPSSData->newCurrBoxId = StorageGetCurrentBox() - 1; - if (gPSSData->newCurrBoxId < 0) - gPSSData->newCurrBoxId = TOTAL_BOXES_COUNT - 1; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + gStorage->newCurrBoxId = StorageGetCurrentBox() - 1; + if (gStorage->newCurrBoxId < 0) + gStorage->newCurrBoxId = TOTAL_BOXES_COUNT - 1; + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state = 2; + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state = 2; } else { - sub_8094D60(); - gPSSData->state = 10; + TryHideItemAtCursor(); + gStorage->state = 10; } break; - case 11: + case INPUT_DEPOSIT: if (!CanMovePartyMon()) { - if (ItemIsMail(gPSSData->displayMonItemId)) - { - gPSSData->state = 5; - } + if (ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 5; else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_DepositMenu); + SetPokeStorageTask(Task_DepositMenu); } } else - { - gPSSData->state = 4; - } + gStorage->state = 4; break; - case 13: + case INPUT_MOVE_MON: if (CanMovePartyMon()) - { - gPSSData->state = 4; - } + gStorage->state = 4; + else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_MoveMon); + SetPokeStorageTask(Task_MoveMon); } break; - case 14: + case INPUT_SHIFT_MON: if (!CanShiftMon()) - { - gPSSData->state = 4; - } + gStorage->state = 4; else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShiftMon); + SetPokeStorageTask(Task_ShiftMon); } break; - case 12: + case INPUT_WITHDRAW: PlaySE(SE_SELECT); - SetPSSCallback(Cb_WithdrawMon); + SetPokeStorageTask(Task_WithdrawMon); break; - case 15: + case INPUT_PLACE_MON: PlaySE(SE_SELECT); - SetPSSCallback(Cb_PlaceMon); + SetPokeStorageTask(Task_PlaceMon); break; - case 16: + case INPUT_TAKE_ITEM: PlaySE(SE_SELECT); - SetPSSCallback(Cb_TakeItemForMoving); + SetPokeStorageTask(Task_TakeItemForMoving); break; - case 17: + case INPUT_GIVE_ITEM: PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveMovingItemToMon); + SetPokeStorageTask(Task_GiveMovingItemToMon); break; - case 18: + case INPUT_SWITCH_ITEMS: PlaySE(SE_SELECT); - SetPSSCallback(Cb_SwitchSelectedItem); + SetPokeStorageTask(Task_SwitchSelectedItem); break; - case 20: + case INPUT_MULTIMOVE_START: PlaySE(SE_SELECT); - sub_80950BC(0); - gPSSData->state = 7; + MultiMove_SetFunction(MULTIMOVE_START); + gStorage->state = 7; break; - case 22: - sub_80950BC(1); - gPSSData->state = 8; + case INPUT_MULTIMOVE_SINGLE: + MultiMove_SetFunction(MULTIMOVE_SINGLE); + gStorage->state = 8; break; - case 21: + case INPUT_MULTIMOVE_CHANGE_SELECTION: PlaySE(SE_SELECT); - sub_80950BC(2); - gPSSData->state = 9; + MultiMove_SetFunction(MULTIMOVE_CHANGE_SELECTION); + gStorage->state = 9; break; - case 23: - sub_80950BC(3); - gPSSData->state = 7; + case INPUT_MULTIMOVE_GRAB_SELECTION: + MultiMove_SetFunction(MULTIMOVE_GRAB_SELECTION); + gStorage->state = 7; break; - case 25: + case INPUT_MULTIMOVE_MOVE_MONS: PlaySE(SE_SELECT); - sub_80950BC(4); - gPSSData->state = 9; + MultiMove_SetFunction(MULTIMOVE_MOVE_MONS); + gStorage->state = 9; break; - case 26: + case INPUT_MULTIMOVE_PLACE_MONS: PlaySE(SE_SELECT); - sub_808FE54(3); - sub_80950BC(5); - gPSSData->state = 7; + SetPokeStorageQuestLogEvent(3); + MultiMove_SetFunction(MULTIMOVE_PLACE_MONS); + gStorage->state = 7; break; - case 24: + case INPUT_MULTIMOVE_UNABLE: PlaySE(SE_FAILURE); break; } break; case 1: - if (!sub_80924A8()) + if (!UpdateCursorPos()) { if (IsCursorOnCloseBox()) - sub_808F948(); + StartFlashingCloseBoxButton(); else - sub_808F974(); + StopFlashingCloseBoxButton(); - if (gPSSData->setMosaic) - BoxSetMosaic(); - gPSSData->state = 0; + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + gStorage->state = 0; } break; case 2: if (!ScrollToBox()) { - SetCurrentBox(gPSSData->newCurrBoxId); + SetCurrentBox(gStorage->newCurrBoxId); if (!sInPartyMenu && !IsMonBeingMoved()) { - sub_8092F54(); - BoxSetMosaic(); + DoTrySetDisplayMonData(); + StartDisplayMonMosaic(); } - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { - sub_8094D84(); - gPSSData->state = 11; + TryShowItemAtCursor(); + gStorage->state = 11; } else - { - gPSSData->state = 0; - } + gStorage->state = 0; } break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - gPSSData->state = 0; + gStorage->state = 0; } break; case 4: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_LAST_POKE); - gPSSData->state = 6; + PrintStorageMessage(MSG_LAST_POKE); + gStorage->state = 6; break; case 5: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); - gPSSData->state = 6; + PrintStorageMessage(MSG_PLEASE_REMOVE_MAIL); + gStorage->state = 6; break; case 6: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 7: - if (!sub_80950D0()) - gPSSData->state = 0; + if (!MultiMove_RunFunction()) + gStorage->state = 0; break; case 8: - if (!sub_80950D0()) - SetPSSCallback(Cb_MoveMon); + if (!MultiMove_RunFunction()) + SetPokeStorageTask(Task_MoveMon); break; case 9: - if (!sub_80950D0()) + if (!MultiMove_RunFunction()) { - if (gPSSData->setMosaic) - BoxSetMosaic(); - gPSSData->state = 0; + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + gStorage->state = 0; } break; case 10: - if (!sub_809610C()) + if (!IsItemIconAnimActive()) { - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state = 2; + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state = 2; } break; case 11: - if (!sub_809610C()) - gPSSData->state = 0; + if (!IsItemIconAnimActive()) + gStorage->state = 0; break; } } -static void Cb_ShowPartyPokemon(u8 taskId) +static void Task_ShowPartyPokemon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: SetUpDoShowPartyMenu(); - gPSSData->state++; + gStorage->state++; break; case 1: if (!DoShowPartyMenu()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_HidePartyPokemon(u8 taskId) +static void Task_HidePartyPokemon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: PlaySE(SE_SELECT); SetUpHidePartyMenu(); - gPSSData->state++; + gStorage->state++; break; case 1: if (!HidePartyMenu()) { - sub_8092B3C(sub_8092B70()); - gPSSData->state++; + SetCursorBoxPosition(GetSavedCursorPos()); + gStorage->state++; } break; case 2: - if (!sub_80924A8()) + if (!UpdateCursorPos()) { - if (gPSSData->setMosaic) - BoxSetMosaic(); - SetPSSCallback(Cb_MainPSS); + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_OnSelectedMon(u8 taskId) +static void Task_OnSelectedMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - if (!BoxGetMosaic()) + if (!IsDisplayMonMosaicActive()) { PlaySE(SE_SELECT); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - PrintStorageActionText(PC_TEXT_IS_SELECTED); - else if (IsActiveItemMoving() || gPSSData->displayMonItemId != 0) - PrintStorageActionText(PC_TEXT_IS_SELECTED2); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + PrintStorageMessage(MSG_IS_SELECTED); + else if (IsActiveItemMoving() || gStorage->displayMonItemId != 0) + PrintStorageMessage(MSG_IS_SELECTED2); else - PrintStorageActionText(PC_TEXT_GIVE_TO_MON); + PrintStorageMessage(MSG_GIVE_TO_MON); AddMenu(); - gPSSData->state = 1; + gStorage->state = 1; } break; - case 1: // debug? - if (!sub_8094F90()) - gPSSData->state = 2; + case 1: + if (!IsMenuLoading()) + gStorage->state = 2; break; case 2: - switch (sub_8094F94()) + switch (HandleMenuInput()) { - case -1: - case 0: + case MENU_B_PRESSED: + case MENU_TEXT_CANCEL: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 3: + case MENU_TEXT_MOVE: if (CanMovePartyMon()) - { - gPSSData->state = 3; - } + gStorage->state = 3; else { PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_MoveMon); + SetPokeStorageTask(Task_MoveMon); } break; - case 5: + case MENU_TEXT_PLACE: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_PlaceMon); + SetPokeStorageTask(Task_PlaceMon); break; - case 4: + case MENU_TEXT_SHIFT: if (!CanShiftMon()) - { - gPSSData->state = 3; - } + gStorage->state = 3; else { PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_ShiftMon); + SetPokeStorageTask(Task_ShiftMon); } break; - case 2: + case MENU_TEXT_WITHDRAW: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_WithdrawMon); + SetPokeStorageTask(Task_WithdrawMon); break; - case 1: + case MENU_TEXT_STORE: if (CanMovePartyMon()) - { - gPSSData->state = 3; - } - else if (ItemIsMail(gPSSData->displayMonItemId)) - { - gPSSData->state = 4; - } + gStorage->state = 3; + else if (ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 4; else { PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_DepositMenu); + SetPokeStorageTask(Task_DepositMenu); } break; - case 7: + case MENU_TEXT_RELEASE: if (CanMovePartyMon()) - { - gPSSData->state = 3; - } - else if (gPSSData->displayMonIsEgg) - { - gPSSData->state = 5; // Cannot release an Egg. - } - else if (ItemIsMail(gPSSData->displayMonItemId)) - { - gPSSData->state = 4; - } + gStorage->state = 3; + else if (gStorage->displayMonIsEgg) + gStorage->state = 5; + else if (ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 4; else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_ReleaseMon); + SetPokeStorageTask(Task_ReleaseMon); } break; - case 6: + case MENU_TEXT_SUMMARY: PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShowMonSummary); + SetPokeStorageTask(Task_ShowMonSummary); break; - case 8: + case MENU_TEXT_MARK: PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShowMarkMenu); + SetPokeStorageTask(Task_ShowMarkMenu); break; - case 12: + case MENU_TEXT_TAKE: PlaySE(SE_SELECT); - SetPSSCallback(Cb_TakeItemForMoving); + SetPokeStorageTask(Task_TakeItemForMoving); break; - case 13: + case MENU_TEXT_GIVE: PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveMovingItemToMon); + SetPokeStorageTask(Task_GiveMovingItemToMon); break; - case 16: - SetPSSCallback(Cb_ItemToBag); + case MENU_TEXT_BAG: + SetPokeStorageTask(Task_ItemToBag); break; - case 15: - SetPSSCallback(Cb_SwitchSelectedItem); + case MENU_TEXT_SWITCH: + SetPokeStorageTask(Task_SwitchSelectedItem); break; - case 14: - SetPSSCallback(Cb_GiveItemFromBag); + case MENU_TEXT_GIVE2: + SetPokeStorageTask(Task_GiveItemFromBag); break; - case 17: - SetPSSCallback(Cb_ShowItemInfo); + case MENU_TEXT_INFO: + SetPokeStorageTask(Task_ShowItemInfo); break; } break; case 3: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_LAST_POKE); - gPSSData->state = 6; + PrintStorageMessage(MSG_LAST_POKE); + gStorage->state = 6; break; case 5: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG); - gPSSData->state = 6; + PrintStorageMessage(MSG_CANT_RELEASE_EGG); + gStorage->state = 6; break; case 4: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); - gPSSData->state = 6; + PrintStorageMessage(MSG_PLEASE_REMOVE_MAIL); + gStorage->state = 6; break; case 6: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_MoveMon(u8 taskId) +static void Task_MoveMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - InitMonPlaceChange(0); - gPSSData->state++; + InitMonPlaceChange(CHANGE_GRAB); + gStorage->state++; break; case 1: if (!DoMonPlaceChange()) { if (sInPartyMenu) - SetPSSCallback(Cb_HandleMovingMonFromParty); + SetPokeStorageTask(Task_HandleMovingMonFromParty); else - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_PlaceMon(u8 taskId) +static void Task_PlaceMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - sub_808FE54(1); - InitMonPlaceChange(1); - gPSSData->state++; + SetPokeStorageQuestLogEvent(1); + InitMonPlaceChange(CHANGE_PLACE); + gStorage->state++; break; case 1: if (!DoMonPlaceChange()) { if (sInPartyMenu) - SetPSSCallback(Cb_HandleMovingMonFromParty); + SetPokeStorageTask(Task_HandleMovingMonFromParty); else - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_ShiftMon(u8 taskId) +static void Task_ShiftMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - sub_808FE54(0); - InitMonPlaceChange(2); - gPSSData->state++; + SetPokeStorageQuestLogEvent(0); + InitMonPlaceChange(CHANGE_SHIFT); + gStorage->state++; break; case 1: if (!DoMonPlaceChange()) { - BoxSetMosaic(); - SetPSSCallback(Cb_MainPSS); + StartDisplayMonMosaic(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_WithdrawMon(u8 taskId) +static void Task_WithdrawMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: if (CalculatePlayerPartyCount() == PARTY_SIZE) { - PrintStorageActionText(PC_TEXT_PARTY_FULL); - gPSSData->state = 1; + PrintStorageMessage(MSG_PARTY_FULL); + gStorage->state = 1; } else { - sub_8092B5C(); - InitMonPlaceChange(0); - gPSSData->state = 2; + SaveCursorPos(); + InitMonPlaceChange(CHANGE_GRAB); + gStorage->state = 2; } break; case 1: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 2: @@ -1145,137 +1186,137 @@ static void Cb_WithdrawMon(u8 taskId) { SetMovingMonPriority(1); SetUpDoShowPartyMenu(); - gPSSData->state++; + gStorage->state++; } break; case 3: if (!DoShowPartyMenu()) { - sub_808FE54(1); - InitMonPlaceChange(1); - gPSSData->state++; + SetPokeStorageQuestLogEvent(1); + InitMonPlaceChange(CHANGE_PLACE); + gStorage->state++; } break; case 4: if (!DoMonPlaceChange()) { - sub_808FAA8(); - gPSSData->state++; + UpdatePartySlotColors(); + gStorage->state++; } break; case 5: - SetPSSCallback(Cb_HidePartyPokemon); + SetPokeStorageTask(Task_HidePartyPokemon); break; } } -static void Cb_DepositMenu(u8 taskId) +static void Task_DepositMenu(u8 taskId) { u8 boxId; - switch (gPSSData->state) + switch (gStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX); - LoadChooseBoxMenuGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE); - sub_808C940(gUnknown_20397B6); - gPSSData->state++; + PrintStorageMessage(MSG_DEPOSIT_IN_WHICH_BOX); + LoadChooseBoxMenuGfx(&gStorage->chooseBoxMenu, GFXTAG_CHOOSE_BOX_MENU_CENTER, PALTAG_MISC_1, 3, FALSE); + CreateChooseBoxMenuSprites(sDepositBoxId); + gStorage->state++; break; case 1: boxId = HandleBoxChooseSelectionInput(); - if (boxId == 200) - { - // no box chosen yet - } - else if (boxId == 201) + switch (boxId) { + case BOXID_NONE_CHOSEN: + break; + case BOXID_CANCELED: ClearBottomWindow(); - sub_808C950(); + DestroyChooseBoxMenuSprites(); FreeBoxSelectionPopupSpriteGfx(); - SetPSSCallback(Cb_MainPSS); - } - else - { + SetPokeStorageTask(Task_PokeStorageMain); + break; + default: if (TryStorePartyMonInBox(boxId)) { - gUnknown_20397B6 = boxId; - sub_808FE54(2); + sDepositBoxId = boxId; + SetPokeStorageQuestLogEvent(2); ClearBottomWindow(); - sub_808C950(); + DestroyChooseBoxMenuSprites(); FreeBoxSelectionPopupSpriteGfx(); - gPSSData->state = 2; + gStorage->state = 2; } else { - PrintStorageActionText(PC_TEXT_BOX_IS_FULL); - gPSSData->state = 4; + PrintStorageMessage(MSG_BOX_IS_FULL); + gStorage->state = 4; } + break; } break; case 2: CompactPartySlots(); - sub_80909F4(); - gPSSData->state++; + CompactPartySprites(); + gStorage->state++; break; case 3: - if (!sub_8090A60()) + if (GetNumPartySpritesCompacting() == 0) { - sub_8093174(); - BoxSetMosaic(); - sub_808FAA8(); - SetPSSCallback(Cb_MainPSS); + ResetSelectionAfterDeposit(); + StartDisplayMonMosaic(); + UpdatePartySlotColors(); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 4: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX); - gPSSData->state = 1; + PrintStorageMessage(MSG_DEPOSIT_IN_WHICH_BOX); + gStorage->state = 1; } break; } } -static void Cb_ReleaseMon(u8 taskId) +static void Task_ReleaseMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_RELEASE_POKE); + PrintStorageMessage(MSG_RELEASE_POKE); ShowYesNoWindow(1); - gPSSData->state++; + gStorage->state++; // fallthrough case 1: switch (Menu_ProcessInputNoWrapClearOnChoose()) { case MENU_B_PRESSED: - case 1: + case 1: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 0: + case 0: ClearBottomWindow(); InitCanReleaseMonVars(); - sub_8093194(); - gPSSData->state++; + InitReleaseMon(); + gStorage->state++; break; } break; case 2: RunCanReleaseMon(); - if (!sub_80931EC()) + if (!TryHideReleaseMon()) { - while (1) + while (TRUE) { - s8 r0 = RunCanReleaseMon(); - if (r0 == 1) + // keep checking until status is no longer RELEASE_MON_UNDETERMINED + s8 canReleaseStatus = RunCanReleaseMon(); + if (canReleaseStatus == RELEASE_MON_ALLOWED) { - gPSSData->state++; + gStorage->state++; break; } - else if (r0 == 0) + else if (canReleaseStatus == RELEASE_MON_NOT_ALLOWED) { - gPSSData->state = 8; // Can't release the mon. + gStorage->state = 8; // Can't release the mon. break; } } @@ -1283,15 +1324,15 @@ static void Cb_ReleaseMon(u8 taskId) break; case 3: ReleaseMon(); - RefreshCursorMonData(); - PrintStorageActionText(PC_TEXT_WAS_RELEASED); - gPSSData->state++; + RefreshDisplayMonData(); + PrintStorageMessage(MSG_WAS_RELEASED); + gStorage->state++; break; case 4: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_BYE_BYE); - gPSSData->state++; + PrintStorageMessage(MSG_BYE_BYE); + gStorage->state++; } break; case 5: @@ -1301,267 +1342,262 @@ static void Cb_ReleaseMon(u8 taskId) if (sInPartyMenu) { CompactPartySlots(); - sub_80909F4(); - gPSSData->state++; + CompactPartySprites(); + gStorage->state++; } else - { - gPSSData->state = 7; - } + gStorage->state = 7; } break; case 6: - if (!sub_8090A60()) + if (GetNumPartySpritesCompacting() == 0) { - sub_8092F54(); - BoxSetMosaic(); - sub_808FAA8(); - gPSSData->state++; + DoTrySetDisplayMonData(); + StartDisplayMonMosaic(); + UpdatePartySlotColors(); + gStorage->state++; } break; case 7: - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 8: - PrintStorageActionText(PC_TEXT_WAS_RELEASED); - gPSSData->state++; + // Start "can't release" sequence + PrintStorageMessage(MSG_WAS_RELEASED); + gStorage->state++; break; case 9: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_SURPRISE); - gPSSData->state++; + PrintStorageMessage(MSG_SURPRISE); + gStorage->state++; } break; case 10: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sub_8091114(); - gPSSData->state++; + DoReleaseMonComeBackAnim(); + gStorage->state++; } break; case 11: - if (!sub_8091150()) + if (!ResetReleaseMonSpritePtr()) { - sub_8093264(); - PrintStorageActionText(PC_TEXT_CAME_BACK); - gPSSData->state++; + TrySetCursorFistAnim(); + PrintStorageMessage(MSG_CAME_BACK); + gStorage->state++; } break; case 12: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_WORRIED); - gPSSData->state++; + PrintStorageMessage(MSG_WORRIED); + gStorage->state++; } break; case 13: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_ShowMarkMenu(u8 taskId) +static void Task_ShowMarkMenu(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_MARK_POKE); - gPSSData->markMenu.markings = gPSSData->displayMonMarkings; - OpenMonMarkingsMenu(gPSSData->displayMonMarkings, 0xb0, 0x10); - gPSSData->state++; + PrintStorageMessage(MSG_MARK_POKE); + gStorage->markMenu.markings = gStorage->displayMonMarkings; + OpenMonMarkingsMenu(gStorage->displayMonMarkings, 176, 16); + gStorage->state++; break; case 1: if (!HandleMonMarkingsMenuInput()) { FreeMonMarkingsMenu(); ClearBottomWindow(); - SetMonMarkings(gPSSData->markMenu.markings); - RefreshCursorMonData(); - SetPSSCallback(Cb_MainPSS); + SetMonMarkings(gStorage->markMenu.markings); + RefreshDisplayMonData(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_TakeItemForMoving(u8 taskId) +static void Task_TakeItemForMoving(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - if (!ItemIsMail(gPSSData->displayMonItemId)) + if (!ItemIsMail(gStorage->displayMonItemId)) { ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; } else - { - SetPSSCallback(Cb_PrintCantStoreMail); - } + SetPokeStorageTask(Task_PrintCantStoreMail); break; case 1: - sub_8094D14(2); + StartCursorAnim(CURSOR_ANIM_OPEN); Item_FromMonToMoving(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state++; + gStorage->state++; break; case 2: - if (!sub_809610C()) + if (!IsItemIconAnimActive()) { - sub_8094D14(3); + StartCursorAnim(CURSOR_ANIM_FIST); ClearBottomWindow(); - sub_8092F54(); - PrintCursorMonInfo(); - gPSSData->state++; + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + gStorage->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_GiveMovingItemToMon(u8 taskId) +static void Task_GiveMovingItemToMon(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; break; case 1: - sub_8094D14(2); + StartCursorAnim(CURSOR_ANIM_OPEN); Item_GiveMovingToMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state++; + gStorage->state++; break; case 2: - if (!sub_809610C()) + if (!IsItemIconAnimActive()) { - sub_8094D14(0); - sub_8092F54(); - PrintCursorMonInfo(); - PrintStorageActionText(PC_TEXT_ITEM_IS_HELD); - gPSSData->state++; + StartCursorAnim(CURSOR_ANIM_BOUNCE); + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + PrintStorageMessage(MSG_ITEM_IS_HELD); + gStorage->state++; } break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_ItemToBag(u8 taskId) +static void Task_ItemToBag(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - if (!AddBagItem(gPSSData->displayMonItemId, 1)) + if (!AddBagItem(gStorage->displayMonItemId, 1)) { PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_BAG_FULL); - gPSSData->state = 3; + PrintStorageMessage(MSG_BAG_FULL); + gStorage->state = 3; } else { PlaySE(SE_SELECT); Item_TakeMons(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state = 1; + gStorage->state = 1; } break; case 1: - if (!sub_809610C()) + if (!IsItemIconAnimActive()) { - PrintStorageActionText(PC_TEXT_PLACED_IN_BAG); - gPSSData->state = 2; + PrintStorageMessage(MSG_PLACED_IN_BAG); + gStorage->state = 2; } break; case 2: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sub_8092F54(); - PrintCursorMonInfo(); - gPSSData->state = 4; + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + gStorage->state = 4; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_SwitchSelectedItem(u8 taskId) +static void Task_SwitchSelectedItem(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - if (!ItemIsMail(gPSSData->displayMonItemId)) + if (!ItemIsMail(gStorage->displayMonItemId)) { ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; } else - { - SetPSSCallback(Cb_PrintCantStoreMail); - } + SetPokeStorageTask(Task_PrintCantStoreMail); break; case 1: - sub_8094D14(2); + StartCursorAnim(CURSOR_ANIM_OPEN); Item_SwitchMonsWithMoving(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state++; + gStorage->state++; break; case 2: - if (!sub_809610C()) + if (!IsItemIconAnimActive()) { - sub_8094D14(3); - sub_8092F54(); - PrintCursorMonInfo(); - PrintStorageActionText(PC_TEXT_CHANGED_TO_ITEM); - gPSSData->state++; + StartCursorAnim(CURSOR_ANIM_FIST); + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + PrintStorageMessage(MSG_CHANGED_TO_ITEM); + gStorage->state++; } break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_ShowItemInfo(u8 taskId) +static void Task_ShowItemInfo(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) @@ -1569,44 +1605,44 @@ static void Cb_ShowItemInfo(u8 taskId) PlaySE(SE_WIN_OPEN); PrintItemDescription(); InitItemInfoWindow(); - gPSSData->state++; + gStorage->state++; } break; case 2: if (!UpdateItemInfoWindowSlideIn()) - gPSSData->state++; + gStorage->state++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - gPSSData->state++; + gStorage->state++; break; case 4: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { PlaySE(SE_WIN_OPEN); - gPSSData->state++; + gStorage->state++; } break; case 5: if (!UpdateItemInfoWindowSlideOut()) - gPSSData->state++; + gStorage->state++; break; case 6: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_CloseBoxWhileHoldingItem(u8 taskId) +static void Task_CloseBoxWhileHoldingItem(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_PUT_IN_BAG); + PrintStorageMessage(MSG_PUT_IN_BAG); ShowYesNoWindow(0); - gPSSData->state = 1; + gStorage->state = 1; break; case 1: switch (Menu_ProcessInputNoWrapClearOnChoose()) @@ -1614,18 +1650,18 @@ static void Cb_CloseBoxWhileHoldingItem(u8 taskId) case MENU_B_PRESSED: case 1: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 0: - if (AddBagItem(gPSSData->movingItemId, 1) == TRUE) + if (AddBagItem(gStorage->movingItemId, 1) == TRUE) { ClearBottomWindow(); - gPSSData->state = 3; + gStorage->state = 3; } else { - PrintStorageActionText(PC_TEXT_BAG_FULL); - gPSSData->state = 2; + PrintStorageMessage(MSG_BAG_FULL); + gStorage->state = 2; } break; } @@ -1634,167 +1670,170 @@ static void Cb_CloseBoxWhileHoldingItem(u8 taskId) if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - gPSSData->state = 5; + gStorage->state = 5; } break; case 3: - sub_8096088(); - gPSSData->state = 4; + MoveItemFromCursorToBag(); + gStorage->state = 4; break; case 4: - if (!sub_809610C()) + if (!IsItemIconAnimActive()) { - sub_8094D14(0); - SetPSSCallback(Cb_MainPSS); + StartCursorAnim(CURSOR_ANIM_BOUNCE); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_HandleMovingMonFromParty(u8 taskId) +static void Task_HandleMovingMonFromParty(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: CompactPartySlots(); - sub_80909F4(); - gPSSData->state++; + CompactPartySprites(); + gStorage->state++; break; case 1: - if (!sub_8090A60()) + if (GetNumPartySpritesCompacting() == 0) { - sub_808FAA8(); - SetPSSCallback(Cb_MainPSS); + UpdatePartySlotColors(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_PrintCantStoreMail(u8 taskId) +static void Task_PrintCantStoreMail(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_CANT_STORE_MAIL); - gPSSData->state++; + PrintStorageMessage(MSG_CANT_STORE_MAIL); + gStorage->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) - gPSSData->state++; + gStorage->state++; break; case 2: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_HandleBoxOptions(u8 taskId) +static void Task_HandleBoxOptions(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_WHAT_YOU_DO); + PrintStorageMessage(MSG_WHAT_YOU_DO); AddMenu(); - gPSSData->state++; + gStorage->state++; break; case 1: - if (sub_8094F90()) + if (IsMenuLoading()) return; - gPSSData->state++; + gStorage->state++; case 2: - switch (sub_8094F94()) + switch (HandleMenuInput()) { - case -1: - case 0: + case MENU_B_PRESSED: + case MENU_TEXT_CANCEL: AnimateBoxScrollArrows(TRUE); ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 11: + case MENU_TEXT_NAME: PlaySE(SE_SELECT); - SetPSSCallback(Cb_NameBox); + SetPokeStorageTask(Task_NameBox); break; - case 10: + case MENU_TEXT_WALLPAPER: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_HandleWallpapers); + SetPokeStorageTask(Task_HandleWallpapers); break; - case 9: + case MENU_TEXT_JUMP: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_JumpBox); + SetPokeStorageTask(Task_JumpBox); break; } break; } } -static void Cb_HandleWallpapers(u8 taskId) +static void Task_HandleWallpapers(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: AddWallpaperSetsMenu(); - PrintStorageActionText(PC_TEXT_PICK_A_THEME); - gPSSData->state++; + PrintStorageMessage(MSG_PICK_A_THEME); + gStorage->state++; break; case 1: - if (!sub_8094F90()) - gPSSData->state++; + if (!IsMenuLoading()) + gStorage->state++; break; case 2: - gPSSData->wallpaperSetId = sub_8094F94(); - switch (gPSSData->wallpaperSetId) + gStorage->wallpaperSetId = HandleMenuInput(); + switch (gStorage->wallpaperSetId) { - case -1: + case MENU_B_PRESSED: AnimateBoxScrollArrows(TRUE); ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 18 ... 21: + case MENU_TEXT_SCENERY_1: + case MENU_TEXT_SCENERY_2: + case MENU_TEXT_SCENERY_3: + case MENU_TEXT_ETCETERA: PlaySE(SE_SELECT); - sub_8095024(); - gPSSData->wallpaperSetId -= 18; - gPSSData->state++; + RemoveMenu(); + gStorage->wallpaperSetId -= MENU_TEXT_SCENERY_1; + gStorage->state++; break; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - AddWallpapersMenu(gPSSData->wallpaperSetId); - PrintStorageActionText(PC_TEXT_PICK_A_WALLPAPER); - gPSSData->state++; + AddWallpapersMenu(gStorage->wallpaperSetId); + PrintStorageMessage(MSG_PICK_A_WALLPAPER); + gStorage->state++; } break; case 4: - gPSSData->wallpaperId = sub_8094F94(); - switch (gPSSData->wallpaperId) + gStorage->wallpaperId = HandleMenuInput(); + switch (gStorage->wallpaperId) { case MENU_NOTHING_CHOSEN: break; case MENU_B_PRESSED: ClearBottomWindow(); - gPSSData->state = 0; + gStorage->state = 0; break; default: PlaySE(SE_SELECT); ClearBottomWindow(); - gPSSData->wallpaperId -= 22; - SetWallpaperForCurrentBox(gPSSData->wallpaperId); - gPSSData->state++; + gStorage->wallpaperId -= MENU_TEXT_FOREST; + SetWallpaperForCurrentBox(gStorage->wallpaperId); + gStorage->state++; break; } break; @@ -1802,145 +1841,141 @@ static void Cb_HandleWallpapers(u8 taskId) if (!DoWallpaperGfxChange()) { AnimateBoxScrollArrows(TRUE); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_JumpBox(u8 taskId) +static void Task_JumpBox(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_JUMP_TO_WHICH_BOX); - LoadChooseBoxMenuGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE); - sub_808C940(StorageGetCurrentBox()); - gPSSData->state++; + PrintStorageMessage(MSG_JUMP_TO_WHICH_BOX); + LoadChooseBoxMenuGfx(&gStorage->chooseBoxMenu, GFXTAG_CHOOSE_BOX_MENU_CENTER, PALTAG_MISC_1, 3, FALSE); + CreateChooseBoxMenuSprites(StorageGetCurrentBox()); + gStorage->state++; break; case 1: - gPSSData->newCurrBoxId = HandleBoxChooseSelectionInput(); - switch (gPSSData->newCurrBoxId) + gStorage->newCurrBoxId = HandleBoxChooseSelectionInput(); + switch (gStorage->newCurrBoxId) { - case 200: + case BOXID_NONE_CHOSEN: break; default: ClearBottomWindow(); - sub_808C950(); + DestroyChooseBoxMenuSprites(); FreeBoxSelectionPopupSpriteGfx(); - if (gPSSData->newCurrBoxId == 201 || gPSSData->newCurrBoxId == StorageGetCurrentBox()) + if (gStorage->newCurrBoxId == BOXID_CANCELED || gStorage->newCurrBoxId == StorageGetCurrentBox()) { AnimateBoxScrollArrows(TRUE); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } else - { - gPSSData->state++; - } + gStorage->state++; break; } break; case 2: - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state++; + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state++; break; case 3: if (!ScrollToBox()) { - SetCurrentBox(gPSSData->newCurrBoxId); - SetPSSCallback(Cb_MainPSS); + SetCurrentBox(gStorage->newCurrBoxId); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_NameBox(u8 taskId) +static void Task_NameBox(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - sub_8093630(); + SaveMovingMon(); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gPSSData->state++; + gStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - sWhichToReshow = 1; - gPSSData->screenChangeType = SCREEN_CHANGE_NAME_BOX; - SetPSSCallback(Cb_ChangeScreen); + sWhichToReshow = SCREEN_CHANGE_NAME_BOX - 1; + gStorage->screenChangeType = SCREEN_CHANGE_NAME_BOX; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_ShowMonSummary(u8 taskId) +static void Task_ShowMonSummary(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: - sub_80936B8(); + InitSummaryScreenData(); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gPSSData->state++; + gStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - sWhichToReshow = 0; - gPSSData->screenChangeType = SCREEN_CHANGE_SUMMARY_SCREEN; - SetPSSCallback(Cb_ChangeScreen); + sWhichToReshow = SCREEN_CHANGE_SUMMARY_SCREEN - 1; + gStorage->screenChangeType = SCREEN_CHANGE_SUMMARY_SCREEN; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_GiveItemFromBag(u8 taskId) +static void Task_GiveItemFromBag(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gPSSData->state++; + gStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - sWhichToReshow = 2; - gPSSData->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; - SetPSSCallback(Cb_ChangeScreen); + sWhichToReshow = SCREEN_CHANGE_ITEM_FROM_BAG - 1; + gStorage->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_OnCloseBoxPressed(u8 taskId) +static void Task_OnCloseBoxPressed(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: if (IsMonBeingMoved()) { PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_HOLDING_POKE); - gPSSData->state = 1; + PrintStorageMessage(MSG_HOLDING_POKE); + gStorage->state = 1; } else if (IsActiveItemMoving()) - { - SetPSSCallback(Cb_CloseBoxWhileHoldingItem); - } + SetPokeStorageTask(Task_CloseBoxWhileHoldingItem); else { PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_EXIT_BOX); + PrintStorageMessage(MSG_EXIT_BOX); ShowYesNoWindow(0); - gPSSData->state = 2; + gStorage->state = 2; } break; case 1: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 2: @@ -1949,59 +1984,57 @@ static void Cb_OnCloseBoxPressed(u8 taskId) case MENU_B_PRESSED: case 1: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 0: PlaySE(SE_PC_OFF); ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; break; } break; case 3: BeginPCScreenEffect_TurnOff(20, 0, 1); - gPSSData->state++; + gStorage->state++; break; case 4: if (!IsPCScreenEffectRunning_TurnOff()) { - sub_808FF70(); + UpdateBoxToSendMons(); gPlayerPartyCount = CalculatePlayerPartyCount(); - gPSSData->screenChangeType = SCREEN_CHANGE_EXIT_BOX; - SetPSSCallback(Cb_ChangeScreen); + gStorage->screenChangeType = SCREEN_CHANGE_EXIT_BOX; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_OnBPressed(u8 taskId) +static void Task_OnBPressed(u8 taskId) { - switch (gPSSData->state) + switch (gStorage->state) { case 0: if (IsMonBeingMoved()) { PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_HOLDING_POKE); - gPSSData->state = 1; + PrintStorageMessage(MSG_HOLDING_POKE); + gStorage->state = 1; } else if (IsActiveItemMoving()) - { - SetPSSCallback(Cb_CloseBoxWhileHoldingItem); - } + SetPokeStorageTask(Task_CloseBoxWhileHoldingItem); else { PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_CONTINUE_BOX); + PrintStorageMessage(MSG_CONTINUE_BOX); ShowYesNoWindow(0); - gPSSData->state = 2; + gStorage->state = 2; } break; case 1: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 2: @@ -2009,65 +2042,65 @@ static void Cb_OnBPressed(u8 taskId) { case 0: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 1: case MENU_B_PRESSED: PlaySE(SE_PC_OFF); ClearBottomWindow(); - gPSSData->state++; + gStorage->state++; break; } break; case 3: BeginPCScreenEffect_TurnOff(20, 0, 0); - gPSSData->state++; + gStorage->state++; break; case 4: if (!IsPCScreenEffectRunning_TurnOff()) { - sub_808FF70(); + UpdateBoxToSendMons(); gPlayerPartyCount = CalculatePlayerPartyCount(); - gPSSData->screenChangeType = SCREEN_CHANGE_EXIT_BOX; - SetPSSCallback(Cb_ChangeScreen); + gStorage->screenChangeType = SCREEN_CHANGE_EXIT_BOX; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_ChangeScreen(u8 taskId) +static void Task_ChangeScreen(u8 taskId) { - struct Pokemon * partyMon; - u8 mode, monIndex, maxMonIndex; - u8 screenChangeType = gPSSData->screenChangeType; + struct Pokemon *party; + u8 mode, cursorPos, lastIndex; + u8 screenChangeType = gStorage->screenChangeType; - if (gPSSData->boxOption == OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE) - gUnknown_20397BA = GetMovingItem(); + if (gStorage->boxOption == OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE) + sMovingItemId = GetMovingItem(); else - gUnknown_20397BA = ITEM_NONE; + sMovingItemId = ITEM_NONE; switch (screenChangeType) { case SCREEN_CHANGE_EXIT_BOX: default: - FreePSSData(); + FreePokeStorageData(); SetMainCallback2(CB2_ExitPokeStorage); break; case SCREEN_CHANGE_SUMMARY_SCREEN: - partyMon = gPSSData->field_218C.mon; - monIndex = gPSSData->field_2187; - maxMonIndex = gPSSData->field_2186; - mode = gPSSData->summaryScreenMode; - FreePSSData(); - ShowPokemonSummaryScreen(partyMon, monIndex, maxMonIndex, Cb2_ReturnToPSS, mode); + party = gStorage->summaryMonPtr.mon; + cursorPos = gStorage->summaryCursorPos; + lastIndex = gStorage->summaryLastIndex; + mode = gStorage->summaryScreenMode; + FreePokeStorageData(); + ShowPokemonSummaryScreen(party, cursorPos, lastIndex, CB2_ReturnToPokeStorage, mode); break; case SCREEN_CHANGE_NAME_BOX: - FreePSSData(); - DoNamingScreen(NAMING_SCREEN_BOX, GetBoxNamePtr(StorageGetCurrentBox()), 0, 0, 0, Cb2_ReturnToPSS); + FreePokeStorageData(); + DoNamingScreen(NAMING_SCREEN_BOX, GetBoxNamePtr(StorageGetCurrentBox()), 0, 0, 0, CB2_ReturnToPokeStorage); break; case SCREEN_CHANGE_ITEM_FROM_BAG: - FreePSSData(); - GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_ITEMS, Cb2_ReturnToPSS); + FreePokeStorageData(); + GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_ITEMS, CB2_ReturnToPokeStorage); break; } @@ -2091,18 +2124,14 @@ static void GiveChosenBagItem(void) } } -static void FreePSSData(void) +static void FreePokeStorageData(void) { - FreeBoxPartyPokemonDropdowns(); - sub_80950A4(); - FREE_AND_SET_NULL(gPSSData); + TilemapUtil_Free(); + MultiMove_Free(); + FREE_AND_SET_NULL(gStorage); FreeAllWindowBuffers(); } -// ****************************************************************** -// Graphics util -// ****************************************************************** - static void SetScrollingBackground(void) { SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); @@ -2116,59 +2145,55 @@ static void ScrollBackground(void) ChangeBgY(3, 128, 2); } -static void LoadPSSMenuGfx(void) +static void LoadPokeStorageMenuGfx(void) { - InitBgsFromTemplates(0, gUnknown_83CEA50, NELEMS(gUnknown_83CEA50)); - DecompressAndLoadBgGfxUsingHeap(1, gPSSMenu_Gfx, 0, 0, 0); - LZ77UnCompWram(gUnknown_83CE5FC, gPSSData->field_5AC4); - SetBgTilemapBuffer(1, gPSSData->field_5AC4); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + DecompressAndLoadBgGfxUsingHeap(1, gPokeStorageMenu_Gfx, 0, 0, 0); + LZ77UnCompWram(sMenu_Tilemap, gStorage->menuTilemapBuffer); + SetBgTilemapBuffer(1, gStorage->menuTilemapBuffer); ShowBg(1); ScheduleBgCopyTilemapToVram(1); } -static bool8 InitPSSWindows(void) +static bool8 InitPokeStorageWindows(void) { - if (!InitWindows(gUnknown_83CEA30)) - { + if (!InitWindows(sWindowTemplates)) return FALSE; - } - else - { - DeactivateAllTextPrinters(); - return TRUE; - } + + DeactivateAllTextPrinters(); + return TRUE; } -static void LoadWaveformSpritePalette(void) +static void LoadsMiscSpritePalette(void) { - LoadSpritePalette(&sWaveformSpritePalette); + LoadSpritePalette(&sMiscSpritePalette); } -static void sub_808F078(void) +static void InitPalettesAndSprites(void) { - LoadPalette(gUnknown_8E9C3F8, 0, 0x20); - LoadPalette(gUnknown_8E9C418, 0x20, 0x20); - LoadPalette(gUnknown_83CEA10, 0xF0, 0x20); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - LoadPalette(gUnknown_83CE738, 0x30, 0x20); + LoadPalette(gPokeStorageInterface_Pal, 0, 0x20); + LoadPalette(gPokeStorageInterface_NoDisplayMon_Pal, 0x20, 0x20); + LoadPalette(sTextWindows_Pal, 0xF0, 0x20); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + LoadPalette(sScrollingBg_Pal, 0x30, sizeof(sScrollingBg_Pal)); else - LoadPalette(gUnknown_83CE758, 0x30, 0x20); + LoadPalette(sScrollingBgMoveItems_Pal, 0x30, sizeof(sScrollingBgMoveItems_Pal)); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); - LoadCursorMonSprite(); - PSS_CreateMonMarkingSprite(); + CreateDisplayMonSprite(); + CreateMarkingComboSprite(); CreateWaveformSprites(); - RefreshCursorMonData(); + RefreshDisplayMonData(); } -static void PSS_CreateMonMarkingSprite(void) +static void CreateMarkingComboSprite(void) { - gPSSData->markingComboSprite = CreateMonMarkingComboSprite(TAG_TILE_10, TAG_PAL_DAC8, NULL); - gPSSData->markingComboSprite->oam.priority = 1; - gPSSData->markingComboSprite->subpriority = 1; - gPSSData->markingComboSprite->x = 40; - gPSSData->markingComboSprite->y = 150; - gPSSData->markingComboTilesPtr = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10); + gStorage->markingComboSprite = CreateMonMarkingComboSprite(GFXTAG_MARKING_COMBO, PALTAG_MARKING_COMBO, NULL); + gStorage->markingComboSprite->oam.priority = 1; + gStorage->markingComboSprite->subpriority = 1; + gStorage->markingComboSprite->x = 40; + gStorage->markingComboSprite->y = 150; + gStorage->markingComboTilesPtr = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(GFXTAG_MARKING_COMBO); } static void CreateWaveformSprites(void) @@ -2180,37 +2205,37 @@ static void CreateWaveformSprites(void) for (i = 0; i < 2; i++) { u8 spriteId = CreateSprite(&sSpriteTemplate_Waveform, i * 63 + 8, 9, 2); - gPSSData->waveformSprites[i] = &gSprites[spriteId]; + gStorage->waveformSprites[i] = &gSprites[spriteId]; } } -static void RefreshCursorMonData(void) +static void RefreshDisplayMonData(void) { - LoadCursorMonGfx(gPSSData->displayMonSpecies, gPSSData->displayMonPersonality); - PrintCursorMonInfo(); - sub_808F5E8(); + LoadDisplayMonGfx(gStorage->displayMonSpecies, gStorage->displayMonPersonality); + PrintDisplayMonInfo(); + UpdateWaveformAnimation(); ScheduleBgCopyTilemapToVram(0); } -static void BoxSetMosaic(void) +static void StartDisplayMonMosaic(void) { - RefreshCursorMonData(); - if (gPSSData->cursorMonSprite) + RefreshDisplayMonData(); + if (gStorage->displayMonSprite) { - gPSSData->cursorMonSprite->oam.mosaic = TRUE; - gPSSData->cursorMonSprite->data[0] = 10; - gPSSData->cursorMonSprite->data[1] = 1; - gPSSData->cursorMonSprite->callback = SpriteCB_CursorMon_Mosaic; - SetGpuReg(REG_OFFSET_MOSAIC, (gPSSData->cursorMonSprite->data[0] << 12) | (gPSSData->cursorMonSprite->data[0] << 8)); + gStorage->displayMonSprite->oam.mosaic = TRUE; + gStorage->displayMonSprite->data[0] = 10; + gStorage->displayMonSprite->data[1] = 1; + gStorage->displayMonSprite->callback = SpriteCB_DisplayMonMosaic; + SetGpuReg(REG_OFFSET_MOSAIC, (gStorage->displayMonSprite->data[0] << 12) | (gStorage->displayMonSprite->data[0] << 8)); } } -static u8 BoxGetMosaic(void) +static u8 IsDisplayMonMosaicActive(void) { - return gPSSData->cursorMonSprite->oam.mosaic; + return gStorage->displayMonSprite->oam.mosaic; } -static void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite) +static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite) { sprite->data[0] -= sprite->data[1]; if (sprite->data[0] < 0) @@ -2223,22 +2248,22 @@ static void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite) } } -static void LoadCursorMonSprite(void) +static void CreateDisplayMonSprite(void) { u16 i; u16 tileStart; u8 palSlot; u8 spriteId; - struct SpriteSheet sheet = {gPSSData->field_22C4, 0x800, TAG_TILE_2}; - struct SpritePalette palette = {gPSSData->field_2244, TAG_PAL_DAC6}; - struct SpriteTemplate template = sSpriteTemplate_CursorMon; + struct SpriteSheet sheet = {gStorage->tileBuffer, MON_PIC_SIZE, GFXTAG_DISPLAY_MON}; + struct SpritePalette palette = {gStorage->displayMonPalBuffer, PALTAG_DISPLAY_MON}; + struct SpriteTemplate template = sSpriteTemplate_DisplayMon; - for (i = 0; i < 0x800; i++) - gPSSData->field_22C4[i] = 0; + for (i = 0; i < MON_PIC_SIZE; i++) + gStorage->tileBuffer[i] = 0; for (i = 0; i < 0x10; i++) - gPSSData->field_2244[i] = 0; + gStorage->displayMonPalBuffer[i] = 0; - gPSSData->cursorMonSprite = NULL; + gStorage->displayMonSprite = NULL; do { @@ -2254,170 +2279,161 @@ static void LoadCursorMonSprite(void) if (spriteId == MAX_SPRITES) break; - gPSSData->cursorMonSprite = &gSprites[spriteId]; - gPSSData->field_223A = palSlot * 16 + 0x100; - gPSSData->field_223C = (void *)OBJ_VRAM0 + tileStart * 32; - } while (0); + gStorage->displayMonSprite = &gSprites[spriteId]; + gStorage->displayMonPalOffset = palSlot * 16 + 0x100; + gStorage->displayMonTilePtr = (void *)OBJ_VRAM0 + tileStart * 32; + } while (FALSE); - if (gPSSData->cursorMonSprite == NULL) + if (gStorage->displayMonSprite == NULL) { - FreeSpriteTilesByTag(TAG_TILE_2); - FreeSpritePaletteByTag(TAG_PAL_DAC6); + FreeSpriteTilesByTag(GFXTAG_DISPLAY_MON); + FreeSpritePaletteByTag(PALTAG_DISPLAY_MON); } } -static void LoadCursorMonGfx(u16 species, u32 pid) +static void LoadDisplayMonGfx(u16 species, u32 personality) { - if (gPSSData->cursorMonSprite == NULL) + if (gStorage->displayMonSprite == NULL) return; if (species != SPECIES_NONE) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gPSSData->field_22C4, species, pid); - LZ77UnCompWram(gPSSData->displayMonPalette, gPSSData->field_2244); - CpuCopy32(gPSSData->field_22C4, gPSSData->field_223C, 0x800); - LoadPalette(gPSSData->field_2244, gPSSData->field_223A, 0x20); - gPSSData->cursorMonSprite->invisible = FALSE; + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gStorage->tileBuffer, species, personality); + LZ77UnCompWram(gStorage->displayMonPalette, gStorage->displayMonPalBuffer); + CpuCopy32(gStorage->tileBuffer, gStorage->displayMonTilePtr, 0x800); + LoadPalette(gStorage->displayMonPalBuffer, gStorage->displayMonPalOffset, 0x20); + gStorage->displayMonSprite->invisible = FALSE; } else - { - gPSSData->cursorMonSprite->invisible = TRUE; - } + gStorage->displayMonSprite->invisible = TRUE; } -static void PrintCursorMonInfo(void) +static void PrintDisplayMonInfo(void) { u16 i; u16 y; FillWindowPixelBuffer(0, PIXEL_FILL(1)); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { for (i = 0, y = 0; i < 3; i++, y += 14) - { - AddTextPrinterParameterized(0, FONT_2, gPSSData->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); - } - AddTextPrinterParameterized(0, FONT_0, gPSSData->displayMonTexts[3], 6, y + 2, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(0, FONT_2, gStorage->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); + + AddTextPrinterParameterized(0, FONT_0, gStorage->displayMonTexts[3], 6, y + 2, TEXT_SKIP_DRAW, NULL); } else { - AddTextPrinterParameterized(0, FONT_0, gPSSData->displayMonTexts[3], 6, 0, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(0, FONT_0, gStorage->displayMonTexts[3], 6, 0, TEXT_SKIP_DRAW, NULL); for (i = 0, y = 15; i < 3; i++, y += 14) - { - AddTextPrinterParameterized(0, FONT_2, gPSSData->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); - } + AddTextPrinterParameterized(0, FONT_2, gStorage->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); } CopyWindowToVram(0, COPYWIN_GFX); - if (gPSSData->displayMonSpecies != SPECIES_NONE) + if (gStorage->displayMonSpecies != SPECIES_NONE) { - UpdateMonMarkingTiles(gPSSData->displayMonMarkings, gPSSData->markingComboTilesPtr); - gPSSData->markingComboSprite->invisible = FALSE; + UpdateMonMarkingTiles(gStorage->displayMonMarkings, gStorage->markingComboTilesPtr); + gStorage->markingComboSprite->invisible = FALSE; } else - { - gPSSData->markingComboSprite->invisible = TRUE; - } + gStorage->markingComboSprite->invisible = TRUE; } -static void sub_808F5E8(void) +static void UpdateWaveformAnimation(void) { u16 i; - if (gPSSData->displayMonSpecies != SPECIES_NONE) + if (gStorage->displayMonSpecies != SPECIES_NONE) { - SetBoxPartyPokemonDropdownMap2Rect(0, 0, 0, 8, 2); + TilemapUtil_SetRect(TILEMAP_PKMN_DATA, 0, 0, 8, 2); for (i = 0; i < 2; i++) - StartSpriteAnimIfDifferent(gPSSData->waveformSprites[i], i * 2 + 1); + StartSpriteAnimIfDifferent(gStorage->waveformSprites[i], i * 2 + 1); } else { - SetBoxPartyPokemonDropdownMap2Rect(0, 0, 2, 8, 2); + TilemapUtil_SetRect(TILEMAP_PKMN_DATA, 0, 2, 8, 2); for (i = 0; i < 2; i++) - StartSpriteAnim(gPSSData->waveformSprites[i], i * 2); + StartSpriteAnim(gStorage->waveformSprites[i], i * 2); } - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(0); + TilemapUtil_Update(TILEMAP_PKMN_DATA); ScheduleBgCopyTilemapToVram(1); } -static void sub_808F68C(void) +static void InitSupplementalTilemaps(void) { - LZ77UnCompWram(gUnknown_8E9CAEC, gPSSData->partyMenuTilemapBuffer); - LoadPalette(gPSSMenu_Pal, 0x10, 0x20); - SetBoxPartyPokemonDropdownMap2(1, 1, gPSSData->partyMenuTilemapBuffer, 12, 22); - SetBoxPartyPokemonDropdownMap2(2, 1, gUnknown_83CE778, 9, 4); - SetBoxPartyPokemonDropdownMap2Pos(1, 10, 0); - SetBoxPartyPokemonDropdownMap2Pos(2, 21, 0); - sub_808F9FC(); + LZ77UnCompWram(gPokeStoragePartyMenu_Tilemap, gStorage->partyMenuTilemapBuffer); + LoadPalette(gPokeStoragePartyMenu_Pal, 0x10, 0x20); + TilemapUtil_SetTilemap(TILEMAP_PARTY_MENU, 1, gStorage->partyMenuTilemapBuffer, 12, 22); + TilemapUtil_SetTilemap(TILEMAP_CLOSE_BUTTON, 1, sCloseBoxButton_Tilemap, 9, 4); + TilemapUtil_SetPos(TILEMAP_PARTY_MENU, 10, 0); + TilemapUtil_SetPos(TILEMAP_CLOSE_BUTTON, 21, 0); + SetPartySlotTilemaps(); if (sInPartyMenu) { - sub_808F90C(TRUE); + UpdateCloseBoxButtonTilemap(TRUE); CreatePartyMonsSprites(TRUE); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); + TilemapUtil_Update(TILEMAP_PARTY_MENU); } else { - SetBoxPartyPokemonDropdownMap2Rect(1, 0, 20, 12, 2); - sub_808F90C(TRUE); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + TilemapUtil_SetRect(TILEMAP_PARTY_MENU, 0, 20, 12, 2); + UpdateCloseBoxButtonTilemap(TRUE); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); } ScheduleBgCopyTilemapToVram(1); - gPSSData->closeBoxFlashing = FALSE; + gStorage->closeBoxFlashing = FALSE; } static void SetUpShowPartyMenu(void) { - gPSSData->partyMenuUnused1 = 20; - gPSSData->partyMenuY = 2; - gPSSData->partyMenuMoveTimer = 0; + gStorage->partyMenuUnused1 = 20; + gStorage->partyMenuY = 2; + gStorage->partyMenuMoveTimer = 0; CreatePartyMonsSprites(FALSE); } static bool8 ShowPartyMenu(void) { - if (gPSSData->partyMenuMoveTimer == 20) + if (gStorage->partyMenuMoveTimer == 20) return FALSE; - gPSSData->partyMenuUnused1--; - gPSSData->partyMenuY++; - AdjustBoxPartyPokemonDropdownPos(1, 3, 1); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + gStorage->partyMenuUnused1--; + gStorage->partyMenuY++; + TilemapUtil_Move(TILEMAP_PARTY_MENU, 3, 1); + TilemapUtil_Update(TILEMAP_PARTY_MENU); ScheduleBgCopyTilemapToVram(1); - sub_8090B98(8); - if (++gPSSData->partyMenuMoveTimer == 20) + MovePartySprites(8); + if (++gStorage->partyMenuMoveTimer == 20) { sInPartyMenu = TRUE; return FALSE; } else - { return TRUE; - } } static void SetUpHidePartyMenu(void) { - gPSSData->partyMenuUnused1 = 0; - gPSSData->partyMenuY = 22; - gPSSData->partyMenuMoveTimer = 0; - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - sub_80960C0(); + gStorage->partyMenuUnused1 = 0; + gStorage->partyMenuY = 22; + gStorage->partyMenuMoveTimer = 0; + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + MoveHeldItemWithPartyMenu(); } static bool8 HidePartyMenu(void) { - if (gPSSData->partyMenuMoveTimer != 20) + if (gStorage->partyMenuMoveTimer != 20) { - gPSSData->partyMenuUnused1++; - gPSSData->partyMenuY--; - AdjustBoxPartyPokemonDropdownPos(1, 3, -1); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - FillBgTilemapBufferRect_Palette0(1, 0x100, 10, gPSSData->partyMenuY, 12, 1); - sub_8090B98(-8); - if (++gPSSData->partyMenuMoveTimer != 20) + gStorage->partyMenuUnused1++; + gStorage->partyMenuY--; + TilemapUtil_Move(TILEMAP_PARTY_MENU, 3, -1); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + FillBgTilemapBufferRect_Palette0(1, 0x100, 10, gStorage->partyMenuY, 12, 1); + MovePartySprites(-8); + if (++gStorage->partyMenuMoveTimer != 20) { ScheduleBgCopyTilemapToVram(1); return TRUE; @@ -2427,8 +2443,8 @@ static bool8 HidePartyMenu(void) sInPartyMenu = FALSE; DestroyAllPartyMonIcons(); CompactPartySlots(); - SetBoxPartyPokemonDropdownMap2Rect(2, 0, 0, 9, 2); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + TilemapUtil_SetRect(TILEMAP_CLOSE_BUTTON, 0, 0, 9, 2); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); ScheduleBgCopyTilemapToVram(1); return FALSE; } @@ -2437,63 +2453,65 @@ static bool8 HidePartyMenu(void) return FALSE; } -static void sub_808F90C(bool8 arg0) +static void UpdateCloseBoxButtonTilemap(bool8 normal) { - if (arg0) - SetBoxPartyPokemonDropdownMap2Rect(2, 0, 0, 9, 2); + if (normal) + TilemapUtil_SetRect(TILEMAP_CLOSE_BUTTON, 0, 0, 9, 2); else - SetBoxPartyPokemonDropdownMap2Rect(2, 0, 2, 9, 2); + TilemapUtil_SetRect(TILEMAP_CLOSE_BUTTON, 0, 2, 9, 2); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); ScheduleBgCopyTilemapToVram(1); } -static void sub_808F948(void) +static void StartFlashingCloseBoxButton(void) { - gPSSData->closeBoxFlashing = TRUE; - gPSSData->closeBoxFlashTimer = 30; - gPSSData->closeBoxFlashState = TRUE; + gStorage->closeBoxFlashing = TRUE; + gStorage->closeBoxFlashTimer = 30; + gStorage->closeBoxFlashState = TRUE; } -static void sub_808F974(void) +static void StopFlashingCloseBoxButton(void) { - if (gPSSData->closeBoxFlashing) + if (gStorage->closeBoxFlashing) { - gPSSData->closeBoxFlashing = FALSE; - sub_808F90C(TRUE); + gStorage->closeBoxFlashing = FALSE; + UpdateCloseBoxButtonTilemap(TRUE); } } -static void sub_808F99C(void) +static void UpdateCloseBoxButtonFlash(void) { - if (gPSSData->closeBoxFlashing && ++gPSSData->closeBoxFlashTimer > 30) + if (gStorage->closeBoxFlashing && ++gStorage->closeBoxFlashTimer > 30) { - gPSSData->closeBoxFlashTimer = 0; - gPSSData->closeBoxFlashState = (gPSSData->closeBoxFlashState == FALSE); - sub_808F90C(gPSSData->closeBoxFlashState); + gStorage->closeBoxFlashTimer = 0; + gStorage->closeBoxFlashState = (gStorage->closeBoxFlashState == FALSE); + UpdateCloseBoxButtonTilemap(gStorage->closeBoxFlashState); } } -static void sub_808F9FC(void) +static void SetPartySlotTilemaps(void) { u8 i; + // Skips first party slot, it should always be drawn + // as if it has a Pokémon in it for (i = 1; i < PARTY_SIZE; i++) { s32 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); - sub_808FA30(i, (species != SPECIES_NONE)); + SetPartySlotTilemap(i, (species != SPECIES_NONE)); } } -static void sub_808FA30(u8 pos, bool8 isPartyMon) +static void SetPartySlotTilemap(u8 pos, bool8 isFilled) { u16 i, j, index; - const u16 *data; + const u16 *tilemap; - if (isPartyMon) - data = gUnknown_83CE7C0; + if (isFilled) + tilemap = sPartySlotFilled_Tilemap; else - data = gUnknown_83CE7D8; + tilemap = sPartySlotEmpty_Tilemap; index = 3 * (3 * (pos - 1) + 1); index *= 4; @@ -2501,46 +2519,45 @@ static void sub_808FA30(u8 pos, bool8 isPartyMon) for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) - { - gPSSData->partyMenuTilemapBuffer[index + j] = data[j]; - } - data += 4; + gStorage->partyMenuTilemapBuffer[index + j] = tilemap[j]; + + tilemap += 4; index += 12; } } -static void sub_808FAA8(void) +static void UpdatePartySlotColors(void) { - sub_808F9FC(); - SetBoxPartyPokemonDropdownMap2Rect(1, 0, 0, 12, 22); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + SetPartySlotTilemaps(); + TilemapUtil_SetRect(TILEMAP_PARTY_MENU, 0, 0, 12, 22); + TilemapUtil_Update(TILEMAP_PARTY_MENU); ScheduleBgCopyTilemapToVram(1); } static void SetUpDoShowPartyMenu(void) { - gPSSData->showPartyMenuState = 0; + gStorage->showPartyMenuState = 0; PlaySE(SE_WIN_OPEN); SetUpShowPartyMenu(); } static bool8 DoShowPartyMenu(void) { - switch (gPSSData->showPartyMenuState) + switch (gStorage->showPartyMenuState) { case 0: if (!ShowPartyMenu()) { - sub_8092AE4(); - gPSSData->showPartyMenuState++; + SetCursorInParty(); + gStorage->showPartyMenuState++; } break; case 1: - if (!sub_80924A8()) + if (!UpdateCursorPos()) { - if (gPSSData->setMosaic) - BoxSetMosaic(); - gPSSData->showPartyMenuState++; + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + gStorage->showPartyMenuState++; } break; case 2: @@ -2549,50 +2566,50 @@ static bool8 DoShowPartyMenu(void) return TRUE; } -static void sub_808FB68(void) +static void InitPokeStorageBg0(void) { SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); - TextWindow_SetStdFrame0_WithPal(1, 2, 208); + TextWindow_SetStdFrame0_WithPal(1, 2, 0xD0); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); CopyBgTilemapBufferToVram(0); } -static void PrintStorageActionText(u8 id) +static void PrintStorageMessage(u8 id) { u8 *txtPtr; DynamicPlaceholderTextUtil_Reset(); - switch (sPCStorageActionTexts[id].format) + switch (sMessages[id].format) { - case PC_TEXT_FMT_NORMAL: + case MSG_FMT_NONE: break; - case PC_TEXT_FMT_MON_NAME_1: - case PC_TEXT_FMT_MON_NAME_2: - case PC_TEXT_FMT_MON_NAME_3: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->displayMonName); + case MSG_FMT_MON_NAME_1: + case MSG_FMT_MON_NAME_2: + case MSG_FMT_MON_NAME_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStorage->displayMonNickname); break; - case PC_TEXT_FMT_MON_NAME_4: - case PC_TEXT_FMT_MON_NAME_5: - case PC_TEXT_FMT_MON_NAME_6: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->field_21E0); + case MSG_FMT_RELEASE_MON_1: + case MSG_FMT_RELEASE_MON_2: + case MSG_FMT_RELEASE_MON_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStorage->releaseMonName); break; - case PC_TEXT_FMT_ITEM_NAME: + case MSG_FMT_ITEM_NAME: if (IsActiveItemMoving()) - txtPtr = StringCopy(gPSSData->itemName, GetMovingItemName()); + txtPtr = StringCopy(gStorage->itemName, GetMovingItemName()); else - txtPtr = StringCopy(gPSSData->itemName, gPSSData->displayMonTexts[3]); + txtPtr = StringCopy(gStorage->itemName, gStorage->displayMonTexts[3]); while (*(txtPtr - 1) == CHAR_SPACE) txtPtr--; *txtPtr = EOS; - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->itemName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStorage->itemName); break; } - DynamicPlaceholderTextUtil_ExpandPlaceholders(gPSSData->field_2190, sPCStorageActionTexts[id].text); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStorage->actionText, sMessages[id].text); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - AddTextPrinterParameterized(1, FONT_1, gPSSData->field_2190, 0, 2, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(1, FONT_1, gStorage->actionText, 0, 2, TEXT_SKIP_DRAW, NULL); DrawTextBorderOuter(1, 2, 13); PutWindowTilemap(1); CopyWindowToVram(1, COPYWIN_GFX); @@ -2601,7 +2618,7 @@ static void PrintStorageActionText(u8 id) static void ShowYesNoWindow(s8 cursorPos) { - CreateYesNoMenu(&sYesNoWindowTemplate, FONT_1, 0, 2, 0x00b, 14, 1); + CreateYesNoMenu(&sYesNoWindowTemplate, FONT_1, 0, 2, 11, 14, 1); Menu_MoveCursorNoWrapAround(cursorPos); } @@ -2614,10 +2631,10 @@ static void ClearBottomWindow(void) static void AddWallpaperSetsMenu(void) { InitMenu(); - SetMenuText(PC_TEXT_SCENERY1); - SetMenuText(PC_TEXT_SCENERY2); - SetMenuText(PC_TEXT_SCENERY3); - SetMenuText(PC_TEXT_ETCETERA); + SetMenuText(MENU_TEXT_SCENERY_1); + SetMenuText(MENU_TEXT_SCENERY_2); + SetMenuText(MENU_TEXT_SCENERY_3); + SetMenuText(MENU_TEXT_ETCETERA); AddMenu(); } @@ -2626,29 +2643,29 @@ static void AddWallpapersMenu(u8 wallpaperSet) InitMenu(); switch (wallpaperSet) { - case 0: - SetMenuText(PC_TEXT_FOREST); - SetMenuText(PC_TEXT_CITY); - SetMenuText(PC_TEXT_DESERT); - SetMenuText(PC_TEXT_SAVANNA); + case 0: // SCENERY_1 + SetMenuText(MENU_TEXT_FOREST); + SetMenuText(MENU_TEXT_CITY); + SetMenuText(MENU_TEXT_DESERT); + SetMenuText(MENU_TEXT_SAVANNA); break; - case 1: - SetMenuText(PC_TEXT_CRAG); - SetMenuText(PC_TEXT_VOLCANO); - SetMenuText(PC_TEXT_SNOW); - SetMenuText(PC_TEXT_CAVE); + case 1: // SCENERY_2 + SetMenuText(MENU_TEXT_CRAG); + SetMenuText(MENU_TEXT_VOLCANO); + SetMenuText(MENU_TEXT_SNOW); + SetMenuText(MENU_TEXT_CAVE); break; - case 2: - SetMenuText(PC_TEXT_BEACH); - SetMenuText(PC_TEXT_SEAFLOOR); - SetMenuText(PC_TEXT_RIVER); - SetMenuText(PC_TEXT_SKY); + case 2: // SCENERY_3 + SetMenuText(MENU_TEXT_BEACH); + SetMenuText(MENU_TEXT_SEAFLOOR); + SetMenuText(MENU_TEXT_RIVER); + SetMenuText(MENU_TEXT_SKY); break; - case 3: - SetMenuText(PC_TEXT_POLKADOT); - SetMenuText(PC_TEXT_POKECENTER); - SetMenuText(PC_TEXT_MACHINE); - SetMenuText(PC_TEXT_SIMPLE); + case 3: // ETCETERA + SetMenuText(MENU_TEXT_POLKADOT); + SetMenuText(MENU_TEXT_POKECENTER); + SetMenuText(MENU_TEXT_MACHINE); + SetMenuText(MENU_TEXT_SIMPLE); break; } AddMenu(); @@ -2659,42 +2676,42 @@ u8 GetCurrentBoxOption(void) return sCurrentBoxOption; } -static void sub_808FDFC(void) +static void InitCursorItemIcon(void) { if (!IsCursorOnBoxTitle()) { if (sInPartyMenu) - sub_8095C84(CURSOR_AREA_IN_PARTY, GetBoxCursorPosition()); + TryLoadItemIconAtPos(CURSOR_AREA_IN_PARTY, GetBoxCursorPosition()); else - sub_8095C84(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); } - if (gUnknown_20397BA != ITEM_NONE) + if (sMovingItemId != ITEM_NONE) { - sub_8095E2C(gUnknown_20397BA); - sub_8094D14(3); + InitItemIconInCursor(sMovingItemId); + StartCursorAnim(CURSOR_ANIM_FIST); } } -static void sub_808FE54(u8 action) +static void SetPokeStorageQuestLogEvent(u8 action) { u16 event; - u8 fromBox = sub_8094D34(); - u16 species = gPSSData->displayMonSpecies; + struct PokeStorageQuestLogData *questLogData; + u8 box1 = GetMovingMonOriginalBoxId(); + u16 species1 = gStorage->displayMonSpecies; u16 species2; - u8 toBox; - struct PssQuestLogBuffer * qlogBuffer; + u8 box2; if (sInPartyMenu) { - toBox = TOTAL_BOXES_COUNT; + box2 = TOTAL_BOXES_COUNT; species2 = GetMonData(&gPlayerParty[GetBoxCursorPosition()], MON_DATA_SPECIES2); } else { - toBox = StorageGetCurrentBox(); + box2 = StorageGetCurrentBox(); species2 = GetCurrentBoxMonData(GetBoxCursorPosition(), MON_DATA_SPECIES2); } - qlogBuffer = &gPSSData->qlogBuffer; + questLogData = &gStorage->pokeStorageQuestLogData; switch (action) { @@ -2703,47 +2720,47 @@ static void sub_808FE54(u8 action) case 0: if (sInPartyMenu) { - if (fromBox == TOTAL_BOXES_COUNT) + if (box1 == TOTAL_BOXES_COUNT) return; else event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; } else { - if (fromBox == TOTAL_BOXES_COUNT) + if (box1 == TOTAL_BOXES_COUNT) // Should upmerge but doesn't event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; else - event = fromBox != toBox ? QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES : QL_EVENT_SWITCHED_MONS_WITHIN_BOX; + event = box1 != box2 ? QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES : QL_EVENT_SWITCHED_MONS_WITHIN_BOX; } - qlogBuffer->species = species; - qlogBuffer->species2 = species2; - qlogBuffer->fromBox = fromBox; - qlogBuffer->toBox = toBox; + questLogData->species1 = species1; + questLogData->species2 = species2; + questLogData->box1 = box1; + questLogData->box2 = box2; break; case 1: - qlogBuffer->species = species; - qlogBuffer->species2 = SPECIES_NONE; - qlogBuffer->fromBox = fromBox; - qlogBuffer->toBox = 0xFF; + questLogData->species1 = species1; + questLogData->species2 = SPECIES_NONE; + questLogData->box1 = box1; + questLogData->box2 = 0xFF; if (sInPartyMenu) { - if (fromBox == TOTAL_BOXES_COUNT) + if (box1 == TOTAL_BOXES_COUNT) return; else event = QL_EVENT_WITHDREW_MON_PC; } else { - if (fromBox == TOTAL_BOXES_COUNT) + if (box1 == TOTAL_BOXES_COUNT) { event = QL_EVENT_DEPOSITED_MON_PC; - qlogBuffer->fromBox = toBox; + questLogData->box1 = box2; } - else if (fromBox != toBox) + else if (box1 != box2) { event = QL_EVENT_MOVED_MON_BETWEEN_BOXES; - qlogBuffer->toBox = toBox; + questLogData->box2 = box2; } else event = QL_EVENT_MOVED_MON_WITHIN_BOX; @@ -2751,23 +2768,23 @@ static void sub_808FE54(u8 action) break; case 2: event = QL_EVENT_DEPOSITED_MON_PC; - qlogBuffer->species = species; - qlogBuffer->species2 = SPECIES_NONE; - qlogBuffer->fromBox = gUnknown_20397B6; - qlogBuffer->toBox = 0xFF; + questLogData->species1 = species1; + questLogData->species2 = SPECIES_NONE; + questLogData->box1 = sDepositBoxId; + questLogData->box2 = 0xFF; break; case 3: event = QL_EVENT_SWITCHED_MULTIPLE_MONS; - qlogBuffer->species = SPECIES_NONE; - qlogBuffer->species2 = SPECIES_NONE; - qlogBuffer->fromBox = fromBox; - qlogBuffer->toBox = toBox; + questLogData->species1 = SPECIES_NONE; + questLogData->species2 = SPECIES_NONE; + questLogData->box1 = box1; + questLogData->box2 = box2; break; } - SetQuestLogEvent(event, (const void *)qlogBuffer); + SetQuestLogEvent(event, (const u16 *)questLogData); } -static void sub_808FF70(void) +static void UpdateBoxToSendMons(void) { if (sLastUsedBox != StorageGetCurrentBox()) { diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c index cbd2f1b9c..11eccef85 100644 --- a/src/pokemon_storage_system_4.c +++ b/src/pokemon_storage_system_4.c @@ -9,43 +9,43 @@ #include "task.h" #include "trig.h" -static void sub_8090324(struct Sprite *sprite); +static void SpriteCB_BoxMonIconScrollOut(struct Sprite *sprite); static void SetBoxSpeciesAndPersonalities(u8 boxId); -static void sub_8090A74(struct Sprite *sprite, u16 idx); -static void sub_8090AE0(struct Sprite *sprite); +static void MovePartySpriteToNextSlot(struct Sprite *sprite, u16 idx); +static void SpriteCB_MovePartySpriteToNextSlot(struct Sprite *sprite); static void DestroyBoxMonIcon(struct Sprite *sprite); -static void sub_80911B0(struct Sprite *sprite); -static void sub_8091420(u8 taskId); -static s8 sub_80916F4(u8 boxId); +static void SpriteCB_HeldMon(struct Sprite *sprite); +static void Task_InitBox(u8 taskId); +static s8 DetermineBoxScrollDirection(u8 boxId); static void LoadWallpaperGfx(u8 wallpaperId, s8 direction); static bool32 WaitForWallpaperGfxLoad(void); -static void sub_8091984(void *buffer, const void *buffer2, s8 direction, u8 baseBlock); -static void sub_8091A24(void *buffer); -static void sub_8091A94(u8 wallpaperId); -static void sub_8091C48(u8 wallpaperId, s8 direction); -static void sub_8091E84(struct Sprite *sprite); -static void sub_8091EB8(struct Sprite *sprite); +static void DrawWallpaper(void *unused, const void *tilemap, s8 direction, u8 offset); +static void TrimOldWallpaper(void *buffer); +static void InitBoxTitle(u8 wallpaperId); +static void CreateIncomingBoxTitle(u8 wallpaperId, s8 direction); +static void SpriteCB_IncomingBoxTitle(struct Sprite *sprite); +static void SpriteCB_OutgoingBoxTitle(struct Sprite *sprite); static s16 GetBoxTitleBaseX(const u8 *boxName); -static void sub_8091E34(void); +static void CycleBoxTitleSprites(void); static void CycleBoxTitleColor(void); static void CreateBoxScrollArrows(void); static void StartBoxScrollArrowsSlide(s8 direction); static void StopBoxScrollArrowsSlide(void); -static void SpriteCB_Arrow(struct Sprite *sprite); +static void SpriteCB_BoxScrollArrow(struct Sprite *sprite); -static const struct OamData gUnknown_83CEC08; +static const struct OamData sOamData_MonIcon; -static const struct SpriteTemplate gUnknown_83CEBF0 = { - .tileTag = TAG_TILE_12, - .paletteTag = TAG_PAL_DAC0, - .oam = &gUnknown_83CEC08, +static const struct SpriteTemplate sSpriteTemplate_MonIcon = { + .tileTag = GFXTAG_MON_ICON, + .paletteTag = PALTAG_MON_ICON_0, + .oam = &sOamData_MonIcon, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gUnknown_83CEC08 = { +static const struct OamData sOamData_MonIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -60,120 +60,139 @@ static const struct OamData gUnknown_83CEC08 = { .paletteNum = 0 }; -static const union AffineAnimCmd gUnknown_83CEC10[] = { +static const union AffineAnimCmd sAffineAnim_ReleaseMon_Release[] = { AFFINEANIMCMD_FRAME(-2, -2, 0, 120), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83CEC20[] = { +static const union AffineAnimCmd sAffineAnim_ReleaseMon_ComeBack[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 0), AFFINEANIMCMD_FRAME(16, 16, 0, 15), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_83CEC38[] = { - gUnknown_83CEC10, - gUnknown_83CEC20 +static const union AffineAnimCmd *const sAffineAnims_ReleaseMon[] = { + [RELEASE_ANIM_RELEASE] = sAffineAnim_ReleaseMon_Release, + [RELEASE_ANIM_COME_BACK] = sAffineAnim_ReleaseMon_ComeBack, }; -static const u16 gUnknown_83CEC40[] = INCBIN_U16("graphics/interface/pss_unk_83CEC40.gbapal"); -static const u32 gUnknown_83CEC80[] = INCBIN_U32("graphics/interface/pss_unk_83CEC80.4bpp.lz"); -static const u32 gUnknown_83CF050[] = INCBIN_U32("graphics/interface/pss_unk_83CF050.bin.lz"); -static const u16 gUnknown_83CF12C[] = INCBIN_U16("graphics/interface/pss_unk_83CF12C.gbapal"); -static const u32 gUnknown_83CF16C[] = INCBIN_U32("graphics/interface/pss_unk_83CF16C.4bpp.lz"); -static const u32 gUnknown_83CF374[] = INCBIN_U32("graphics/interface/pss_unk_83CF374.bin.lz"); -static const u16 gUnknown_83CF424[] = INCBIN_U16("graphics/interface/pss_unk_83CF424.gbapal"); -static const u32 gUnknown_83CF464[] = INCBIN_U32("graphics/interface/pss_unk_83CF464.4bpp.lz"); -static const u32 gUnknown_83CF750[] = INCBIN_U32("graphics/interface/pss_unk_83CF750.bin.lz"); -static const u16 gUnknown_83CF834[] = INCBIN_U16("graphics/interface/pss_unk_83CF834.gbapal"); -static const u32 gUnknown_83CF874[] = INCBIN_U32("graphics/interface/pss_unk_83CF874.4bpp.lz"); -static const u32 gUnknown_83CFA94[] = INCBIN_U32("graphics/interface/pss_unk_83CFA94.bin.lz"); -static const u16 gUnknown_83CFB60[] = INCBIN_U16("graphics/interface/pss_unk_83CFB60.gbapal"); -static const u32 gUnknown_83CFBA0[] = INCBIN_U32("graphics/interface/pss_unk_83CFBA0.4bpp.lz"); -static const u32 gUnknown_83CFEF0[] = INCBIN_U32("graphics/interface/pss_unk_83CFEF0.bin.lz"); -static const u16 gUnknown_83CFFC8[] = INCBIN_U16("graphics/interface/pss_unk_83CFFC8.gbapal"); -static const u32 gUnknown_83D0008[] = INCBIN_U32("graphics/interface/pss_unk_83D0008.4bpp.lz"); -static const u8 sSpace_83D0338[4] = {}; -static const u32 gUnknown_83D033C[] = INCBIN_U32("graphics/interface/pss_unk_83D033C.bin.lz"); -static const u16 gUnknown_83D0414[] = INCBIN_U16("graphics/interface/pss_unk_83D0414.gbapal"); -static const u32 gUnknown_83D0454[] = INCBIN_U32("graphics/interface/pss_unk_83D0454.4bpp.lz"); -static const u32 gUnknown_83D070C[] = INCBIN_U32("graphics/interface/pss_unk_83D070C.bin.lz"); -static const u16 gUnknown_83D07D8[] = INCBIN_U16("graphics/interface/pss_unk_83D07D8.gbapal"); -static const u32 gUnknown_83D0818[] = INCBIN_U32("graphics/interface/pss_unk_83D0818.4bpp.lz"); -static const u32 gUnknown_83D0B5C[] = INCBIN_U32("graphics/interface/pss_unk_83D0B5C.bin.lz"); -static const u16 gUnknown_83D0C38[] = INCBIN_U16("graphics/interface/pss_unk_83D0C38.gbapal"); -static const u32 gUnknown_83D0C78[] = INCBIN_U32("graphics/interface/pss_unk_83D0C78.4bpp.lz"); -static const u32 gUnknown_83D0FFC[] = INCBIN_U32("graphics/interface/pss_unk_83D0FFC.bin.lz"); -static const u16 gUnknown_83D10E4[] = INCBIN_U16("graphics/interface/pss_unk_83D10E4.gbapal"); -static const u32 gUnknown_83D1124[] = INCBIN_U32("graphics/interface/pss_unk_83D1124.4bpp.lz"); -static const u32 gUnknown_83D13D8[] = INCBIN_U32("graphics/interface/pss_unk_83D13D8.bin.lz"); -static const u16 gUnknown_83D14B4[] = INCBIN_U16("graphics/interface/pss_unk_83D14B4.gbapal"); -static const u32 gUnknown_83D14F4[] = INCBIN_U32("graphics/interface/pss_unk_83D14F4.4bpp.lz"); -static const u32 gUnknown_83D1788[] = INCBIN_U32("graphics/interface/pss_unk_83D1788.bin.lz"); -static const u16 gUnknown_83D1874[] = INCBIN_U16("graphics/interface/pss_unk_83D1874.gbapal"); -static const u32 gUnknown_83D18B4[] = INCBIN_U32("graphics/interface/pss_unk_83D18B4.4bpp.lz"); -static const u32 gUnknown_83D1B4C[] = INCBIN_U32("graphics/interface/pss_unk_83D1B4C.bin.lz"); -static const u16 gUnknown_83D1C2C[] = INCBIN_U16("graphics/interface/pss_unk_83D1C2C.gbapal"); -static const u8 sSpace_83D1C6C[32] = {}; -static const u32 gUnknown_83D1C8C[] = INCBIN_U32("graphics/interface/pss_unk_83D1C8C.4bpp.lz"); -static const u32 gUnknown_83D1EC4[] = INCBIN_U32("graphics/interface/pss_unk_83D1EC4.bin.lz"); -static const u16 gUnknown_83D1F94[] = INCBIN_U16("graphics/interface/pss_unk_83D1F94.gbapal"); -static const u32 gUnknown_83D1FD4[] = INCBIN_U32("graphics/interface/pss_unk_83D1FD4.4bpp.lz"); -static const u32 gUnknown_83D22B8[] = INCBIN_U32("graphics/interface/pss_unk_83D22B8.bin.lz"); -static const u16 gUnknown_83D239C[] = INCBIN_U16("graphics/interface/pss_unk_83D239C.gbapal"); -static const u32 gUnknown_83D23DC[] = INCBIN_U32("graphics/interface/pss_unk_83D23DC.4bpp.lz"); -static const u32 gUnknown_83D256C[] = INCBIN_U32("graphics/interface/pss_unk_83D256C.bin.lz"); -static const u16 gUnknown_83D2614[] = INCBIN_U16("graphics/interface/pss_unk_83D2614.gbapal"); -static const u32 gUnknown_83D2654[] = INCBIN_U32("graphics/interface/pss_unk_83D2654.4bpp.lz"); -static const u32 gUnknown_83D277C[] = INCBIN_U32("graphics/interface/pss_unk_83D277C.bin.lz"); -static const u16 gUnknown_83D2820[] = INCBIN_U16("graphics/interface/pss_unk_83D2820.bin"); +static const u16 sWallpaperPalettes_Forest[] = INCBIN_U16("graphics/interface/pss_unk_83CEC40.gbapal"); +static const u32 sWallpaperTiles_Forest[] = INCBIN_U32("graphics/interface/pss_unk_83CEC80.4bpp.lz"); +static const u32 sWallpaperTilemap_Forest[] = INCBIN_U32("graphics/interface/pss_unk_83CF050.bin.lz"); +static const u16 sWallpaperPalettes_City[] = INCBIN_U16("graphics/interface/pss_unk_83CF12C.gbapal"); +static const u32 sWallpaperTiles_City[] = INCBIN_U32("graphics/interface/pss_unk_83CF16C.4bpp.lz"); +static const u32 sWallpaperTilemap_City[] = INCBIN_U32("graphics/interface/pss_unk_83CF374.bin.lz"); + +static const u16 sWallpaperPalettes_Desert[] = INCBIN_U16("graphics/interface/pss_unk_83CF424.gbapal"); +static const u32 sWallpaperTiles_Desert[] = INCBIN_U32("graphics/interface/pss_unk_83CF464.4bpp.lz"); +static const u32 sWallpaperTilemap_Desert[] = INCBIN_U32("graphics/interface/pss_unk_83CF750.bin.lz"); + +static const u16 sWallpaperPalettes_Savanna[] = INCBIN_U16("graphics/interface/pss_unk_83CF834.gbapal"); +static const u32 sWallpaperTiles_Savanna[] = INCBIN_U32("graphics/interface/pss_unk_83CF874.4bpp.lz"); +static const u32 sWallpaperTilemap_Savanna[] = INCBIN_U32("graphics/interface/pss_unk_83CFA94.bin.lz"); + +static const u16 sWallpaperPalettes_Crag[] = INCBIN_U16("graphics/interface/pss_unk_83CFB60.gbapal"); +static const u32 sWallpaperTiles_Crag[] = INCBIN_U32("graphics/interface/pss_unk_83CFBA0.4bpp.lz"); +static const u32 sWallpaperTilemap_Crag[] = INCBIN_U32("graphics/interface/pss_unk_83CFEF0.bin.lz"); + +static const u16 sWallpaperPalettes_Volcano[] = INCBIN_U16("graphics/interface/pss_unk_83CFFC8.gbapal"); +static const u32 sWallpaperTiles_Volcano[] = INCBIN_U32("graphics/interface/pss_unk_83D0008.4bpp.lz"); +static const u8 sUnusedSpace1[4] = {}; +static const u32 sWallpaperTilemap_Volcano[] = INCBIN_U32("graphics/interface/pss_unk_83D033C.bin.lz"); + +static const u16 sWallpaperPalettes_Snow[] = INCBIN_U16("graphics/interface/pss_unk_83D0414.gbapal"); +static const u32 sWallpaperTiles_Snow[] = INCBIN_U32("graphics/interface/pss_unk_83D0454.4bpp.lz"); +static const u32 sWallpaperTilemap_Snow[] = INCBIN_U32("graphics/interface/pss_unk_83D070C.bin.lz"); + +static const u16 sWallpaperPalettes_Cave[] = INCBIN_U16("graphics/interface/pss_unk_83D07D8.gbapal"); +static const u32 sWallpaperTiles_Cave[] = INCBIN_U32("graphics/interface/pss_unk_83D0818.4bpp.lz"); +static const u32 sWallpaperTilemap_Cave[] = INCBIN_U32("graphics/interface/pss_unk_83D0B5C.bin.lz"); + +static const u16 sWallpaperPalettes_Beach[] = INCBIN_U16("graphics/interface/pss_unk_83D0C38.gbapal"); +static const u32 sWallpaperTiles_Beach[] = INCBIN_U32("graphics/interface/pss_unk_83D0C78.4bpp.lz"); +static const u32 sWallpaperTilemap_Beach[] = INCBIN_U32("graphics/interface/pss_unk_83D0FFC.bin.lz"); + +static const u16 sWallpaperPalettes_Seafloor[] = INCBIN_U16("graphics/interface/pss_unk_83D10E4.gbapal"); +static const u32 sWallpaperTiles_Seafloor[] = INCBIN_U32("graphics/interface/pss_unk_83D1124.4bpp.lz"); +static const u32 sWallpaperTilemap_Seafloor[] = INCBIN_U32("graphics/interface/pss_unk_83D13D8.bin.lz"); + +static const u16 sWallpaperPalettes_River[] = INCBIN_U16("graphics/interface/pss_unk_83D14B4.gbapal"); +static const u32 sWallpaperTiles_River[] = INCBIN_U32("graphics/interface/pss_unk_83D14F4.4bpp.lz"); +static const u32 sWallpaperTilemap_River[] = INCBIN_U32("graphics/interface/pss_unk_83D1788.bin.lz"); + +static const u16 sWallpaperPalettes_Sky[] = INCBIN_U16("graphics/interface/pss_unk_83D1874.gbapal"); +static const u32 sWallpaperTiles_Sky[] = INCBIN_U32("graphics/interface/pss_unk_83D18B4.4bpp.lz"); +static const u32 sWallpaperTilemap_Sky[] = INCBIN_U32("graphics/interface/pss_unk_83D1B4C.bin.lz"); + +static const u16 sWallpaperPalettes_Stars[] = INCBIN_U16("graphics/interface/pss_unk_83D1C2C.gbapal"); +static const u8 sUnusedSpace2[32] = {}; +static const u32 sWallpaperTiles_Stars[] = INCBIN_U32("graphics/interface/pss_unk_83D1C8C.4bpp.lz"); +static const u32 sWallpaperTilemap_Stars[] = INCBIN_U32("graphics/interface/pss_unk_83D1EC4.bin.lz"); + +static const u16 sWallpaperPalettes_Pokecenter[] = INCBIN_U16("graphics/interface/pss_unk_83D1F94.gbapal"); +static const u32 sWallpaperTiles_Pokecenter[] = INCBIN_U32("graphics/interface/pss_unk_83D1FD4.4bpp.lz"); +static const u32 sWallpaperTilemap_Pokecenter[] = INCBIN_U32("graphics/interface/pss_unk_83D22B8.bin.lz"); + +static const u16 sWallpaperPalettes_Tiles[] = INCBIN_U16("graphics/interface/pss_unk_83D239C.gbapal"); +static const u32 sWallpaperTiles_Tiles[] = INCBIN_U32("graphics/interface/pss_unk_83D23DC.4bpp.lz"); +static const u32 sWallpaperTilemap_Tiles[] = INCBIN_U32("graphics/interface/pss_unk_83D256C.bin.lz"); + +static const u16 sWallpaperPalettes_Simple[] = INCBIN_U16("graphics/interface/pss_unk_83D2614.gbapal"); +static const u32 sWallpaperTiles_Simple[] = INCBIN_U32("graphics/interface/pss_unk_83D2654.4bpp.lz"); +static const u32 sWallpaperTilemap_Simple[] = INCBIN_U32("graphics/interface/pss_unk_83D277C.bin.lz"); + +// Unused +static const u16 sWallpaperTilemap_Unused[] = INCBIN_U16("graphics/interface/pss_unk_83D2820.bin"); + +// Shadow color, text color static const u16 sBoxTitleColors[][2] = { - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)} + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE} }; -static const struct WallpaperTable sWallpaperTable[] = { - {gUnknown_83CEC80, gUnknown_83CF050, gUnknown_83CEC40}, - {gUnknown_83CF16C, gUnknown_83CF374, gUnknown_83CF12C}, - {gUnknown_83CF464, gUnknown_83CF750, gUnknown_83CF424}, - {gUnknown_83CF874, gUnknown_83CFA94, gUnknown_83CF834}, - {gUnknown_83CFBA0, gUnknown_83CFEF0, gUnknown_83CFB60}, - {gUnknown_83D0008, gUnknown_83D033C, gUnknown_83CFFC8}, - {gUnknown_83D0454, gUnknown_83D070C, gUnknown_83D0414}, - {gUnknown_83D0818, gUnknown_83D0B5C, gUnknown_83D07D8}, - {gUnknown_83D0C78, gUnknown_83D0FFC, gUnknown_83D0C38}, - {gUnknown_83D1124, gUnknown_83D13D8, gUnknown_83D10E4}, - {gUnknown_83D14F4, gUnknown_83D1788, gUnknown_83D14B4}, - {gUnknown_83D18B4, gUnknown_83D1B4C, gUnknown_83D1874}, - {gUnknown_83D1C8C, gUnknown_83D1EC4, gUnknown_83D1C2C}, - {gUnknown_83D1FD4, gUnknown_83D22B8, gUnknown_83D1F94}, - {gUnknown_83D23DC, gUnknown_83D256C, gUnknown_83D239C}, - {gUnknown_83D2654, gUnknown_83D277C, gUnknown_83D2614}, +static const struct Wallpaper sWallpapers[] = { + {sWallpaperTiles_Forest, sWallpaperTilemap_Forest, sWallpaperPalettes_Forest }, + {sWallpaperTiles_City, sWallpaperTilemap_City, sWallpaperPalettes_City }, + {sWallpaperTiles_Desert, sWallpaperTilemap_Desert, sWallpaperPalettes_Desert }, + {sWallpaperTiles_Savanna, sWallpaperTilemap_Savanna, sWallpaperPalettes_Savanna }, + {sWallpaperTiles_Crag, sWallpaperTilemap_Crag, sWallpaperPalettes_Crag }, + {sWallpaperTiles_Volcano, sWallpaperTilemap_Volcano, sWallpaperPalettes_Volcano }, + {sWallpaperTiles_Snow, sWallpaperTilemap_Snow, sWallpaperPalettes_Snow }, + {sWallpaperTiles_Cave, sWallpaperTilemap_Cave, sWallpaperPalettes_Cave }, + {sWallpaperTiles_Beach, sWallpaperTilemap_Beach, sWallpaperPalettes_Beach }, + {sWallpaperTiles_Seafloor, sWallpaperTilemap_Seafloor, sWallpaperPalettes_Seafloor }, + {sWallpaperTiles_River, sWallpaperTilemap_River, sWallpaperPalettes_River }, + {sWallpaperTiles_Sky, sWallpaperTilemap_Sky, sWallpaperPalettes_Sky }, + {sWallpaperTiles_Stars, sWallpaperTilemap_Stars, sWallpaperPalettes_Stars }, + {sWallpaperTiles_Pokecenter, sWallpaperTilemap_Pokecenter, sWallpaperPalettes_Pokecenter}, + {sWallpaperTiles_Tiles, sWallpaperTilemap_Tiles, sWallpaperPalettes_Tiles }, + {sWallpaperTiles_Simple, sWallpaperTilemap_Simple, sWallpaperPalettes_Simple }, }; -static const u16 gUnknown_83D2AD0[] = INCBIN_U16("graphics/interface/pss_unk_83D2AD0.4bpp"); -static const u8 sUnref_83D2B50[] = {0xba, 0x23}; +static const u16 sBoxScrollArrow_Gfx[] = INCBIN_U16("graphics/interface/pss_unk_83D2AD0.4bpp"); -static const struct SpriteSheet sSpriteSheet_Arrow = { - gUnknown_83D2AD0, 0x0080, TAG_TILE_6 +static const u16 sUnusedColor = RGB(26, 29, 8); + +static const struct SpriteSheet sSpriteSheet_BoxScrollArrow = { + sBoxScrollArrow_Gfx, 0x0080, GFXTAG_BOX_SCROLL_ARROW }; -static const struct OamData gUnknown_83D2B5C = { +static const struct OamData sOamData_BoxTitle = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -188,32 +207,32 @@ static const struct OamData gUnknown_83D2B5C = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_83D2B64[] = { +static const union AnimCmd sAnim_BoxTitle_Left[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D2B6C[] = { +static const union AnimCmd sAnim_BoxTitle_Right[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83D2B74[] = { - gUnknown_83D2B64, - gUnknown_83D2B6C +static const union AnimCmd *const sAnims_BoxTitle[] = { + sAnim_BoxTitle_Left, + sAnim_BoxTitle_Right, }; -static const struct SpriteTemplate gUnknown_83D2B7C = { - .tileTag = TAG_TILE_3, - .paletteTag = TAG_PAL_DAC9, - .oam = &gUnknown_83D2B5C, - .anims = gUnknown_83D2B74, +static const struct SpriteTemplate sSpriteTemplate_BoxTitle = { + .tileTag = GFXTAG_BOX_TITLE, + .paletteTag = PALTAG_BOX_TITLE, + .oam = &sOamData_BoxTitle, + .anims = sAnims_BoxTitle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gUnknown_83D2B94 = { +static const struct OamData sOamData_BoxScrollArrow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -228,65 +247,65 @@ static const struct OamData gUnknown_83D2B94 = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_83D2B9C[] = { +static const union AnimCmd sAnim_BoxScrollArrow_Left[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D2BA4[] = { +static const union AnimCmd sAnim_BoxScrollArrow_Right[] = { ANIMCMD_FRAME(2, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83D2BAC[] = { - gUnknown_83D2B9C, - gUnknown_83D2BA4 +static const union AnimCmd *const sAnims_BoxScrollArrow[] = { + sAnim_BoxScrollArrow_Left, + sAnim_BoxScrollArrow_Right, }; -static const struct SpriteTemplate sSpriteTemplate_Arrow = { - .tileTag = TAG_TILE_6, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &gUnknown_83D2B94, - .anims = gUnknown_83D2BAC, +static const struct SpriteTemplate sSpriteTemplate_BoxScrollArrow = { + .tileTag = GFXTAG_BOX_SCROLL_ARROW, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_BoxScrollArrow, + .anims = sAnims_BoxScrollArrow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_Arrow + .callback = SpriteCB_BoxScrollArrow, }; -void sub_808FFAC(void) +void InitMonIconFields(void) { u16 i; LoadMonIconPalettes(); for (i = 0; i < MAX_MON_ICONS; i++) - gPSSData->numIconsPerSpecies[i] = 0; + gStorage->numIconsPerSpecies[i] = 0; for (i = 0; i < MAX_MON_ICONS; i++) - gPSSData->iconSpeciesList[i] = 0; + gStorage->iconSpeciesList[i] = SPECIES_NONE; for (i = 0; i < PARTY_SIZE; i++) - gPSSData->partySprites[i] = NULL; + gStorage->partySprites[i] = NULL; for (i = 0; i < IN_BOX_COUNT; i++) - gPSSData->boxMonsSprites[i] = NULL; + gStorage->boxMonsSprites[i] = NULL; - gPSSData->movingMonSprite = NULL; - gPSSData->unkUnused1 = 0; + gStorage->movingMonSprite = NULL; + gStorage->unusedField1 = 0; } -static u8 sub_8090058(void) +static u8 GetMonIconPriorityByCursorArea(void) { return (IsCursorInBox() ? 2 : 1); } void CreateMovingMonIcon(void) { - u32 personality = GetMonData(&gPSSData->movingMon, MON_DATA_PERSONALITY); - u16 species = GetMonData(&gPSSData->movingMon, MON_DATA_SPECIES2); - u8 priority = sub_8090058(); + u32 personality = GetMonData(&gStorage->movingMon, MON_DATA_PERSONALITY); + u16 species = GetMonData(&gStorage->movingMon, MON_DATA_SPECIES2); + u8 priority = GetMonIconPriorityByCursorArea(); - gPSSData->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); - gPSSData->movingMonSprite->callback = sub_80911B0; + gStorage->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); + gStorage->movingMonSprite->callback = SpriteCB_HeldMon; } -static void sub_80900D4(u8 boxId) +static void InitBoxMonSprites(u8 boxId) { u8 boxPosition; u16 i, j, count; @@ -295,165 +314,170 @@ static void sub_80900D4(u8 boxId) count = 0; boxPosition = 0; - for (i = 0; i < IN_BOX_COLUMNS; i++) + for (i = 0; i < IN_BOX_ROWS; i++) { - for (j = 0; j < IN_BOX_ROWS; j++) + for (j = 0; j < IN_BOX_COLUMNS; j++) { species = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); if (species != SPECIES_NONE) { personality = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); - gPSSData->boxMonsSprites[count] = CreateMonIconSprite(species, personality, 8 * (3 * j) + 100, 8 * (3 * i) + 44, 2, 19 - j); + gStorage->boxMonsSprites[count] = CreateMonIconSprite(species, personality, 8 * (3 * j) + 100, 8 * (3 * i) + 44, 2, 19 - j); } else - { - gPSSData->boxMonsSprites[count] = NULL; - } + gStorage->boxMonsSprites[count] = NULL; + boxPosition++; count++; } } - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { for (boxPosition = 0; boxPosition < IN_BOX_COUNT; boxPosition++) { if (GetBoxMonDataAt(boxId, boxPosition, MON_DATA_HELD_ITEM) == 0) - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + gStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; } } } -void sub_80901EC(u8 boxPosition) +void CreateBoxMonIconAtPos(u8 boxPosition) { u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES2); if (species != SPECIES_NONE) { - s16 x = 8 * (3 * (boxPosition % IN_BOX_ROWS)) + 100; - s16 y = 8 * (3 * (boxPosition / IN_BOX_ROWS)) + 44; + s16 x = 8 * (3 * (boxPosition % IN_BOX_COLUMNS)) + 100; + s16 y = 8 * (3 * (boxPosition / IN_BOX_COLUMNS)) + 44; u32 personality = GetCurrentBoxMonData(boxPosition, MON_DATA_PERSONALITY); - gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_ROWS)); - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + gStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_COLUMNS)); + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + gStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; } } -static void sub_809029C(s16 arg0) +#define sDistance data[1] +#define sSpeed data[2] +#define sDestX data[3] +#define sDelay data[4] +#define sPosX data[5] + +static void StartBoxMonIconsScrollOut(s16 speed) { u16 i; for (i = 0; i < IN_BOX_COUNT; i++) { - if (gPSSData->boxMonsSprites[i] != NULL) + if (gStorage->boxMonsSprites[i] != NULL) { - gPSSData->boxMonsSprites[i]->data[2] = arg0; - gPSSData->boxMonsSprites[i]->data[4] = 1; - gPSSData->boxMonsSprites[i]->callback = sub_8090324; + gStorage->boxMonsSprites[i]->sSpeed = speed; + gStorage->boxMonsSprites[i]->sDelay = 1; + gStorage->boxMonsSprites[i]->callback = SpriteCB_BoxMonIconScrollOut; } } } -static void sub_80902E0(struct Sprite *sprite) +static void SpriteCB_BoxMonIconScrollIn(struct Sprite *sprite) { - if (sprite->data[1] != 0) + if (sprite->sDistance != 0) { - sprite->data[1]--; - sprite->x += sprite->data[2]; + sprite->sDistance--; + sprite->x += sprite->sSpeed; } else { - gPSSData->iconScrollNumIncoming--; - sprite->x = sprite->data[3]; + gStorage->iconScrollNumIncoming--; + sprite->x = sprite->sDestX; sprite->callback = SpriteCallbackDummy; } } -static void sub_8090324(struct Sprite *sprite) +static void SpriteCB_BoxMonIconScrollOut(struct Sprite *sprite) { - if (sprite->data[4] != 0) - { - sprite->data[4]--; - } + if (sprite->sDelay != 0) + sprite->sDelay--; else { - sprite->x += sprite->data[2]; - sprite->data[5] = sprite->x + sprite->x2; - if (sprite->data[5] <= 68 || sprite->data[5] >= 252) + sprite->x += sprite->sSpeed; + sprite->sPosX = sprite->x + sprite->x2; + + // Check if mon icon has scrolled out of view of the box area + if (sprite->sPosX <= 68 || sprite->sPosX >= 252) sprite->callback = SpriteCallbackDummy; } } -static void DestroyAllIconsInRow(u8 row) +static void DestroyAllIconsInColumn(u8 column) { - u16 column; - u8 boxPosition = row; + u16 row; + u8 boxPosition = column; - for (column = 0; column < IN_BOX_COLUMNS; column++) + for (row = 0; row < IN_BOX_ROWS; row++) { - if (gPSSData->boxMonsSprites[boxPosition] != NULL) + if (gStorage->boxMonsSprites[boxPosition] != NULL) { - DestroyBoxMonIcon(gPSSData->boxMonsSprites[boxPosition]); - gPSSData->boxMonsSprites[boxPosition] = NULL; + DestroyBoxMonIcon(gStorage->boxMonsSprites[boxPosition]); + gStorage->boxMonsSprites[boxPosition] = NULL; } - boxPosition += IN_BOX_ROWS; + boxPosition += IN_BOX_COLUMNS; } } -static u8 sub_80903A4(u8 row, u16 times, s16 xDelta) +static u8 CreateBoxMonIconsInColumn(u8 column, u16 distance, s16 speed) { s32 i; u16 y = 44; - s16 xDest = 8 * (3 * row) + 100; - u16 x = xDest - ((times + 1) * xDelta); - u8 subpriority = 19 - row; + s16 xDest = 8 * (3 * column) + 100; + u16 x = xDest - ((distance + 1) * speed); + u8 subpriority = 19 - column; u8 count = 0; - u8 boxPosition = row; + u8 boxPosition = column; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { - for (i = 0; i < IN_BOX_COLUMNS; i++) + for (i = 0; i < IN_BOX_ROWS; i++) { - if (gPSSData->boxSpecies[boxPosition] != SPECIES_NONE) + if (gStorage->boxSpecies[boxPosition] != SPECIES_NONE) { - gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(gPSSData->boxSpecies[boxPosition], - gPSSData->boxPersonalities[boxPosition], + gStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(gStorage->boxSpecies[boxPosition], + gStorage->boxPersonalities[boxPosition], x, y, 2, subpriority); - if (gPSSData->boxMonsSprites[boxPosition] != NULL) + if (gStorage->boxMonsSprites[boxPosition] != NULL) { - gPSSData->boxMonsSprites[boxPosition]->data[1] = times; - gPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta; - gPSSData->boxMonsSprites[boxPosition]->data[3] = xDest; - gPSSData->boxMonsSprites[boxPosition]->callback = sub_80902E0; + gStorage->boxMonsSprites[boxPosition]->sDistance = distance; + gStorage->boxMonsSprites[boxPosition]->sSpeed = speed; + gStorage->boxMonsSprites[boxPosition]->sDestX = xDest; + gStorage->boxMonsSprites[boxPosition]->callback = SpriteCB_BoxMonIconScrollIn; count++; } } - boxPosition += IN_BOX_ROWS; + boxPosition += IN_BOX_COLUMNS; y += 24; } } else { - for (i = 0; i < IN_BOX_COLUMNS; i++) + for (i = 0; i < IN_BOX_ROWS; i++) { - if (gPSSData->boxSpecies[boxPosition] != SPECIES_NONE) + if (gStorage->boxSpecies[boxPosition] != SPECIES_NONE) { - gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(gPSSData->boxSpecies[boxPosition], - gPSSData->boxPersonalities[boxPosition], + gStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(gStorage->boxSpecies[boxPosition], + gStorage->boxPersonalities[boxPosition], x, y, 2, subpriority); - if (gPSSData->boxMonsSprites[boxPosition] != NULL) + if (gStorage->boxMonsSprites[boxPosition] != NULL) { - gPSSData->boxMonsSprites[boxPosition]->data[1] = times; - gPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta; - gPSSData->boxMonsSprites[boxPosition]->data[3] = xDest; - gPSSData->boxMonsSprites[boxPosition]->callback = sub_80902E0; - if (GetBoxMonDataAt(gPSSData->incomingBoxId, boxPosition, MON_DATA_HELD_ITEM) == 0) - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + gStorage->boxMonsSprites[boxPosition]->sDistance = distance; + gStorage->boxMonsSprites[boxPosition]->sSpeed = speed; + gStorage->boxMonsSprites[boxPosition]->sDestX = xDest; + gStorage->boxMonsSprites[boxPosition]->callback = SpriteCB_BoxMonIconScrollIn; + if (GetBoxMonDataAt(gStorage->incomingBoxId, boxPosition, MON_DATA_HELD_ITEM) == 0) + gStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; count++; } } - boxPosition += IN_BOX_ROWS; + boxPosition += IN_BOX_COLUMNS; y += 24; } } @@ -461,58 +485,69 @@ static u8 sub_80903A4(u8 row, u16 times, s16 xDelta) return count; } -static void sub_8090574(u8 boxId, s8 direction) +#undef sDistance +#undef sSpeed +#undef sDestX +#undef sDelay +#undef sPosX + +static void InitBoxMonIconScroll(u8 boxId, s8 direction) { - gPSSData->iconScrollState = 0; - gPSSData->iconScrollToBoxId = boxId; - gPSSData->iconScrollDirection = direction; - gPSSData->iconScrollDistance = 32; - gPSSData->iconScrollSpeed = -(6 * direction); - gPSSData->iconScrollNumIncoming = 0; + gStorage->iconScrollState = 0; + gStorage->iconScrollToBoxId = boxId; + gStorage->iconScrollDirection = direction; + gStorage->iconScrollDistance = 32; + gStorage->iconScrollSpeed = -(6 * direction); + gStorage->iconScrollNumIncoming = 0; SetBoxSpeciesAndPersonalities(boxId); if (direction > 0) - gPSSData->iconScrollCurColumn = 0; + gStorage->iconScrollCurColumn = 0; else - gPSSData->iconScrollCurColumn = IN_BOX_ROWS - 1; + gStorage->iconScrollCurColumn = IN_BOX_COLUMNS - 1; - gPSSData->iconScrollPos = (24 * gPSSData->iconScrollCurColumn) + 100; - sub_809029C(gPSSData->iconScrollSpeed); + gStorage->iconScrollPos = (24 * gStorage->iconScrollCurColumn) + 100; + StartBoxMonIconsScrollOut(gStorage->iconScrollSpeed); } -static bool8 sub_809062C(void) +static bool8 UpdateBoxMonIconScroll(void) { - if (gPSSData->iconScrollDistance != 0) - gPSSData->iconScrollDistance--; + if (gStorage->iconScrollDistance != 0) + gStorage->iconScrollDistance--; - switch (gPSSData->iconScrollState) + switch (gStorage->iconScrollState) { case 0: - gPSSData->iconScrollPos += gPSSData->iconScrollSpeed; - if (gPSSData->iconScrollPos <= 64 || gPSSData->iconScrollPos >= 252) + gStorage->iconScrollPos += gStorage->iconScrollSpeed; + if (gStorage->iconScrollPos <= 64 || gStorage->iconScrollPos >= 252) { - DestroyAllIconsInRow(gPSSData->iconScrollCurColumn); - gPSSData->iconScrollPos += gPSSData->iconScrollDirection * 24; - gPSSData->iconScrollState++; + // A column of icons has gone offscreen, destroy them + DestroyAllIconsInColumn(gStorage->iconScrollCurColumn); + gStorage->iconScrollPos += gStorage->iconScrollDirection * 24; + gStorage->iconScrollState++; } break; case 1: - gPSSData->iconScrollPos += gPSSData->iconScrollSpeed; - gPSSData->iconScrollNumIncoming += sub_80903A4(gPSSData->iconScrollCurColumn, gPSSData->iconScrollDistance, gPSSData->iconScrollSpeed); - if ((gPSSData->iconScrollDirection > 0 && gPSSData->iconScrollCurColumn == IN_BOX_ROWS - 1) - || (gPSSData->iconScrollDirection < 0 && gPSSData->iconScrollCurColumn == 0)) + // Create the new incoming column of icons + gStorage->iconScrollPos += gStorage->iconScrollSpeed; + gStorage->iconScrollNumIncoming += CreateBoxMonIconsInColumn(gStorage->iconScrollCurColumn, gStorage->iconScrollDistance, gStorage->iconScrollSpeed); + if ((gStorage->iconScrollDirection > 0 && gStorage->iconScrollCurColumn == IN_BOX_COLUMNS - 1) + || (gStorage->iconScrollDirection < 0 && gStorage->iconScrollCurColumn == 0)) { - gPSSData->iconScrollState++; + // Scroll has reached final column + gStorage->iconScrollState++; } else { - gPSSData->iconScrollCurColumn += gPSSData->iconScrollDirection; - gPSSData->iconScrollState = 0; + // Continue scrolling + gStorage->iconScrollCurColumn += gStorage->iconScrollDirection; + gStorage->iconScrollState = 0; } break; case 2: - if (gPSSData->iconScrollNumIncoming == 0) + // Wait to make sure all icons have arrived + if (gStorage->iconScrollNumIncoming == 0) { - gPSSData->iconScrollDistance++; + gStorage->iconScrollDistance++; return FALSE; } break; @@ -528,44 +563,44 @@ static void SetBoxSpeciesAndPersonalities(u8 boxId) s32 i, j, boxPosition; boxPosition = 0; - for (i = 0; i < IN_BOX_COLUMNS; i++) + for (i = 0; i < IN_BOX_ROWS; i++) { - for (j = 0; j < IN_BOX_ROWS; j++) + for (j = 0; j < IN_BOX_COLUMNS; j++) { - gPSSData->boxSpecies[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); - if (gPSSData->boxSpecies[boxPosition] != SPECIES_NONE) - gPSSData->boxPersonalities[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); + gStorage->boxSpecies[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); + if (gStorage->boxSpecies[boxPosition] != SPECIES_NONE) + gStorage->boxPersonalities[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); boxPosition++; } } - gPSSData->incomingBoxId = boxId; + gStorage->incomingBoxId = boxId; } void DestroyBoxMonIconAtPosition(u8 boxPosition) { - if (gPSSData->boxMonsSprites[boxPosition] != NULL) + if (gStorage->boxMonsSprites[boxPosition] != NULL) { - DestroyBoxMonIcon(gPSSData->boxMonsSprites[boxPosition]); - gPSSData->boxMonsSprites[boxPosition] = NULL; + DestroyBoxMonIcon(gStorage->boxMonsSprites[boxPosition]); + gStorage->boxMonsSprites[boxPosition] = NULL; } } void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode) { - if (gPSSData->boxMonsSprites[boxPosition] != NULL) + if (gStorage->boxMonsSprites[boxPosition] != NULL) { - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = objMode; + gStorage->boxMonsSprites[boxPosition]->oam.objMode = objMode; } } -void CreatePartyMonsSprites(bool8 arg0) +void CreatePartyMonsSprites(bool8 visible) { u16 i, count; u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES2); u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY); - gPSSData->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); + gStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); count = 1; for (i = 1; i < PARTY_SIZE; i++) { @@ -573,90 +608,95 @@ void CreatePartyMonsSprites(bool8 arg0) if (species != SPECIES_NONE) { personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); - gPSSData->partySprites[i] = CreateMonIconSprite(species, personality, 152, 8 * (3 * (i - 1)) + 16, 1, 12); + gStorage->partySprites[i] = CreateMonIconSprite(species, personality, 152, 8 * (3 * (i - 1)) + 16, 1, 12); count++; } else - { - gPSSData->partySprites[i] = NULL; - } + gStorage->partySprites[i] = NULL; } - if (!arg0) + if (!visible) { for (i = 0; i < count; i++) { - gPSSData->partySprites[i]->y -= 160; - gPSSData->partySprites[i]->invisible = TRUE; + gStorage->partySprites[i]->y -= 160; + gStorage->partySprites[i]->invisible = TRUE; } } - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { for (i = 0; i < PARTY_SIZE; i++) { - if (gPSSData->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == 0) - gPSSData->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND; + if (gStorage->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == 0) + gStorage->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND; } } } -void sub_80909F4(void) +void CompactPartySprites(void) { - u16 i, count; + u16 i, targetPartyId; - gPSSData->numPartyToCompact = 0; - for (i = 0, count = 0; i < PARTY_SIZE; i++) + gStorage->numPartySpritesToCompact = 0; + for (i = 0, targetPartyId = 0; i < PARTY_SIZE; i++) { - if (gPSSData->partySprites[i] != NULL) + if (gStorage->partySprites[i] != NULL) { - if (i != count) + if (i != targetPartyId) { - sub_8090A74(gPSSData->partySprites[i], count); - gPSSData->partySprites[i] = NULL; - gPSSData->numPartyToCompact++; + MovePartySpriteToNextSlot(gStorage->partySprites[i], targetPartyId); + gStorage->partySprites[i] = NULL; + gStorage->numPartySpritesToCompact++; } - count++; + targetPartyId++; } } } -u8 sub_8090A60(void) +u8 GetNumPartySpritesCompacting(void) { - return gPSSData->numPartyToCompact; + return gStorage->numPartySpritesToCompact; } -static void sub_8090A74(struct Sprite *sprite, u16 partyId) +#define sPartyId data[1] +#define sMonX data[2] +#define sMonY data[3] +#define sSpeedX data[4] +#define sSpeedY data[5] +#define sMoveSteps data[6] + +static void MovePartySpriteToNextSlot(struct Sprite *sprite, u16 partyId) { s16 x, y; - sprite->data[1] = partyId; + sprite->sPartyId = partyId; if (partyId == 0) x = 104, y = 64; else x = 152, y = 8 * (3 * (partyId - 1)) + 16; - sprite->data[2] = (u16)(sprite->x) * 8; - sprite->data[3] = (u16)(sprite->y) * 8; - sprite->data[4] = ((x * 8) - sprite->data[2]) / 8; - sprite->data[5] = ((y * 8) - sprite->data[3]) / 8; - sprite->data[6] = 8; - sprite->callback = sub_8090AE0; + sprite->sMonX = (u16)(sprite->x) * 8; + sprite->sMonY = (u16)(sprite->y) * 8; + sprite->sSpeedX = ((x * 8) - sprite->sMonX) / 8; + sprite->sSpeedY = ((y * 8) - sprite->sMonY) / 8; + sprite->sMoveSteps = 8; + sprite->callback = SpriteCB_MovePartySpriteToNextSlot; } -static void sub_8090AE0(struct Sprite *sprite) +static void SpriteCB_MovePartySpriteToNextSlot(struct Sprite *sprite) { - if (sprite->data[6] != 0) + if (sprite->sMoveSteps != 0) { - s16 x = sprite->data[2] += sprite->data[4]; - s16 y = sprite->data[3] += sprite->data[5]; + s16 x = sprite->sMonX += sprite->sSpeedX; + s16 y = sprite->sMonY += sprite->sSpeedY; sprite->x = x / 8u; sprite->y = y / 8u; - sprite->data[6]--; + sprite->sMoveSteps--; } else { - if (sprite->data[1] == 0) + if (sprite->sPartyId == 0) { sprite->x = 104; sprite->y = 64; @@ -664,48 +704,55 @@ static void sub_8090AE0(struct Sprite *sprite) else { sprite->x = 152; - sprite->y = 8 * (3 * (sprite->data[1] - 1)) + 16; + sprite->y = 8 * (3 * (sprite->sPartyId - 1)) + 16; } sprite->callback = SpriteCallbackDummy; - gPSSData->partySprites[sprite->data[1]] = sprite; - gPSSData->numPartyToCompact--; + gStorage->partySprites[sprite->sPartyId] = sprite; + gStorage->numPartySpritesToCompact--; } } +#undef sPartyId +#undef sMonX +#undef sMonY +#undef sSpeedX +#undef sSpeedY +#undef sMoveSteps + void DestroyMovingMonIcon(void) { - if (gPSSData->movingMonSprite != NULL) + if (gStorage->movingMonSprite != NULL) { - DestroyBoxMonIcon(gPSSData->movingMonSprite); - gPSSData->movingMonSprite = NULL; + DestroyBoxMonIcon(gStorage->movingMonSprite); + gStorage->movingMonSprite = NULL; } } -void sub_8090B98(s16 yDelta) +void MovePartySprites(s16 yDelta) { u16 i, posY; for (i = 0; i < PARTY_SIZE; i++) { - if (gPSSData->partySprites[i] != NULL) + if (gStorage->partySprites[i] != NULL) { - gPSSData->partySprites[i]->y += yDelta; - posY = gPSSData->partySprites[i]->y + gPSSData->partySprites[i]->y2 + gPSSData->partySprites[i]->centerToCornerVecY; + gStorage->partySprites[i]->y += yDelta; + posY = gStorage->partySprites[i]->y + gStorage->partySprites[i]->y2 + gStorage->partySprites[i]->centerToCornerVecY; posY += 16; if (posY > 192) - gPSSData->partySprites[i]->invisible = TRUE; + gStorage->partySprites[i]->invisible = TRUE; else - gPSSData->partySprites[i]->invisible = FALSE; + gStorage->partySprites[i]->invisible = FALSE; } } } void DestroyPartyMonIcon(u8 partyId) { - if (gPSSData->partySprites[partyId] != NULL) + if (gStorage->partySprites[partyId] != NULL) { - DestroyBoxMonIcon(gPSSData->partySprites[partyId]); - gPSSData->partySprites[partyId] = NULL; + DestroyBoxMonIcon(gStorage->partySprites[partyId]); + gStorage->partySprites[partyId] = NULL; } } @@ -715,194 +762,190 @@ void DestroyAllPartyMonIcons(void) for (i = 0; i < PARTY_SIZE; i++) { - if (gPSSData->partySprites[i] != NULL) + if (gStorage->partySprites[i] != NULL) { - DestroyBoxMonIcon(gPSSData->partySprites[i]); - gPSSData->partySprites[i] = NULL; + DestroyBoxMonIcon(gStorage->partySprites[i]); + gStorage->partySprites[i] = NULL; } } } void SetPartyMonIconObjMode(u8 partyId, u8 objMode) { - if (gPSSData->partySprites[partyId] != NULL) - { - gPSSData->partySprites[partyId]->oam.objMode = objMode; - } + if (gStorage->partySprites[partyId] != NULL) + gStorage->partySprites[partyId]->oam.objMode = objMode; } -void sub_8090CC0(u8 mode, u8 id) +void SetMovingMonSprite(u8 mode, u8 id) { if (mode == MODE_PARTY) { - gPSSData->movingMonSprite = gPSSData->partySprites[id]; - gPSSData->partySprites[id] = NULL; + gStorage->movingMonSprite = gStorage->partySprites[id]; + gStorage->partySprites[id] = NULL; } else if (mode == MODE_BOX) { - gPSSData->movingMonSprite = gPSSData->boxMonsSprites[id]; - gPSSData->boxMonsSprites[id] = NULL; + gStorage->movingMonSprite = gStorage->boxMonsSprites[id]; + gStorage->boxMonsSprites[id] = NULL; } else - { return; - } - gPSSData->movingMonSprite->callback = sub_80911B0; - gPSSData->movingMonSprite->oam.priority = sub_8090058(); - gPSSData->movingMonSprite->subpriority = 7; + gStorage->movingMonSprite->callback = SpriteCB_HeldMon; + gStorage->movingMonSprite->oam.priority = GetMonIconPriorityByCursorArea(); + gStorage->movingMonSprite->subpriority = 7; } -void sub_8090D58(u8 boxId, u8 position) +void SetPlacedMonSprite(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) // party mon { - gPSSData->partySprites[position] = gPSSData->movingMonSprite; - gPSSData->partySprites[position]->oam.priority = 1; - gPSSData->partySprites[position]->subpriority = 12; + gStorage->partySprites[position] = gStorage->movingMonSprite; + gStorage->partySprites[position]->oam.priority = 1; + gStorage->partySprites[position]->subpriority = 12; } else { - gPSSData->boxMonsSprites[position] = gPSSData->movingMonSprite; - gPSSData->boxMonsSprites[position]->oam.priority = 2; - gPSSData->boxMonsSprites[position]->subpriority = 19 - (position % IN_BOX_ROWS); + gStorage->boxMonsSprites[position] = gStorage->movingMonSprite; + gStorage->boxMonsSprites[position]->oam.priority = 2; + gStorage->boxMonsSprites[position]->subpriority = 19 - (position % IN_BOX_COLUMNS); } - gPSSData->movingMonSprite->callback = SpriteCallbackDummy; - gPSSData->movingMonSprite = NULL; + gStorage->movingMonSprite->callback = SpriteCallbackDummy; + gStorage->movingMonSprite = NULL; } -void sub_8090E08(u8 boxId, u8 position) +void SetShiftMonSpritePtr(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) // party mon - gPSSData->shiftMonSpritePtr = &gPSSData->partySprites[position]; + gStorage->shiftMonSpritePtr = &gStorage->partySprites[position]; else - gPSSData->shiftMonSpritePtr = &gPSSData->boxMonsSprites[position]; + gStorage->shiftMonSpritePtr = &gStorage->boxMonsSprites[position]; - gPSSData->movingMonSprite->callback = SpriteCallbackDummy; - gPSSData->shiftTimer = 0; + gStorage->movingMonSprite->callback = SpriteCallbackDummy; + gStorage->shiftTimer = 0; } -bool8 sub_8090E74(void) +bool8 ShiftMons(void) { - if (gPSSData->shiftTimer == 16) + if (gStorage->shiftTimer == 16) return FALSE; - gPSSData->shiftTimer++; - if (gPSSData->shiftTimer & 1) + gStorage->shiftTimer++; + if (gStorage->shiftTimer & 1) { - (*gPSSData->shiftMonSpritePtr)->y--; - gPSSData->movingMonSprite->y++; + (*gStorage->shiftMonSpritePtr)->y--; + gStorage->movingMonSprite->y++; } - (*gPSSData->shiftMonSpritePtr)->x2 = gSineTable[gPSSData->shiftTimer * 8] / 16; - gPSSData->movingMonSprite->x2 = -(gSineTable[gPSSData->shiftTimer * 8] / 16); - if (gPSSData->shiftTimer == 8) + (*gStorage->shiftMonSpritePtr)->x2 = gSineTable[gStorage->shiftTimer * 8] / 16; + gStorage->movingMonSprite->x2 = -(gSineTable[gStorage->shiftTimer * 8] / 16); + if (gStorage->shiftTimer == 8) { - gPSSData->movingMonSprite->oam.priority = (*gPSSData->shiftMonSpritePtr)->oam.priority; - gPSSData->movingMonSprite->subpriority = (*gPSSData->shiftMonSpritePtr)->subpriority; - (*gPSSData->shiftMonSpritePtr)->oam.priority = sub_8090058(); - (*gPSSData->shiftMonSpritePtr)->subpriority = 7; + gStorage->movingMonSprite->oam.priority = (*gStorage->shiftMonSpritePtr)->oam.priority; + gStorage->movingMonSprite->subpriority = (*gStorage->shiftMonSpritePtr)->subpriority; + (*gStorage->shiftMonSpritePtr)->oam.priority = GetMonIconPriorityByCursorArea(); + (*gStorage->shiftMonSpritePtr)->subpriority = 7; } - if (gPSSData->shiftTimer == 16) + if (gStorage->shiftTimer == 16) { - struct Sprite *sprite = gPSSData->movingMonSprite; - gPSSData->movingMonSprite = (*gPSSData->shiftMonSpritePtr); - *gPSSData->shiftMonSpritePtr = sprite; + struct Sprite *sprite = gStorage->movingMonSprite; + gStorage->movingMonSprite = (*gStorage->shiftMonSpritePtr); + *gStorage->shiftMonSpritePtr = sprite; - gPSSData->movingMonSprite->callback = sub_80911B0; - (*gPSSData->shiftMonSpritePtr)->callback = SpriteCallbackDummy; + gStorage->movingMonSprite->callback = SpriteCB_HeldMon; + (*gStorage->shiftMonSpritePtr)->callback = SpriteCallbackDummy; } return TRUE; } -void sub_8090FC4(u8 mode, u8 position) +void DoReleaseMonAnim(u8 mode, u8 position) { switch (mode) { case MODE_PARTY: - gPSSData->releaseMonSpritePtr = &gPSSData->partySprites[position]; + gStorage->releaseMonSpritePtr = &gStorage->partySprites[position]; break; case MODE_BOX: - gPSSData->releaseMonSpritePtr = &gPSSData->boxMonsSprites[position]; + gStorage->releaseMonSpritePtr = &gStorage->boxMonsSprites[position]; break; - case MODE_2: - gPSSData->releaseMonSpritePtr = &gPSSData->movingMonSprite; + case MODE_MOVE: + gStorage->releaseMonSpritePtr = &gStorage->movingMonSprite; break; default: return; } - if (*gPSSData->releaseMonSpritePtr != NULL) + if (*gStorage->releaseMonSpritePtr != NULL) { - InitSpriteAffineAnim(*gPSSData->releaseMonSpritePtr); - (*gPSSData->releaseMonSpritePtr)->oam.affineMode = ST_OAM_AFFINE_NORMAL; - (*gPSSData->releaseMonSpritePtr)->affineAnims = gUnknown_83CEC38; - StartSpriteAffineAnim(*gPSSData->releaseMonSpritePtr, 0); + InitSpriteAffineAnim(*gStorage->releaseMonSpritePtr); + (*gStorage->releaseMonSpritePtr)->oam.affineMode = ST_OAM_AFFINE_NORMAL; + (*gStorage->releaseMonSpritePtr)->affineAnims = sAffineAnims_ReleaseMon; + StartSpriteAffineAnim(*gStorage->releaseMonSpritePtr, RELEASE_ANIM_RELEASE); } } -bool8 sub_8091084(void) +bool8 TryHideReleaseMonSprite(void) { - if (*gPSSData->releaseMonSpritePtr == NULL || (*gPSSData->releaseMonSpritePtr)->invisible) + if (*gStorage->releaseMonSpritePtr == NULL || (*gStorage->releaseMonSpritePtr)->invisible) return FALSE; - if ((*gPSSData->releaseMonSpritePtr)->affineAnimEnded) - (*gPSSData->releaseMonSpritePtr)->invisible = TRUE; + if ((*gStorage->releaseMonSpritePtr)->affineAnimEnded) + (*gStorage->releaseMonSpritePtr)->invisible = TRUE; return TRUE; } -void sub_80910CC(void) +void DestroyReleaseMonIcon(void) { - if (*gPSSData->releaseMonSpritePtr != NULL) + if (*gStorage->releaseMonSpritePtr != NULL) { - FreeOamMatrix((*gPSSData->releaseMonSpritePtr)->oam.matrixNum); - DestroyBoxMonIcon(*gPSSData->releaseMonSpritePtr); - *gPSSData->releaseMonSpritePtr = NULL; + FreeOamMatrix((*gStorage->releaseMonSpritePtr)->oam.matrixNum); + DestroyBoxMonIcon(*gStorage->releaseMonSpritePtr); + *gStorage->releaseMonSpritePtr = NULL; } } -void sub_8091114(void) +void DoReleaseMonComeBackAnim(void) { - if (*gPSSData->releaseMonSpritePtr != NULL) + if (*gStorage->releaseMonSpritePtr != NULL) { - (*gPSSData->releaseMonSpritePtr)->invisible = FALSE; - StartSpriteAffineAnim(*gPSSData->releaseMonSpritePtr, 1); + (*gStorage->releaseMonSpritePtr)->invisible = FALSE; + StartSpriteAffineAnim(*gStorage->releaseMonSpritePtr, RELEASE_ANIM_COME_BACK); } } -bool8 sub_8091150(void) +bool8 ResetReleaseMonSpritePtr(void) { - if (gPSSData->releaseMonSpritePtr == NULL) + if (gStorage->releaseMonSpritePtr == NULL) return FALSE; - if ((*gPSSData->releaseMonSpritePtr)->affineAnimEnded) - gPSSData->releaseMonSpritePtr = NULL; + if ((*gStorage->releaseMonSpritePtr)->affineAnimEnded) + gStorage->releaseMonSpritePtr = NULL; return TRUE; } void SetMovingMonPriority(u8 priority) { - gPSSData->movingMonSprite->oam.priority = priority; + gStorage->movingMonSprite->oam.priority = priority; } -static void sub_80911B0(struct Sprite *sprite) +static void SpriteCB_HeldMon(struct Sprite *sprite) { - sprite->x = gPSSData->cursorSprite->x; - sprite->y = gPSSData->cursorSprite->y + gPSSData->cursorSprite->y2 + 4; + sprite->x = gStorage->cursorSprite->x; + sprite->y = gStorage->cursorSprite->y + gStorage->cursorSprite->y2 + 4; } -static u16 sub_80911D4(u16 species) +static u16 TryLoadMonIconTiles(u16 species) { - u16 i, var; + u16 i, offset; // Find the currently-allocated slot for (i = 0; i < MAX_MON_ICONS; i++) { - if (gPSSData->iconSpeciesList[i] == species) + if (gStorage->iconSpeciesList[i] == species) break; } @@ -911,31 +954,31 @@ static u16 sub_80911D4(u16 species) // Find the first empty slot for (i = 0; i < MAX_MON_ICONS; i++) { - if (gPSSData->iconSpeciesList[i] == SPECIES_NONE) + if (gStorage->iconSpeciesList[i] == SPECIES_NONE) break; } if (i == MAX_MON_ICONS) return 0xFFFF; } - gPSSData->iconSpeciesList[i] = species; - gPSSData->numIconsPerSpecies[i]++; - var = 16 * i; - CpuCopy32(GetMonIconTiles(species, TRUE), (void *)(OBJ_VRAM0) + var * 32, 0x200); + gStorage->iconSpeciesList[i] = species; + gStorage->numIconsPerSpecies[i]++; + offset = 16 * i; + CpuCopy32(GetMonIconTiles(species, TRUE), (void *)(OBJ_VRAM0) + offset * 32, 0x200); - return var; + return offset; } -static void sub_8091290(u16 species) +static void RemoveSpeciesFromIconList(u16 species) { u16 i; for (i = 0; i < MAX_MON_ICONS; i++) { - if (gPSSData->iconSpeciesList[i] == species) + if (gStorage->iconSpeciesList[i] == species) { - if (--gPSSData->numIconsPerSpecies[i] == 0) - gPSSData->iconSpeciesList[i] = 0; + if (--gStorage->numIconsPerSpecies[i] == 0) + gStorage->iconSpeciesList[i] = SPECIES_NONE; break; } } @@ -945,18 +988,18 @@ struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u { u16 tileNum; u8 spriteId; - struct SpriteTemplate template = gUnknown_83CEBF0; + struct SpriteTemplate template = sSpriteTemplate_MonIcon; species = GetIconSpecies(species, personality); - template.paletteTag = 0xDAC0 + gMonIconPaletteIndices[species]; - tileNum = sub_80911D4(species); + template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndices[species]; + tileNum = TryLoadMonIconTiles(species); if (tileNum == 0xFFFF) return NULL; spriteId = CreateSprite(&template, x, y, subpriority); if (spriteId == MAX_SPRITES) { - sub_8091290(species); + RemoveSpeciesFromIconList(species); return NULL; } @@ -968,117 +1011,125 @@ struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u static void DestroyBoxMonIcon(struct Sprite *sprite) { - sub_8091290(sprite->data[0]); + RemoveSpeciesFromIconList(sprite->data[0]); DestroySprite(sprite); } -void sub_80913DC(u8 boxId) -{ - u8 taskId = CreateTask(sub_8091420, 2); +#define tState data[0] +#define tDmaIdx data[1] +#define tBoxId data[2] - gTasks[taskId].data[2] = boxId; +void CreateInitBoxTask(u8 boxId) +{ + u8 taskId = CreateTask(Task_InitBox, 2); + + gTasks[taskId].tBoxId = boxId; } -bool8 sub_809140C(void) +bool8 IsInitBoxActive(void) { - return FuncIsActiveTask(sub_8091420); + return FuncIsActiveTask(Task_InitBox); } -static void sub_8091420(u8 taskId) +static void Task_InitBox(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - gPSSData->wallpaperOffset = 0; - gPSSData->bg2_X = 0; - task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, DMA3_32BIT); + gStorage->wallpaperOffset = 0; + gStorage->bg2_X = 0; + task->tDmaIdx = RequestDma3Fill(0, gStorage->wallpaperBgTilemapBuffer, sizeof(gStorage->wallpaperBgTilemapBuffer), DMA3_32BIT); break; case 1: - if (WaitDma3Request(task->data[1]) == -1) + if (WaitDma3Request(task->tDmaIdx) == -1) return; - SetBgTilemapBuffer(2, gPSSData->field_4AC4); + SetBgTilemapBuffer(2, gStorage->wallpaperBgTilemapBuffer); ShowBg(2); break; case 2: - LoadWallpaperGfx(task->data[2], 0); + LoadWallpaperGfx(task->tBoxId, 0); break; case 3: if (!WaitForWallpaperGfxLoad()) return; - sub_8091A94(task->data[2]); + InitBoxTitle(task->tBoxId); CreateBoxScrollArrows(); - sub_80900D4(task->data[2]); + InitBoxMonSprites(task->tBoxId); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(27) | BGCNT_TXT512x256); break; case 4: DestroyTask(taskId); break; default: - task->data[0] = 0; + task->tState = 0; return; } - task->data[0]++; + task->tState++; } +#undef tState +#undef tDmaIdx +#undef tBoxId + void SetUpScrollToBox(u8 boxId) { - s8 direction = sub_80916F4(boxId); + s8 direction = DetermineBoxScrollDirection(boxId); - gPSSData->scrollSpeed = (direction > 0) ? 6 : -6; - gPSSData->scrollUnused1 = (direction > 0) ? 1 : 2; - gPSSData->scrollTimer = 32; - gPSSData->scrollToBoxIdUnused = boxId; - gPSSData->scrollUnused2 = (direction <= 0) ? 5 : 0; - gPSSData->scrollDirectionUnused = direction; - gPSSData->scrollUnused3 = (direction > 0) ? 264 : 56; - gPSSData->scrollUnused4 = (direction <= 0) ? 5 : 0; - gPSSData->scrollUnused5 = 0; - gPSSData->scrollUnused6 = 2; - gPSSData->scrollToBoxId = boxId; - gPSSData->scrollDirection = direction; - gPSSData->scrollState = 0; + gStorage->scrollSpeed = (direction > 0) ? 6 : -6; + gStorage->scrollUnused1 = (direction > 0) ? 1 : 2; + gStorage->scrollTimer = 32; + gStorage->scrollToBoxIdUnused = boxId; + gStorage->scrollUnused2 = (direction <= 0) ? 5 : 0; + gStorage->scrollDirectionUnused = direction; + gStorage->scrollUnused3 = (direction > 0) ? 264 : 56; + gStorage->scrollUnused4 = (direction <= 0) ? 5 : 0; + gStorage->scrollUnused5 = 0; + gStorage->scrollUnused6 = 2; + gStorage->scrollToBoxId = boxId; + gStorage->scrollDirection = direction; + gStorage->scrollState = 0; } bool8 ScrollToBox(void) { - bool8 var; + bool8 isStillScrolling; - switch (gPSSData->scrollState) + switch (gStorage->scrollState) { case 0: - LoadWallpaperGfx(gPSSData->scrollToBoxId, gPSSData->scrollDirection); - gPSSData->scrollState++; + LoadWallpaperGfx(gStorage->scrollToBoxId, gStorage->scrollDirection); + gStorage->scrollState++; case 1: if (!WaitForWallpaperGfxLoad()) return TRUE; - sub_8090574(gPSSData->scrollToBoxId, gPSSData->scrollDirection); - sub_8091C48(gPSSData->scrollToBoxId, gPSSData->scrollDirection); - StartBoxScrollArrowsSlide(gPSSData->scrollDirection); + InitBoxMonIconScroll(gStorage->scrollToBoxId, gStorage->scrollDirection); + CreateIncomingBoxTitle(gStorage->scrollToBoxId, gStorage->scrollDirection); + StartBoxScrollArrowsSlide(gStorage->scrollDirection); break; case 2: - var = sub_809062C(); - if (gPSSData->scrollTimer != 0) + isStillScrolling = UpdateBoxMonIconScroll(); + if (gStorage->scrollTimer != 0) { - gPSSData->bg2_X += gPSSData->scrollSpeed; - if (--gPSSData->scrollTimer != 0) + gStorage->bg2_X += gStorage->scrollSpeed; + if (--gStorage->scrollTimer != 0) return TRUE; - sub_8091E34(); + CycleBoxTitleSprites(); StopBoxScrollArrowsSlide(); } - return var; + return isStillScrolling; } - gPSSData->scrollState++; + gStorage->scrollState++; return TRUE; } -static s8 sub_80916F4(u8 boxId) +static s8 DetermineBoxScrollDirection(u8 boxId) { u8 i; u8 currentBox = StorageGetCurrentBox(); @@ -1095,38 +1146,37 @@ static s8 sub_80916F4(u8 boxId) void SetWallpaperForCurrentBox(u8 wallpaperId) { - u8 boxId = StorageGetCurrentBox(); - SetBoxWallpaper(boxId, wallpaperId); - gPSSData->wallpaperChangeState = 0; + SetBoxWallpaper(StorageGetCurrentBox(), wallpaperId); + gStorage->wallpaperChangeState = 0; } bool8 DoWallpaperGfxChange(void) { - switch (gPSSData->wallpaperChangeState) + switch (gStorage->wallpaperChangeState) { case 0: - BeginNormalPaletteFade(gPSSData->wallpaperPalBits, 1, 0, 16, RGB_WHITEALPHA); - gPSSData->wallpaperChangeState++; + BeginNormalPaletteFade(gStorage->wallpaperPalBits, 1, 0, 16, RGB_WHITEALPHA); + gStorage->wallpaperChangeState++; break; case 1: if (!UpdatePaletteFade()) { u8 curBox = StorageGetCurrentBox(); LoadWallpaperGfx(curBox, 0); - gPSSData->wallpaperChangeState++; + gStorage->wallpaperChangeState++; } break; case 2: if (WaitForWallpaperGfxLoad() == TRUE) { CycleBoxTitleColor(); - BeginNormalPaletteFade(gPSSData->wallpaperPalBits, 1, 16, 0, RGB_WHITEALPHA); - gPSSData->wallpaperChangeState++; + BeginNormalPaletteFade(gStorage->wallpaperPalBits, 1, 16, 0, RGB_WHITEALPHA); + gStorage->wallpaperChangeState++; } break; case 3: if (!UpdatePaletteFade()) - gPSSData->wallpaperChangeState++; + gStorage->wallpaperChangeState++; break; case 4: return FALSE; @@ -1138,30 +1188,28 @@ bool8 DoWallpaperGfxChange(void) static void LoadWallpaperGfx(u8 boxId, s8 direction) { u8 wallpaperId; - const struct WallpaperTable *wallpaperGfx; - void *iconGfx; - u32 size1, size2; + const struct Wallpaper *wallpaper; - gPSSData->wallpaperLoadState = 0; - gPSSData->wallpaperLoadBoxId = boxId; - gPSSData->wallpaperLoadDir = direction; - if (gPSSData->wallpaperLoadDir != 0) + gStorage->wallpaperLoadState = 0; + gStorage->wallpaperLoadBoxId = boxId; + gStorage->wallpaperLoadDir = direction; + if (gStorage->wallpaperLoadDir != 0) { - gPSSData->wallpaperOffset = (gPSSData->wallpaperOffset == 0); - sub_8091A24(gPSSData->field_4AC4); + gStorage->wallpaperOffset = !gStorage->wallpaperOffset; + TrimOldWallpaper(gStorage->wallpaperBgTilemapBuffer); } - wallpaperId = GetBoxWallpaper(gPSSData->wallpaperLoadBoxId); - wallpaperGfx = &sWallpaperTable[wallpaperId]; - LZ77UnCompWram(wallpaperGfx->tileMap, gPSSData->wallpaperTilemap); - sub_8091984(gPSSData->field_4AC4, gPSSData->wallpaperTilemap, gPSSData->wallpaperLoadDir, gPSSData->wallpaperOffset); + wallpaperId = GetBoxWallpaper(gStorage->wallpaperLoadBoxId); + wallpaper = &sWallpapers[wallpaperId]; + LZ77UnCompWram(wallpaper->tileMap, gStorage->wallpaperTilemap); + DrawWallpaper(gStorage->wallpaperBgTilemapBuffer, gStorage->wallpaperTilemap, gStorage->wallpaperLoadDir, gStorage->wallpaperOffset); - if (gPSSData->wallpaperLoadDir != 0) - LoadPalette(wallpaperGfx->palettes, (gPSSData->wallpaperOffset * 32) + 0x40, 0x40); + if (gStorage->wallpaperLoadDir != 0) + LoadPalette(wallpaper->palettes, (gStorage->wallpaperOffset * 32) + 0x40, 0x40); else - CpuCopy16(wallpaperGfx->palettes, &gPlttBufferUnfaded[(gPSSData->wallpaperOffset * 32) + 0x40], 0x40); + CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[(gStorage->wallpaperOffset * 32) + 0x40], 0x40); - DecompressAndLoadBgGfxUsingHeap(2, wallpaperGfx->tiles, 0, 256 * gPSSData->wallpaperOffset, 0); + DecompressAndLoadBgGfxUsingHeap(2, wallpaper->tiles, 0, 256 * gStorage->wallpaperOffset, 0); CopyBgTilemapBufferToVram(2); } @@ -1174,145 +1222,146 @@ static bool32 WaitForWallpaperGfxLoad(void) return TRUE; } -static void sub_8091984(void *buffer, const void *tilemap, s8 direction, u8 arg2) +static void DrawWallpaper(void *unused, const void *tilemap, s8 direction, u8 offset) { - s16 var = (arg2 * 2) + 3; - s16 x = ((gPSSData->bg2_X / 8 + 10) + (direction * 24)) & 0x3F; + s16 paletteNum = (offset * 2) + 3; + s16 x = ((gStorage->bg2_X / 8 + 10) + (direction * 24)) & 0x3F; - CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 0x14, 0x12, x, 2, 0x14, 0x12, 0x11, arg2 << 8, var); + CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 20, 18, x, 2, 20, 18, 17, offset << 8, paletteNum); if (direction == 0) return; else if (direction > 0) - x *= 1, x += 0x14; // x * 1 is needed to match, but can be safely removed as it makes no functional difference + x *= 1, x += 20; // x * 1 is needed to match else x -= 4; - FillBgTilemapBufferRect(2, 0, x, 2, 4, 0x12, 0x11); + FillBgTilemapBufferRect(2, 0, x, 2, 4, 18, 17); } -static void sub_8091A24(void *arg0) +static void TrimOldWallpaper(void *tilemapBuffer) { u16 i; - u16 *dest = arg0; - s16 r3 = ((gPSSData->bg2_X / 8) + 30) & 0x3F; + u16 *dest = tilemapBuffer; + s16 right = ((gStorage->bg2_X / 8 + 10) + 20) & 0x3F; - if (r3 <= 31) - dest += r3 + 0x260; + if (right < 32) + dest += right + 0x260; else - dest += r3 + 0x640; + dest += right + 0x640; - for (i = 0; i < 0x2C; i++) + for (i = 0; i < 44; i++) { *dest++ = 0; - r3 = (r3 + 1) & 0x3F; - if (r3 == 0) + right = (right + 1) & 0x3F; + if (right == 0) dest -= 0x420; - if (r3 == 0x20) + if (right == 32) dest += 0x3e0; } } -static void sub_8091A94(u8 boxId) +static void InitBoxTitle(u8 boxId) { u8 tagIndex; - s16 r6; + s16 x; u16 i; - struct SpriteSheet spriteSheet = {gPSSData->field_2F8, 0x200, TAG_TILE_3}; + struct SpriteSheet spriteSheet = {gStorage->boxTitleTiles, 0x200, GFXTAG_BOX_TITLE}; struct SpritePalette palettes[] = { - {gPSSData->boxTitlePal, TAG_PAL_DAC9}, + {gStorage->boxTitlePal, PALTAG_BOX_TITLE}, {} }; u16 wallpaperId = GetBoxWallpaper(boxId); - gPSSData->boxTitlePal[14] = sBoxTitleColors[wallpaperId][0]; - gPSSData->boxTitlePal[15] = sBoxTitleColors[wallpaperId][1]; + gStorage->boxTitlePal[14] = sBoxTitleColors[wallpaperId][0]; + gStorage->boxTitlePal[15] = sBoxTitleColors[wallpaperId][1]; LoadSpritePalettes(palettes); - gPSSData->wallpaperPalBits = 0x3f0; + gStorage->wallpaperPalBits = 0x3F0; - tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9); - gPSSData->boxTitlePalOffset = 0x10e + 16 * tagIndex; - gPSSData->wallpaperPalBits |= 0x10000 << tagIndex; + tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); + gStorage->boxTitlePalOffset = 0x10e + 16 * tagIndex; + gStorage->wallpaperPalBits |= 0x10000 << tagIndex; - tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9); - gPSSData->boxTitleAltPalOffset = 0x10e + 16 * tagIndex; - gPSSData->wallpaperPalBits |= 0x10000 << tagIndex; + tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); + gStorage->boxTitleAltPalOffset = 0x10e + 16 * tagIndex; + gStorage->wallpaperPalBits |= 0x10000 << tagIndex; - StringCopyPadded(gPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8); - DrawTextWindowAndBufferTiles(gPSSData->field_21B8, gPSSData->field_2F8, 0, 0, gPSSData->field_4F8, 2); + StringCopyPadded(gStorage->boxTitleText, GetBoxNamePtr(boxId), 0, 8); + DrawTextWindowAndBufferTiles(gStorage->boxTitleText, gStorage->boxTitleTiles, 0, 0, gStorage->boxTitleUnused, 2); LoadSpriteSheet(&spriteSheet); - r6 = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); - - for (i = 0; i < 2; i++) - { - u8 spriteId = CreateSprite(&gUnknown_83D2B7C, r6 + i * 32, 28, 24); - gPSSData->curBoxTitleSprites[i] = &gSprites[spriteId]; - StartSpriteAnim(gPSSData->curBoxTitleSprites[i], i); - } - gPSSData->boxTitleCycleId = 0; -} - -static void sub_8091C48(u8 boxId, s8 direction) -{ - u16 r8; - s16 x, x2; - u16 i; - struct SpriteSheet spriteSheet = {gPSSData->field_2F8, 0x200, TAG_TILE_3}; - struct SpriteTemplate template = gUnknown_83D2B7C; - - gPSSData->boxTitleCycleId = (gPSSData->boxTitleCycleId == 0); - if (gPSSData->boxTitleCycleId == 0) - { - spriteSheet.tag = TAG_TILE_3; - r8 = gPSSData->boxTitlePalOffset; - } - else - { - spriteSheet.tag = TAG_TILE_4; - r8 = gPSSData->boxTitlePalOffset; - template.tileTag = TAG_TILE_4; - template.paletteTag = TAG_PAL_DAC9; - } - - StringCopyPadded(gPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8); - DrawTextWindowAndBufferTiles(gPSSData->field_21B8, gPSSData->field_2F8, 0, 0, gPSSData->field_4F8, 2); - LoadSpriteSheet(&spriteSheet); - LoadPalette(sBoxTitleColors[GetBoxWallpaper(boxId)], r8, 4); x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); - x2 = x; - x2 += direction * 192; for (i = 0; i < 2; i++) { - u8 spriteId = CreateSprite(&template, i * 32 + x2, 28, 24); + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxTitle, x + i * 32, 28, 24); + gStorage->curBoxTitleSprites[i] = &gSprites[spriteId]; + StartSpriteAnim(gStorage->curBoxTitleSprites[i], i); + } + gStorage->boxTitleCycleId = 0; +} - gPSSData->nextBoxTitleSprites[i] = &gSprites[spriteId]; - gPSSData->nextBoxTitleSprites[i]->data[0] = (-direction) * 6; - gPSSData->nextBoxTitleSprites[i]->data[1] = i * 32 + x; - gPSSData->nextBoxTitleSprites[i]->data[2] = 0; - gPSSData->nextBoxTitleSprites[i]->callback = sub_8091E84; - StartSpriteAnim(gPSSData->nextBoxTitleSprites[i], i); +static void CreateIncomingBoxTitle(u8 boxId, s8 direction) +{ + u16 palOffset; + s16 x, adjustedX; + u16 i; + struct SpriteSheet spriteSheet = {gStorage->boxTitleTiles, 0x200, GFXTAG_BOX_TITLE}; + struct SpriteTemplate template = sSpriteTemplate_BoxTitle; - gPSSData->curBoxTitleSprites[i]->data[0] = (-direction) * 6; - gPSSData->curBoxTitleSprites[i]->data[1] = 1; - gPSSData->curBoxTitleSprites[i]->callback = sub_8091EB8; + gStorage->boxTitleCycleId = !gStorage->boxTitleCycleId; + if (gStorage->boxTitleCycleId == 0) + { + spriteSheet.tag = GFXTAG_BOX_TITLE; + palOffset = gStorage->boxTitlePalOffset; + } + else + { + spriteSheet.tag = GFXTAG_BOX_TITLE_ALT; + palOffset = gStorage->boxTitlePalOffset; + template.tileTag = GFXTAG_BOX_TITLE_ALT; + template.paletteTag = PALTAG_BOX_TITLE; + } + + StringCopyPadded(gStorage->boxTitleText, GetBoxNamePtr(boxId), 0, BOX_NAME_LENGTH); + DrawTextWindowAndBufferTiles(gStorage->boxTitleText, gStorage->boxTitleTiles, 0, 0, gStorage->boxTitleUnused, 2); + LoadSpriteSheet(&spriteSheet); + LoadPalette(sBoxTitleColors[GetBoxWallpaper(boxId)], palOffset, sizeof(sBoxTitleColors[0])); + x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); + adjustedX = x; + adjustedX += direction * 192; + + // Title is split across two sprites + for (i = 0; i < 2; i++) + { + u8 spriteId = CreateSprite(&template, i * 32 + adjustedX, 28, 24); + + gStorage->nextBoxTitleSprites[i] = &gSprites[spriteId]; + gStorage->nextBoxTitleSprites[i]->data[0] = (-direction) * 6; + gStorage->nextBoxTitleSprites[i]->data[1] = i * 32 + x; + gStorage->nextBoxTitleSprites[i]->data[2] = 0; + gStorage->nextBoxTitleSprites[i]->callback = SpriteCB_IncomingBoxTitle; + StartSpriteAnim(gStorage->nextBoxTitleSprites[i], i); + + gStorage->curBoxTitleSprites[i]->data[0] = (-direction) * 6; + gStorage->curBoxTitleSprites[i]->data[1] = 1; + gStorage->curBoxTitleSprites[i]->callback = SpriteCB_OutgoingBoxTitle; } } -static void sub_8091E34(void) +static void CycleBoxTitleSprites(void) { - if (gPSSData->boxTitleCycleId == 0) - FreeSpriteTilesByTag(TAG_TILE_4); + if (gStorage->boxTitleCycleId == 0) + FreeSpriteTilesByTag(GFXTAG_BOX_TITLE_ALT); else - FreeSpriteTilesByTag(TAG_TILE_3); + FreeSpriteTilesByTag(GFXTAG_BOX_TITLE); - gPSSData->curBoxTitleSprites[0] = gPSSData->nextBoxTitleSprites[0]; - gPSSData->curBoxTitleSprites[1] = gPSSData->nextBoxTitleSprites[1]; + gStorage->curBoxTitleSprites[0] = gStorage->nextBoxTitleSprites[0]; + gStorage->curBoxTitleSprites[1] = gStorage->nextBoxTitleSprites[1]; } -static void sub_8091E84(struct Sprite *sprite) +static void SpriteCB_IncomingBoxTitle(struct Sprite *sprite) { if (sprite->data[2] != 0) sprite->data[2]--; @@ -1320,12 +1369,10 @@ static void sub_8091E84(struct Sprite *sprite) sprite->callback = SpriteCallbackDummy; } -static void sub_8091EB8(struct Sprite *sprite) +static void SpriteCB_OutgoingBoxTitle(struct Sprite *sprite) { if (sprite->data[1] != 0) - { sprite->data[1]--; - } else { sprite->x += sprite->data[0]; @@ -1339,10 +1386,10 @@ static void CycleBoxTitleColor(void) { u8 boxId = StorageGetCurrentBox(); u8 wallpaperId = GetBoxWallpaper(boxId); - if (gPSSData->boxTitleCycleId == 0) - CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gPSSData->boxTitlePalOffset, 4); + if (gStorage->boxTitleCycleId == 0) + CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gStorage->boxTitlePalOffset, 4); else - CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gPSSData->boxTitleAltPalOffset, 4); + CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gStorage->boxTitleAltPalOffset, 4); } static s16 GetBoxTitleBaseX(const u8 *string) @@ -1350,12 +1397,6 @@ static s16 GetBoxTitleBaseX(const u8 *string) return DISPLAY_WIDTH - 64 - GetStringWidth(FONT_1, string, 0) / 2; } - -//------------------------------------------------------------------------------ -// SECTION: Scroll arrows -//------------------------------------------------------------------------------ - - // Sprite data for box scroll arrows #define sState data[0] #define sTimer data[1] @@ -1365,16 +1406,16 @@ static void CreateBoxScrollArrows(void) { u16 i; - LoadSpriteSheet(&sSpriteSheet_Arrow); + LoadSpriteSheet(&sSpriteSheet_BoxScrollArrow); for (i = 0; i < 2; i++) { - u8 spriteId = CreateSprite(&sSpriteTemplate_Arrow, 92 + i * 136, 28, 22); + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxScrollArrow, 92 + i * 136, 28, 22); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; StartSpriteAnim(sprite, i); - sprite->data[3] = (i == 0) ? -1 : 1; - gPSSData->arrowSprites[i] = sprite; + sprite->sSpeed = (i == 0) ? -1 : 1; + gStorage->arrowSprites[i] = sprite; } } if (IsCursorOnBoxTitle()) @@ -1388,25 +1429,25 @@ static void StartBoxScrollArrowsSlide(s8 direction) for (i = 0; i < 2; i++) { - gPSSData->arrowSprites[i]->x2 = 0; - gPSSData->arrowSprites[i]->sState = 2; + gStorage->arrowSprites[i]->x2 = 0; + gStorage->arrowSprites[i]->sState = 2; } if (direction < 0) { - gPSSData->arrowSprites[0]->sTimer = 29; - gPSSData->arrowSprites[1]->sTimer = 5; - gPSSData->arrowSprites[0]->data[2] = 72; - gPSSData->arrowSprites[1]->data[2] = 72; + gStorage->arrowSprites[0]->sTimer = 29; + gStorage->arrowSprites[1]->sTimer = 5; + gStorage->arrowSprites[0]->data[2] = 72; + gStorage->arrowSprites[1]->data[2] = 72; } else { - gPSSData->arrowSprites[0]->sTimer = 5; - gPSSData->arrowSprites[1]->sTimer = 29; - gPSSData->arrowSprites[0]->data[2] = DISPLAY_WIDTH + 8; - gPSSData->arrowSprites[1]->data[2] = DISPLAY_WIDTH + 8; + gStorage->arrowSprites[0]->sTimer = 5; + gStorage->arrowSprites[1]->sTimer = 29; + gStorage->arrowSprites[0]->data[2] = DISPLAY_WIDTH + 8; + gStorage->arrowSprites[1]->data[2] = DISPLAY_WIDTH + 8; } - gPSSData->arrowSprites[0]->data[7] = 0; - gPSSData->arrowSprites[1]->data[7] = 1; + gStorage->arrowSprites[0]->data[7] = 0; + gStorage->arrowSprites[1]->data[7] = 1; } // New box's scroll arrows have entered, stop sliding and set their position @@ -1416,9 +1457,9 @@ static void StopBoxScrollArrowsSlide(void) for (i = 0; i < 2; i++) { - gPSSData->arrowSprites[i]->x = 136 * i + 92; - gPSSData->arrowSprites[i]->x2 = 0; - gPSSData->arrowSprites[i]->invisible = FALSE; + gStorage->arrowSprites[i]->x = 136 * i + 92; + gStorage->arrowSprites[i]->x2 = 0; + gStorage->arrowSprites[i]->invisible = FALSE; } AnimateBoxScrollArrows(TRUE); } @@ -1433,21 +1474,21 @@ void AnimateBoxScrollArrows(bool8 animate) // Start arrows moving for (i = 0; i < 2; i++) { - gPSSData->arrowSprites[i]->sState = 1; - gPSSData->arrowSprites[i]->sTimer = 0; - gPSSData->arrowSprites[i]->data[2] = 0; - gPSSData->arrowSprites[i]->data[4] = 0; + gStorage->arrowSprites[i]->sState = 1; + gStorage->arrowSprites[i]->sTimer = 0; + gStorage->arrowSprites[i]->data[2] = 0; + gStorage->arrowSprites[i]->data[4] = 0; } } else { // Stop arrows moving for (i = 0; i < 2; i++) - gPSSData->arrowSprites[i]->sState = 0; + gStorage->arrowSprites[i]->sState = 0; } } -static void SpriteCB_Arrow(struct Sprite *sprite) +static void SpriteCB_BoxScrollArrow(struct Sprite *sprite) { switch (sprite->sState) { @@ -1470,7 +1511,7 @@ static void SpriteCB_Arrow(struct Sprite *sprite) sprite->sState = 3; break; case 3: - sprite->x -= gPSSData->scrollSpeed; + sprite->x -= gStorage->scrollSpeed; if (sprite->x <= 72 || sprite->x >= DISPLAY_WIDTH + 8) sprite->invisible = TRUE; if (--sprite->sTimer == 0) @@ -1481,18 +1522,19 @@ static void SpriteCB_Arrow(struct Sprite *sprite) } break; case 4: - sprite->x -= gPSSData->scrollSpeed; + sprite->x -= gStorage->scrollSpeed; break; } } #undef sState +#undef sTimer #undef sSpeed // Arrows for Deposit/Jump Box selection struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority) { - u8 spriteId = CreateSprite(&sSpriteTemplate_Arrow, x, y, subpriority); + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxScrollArrow, x, y, subpriority); if (spriteId == MAX_SPRITES) return NULL; diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c index 8074b57c4..4eecee08b 100644 --- a/src/pokemon_storage_system_5.c +++ b/src/pokemon_storage_system_5.c @@ -10,424 +10,444 @@ #include "constants/moves.h" static EWRAM_DATA struct Pokemon sMonBeingCarried = {}; -static EWRAM_DATA s8 sBoxCursorArea = 0; -static EWRAM_DATA s8 sBoxCursorPosition = 0; +static EWRAM_DATA s8 sCursorArea = 0; +static EWRAM_DATA s8 sCursorPosition = 0; static EWRAM_DATA bool8 sIsMonBeingMoved = FALSE; static EWRAM_DATA u8 sMovingMonOrigBoxId = 0; static EWRAM_DATA u8 sMovingMonOrigBoxPos = 0; -static EWRAM_DATA bool8 sCanOnlyMove = FALSE; -static EWRAM_DATA u8 gUnknown_2039826 = 0; +static EWRAM_DATA bool8 sInMultiMoveMode = FALSE; +static EWRAM_DATA u8 sSavedCursorPosition = 0; -static void sub_80929B0(void); -static bool8 MonPlaceChange_Move(void); +static void DoCursorNewPosUpdate(void); +static bool8 MonPlaceChange_Grab(void); static bool8 MonPlaceChange_Place(void); static bool8 MonPlaceChange_Shift(void); -static bool8 sub_8092E00(void); -static bool8 sub_8092E10(void); -static bool8 sub_8092E20(void); -static bool8 sub_8092E54(void); +static bool8 MonPlaceChange_DoMoveCursorDown(void); +static bool8 MonPlaceChange_DoMoveCursorUp(void); +static bool8 MonPlaceChange_MoveCursorDown(void); +static bool8 MonPlaceChange_MoveCursorUp(void); static void MoveMon(void); static void PlaceMon(void); static void SetMovedMonData(u8 boxId, u8 cursorPos); static void SetPlacedMonData(u8 boxId, u8 cursorPos); static void PurgeMonOrBoxMon(u8 boxId, u8 cursorPos); static void SetShiftedMonData(u8 boxId, u8 cursorPos); -static void sub_8093A10(void); -static void SetCursorMonData(void *cursorMon, u8 mode); -static void sub_8093AAC(void); -static u8 InBoxInput_Normal(void); -static u8 InBoxInput_GrabbingMultiple(void); -static u8 InBoxInput_MovingMultiple(void); +static void TrySetDisplayMonData(void); +static void SetDisplayMonData(void *pokemon, u8 mode); +static void ReshowDisplayMon(void); +static u8 HandleInput_InBox_Normal(void); +static u8 HandleInput_InBox_GrabbingMultiple(void); +static u8 HandleInput_InBox_MovingMultiple(void); static void AddBoxMenu(void); -static bool8 sub_8094924(void); -static bool8 sub_809494C(void); -static bool8 sub_8094A0C(void); -static void sub_8094AD8(void); -static void sub_8094C84(void); +static bool8 SetSelectionMenuTexts(void); +static bool8 SetMenuTextsForMon(void); +static bool8 SetMenuTextsForItem(void); +static void CreateCursorSprites(void); +static void ToggleCursorMultiMoveMode(void); -static const u16 sHandCursorPalette[] = INCBIN_U16("graphics/interface/pss_unk_83D2BCC.gbapal"); +static const u16 sPokeStorageMisc1Pal[] = INCBIN_U16("graphics/interface/pss_unk_83D2BCC.gbapal"); static const u16 sHandCursorTiles[] = INCBIN_U16("graphics/interface/pss_unk_83D2BEC.4bpp"); static const u16 sHandCursorShadowTiles[] = INCBIN_U16("graphics/interface/pss_unk_83D33EC.4bpp"); -void sub_80922C0(void) +// Modes for selecting and moving Pokémon in the box. Multiple Pokémon can be +// selected by pressing the Select button to change the cursor, then holding +// down the A button while moving the cursor around. This is +// MOVE_MODE_MULTIPLE_SELECTING. After releasing the A button, those Pokémon +// will be picked up and can be moved around as a single unit. This is +// MOVE_MODE_MULTIPLE_MOVING. +enum { - if (gPSSData->boxOption != OPTION_DEPOSIT) - sBoxCursorArea = CURSOR_AREA_IN_BOX; - else - sBoxCursorArea = CURSOR_AREA_IN_PARTY; + MOVE_MODE_NORMAL, + MOVE_MODE_MULTIPLE_SELECTING, + MOVE_MODE_MULTIPLE_MOVING, +}; - sBoxCursorPosition = 0; +void InitCursor(void) +{ + if (gStorage->boxOption != OPTION_DEPOSIT) + sCursorArea = CURSOR_AREA_IN_BOX; + else + sCursorArea = CURSOR_AREA_IN_PARTY; + + sCursorPosition = 0; sIsMonBeingMoved = FALSE; sMovingMonOrigBoxId = 0; sMovingMonOrigBoxPos = 0; - sCanOnlyMove = FALSE; - sub_8092B50(); - sub_8094AD8(); - gPSSData->cursorPrevHorizPos = 1; - gPSSData->inBoxMovingMode = 0; - sub_8093A10(); + sInMultiMoveMode = FALSE; + ClearSavedCursorPos(); + CreateCursorSprites(); + gStorage->cursorPrevPartyPos = 1; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + TrySetDisplayMonData(); } -void sub_8092340(void) +void InitCursorOnReopen(void) { - sub_8094AD8(); - sub_8093AAC(); - gPSSData->cursorPrevHorizPos = 1; - gPSSData->inBoxMovingMode = 0; + CreateCursorSprites(); + ReshowDisplayMon(); + gStorage->cursorPrevPartyPos = 1; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; if (sIsMonBeingMoved) { - gPSSData->movingMon = sMonBeingCarried; + gStorage->movingMon = sMonBeingCarried; CreateMovingMonIcon(); } } -static void sub_8092398(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y) +static void GetCursorCoordsByPos(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y) { switch (cursorArea) { case CURSOR_AREA_IN_BOX: - *x = (cursorPosition % IN_BOX_ROWS) * 24 + 100; - *y = (cursorPosition / IN_BOX_ROWS) * 24 + 32; + *x = (cursorPosition % IN_BOX_COLUMNS) * 24 + 100; + *y = (cursorPosition / IN_BOX_COLUMNS) * 24 + 32; break; case CURSOR_AREA_IN_PARTY: if (cursorPosition == 0) { - *x = 0x68; - *y = 0x34; + *x = 104; + *y = 52; } else if (cursorPosition == PARTY_SIZE) { - *x = 0x98; - *y = 0x84; + *x = 152; + *y = 132; } else { - *x = 0x98; + *x = 152; *y = (cursorPosition - 1) * 24 + 4; } break; - case CURSOR_AREA_BOX: - *x = 0xa2; - *y = 0x0c; + case CURSOR_AREA_BOX_TITLE: + *x = 162; + *y = 12; break; case CURSOR_AREA_BUTTONS: *y = sIsMonBeingMoved ? 8 : 14; - *x = cursorPosition * 0x58 + 0x78; + *x = cursorPosition * 88 + 120; break; case 4: - *x = 0xa0; - *y = 0x60; + *x = 160; + *y = 96; break; } } -static u16 sub_8092458(void) +static u16 GetSpeciesAtCursorPosition(void) { - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - return GetMonData(&gPlayerParty[sBoxCursorPosition], MON_DATA_SPECIES); + return GetMonData(&gPlayerParty[sCursorPosition], MON_DATA_SPECIES); case CURSOR_AREA_IN_BOX: - return GetCurrentBoxMonData(sBoxCursorPosition, MON_DATA_SPECIES); + return GetCurrentBoxMonData(sCursorPosition, MON_DATA_SPECIES); default: return SPECIES_NONE; } } -bool8 sub_80924A8(void) +bool8 UpdateCursorPos(void) { s16 tmp; - if (gPSSData->cursorMoveSteps == 0) + if (gStorage->cursorMoveSteps == 0) { - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return FALSE; else - return sub_809610C(); + return IsItemIconAnimActive(); } - else if (--gPSSData->cursorMoveSteps != 0) + else if (--gStorage->cursorMoveSteps != 0) { - gPSSData->cursorNewX += gPSSData->cursorSpeedX; - gPSSData->cursorNewY += gPSSData->cursorSpeedY; - gPSSData->cursorSprite->x = gPSSData->cursorNewX >> 8; - gPSSData->cursorSprite->y = gPSSData->cursorNewY >> 8; - if (gPSSData->cursorSprite->x > 0x100) + // Update position toward target + gStorage->cursorNewX += gStorage->cursorSpeedX; + gStorage->cursorNewY += gStorage->cursorSpeedY; + gStorage->cursorSprite->x = gStorage->cursorNewX >> 8; + gStorage->cursorSprite->y = gStorage->cursorNewY >> 8; + + // Limit cursor on right + if (gStorage->cursorSprite->x > DISPLAY_WIDTH + 16) { - tmp = gPSSData->cursorSprite->x - 0x100; - gPSSData->cursorSprite->x = tmp + 0x40; + tmp = gStorage->cursorSprite->x - (DISPLAY_WIDTH + 16); + gStorage->cursorSprite->x = tmp + 64; } - if (gPSSData->cursorSprite->x < 0x40) + + // Limit cursor on left + if (gStorage->cursorSprite->x < 64) { - tmp = 0x40 - gPSSData->cursorSprite->x; - gPSSData->cursorSprite->x = 0x100 - tmp; + tmp = 64 - gStorage->cursorSprite->x; + gStorage->cursorSprite->x = DISPLAY_WIDTH + 16 - tmp; } - if (gPSSData->cursorSprite->y > 0xb0) + + // Limit cursor on bottom + if (gStorage->cursorSprite->y > DISPLAY_HEIGHT + 16) { - tmp = gPSSData->cursorSprite->y - 0xb0; - gPSSData->cursorSprite->y = tmp - 0x10; + tmp = gStorage->cursorSprite->y - (DISPLAY_HEIGHT + 16); + gStorage->cursorSprite->y = tmp - 16; } - if (gPSSData->cursorSprite->y < -0x10) + + // Limit cursor on top + if (gStorage->cursorSprite->y < -16) { - tmp = -0x10 - gPSSData->cursorSprite->y; - gPSSData->cursorSprite->y = 0xb0 - tmp; + tmp = -16 - gStorage->cursorSprite->y; + gStorage->cursorSprite->y = DISPLAY_HEIGHT + 16 - tmp; } - if (gPSSData->cursorFlipTimer && --gPSSData->cursorFlipTimer == 0) - gPSSData->cursorSprite->vFlip = (gPSSData->cursorSprite->vFlip == FALSE); + + // Cursor flips vertically when moving on/off the top buttons + if (gStorage->cursorFlipTimer && --gStorage->cursorFlipTimer == 0) + gStorage->cursorSprite->vFlip = (gStorage->cursorSprite->vFlip == FALSE); } else { - gPSSData->cursorSprite->x = gPSSData->cursorTargetX; - gPSSData->cursorSprite->y = gPSSData->cursorTargetY; - sub_80929B0(); + // Time is up for cursor movement, make sure it's exactly at target + gStorage->cursorSprite->x = gStorage->cursorTargetX; + gStorage->cursorSprite->y = gStorage->cursorTargetY; + DoCursorNewPosUpdate(); } return TRUE; } -static void sub_8092604(u8 newCurosrArea, u8 newCursorPosition) +static void InitNewCursorPos(u8 newCursorArea, u8 newCursorPosition) { u16 x, y; - sub_8092398(newCurosrArea, newCursorPosition, &x, &y); - gPSSData->newCursorArea = newCurosrArea; - gPSSData->newCursorPosition = newCursorPosition; - gPSSData->cursorTargetX = x; - gPSSData->cursorTargetY = y; + GetCursorCoordsByPos(newCursorArea, newCursorPosition, &x, &y); + gStorage->newCursorArea = newCursorArea; + gStorage->newCursorPosition = newCursorPosition; + gStorage->cursorTargetX = x; + gStorage->cursorTargetY = y; } -static void sub_8092660(void) +static void InitCursorMove(void) { - int r7, r0; + int yDistance, xDistance; - if (gPSSData->cursorVerticalWrap != 0 || gPSSData->cursorHorizontalWrap != 0) - gPSSData->cursorMoveSteps = 12; + if (gStorage->cursorVerticalWrap != 0 || gStorage->cursorHorizontalWrap != 0) + gStorage->cursorMoveSteps = 12; else - gPSSData->cursorMoveSteps = 6; + gStorage->cursorMoveSteps = 6; - if (gPSSData->cursorFlipTimer) - gPSSData->cursorFlipTimer = gPSSData->cursorMoveSteps >> 1; + if (gStorage->cursorFlipTimer) + gStorage->cursorFlipTimer = gStorage->cursorMoveSteps / 2; - switch (gPSSData->cursorVerticalWrap) + switch (gStorage->cursorVerticalWrap) { default: - r7 = gPSSData->cursorTargetY - gPSSData->cursorSprite->y; + yDistance = gStorage->cursorTargetY - gStorage->cursorSprite->y; break; case -1: - r7 = gPSSData->cursorTargetY - 0xc0 - gPSSData->cursorSprite->y; + yDistance = gStorage->cursorTargetY - 192 - gStorage->cursorSprite->y; break; case 1: - r7 = gPSSData->cursorTargetY + 0xc0 - gPSSData->cursorSprite->y; + yDistance = gStorage->cursorTargetY + 192 - gStorage->cursorSprite->y; break; } - switch (gPSSData->cursorHorizontalWrap) + switch (gStorage->cursorHorizontalWrap) { default: - r0 = gPSSData->cursorTargetX - gPSSData->cursorSprite->x; + xDistance = gStorage->cursorTargetX - gStorage->cursorSprite->x; break; case -1: - r0 = gPSSData->cursorTargetX - 0xc0 - gPSSData->cursorSprite->x; + xDistance = gStorage->cursorTargetX - 192 - gStorage->cursorSprite->x; break; case 1: - r0 = gPSSData->cursorTargetX + 0xc0 - gPSSData->cursorSprite->x; + xDistance = gStorage->cursorTargetX + 192 - gStorage->cursorSprite->x; break; } - r7 <<= 8; - r0 <<= 8; - gPSSData->cursorSpeedX = r0 / gPSSData->cursorMoveSteps; - gPSSData->cursorSpeedY = r7 / gPSSData->cursorMoveSteps; - gPSSData->cursorNewX = gPSSData->cursorSprite->x << 8; - gPSSData->cursorNewY = gPSSData->cursorSprite->y << 8; + yDistance <<= 8; + xDistance <<= 8; + gStorage->cursorSpeedX = xDistance / gStorage->cursorMoveSteps; + gStorage->cursorSpeedY = yDistance / gStorage->cursorMoveSteps; + gStorage->cursorNewX = gStorage->cursorSprite->x << 8; + gStorage->cursorNewY = gStorage->cursorSprite->y << 8; } -static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition) +static void SetCursorPosition(u8 newCursorArea, u8 newCursorPosition) { - sub_8092604(newCurosrArea, newCursorPosition); - sub_8092660(); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + InitNewCursorPos(newCursorArea, newCursorPosition); + InitCursorMove(); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { - if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 1); + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL && !sIsMonBeingMoved) + StartSpriteAnim(gStorage->cursorSprite, 1); } else { if (!IsActiveItemMoving()) - StartSpriteAnim(gPSSData->cursorSprite, 1); + StartSpriteAnim(gStorage->cursorSprite, 1); } - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_8095D44(CURSOR_AREA_IN_BOX, sBoxCursorPosition); - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - sub_8095D44(CURSOR_AREA_IN_PARTY, sBoxCursorPosition); + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryHideItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); + else if (sCursorArea == CURSOR_AREA_IN_PARTY) + TryHideItemIconAtPos(CURSOR_AREA_IN_PARTY, sCursorPosition); - if (newCurosrArea == CURSOR_AREA_IN_BOX) - sub_8095C84(newCurosrArea, newCursorPosition); - else if (newCurosrArea == CURSOR_AREA_IN_PARTY) - sub_8095C84(newCurosrArea, newCursorPosition); + if (newCursorArea == CURSOR_AREA_IN_BOX) + TryLoadItemIconAtPos(newCursorArea, newCursorPosition); + else if (newCursorArea == CURSOR_AREA_IN_PARTY) + TryLoadItemIconAtPos(newCursorArea, newCursorPosition); } - if (newCurosrArea == CURSOR_AREA_IN_PARTY && sBoxCursorArea != CURSOR_AREA_IN_PARTY) + if (newCursorArea == CURSOR_AREA_IN_PARTY && sCursorArea != CURSOR_AREA_IN_PARTY) { - gPSSData->cursorPrevHorizPos = newCurosrArea; - gPSSData->cursorShadowSprite->invisible = TRUE; + gStorage->cursorPrevPartyPos = 1; + gStorage->cursorShadowSprite->invisible = TRUE; } - switch (newCurosrArea) + switch (newCursorArea) { case CURSOR_AREA_IN_PARTY: - case CURSOR_AREA_BOX: + case CURSOR_AREA_BOX_TITLE: case CURSOR_AREA_BUTTONS: - gPSSData->cursorSprite->oam.priority = 1; - gPSSData->cursorShadowSprite->invisible = TRUE; - gPSSData->cursorShadowSprite->oam.priority = 1; + gStorage->cursorSprite->oam.priority = 1; + gStorage->cursorShadowSprite->invisible = TRUE; + gStorage->cursorShadowSprite->oam.priority = 1; break; case CURSOR_AREA_IN_BOX: - if (gPSSData->inBoxMovingMode != 0) + if (gStorage->inBoxMovingMode != MOVE_MODE_NORMAL) { - gPSSData->cursorSprite->oam.priority = 0; - gPSSData->cursorShadowSprite->invisible = TRUE; + gStorage->cursorSprite->oam.priority = 0; + gStorage->cursorShadowSprite->invisible = TRUE; } else { - gPSSData->cursorSprite->oam.priority = 2; - if (sBoxCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved) + gStorage->cursorSprite->oam.priority = 2; + if (sCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved) SetMovingMonPriority(2); } break; } } -static void sub_80929B0(void) +static void DoCursorNewPosUpdate(void) { - sBoxCursorArea = gPSSData->newCursorArea; - sBoxCursorPosition = gPSSData->newCursorPosition; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + sCursorArea = gStorage->newCursorArea; + sCursorPosition = gStorage->newCursorPosition; + if (gStorage->boxOption != OPTION_MOVE_ITEMS) { - if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 1); - } - else - { - if (!IsActiveItemMoving()) - StartSpriteAnim(gPSSData->cursorSprite, 1); + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL && !sIsMonBeingMoved) + StartSpriteAnim(gStorage->cursorSprite, 1); } + else if (!IsActiveItemMoving()) + StartSpriteAnim(gStorage->cursorSprite, 1); - sub_8093A10(); - switch (sBoxCursorArea) + TrySetDisplayMonData(); + switch (sCursorArea) { case CURSOR_AREA_BUTTONS: SetMovingMonPriority(1); break; - case CURSOR_AREA_BOX: + case CURSOR_AREA_BOX_TITLE: AnimateBoxScrollArrows(TRUE); break; case CURSOR_AREA_IN_PARTY: - gPSSData->cursorShadowSprite->subpriority = 13; + gStorage->cursorShadowSprite->subpriority = 13; SetMovingMonPriority(1); break; case CURSOR_AREA_IN_BOX: - if (gPSSData->inBoxMovingMode == 0) + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL) { - gPSSData->cursorSprite->oam.priority = 1; - gPSSData->cursorShadowSprite->oam.priority = 2; - gPSSData->cursorShadowSprite->subpriority = 21; - gPSSData->cursorShadowSprite->invisible = FALSE; + gStorage->cursorSprite->oam.priority = 1; + gStorage->cursorShadowSprite->oam.priority = 2; + gStorage->cursorShadowSprite->subpriority = 21; + gStorage->cursorShadowSprite->invisible = FALSE; SetMovingMonPriority(2); } break; } } -void sub_8092AE4(void) +void SetCursorInParty(void) { u8 partyCount; if (!sIsMonBeingMoved) - { partyCount = 0; - } else { partyCount = CalculatePlayerPartyCount(); if (partyCount >= PARTY_SIZE) partyCount = PARTY_SIZE - 1; } - if (gPSSData->cursorSprite->vFlip) - gPSSData->cursorFlipTimer = 1; - sub_80927E8(CURSOR_AREA_IN_PARTY, partyCount); + if (gStorage->cursorSprite->vFlip) + gStorage->cursorFlipTimer = 1; + SetCursorPosition(CURSOR_AREA_IN_PARTY, partyCount); } -void sub_8092B3C(u8 cursorBoxPosition) +void SetCursorBoxPosition(u8 cursorBoxPosition) { - sub_80927E8(CURSOR_AREA_IN_BOX, cursorBoxPosition); + SetCursorPosition(CURSOR_AREA_IN_BOX, cursorBoxPosition); } -void sub_8092B50(void) +void ClearSavedCursorPos(void) { - gUnknown_2039826 = 0; + sSavedCursorPosition = 0; } -void sub_8092B5C(void) +void SaveCursorPos(void) { - gUnknown_2039826 = sBoxCursorPosition; + sSavedCursorPosition = sCursorPosition; } -u8 sub_8092B70(void) +u8 GetSavedCursorPos(void) { - return gUnknown_2039826; + return sSavedCursorPosition; } -void InitMonPlaceChange(u8 a0) +void InitMonPlaceChange(u8 type) { static bool8 (*const placeChangeFuncs[])(void) = { - MonPlaceChange_Move, - MonPlaceChange_Place, - MonPlaceChange_Shift, + [CHANGE_GRAB] = MonPlaceChange_Grab, + [CHANGE_PLACE] = MonPlaceChange_Place, + [CHANGE_SHIFT] = MonPlaceChange_Shift, }; - gPSSData->monPlaceChangeFunc = placeChangeFuncs[a0]; - gPSSData->monPlaceChangeState = 0; + gStorage->monPlaceChangeFunc = placeChangeFuncs[type]; + gStorage->monPlaceChangeState = 0; } -void sub_8092BAC(bool8 arg0) +void InitMultiMonPlaceChange(bool8 moveCursorUp) { - if (!arg0) - gPSSData->monPlaceChangeFunc = sub_8092E00; + if (!moveCursorUp) + gStorage->monPlaceChangeFunc = MonPlaceChange_DoMoveCursorDown; else - gPSSData->monPlaceChangeFunc = sub_8092E10; + gStorage->monPlaceChangeFunc = MonPlaceChange_DoMoveCursorUp; - gPSSData->monPlaceChangeState = 0; + gStorage->monPlaceChangeState = 0; } bool8 DoMonPlaceChange(void) { - return gPSSData->monPlaceChangeFunc(); + return gStorage->monPlaceChangeFunc(); } -static bool8 MonPlaceChange_Move(void) +static bool8 MonPlaceChange_Grab(void) { - switch (gPSSData->monPlaceChangeState) + switch (gStorage->monPlaceChangeState) { case 0: if (sIsMonBeingMoved) return FALSE; - StartSpriteAnim(gPSSData->cursorSprite, 2); - gPSSData->monPlaceChangeState++; + StartSpriteAnim(gStorage->cursorSprite, 2); + gStorage->monPlaceChangeState++; break; case 1: - if (!sub_8092E20()) + if (!MonPlaceChange_MoveCursorDown()) { - StartSpriteAnim(gPSSData->cursorSprite, 3); + StartSpriteAnim(gStorage->cursorSprite, 3); MoveMon(); - gPSSData->monPlaceChangeState++; + gStorage->monPlaceChangeState++; } break; case 2: - if (!sub_8092E54()) - gPSSData->monPlaceChangeState++; + if (!MonPlaceChange_MoveCursorUp()) + gStorage->monPlaceChangeState++; break; case 3: return FALSE; @@ -438,21 +458,21 @@ static bool8 MonPlaceChange_Move(void) static bool8 MonPlaceChange_Place(void) { - switch (gPSSData->monPlaceChangeState) + switch (gStorage->monPlaceChangeState) { case 0: - if (!sub_8092E20()) + if (!MonPlaceChange_MoveCursorDown()) { - StartSpriteAnim(gPSSData->cursorSprite, 2); + StartSpriteAnim(gStorage->cursorSprite, 2); PlaceMon(); - gPSSData->monPlaceChangeState++; + gStorage->monPlaceChangeState++; } break; case 1: - if (!sub_8092E54()) + if (!MonPlaceChange_MoveCursorUp()) { - StartSpriteAnim(gPSSData->cursorSprite, 0); - gPSSData->monPlaceChangeState++; + StartSpriteAnim(gStorage->cursorSprite, 0); + gStorage->monPlaceChangeState++; } break; case 2: @@ -464,30 +484,30 @@ static bool8 MonPlaceChange_Place(void) static bool8 MonPlaceChange_Shift(void) { - switch (gPSSData->monPlaceChangeState) + switch (gStorage->monPlaceChangeState) { case 0: - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - gPSSData->shiftBoxId = TOTAL_BOXES_COUNT; + gStorage->shiftBoxId = TOTAL_BOXES_COUNT; break; case CURSOR_AREA_IN_BOX: - gPSSData->shiftBoxId = StorageGetCurrentBox(); + gStorage->shiftBoxId = StorageGetCurrentBox(); break; default: return FALSE; } - StartSpriteAnim(gPSSData->cursorSprite, 2); - sub_8090E08(gPSSData->shiftBoxId, sBoxCursorPosition); - gPSSData->monPlaceChangeState++; + StartSpriteAnim(gStorage->cursorSprite, 2); + SetShiftMonSpritePtr(gStorage->shiftBoxId, sCursorPosition); + gStorage->monPlaceChangeState++; break; case 1: - if (!sub_8090E74()) + if (!ShiftMons()) { - StartSpriteAnim(gPSSData->cursorSprite, 3); - SetShiftedMonData(gPSSData->shiftBoxId, sBoxCursorPosition); - gPSSData->monPlaceChangeState++; + StartSpriteAnim(gStorage->cursorSprite, 3); + SetShiftedMonData(gStorage->shiftBoxId, sCursorPosition); + gStorage->monPlaceChangeState++; } break; case 2: @@ -497,41 +517,41 @@ static bool8 MonPlaceChange_Shift(void) return TRUE; } -static bool8 sub_8092E00(void) +static bool8 MonPlaceChange_DoMoveCursorDown(void) { - return sub_8092E20(); + return MonPlaceChange_MoveCursorDown(); } -static bool8 sub_8092E10(void) +static bool8 MonPlaceChange_DoMoveCursorUp(void) { - return sub_8092E54(); + return MonPlaceChange_MoveCursorUp(); } -static bool8 sub_8092E20(void) +static bool8 MonPlaceChange_MoveCursorDown(void) { - switch (gPSSData->cursorSprite->y2) + switch (gStorage->cursorSprite->y2) { default: - gPSSData->cursorSprite->y2++; + gStorage->cursorSprite->y2++; break; case 0: - gPSSData->cursorSprite->y2++; + gStorage->cursorSprite->y2++; break; - case 8: + case 8: // Cursor has reached bottom return FALSE; } return TRUE; } -static bool8 sub_8092E54(void) +static bool8 MonPlaceChange_MoveCursorUp(void) { - switch (gPSSData->cursorSprite->y2) + switch (gStorage->cursorSprite->y2) { - case 0: + case 0: // Cursor has reached top return FALSE; default: - gPSSData->cursorSprite->y2--; + gStorage->cursorSprite->y2--; break; } @@ -540,17 +560,17 @@ static bool8 sub_8092E54(void) static void MoveMon(void) { - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - SetMovedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - sub_8090CC0(MODE_PARTY, sBoxCursorPosition); + SetMovedMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetMovingMonSprite(MODE_PARTY, sCursorPosition); break; case CURSOR_AREA_IN_BOX: - if (gPSSData->inBoxMovingMode == 0) + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL) { - SetMovedMonData(StorageGetCurrentBox(), sBoxCursorPosition); - sub_8090CC0(MODE_BOX, sBoxCursorPosition); + SetMovedMonData(StorageGetCurrentBox(), sCursorPosition); + SetMovingMonSprite(MODE_BOX, sCursorPosition); } break; default: @@ -564,16 +584,16 @@ static void PlaceMon(void) { u8 boxId; - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - SetPlacedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - sub_8090D58(TOTAL_BOXES_COUNT, sBoxCursorPosition); + SetPlacedMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetPlacedMonSprite(TOTAL_BOXES_COUNT, sCursorPosition); break; case CURSOR_AREA_IN_BOX: boxId = StorageGetCurrentBox(); - SetPlacedMonData(boxId, sBoxCursorPosition); - sub_8090D58(boxId, sBoxCursorPosition); + SetPlacedMonData(boxId, sCursorPosition); + SetPlacedMonSprite(boxId, sCursorPosition); break; default: return; @@ -582,17 +602,17 @@ static void PlaceMon(void) sIsMonBeingMoved = FALSE; } -void sub_8092F54(void) +void DoTrySetDisplayMonData(void) { - sub_8093A10(); + TrySetDisplayMonData(); } static void SetMovedMonData(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) - gPSSData->movingMon = gPlayerParty[sBoxCursorPosition]; + gStorage->movingMon = gPlayerParty[sCursorPosition]; else - BoxMonAtToMon(boxId, position, &gPSSData->movingMon); + BoxMonAtToMon(boxId, position, &gStorage->movingMon); PurgeMonOrBoxMon(boxId, position); sMovingMonOrigBoxId = boxId; @@ -602,13 +622,11 @@ static void SetMovedMonData(u8 boxId, u8 position) static void SetPlacedMonData(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) - { - gPlayerParty[position] = gPSSData->movingMon; - } + gPlayerParty[position] = gStorage->movingMon; else { - BoxMonRestorePP(&gPSSData->movingMon.box); - SetBoxMonAt(boxId, position, &gPSSData->movingMon.box); + BoxMonRestorePP(&gStorage->movingMon.box); + SetBoxMonAt(boxId, position, &gStorage->movingMon.box); } } @@ -623,13 +641,13 @@ static void PurgeMonOrBoxMon(u8 boxId, u8 position) static void SetShiftedMonData(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) - gPSSData->field_2108 = gPlayerParty[position]; + gStorage->tempMon = gPlayerParty[position]; else - BoxMonAtToMon(boxId, position, &gPSSData->field_2108); + BoxMonAtToMon(boxId, position, &gStorage->tempMon); SetPlacedMonData(boxId, position); - gPSSData->movingMon = gPSSData->field_2108; - SetCursorMonData(&gPSSData->movingMon, MODE_PARTY); + gStorage->movingMon = gStorage->tempMon; + SetDisplayMonData(&gStorage->movingMon, MODE_PARTY); sMovingMonOrigBoxId = boxId; sMovingMonOrigBoxPos = position; } @@ -648,245 +666,238 @@ bool8 TryStorePartyMonInBox(u8 boxId) } else { - SetMovedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); + SetMovedMonData(TOTAL_BOXES_COUNT, sCursorPosition); SetPlacedMonData(boxId, boxPosition); - DestroyPartyMonIcon(sBoxCursorPosition); + DestroyPartyMonIcon(sCursorPosition); } if (boxId == StorageGetCurrentBox()) - sub_80901EC(boxPosition); + CreateBoxMonIconAtPos(boxPosition); - StartSpriteAnim(gPSSData->cursorSprite, 1); + StartSpriteAnim(gStorage->cursorSprite, 1); return TRUE; } -void sub_8093174(void) +void ResetSelectionAfterDeposit(void) { - StartSpriteAnim(gPSSData->cursorSprite, 0); - sub_8093A10(); + StartSpriteAnim(gStorage->cursorSprite, 0); + TrySetDisplayMonData(); } -void sub_8093194(void) +void InitReleaseMon(void) { u8 mode; if (sIsMonBeingMoved) - mode = MODE_2; - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + mode = MODE_MOVE; + else if (sCursorArea == CURSOR_AREA_IN_PARTY) mode = MODE_PARTY; else mode = MODE_BOX; - sub_8090FC4(mode, sBoxCursorPosition); - StringCopy(gPSSData->field_21E0, gPSSData->displayMonName); + DoReleaseMonAnim(mode, sCursorPosition); + StringCopy(gStorage->releaseMonName, gStorage->displayMonNickname); } -bool8 sub_80931EC(void) +bool8 TryHideReleaseMon(void) { - if (!sub_8091084()) + if (!TryHideReleaseMonSprite()) { - StartSpriteAnim(gPSSData->cursorSprite, 0); + StartSpriteAnim(gStorage->cursorSprite, 0); return FALSE; } else - { return TRUE; - } } void ReleaseMon(void) { u8 boxId; - sub_80910CC(); + DestroyReleaseMonIcon(); if (sIsMonBeingMoved) - { sIsMonBeingMoved = FALSE; - } else { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + if (sCursorArea == CURSOR_AREA_IN_PARTY) boxId = TOTAL_BOXES_COUNT; else boxId = StorageGetCurrentBox(); - PurgeMonOrBoxMon(boxId, sBoxCursorPosition); + PurgeMonOrBoxMon(boxId, sCursorPosition); } - sub_8093A10(); + TrySetDisplayMonData(); } -void sub_8093264(void) +void TrySetCursorFistAnim(void) { if (sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 3); + StartSpriteAnim(gStorage->cursorSprite, 3); } void InitCanReleaseMonVars(void) { - u16 knownIdx; + u16 knownMoveFlags; if (sIsMonBeingMoved) { - gPSSData->field_2108 = gPSSData->movingMon; - gPSSData->field_2170 = -1; - gPSSData->field_2171 = -1; + gStorage->tempMon = gStorage->movingMon; + gStorage->releaseBoxId = -1; + gStorage->releaseBoxPos = -1; } else { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + if (sCursorArea == CURSOR_AREA_IN_PARTY) { - gPSSData->field_2108 = gPlayerParty[sBoxCursorPosition]; - gPSSData->field_2170 = TOTAL_BOXES_COUNT; + gStorage->tempMon = gPlayerParty[sCursorPosition]; + gStorage->releaseBoxId = TOTAL_BOXES_COUNT; } else { - BoxMonAtToMon(StorageGetCurrentBox(), sBoxCursorPosition, &gPSSData->field_2108); - gPSSData->field_2170 = StorageGetCurrentBox(); + BoxMonAtToMon(StorageGetCurrentBox(), sCursorPosition, &gStorage->tempMon); + gStorage->releaseBoxId = StorageGetCurrentBox(); } - gPSSData->field_2171 = sBoxCursorPosition; + gStorage->releaseBoxPos = sCursorPosition; } - gPSSData->isSurfMon = FALSE; - gPSSData->isDiveMon = FALSE; - gPSSData->field_2176[0] = MOVE_SURF; - gPSSData->field_2176[1] = MOVE_DIVE; - gPSSData->field_2176[2] = MOVES_COUNT; - knownIdx = GetMonData(&gPSSData->field_2108, MON_DATA_KNOWN_MOVES, (u8 *)gPSSData->field_2176); - gPSSData->isSurfMon = knownIdx & 1; - gPSSData->isDiveMon = (knownIdx >> 1) & 1; - if (gPSSData->isSurfMon || gPSSData->isDiveMon) - { - gPSSData->field_216D = 0; - } + gStorage->isSurfMon = FALSE; + gStorage->isDiveMon = FALSE; + gStorage->restrictedMoveList[0] = MOVE_SURF; + gStorage->restrictedMoveList[1] = MOVE_DIVE; + gStorage->restrictedMoveList[2] = MOVES_COUNT; + knownMoveFlags = GetMonData(&gStorage->tempMon, MON_DATA_KNOWN_MOVES, (u8 *)gStorage->restrictedMoveList); + gStorage->isSurfMon = knownMoveFlags & 1; + gStorage->isDiveMon = (knownMoveFlags >> 1) & 1; + if (gStorage->isSurfMon || gStorage->isDiveMon) + gStorage->releaseMonStatusResolved = FALSE; else { - gPSSData->field_216D = 1; - gPSSData->field_216C = 1; + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_ALLOWED; } - gPSSData->field_2172 = 0; + gStorage->releaseCheckState = 0; } s8 RunCanReleaseMon(void) { u16 i; - u16 knownMoves; + u16 knownMoveFlags; - if (gPSSData->field_216D) - return gPSSData->field_216C; + if (gStorage->releaseMonStatusResolved) + return gStorage->releaseMonStatus; - switch (gPSSData->field_2172) + switch (gStorage->releaseCheckState) { case 0: for (i = 0; i < PARTY_SIZE; i++) { - if (gPSSData->field_2170 != TOTAL_BOXES_COUNT || gPSSData->field_2171 != i) + if (gStorage->releaseBoxId != TOTAL_BOXES_COUNT || gStorage->releaseBoxPos != i) { - knownMoves = GetMonData(gPlayerParty + i, MON_DATA_KNOWN_MOVES, (u8 *)gPSSData->field_2176); - if (knownMoves & 1) - gPSSData->isSurfMon = FALSE; - if (knownMoves & 2) - gPSSData->isDiveMon = FALSE; + knownMoveFlags = GetMonData(&gPlayerParty[i], MON_DATA_KNOWN_MOVES, (u8 *)gStorage->restrictedMoveList); + if (knownMoveFlags & 1) + gStorage->isSurfMon = FALSE; + if (knownMoveFlags & 2) + gStorage->isDiveMon = FALSE; } } - if (!(gPSSData->isSurfMon || gPSSData->isDiveMon)) + if (!(gStorage->isSurfMon || gStorage->isDiveMon)) { - gPSSData->field_216D = 1; - gPSSData->field_216C = 1; + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_ALLOWED; } else { - gPSSData->field_216E = 0; - gPSSData->field_216F = 0; - gPSSData->field_2172++; + gStorage->releaseCheckBoxId = 0; + gStorage->releaseCheckBoxPos = 0; + gStorage->releaseCheckState++; } break; case 1: + // for some reason, check only 5 mons in box each time this function is called for (i = 0; i < 5; i++) { - knownMoves = GetAndCopyBoxMonDataAt(gPSSData->field_216E, gPSSData->field_216F, MON_DATA_KNOWN_MOVES, (u8 *)gPSSData->field_2176); - if (knownMoves != 0 - && !(gPSSData->field_2170 == gPSSData->field_216E && gPSSData->field_2171 == gPSSData->field_216F)) + knownMoveFlags = GetAndCopyBoxMonDataAt(gStorage->releaseCheckBoxId, gStorage->releaseCheckBoxPos, MON_DATA_KNOWN_MOVES, (u8 *)gStorage->restrictedMoveList); + if (knownMoveFlags != 0 + && !(gStorage->releaseBoxId == gStorage->releaseCheckBoxId && gStorage->releaseBoxPos == gStorage->releaseCheckBoxPos)) { - if (knownMoves & 1) - gPSSData->isSurfMon = FALSE; - if (knownMoves & 2) - gPSSData->isDiveMon = FALSE; + if (knownMoveFlags & 1) + gStorage->isSurfMon = FALSE; + if (knownMoveFlags & 2) + gStorage->isDiveMon = FALSE; } - if (++gPSSData->field_216F >= IN_BOX_COUNT) + if (++gStorage->releaseCheckBoxPos >= IN_BOX_COUNT) { - gPSSData->field_216F = 0; - if (++gPSSData->field_216E >= TOTAL_BOXES_COUNT) + gStorage->releaseCheckBoxPos = 0; + if (++gStorage->releaseCheckBoxId >= TOTAL_BOXES_COUNT) { - gPSSData->field_216D = 1; - gPSSData->field_216C = 0; + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_NOT_ALLOWED; break; } } } - if (!(gPSSData->isSurfMon || gPSSData->isDiveMon)) + if (!(gStorage->isSurfMon || gStorage->isDiveMon)) { - gPSSData->field_216D = 1; - gPSSData->field_216C = 1; + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_ALLOWED; } break; } - return -1; + return RELEASE_MON_UNDETERMINED; } -void sub_8093630(void) +void SaveMovingMon(void) { if (sIsMonBeingMoved) - sMonBeingCarried = gPSSData->movingMon; + sMonBeingCarried = gStorage->movingMon; } -void sub_8093660(void) +void LoadSavedMovingMon(void) { if (sIsMonBeingMoved) { if (sMovingMonOrigBoxId == TOTAL_BOXES_COUNT) - gPSSData->movingMon = sMonBeingCarried; + gStorage->movingMon = sMonBeingCarried; else - gPSSData->movingMon.box = sMonBeingCarried.box; + gStorage->movingMon.box = sMonBeingCarried.box; } } -void sub_80936B8(void) +void InitSummaryScreenData(void) { if (sIsMonBeingMoved) { - sub_8093630(); - gPSSData->field_218C.mon = &sMonBeingCarried; - gPSSData->field_2187 = 0; - gPSSData->field_2186 = 0; - gPSSData->summaryScreenMode = PSS_MODE_NORMAL; + SaveMovingMon(); + gStorage->summaryMonPtr.mon = &sMonBeingCarried; + gStorage->summaryCursorPos = 0; + gStorage->summaryLastIndex = 0; + gStorage->summaryScreenMode = PSS_MODE_NORMAL; } - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + else if (sCursorArea == CURSOR_AREA_IN_PARTY) { - gPSSData->field_218C.mon = gPlayerParty; - gPSSData->field_2187 = sBoxCursorPosition; - gPSSData->field_2186 = CountPartyMons() - 1; - gPSSData->summaryScreenMode = PSS_MODE_NORMAL; + gStorage->summaryMonPtr.mon = gPlayerParty; + gStorage->summaryCursorPos = sCursorPosition; + gStorage->summaryLastIndex = CountPartyMons() - 1; + gStorage->summaryScreenMode = PSS_MODE_NORMAL; } else { - gPSSData->field_218C.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0); - gPSSData->field_2187 = sBoxCursorPosition; - gPSSData->field_2186 = IN_BOX_COUNT - 1; - gPSSData->summaryScreenMode = PSS_MODE_BOX; + gStorage->summaryMonPtr.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0); + gStorage->summaryCursorPos = sCursorPosition; + gStorage->summaryLastIndex = IN_BOX_COUNT - 1; + gStorage->summaryScreenMode = PSS_MODE_BOX; } } -void sub_80937B4(void) +void SetSelectionAfterSummaryScreen(void) { if (sIsMonBeingMoved) - sub_8093660(); + LoadSavedMovingMon(); else - sBoxCursorPosition = GetLastViewedMonIndex(); + sCursorPosition = GetLastViewedMonIndex(); } -// file boundary maybe? - s16 CompactPartySlots(void) { s16 retVal = -1; @@ -902,9 +913,7 @@ s16 CompactPartySlots(void) last++; } else if (retVal == -1) - { retVal = i; - } } for (; last < PARTY_SIZE; last++) ZeroMonData(gPlayerParty + last); @@ -914,23 +923,21 @@ s16 CompactPartySlots(void) void SetMonMarkings(u8 markings) { - gPSSData->displayMonMarkings = markings; + gStorage->displayMonMarkings = markings; if (sIsMonBeingMoved) - { - SetMonData(&gPSSData->movingMon, MON_DATA_MARKINGS, &markings); - } + SetMonData(&gStorage->movingMon, MON_DATA_MARKINGS, &markings); else { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - SetMonData(gPlayerParty + sBoxCursorPosition, MON_DATA_MARKINGS, &markings); - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - SetCurrentBoxMonData(sBoxCursorPosition, MON_DATA_MARKINGS, &markings); + if (sCursorArea == CURSOR_AREA_IN_PARTY) + SetMonData(gPlayerParty + sCursorPosition, MON_DATA_MARKINGS, &markings); + if (sCursorArea == CURSOR_AREA_IN_BOX) + SetCurrentBoxMonData(sCursorPosition, MON_DATA_MARKINGS, &markings); } } bool8 CanMovePartyMon(void) { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && !sIsMonBeingMoved && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0) + if (sCursorArea == CURSOR_AREA_IN_PARTY && !sIsMonBeingMoved && CountPartyAliveNonEggMonsExcept(sCursorPosition) == 0) return TRUE; else return FALSE; @@ -940,9 +947,9 @@ bool8 CanShiftMon(void) { if (sIsMonBeingMoved) { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0) + if (sCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sCursorPosition) == 0) { - if (gPSSData->displayMonIsEgg || GetMonData(&gPSSData->movingMon, MON_DATA_HP) == 0) + if (gStorage->displayMonIsEgg || GetMonData(&gStorage->movingMon, MON_DATA_HP) == 0) return FALSE; } return TRUE; @@ -957,146 +964,153 @@ bool8 IsMonBeingMoved(void) bool8 IsCursorOnBoxTitle(void) { - return (sBoxCursorArea == CURSOR_AREA_BOX); + return (sCursorArea == CURSOR_AREA_BOX_TITLE); } bool8 IsCursorOnCloseBox(void) { - return (sBoxCursorArea == CURSOR_AREA_BUTTONS && sBoxCursorPosition == 1); + return (sCursorArea == CURSOR_AREA_BUTTONS && sCursorPosition == 1); } bool8 IsCursorInBox(void) { - return (sBoxCursorArea == CURSOR_AREA_IN_BOX); + return (sCursorArea == CURSOR_AREA_IN_BOX); } -static void sub_8093A10(void) +static void TrySetDisplayMonData(void) { - gPSSData->setMosaic = (sIsMonBeingMoved == FALSE); + gStorage->setMosaic = (sIsMonBeingMoved == FALSE); if (!sIsMonBeingMoved) { - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - if (sBoxCursorPosition < PARTY_SIZE) + if (sCursorPosition < PARTY_SIZE) { - SetCursorMonData(&gPlayerParty[sBoxCursorPosition], MODE_PARTY); + SetDisplayMonData(&gPlayerParty[sCursorPosition], MODE_PARTY); break; } // fallthrough case CURSOR_AREA_BUTTONS: - case CURSOR_AREA_BOX: - SetCursorMonData(NULL, MODE_2); + case CURSOR_AREA_BOX_TITLE: + SetDisplayMonData(NULL, MODE_MOVE); break; case CURSOR_AREA_IN_BOX: - SetCursorMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sBoxCursorPosition), MODE_BOX); + SetDisplayMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sCursorPosition), MODE_BOX); break; } } } -static void sub_8093AAC(void) +static void ReshowDisplayMon(void) { if (sIsMonBeingMoved) - SetCursorMonData(&sMonBeingCarried, MODE_PARTY); + SetDisplayMonData(&sMonBeingCarried, MODE_PARTY); else - sub_8093A10(); + TrySetDisplayMonData(); } -static void SetCursorMonData(void *pokemon, u8 mode) +#define displayMonNicknameText displayMonTexts[0] +#define displayMonSpeciesNameText displayMonTexts[1] +#define displayMonGenderAndLevelText displayMonTexts[2] +#define displayMonItemNameText displayMonTexts[3] + +static void SetDisplayMonData(void *pokemon, u8 mode) { u8 *txtPtr; u16 gender; bool8 sanityIsBagEgg; - gPSSData->displayMonItemId = 0; + gStorage->displayMonItemId = ITEM_NONE; gender = MON_MALE; sanityIsBagEgg = FALSE; if (mode == MODE_PARTY) { struct Pokemon *mon = (struct Pokemon *)pokemon; - gPSSData->displayMonSpecies = GetMonData(mon, MON_DATA_SPECIES2); - if (gPSSData->displayMonSpecies != SPECIES_NONE) + gStorage->displayMonSpecies = GetMonData(mon, MON_DATA_SPECIES2); + if (gStorage->displayMonSpecies != SPECIES_NONE) { sanityIsBagEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG); if (sanityIsBagEgg) - gPSSData->displayMonIsEgg = TRUE; + gStorage->displayMonIsEgg = TRUE; else - gPSSData->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); + gStorage->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); - GetMonData(mon, MON_DATA_NICKNAME, gPSSData->displayMonName); - StringGet_Nickname(gPSSData->displayMonName); - gPSSData->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); - gPSSData->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); - gPSSData->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); - gPSSData->displayMonPalette = GetMonFrontSpritePal(mon); + GetMonData(mon, MON_DATA_NICKNAME, gStorage->displayMonNickname); + StringGet_Nickname(gStorage->displayMonNickname); + gStorage->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); + gStorage->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); + gStorage->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); + gStorage->displayMonPalette = GetMonFrontSpritePal(mon); gender = GetMonGender(mon); - gPSSData->displayMonItemId = GetMonData(mon, MON_DATA_HELD_ITEM); + gStorage->displayMonItemId = GetMonData(mon, MON_DATA_HELD_ITEM); } } else if (mode == MODE_BOX) { struct BoxPokemon *boxMon = (struct BoxPokemon *)pokemon; - gPSSData->displayMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2); - if (gPSSData->displayMonSpecies != SPECIES_NONE) + gStorage->displayMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2); + if (gStorage->displayMonSpecies != SPECIES_NONE) { u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID); sanityIsBagEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG); if (sanityIsBagEgg) - gPSSData->displayMonIsEgg = TRUE; + gStorage->displayMonIsEgg = TRUE; else - gPSSData->displayMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); + gStorage->displayMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); - - GetBoxMonData(boxMon, MON_DATA_NICKNAME, gPSSData->displayMonName); - StringGet_Nickname(gPSSData->displayMonName); - gPSSData->displayMonLevel = GetLevelFromBoxMonExp(boxMon); - gPSSData->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); - gPSSData->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); - gPSSData->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(gPSSData->displayMonSpecies, otId, gPSSData->displayMonPersonality); - gender = GetGenderFromSpeciesAndPersonality(gPSSData->displayMonSpecies, gPSSData->displayMonPersonality); - gPSSData->displayMonItemId = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM); + GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStorage->displayMonNickname); + StringGet_Nickname(gStorage->displayMonNickname); + gStorage->displayMonLevel = GetLevelFromBoxMonExp(boxMon); + gStorage->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); + gStorage->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); + gStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(gStorage->displayMonSpecies, otId, gStorage->displayMonPersonality); + gender = GetGenderFromSpeciesAndPersonality(gStorage->displayMonSpecies, gStorage->displayMonPersonality); + gStorage->displayMonItemId = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM); } } else { - gPSSData->displayMonSpecies = SPECIES_NONE; - gPSSData->displayMonItemId = 0; + gStorage->displayMonSpecies = SPECIES_NONE; + gStorage->displayMonItemId = ITEM_NONE; } - if (gPSSData->displayMonSpecies == SPECIES_NONE) + if (gStorage->displayMonSpecies == SPECIES_NONE) { - StringFill(gPSSData->displayMonName, CHAR_SPACE, 5); - StringFill(gPSSData->displayMonTexts[0], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[1], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[2], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8); + StringFill(gStorage->displayMonNickname, CHAR_SPACE, 5); + StringFill(gStorage->displayMonNicknameText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonSpeciesNameText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonGenderAndLevelText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonItemNameText, CHAR_SPACE, 8); } - else if (gPSSData->displayMonIsEgg) + else if (gStorage->displayMonIsEgg) { if (sanityIsBagEgg) - StringCopyPadded(gPSSData->displayMonTexts[0], gPSSData->displayMonName, CHAR_SPACE, 5); + StringCopyPadded(gStorage->displayMonNicknameText, gStorage->displayMonNickname, CHAR_SPACE, 5); else - StringCopyPadded(gPSSData->displayMonTexts[0], gText_EggNickname, CHAR_SPACE, 8); + StringCopyPadded(gStorage->displayMonNicknameText, gText_EggNickname, CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[1], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[2], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8); + StringFill(gStorage->displayMonSpeciesNameText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonGenderAndLevelText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonItemNameText, CHAR_SPACE, 8); } else { - if (gPSSData->displayMonSpecies == SPECIES_NIDORAN_F || gPSSData->displayMonSpecies == SPECIES_NIDORAN_M) + if (gStorage->displayMonSpecies == SPECIES_NIDORAN_F || gStorage->displayMonSpecies == SPECIES_NIDORAN_M) gender = MON_GENDERLESS; - StringCopyPadded(gPSSData->displayMonTexts[0], gPSSData->displayMonName, CHAR_SPACE, 5); + // Buffer nickname + StringCopyPadded(gStorage->displayMonNicknameText, gStorage->displayMonNickname, CHAR_SPACE, 5); - txtPtr = gPSSData->displayMonTexts[1]; + // Buffer species name + txtPtr = gStorage->displayMonSpeciesNameText; *(txtPtr)++ = CHAR_SLASH; - StringCopyPadded(txtPtr, gSpeciesNames[gPSSData->displayMonSpecies], CHAR_SPACE, 5); + StringCopyPadded(txtPtr, gSpeciesNames[gStorage->displayMonSpecies], CHAR_SPACE, 5); - txtPtr = gPSSData->displayMonTexts[2]; + // Buffer gender and level + txtPtr = gStorage->displayMonGenderAndLevelText; *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; *(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; switch (gender) @@ -1128,377 +1142,356 @@ static void SetCursorMonData(void *pokemon, u8 mode) *(txtPtr++) = TEXT_COLOR_LIGHT_GRAY; *(txtPtr++) = CHAR_SPACE; *(txtPtr++) = CHAR_EXTRA_SYMBOL; - *(txtPtr++) = 5; // LV_2 + *(txtPtr++) = CHAR_LV_2; - txtPtr = ConvertIntToDecimalStringN(txtPtr, gPSSData->displayMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); + txtPtr = ConvertIntToDecimalStringN(txtPtr, gStorage->displayMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); txtPtr[0] = CHAR_SPACE; txtPtr[1] = EOS; - if (gPSSData->displayMonItemId != 0) - StringCopyPadded(gPSSData->displayMonTexts[3], ItemId_GetName(gPSSData->displayMonItemId), CHAR_SPACE, 8); + // Buffer item name + if (gStorage->displayMonItemId != ITEM_NONE) + StringCopyPadded(gStorage->displayMonItemNameText, ItemId_GetName(gStorage->displayMonItemId), CHAR_SPACE, 8); else - StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8); + StringFill(gStorage->displayMonItemNameText, CHAR_SPACE, 8); } } +#undef displayMonNicknameText +#undef displayMonSpeciesNameText +#undef displayMonGenderAndLevelText +#undef displayMonItemNameText + static u8 HandleInput_InBox(void) { - switch (gPSSData->inBoxMovingMode) + switch (gStorage->inBoxMovingMode) { - case 0: + case MOVE_MODE_NORMAL: default: - return InBoxInput_Normal(); - case 1: - return InBoxInput_GrabbingMultiple(); - case 2: - return InBoxInput_MovingMultiple(); + return HandleInput_InBox_Normal(); + case MOVE_MODE_MULTIPLE_SELECTING: + return HandleInput_InBox_GrabbingMultiple(); + case MOVE_MODE_MULTIPLE_MOVING: + return HandleInput_InBox_MovingMultiple(); } } -static u8 InBoxInput_Normal(void) +static u8 HandleInput_InBox_Normal(void) { - u8 retVal; + u8 input; s8 cursorArea; s8 cursorPosition; do { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorFlipTimer = 0; + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorFlipTimer = 0; if (JOY_REPT(DPAD_UP)) { - retVal = TRUE; - if (sBoxCursorPosition >= IN_BOX_ROWS) - { - cursorPosition -= IN_BOX_ROWS; - } + input = INPUT_MOVE_CURSOR; + if (sCursorPosition >= IN_BOX_COLUMNS) + cursorPosition -= IN_BOX_COLUMNS; else { - cursorArea = CURSOR_AREA_BOX; + cursorArea = CURSOR_AREA_BOX_TITLE; cursorPosition = 0; } break; } else if (JOY_REPT(DPAD_DOWN)) { - retVal = TRUE; - cursorPosition += IN_BOX_ROWS; + input = INPUT_MOVE_CURSOR; + cursorPosition += IN_BOX_COLUMNS; if (cursorPosition >= IN_BOX_COUNT) { cursorArea = CURSOR_AREA_BUTTONS; cursorPosition -= IN_BOX_COUNT; cursorPosition /= 3; - gPSSData->cursorVerticalWrap = 1; - gPSSData->cursorFlipTimer = 1; + gStorage->cursorVerticalWrap = 1; + gStorage->cursorFlipTimer = 1; } break; } else if (JOY_REPT(DPAD_LEFT)) { - retVal = TRUE; - if (sBoxCursorPosition % IN_BOX_ROWS != 0) - { + input = INPUT_MOVE_CURSOR; + if (sCursorPosition % IN_BOX_COLUMNS != 0) cursorPosition--; - } else { - gPSSData->cursorHorizontalWrap = -1; - cursorPosition += (IN_BOX_ROWS - 1); + gStorage->cursorHorizontalWrap = -1; + cursorPosition += (IN_BOX_COLUMNS - 1); } break; } else if (JOY_REPT(DPAD_RIGHT)) { - retVal = TRUE; - if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0) - { + input = INPUT_MOVE_CURSOR; + if ((sCursorPosition + 1) % IN_BOX_COLUMNS != 0) cursorPosition++; - } else { - gPSSData->cursorHorizontalWrap = 1; - cursorPosition -= (IN_BOX_ROWS - 1); + gStorage->cursorHorizontalWrap = 1; + cursorPosition -= (IN_BOX_COLUMNS - 1); } break; } else if (JOY_NEW(START_BUTTON)) { - retVal = TRUE; - cursorArea = CURSOR_AREA_BOX; + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BOX_TITLE; cursorPosition = 0; break; } - if ((JOY_NEW(A_BUTTON)) && sub_8094924()) + if ((JOY_NEW(A_BUTTON)) && SetSelectionMenuTexts()) { - if (!sCanOnlyMove) - return 8; + if (!sInMultiMoveMode) + return INPUT_IN_MENU; - if (gPSSData->boxOption != OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE) + if (gStorage->boxOption != OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE) { - switch (sub_8094E50(0)) + switch (GetMenuItemTextId(0)) { - case PC_TEXT_STORE: - return 11; - case PC_TEXT_WITHDRAW: - return 12; - case PC_TEXT_MOVE: - return 13; - case PC_TEXT_SHIFT: - return 14; - case PC_TEXT_PLACE: - return 15; - case PC_TEXT_TAKE: - return 16; - case PC_TEXT_GIVE: - return 17; - case PC_TEXT_SWITCH: - return 18; + case MENU_TEXT_STORE: + return INPUT_DEPOSIT; + case MENU_TEXT_WITHDRAW: + return INPUT_WITHDRAW; + case MENU_TEXT_MOVE: + return INPUT_MOVE_MON; + case MENU_TEXT_SHIFT: + return INPUT_SHIFT_MON; + case MENU_TEXT_PLACE: + return INPUT_PLACE_MON; + case MENU_TEXT_TAKE: + return INPUT_TAKE_ITEM; + case MENU_TEXT_GIVE: + return INPUT_GIVE_ITEM; + case MENU_TEXT_SWITCH: + return INPUT_SWITCH_ITEMS; } } else { - gPSSData->inBoxMovingMode = 1; - return 20; + gStorage->inBoxMovingMode = MOVE_MODE_MULTIPLE_SELECTING; + return INPUT_MULTIMOVE_START; } } if (JOY_NEW(B_BUTTON)) - return 19; + return INPUT_PRESSED_B; if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) { if (JOY_HELD(L_BUTTON)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(R_BUTTON)) - return 9; + return INPUT_SCROLL_RIGHT; } if (JOY_NEW(SELECT_BUTTON)) { - sub_8094C84(); - return 0; + ToggleCursorMultiMoveMode(); + return INPUT_NONE; } - retVal = 0; + input = INPUT_NONE; - } while (0); + } while (FALSE); - if (retVal) - sub_80927E8(cursorArea, cursorPosition); + if (input != INPUT_NONE) + SetCursorPosition(cursorArea, cursorPosition); - return retVal; + return input; } -static u8 InBoxInput_GrabbingMultiple(void) +static u8 HandleInput_InBox_GrabbingMultiple(void) { if (JOY_HELD(A_BUTTON)) { if (JOY_REPT(DPAD_UP)) { - if (sBoxCursorPosition / IN_BOX_ROWS != 0) + if (sCursorPosition / IN_BOX_COLUMNS != 0) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else if (JOY_REPT(DPAD_DOWN)) { - if (sBoxCursorPosition + IN_BOX_ROWS < IN_BOX_COUNT) + if (sCursorPosition + IN_BOX_COLUMNS < IN_BOX_COUNT) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else if (JOY_REPT(DPAD_LEFT)) { - if (sBoxCursorPosition % IN_BOX_ROWS != 0) + if (sCursorPosition % IN_BOX_COLUMNS != 0) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - 1); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else if (JOY_REPT(DPAD_RIGHT)) { - if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0) + if ((sCursorPosition + 1) % IN_BOX_COLUMNS != 0) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + 1); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else - { - return 0; - } + return INPUT_NONE; } else { - if (sub_8095AA0() == sBoxCursorPosition) + if (MultiMove_GetOriginPosition() == sCursorPosition) { - gPSSData->inBoxMovingMode = 0; - gPSSData->cursorShadowSprite->invisible = FALSE; - return 22; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + gStorage->cursorShadowSprite->invisible = FALSE; + return INPUT_MULTIMOVE_SINGLE; } else { - sIsMonBeingMoved = (gPSSData->displayMonSpecies != SPECIES_NONE); - gPSSData->inBoxMovingMode = 2; + sIsMonBeingMoved = (gStorage->displayMonSpecies != SPECIES_NONE); + gStorage->inBoxMovingMode = MOVE_MODE_MULTIPLE_MOVING; sMovingMonOrigBoxId = StorageGetCurrentBox(); - return 23; + return INPUT_MULTIMOVE_GRAB_SELECTION; } } } -static u8 InBoxInput_MovingMultiple(void) +static u8 HandleInput_InBox_MovingMultiple(void) { if (JOY_REPT(DPAD_UP)) { - if (sub_8095474(0)) + if (MultiMove_TryMoveGroup(0)) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_MOVE_MONS; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else if (JOY_REPT(DPAD_DOWN)) { - if (sub_8095474(1)) + if (MultiMove_TryMoveGroup(1)) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_MOVE_MONS; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else if (JOY_REPT(DPAD_LEFT)) { - if (sub_8095474(2)) + if (MultiMove_TryMoveGroup(2)) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - 1); + return INPUT_MULTIMOVE_MOVE_MONS; } else - { - return 10; - } + return INPUT_SCROLL_LEFT; } else if (JOY_REPT(DPAD_RIGHT)) { - if (sub_8095474(3)) + if (MultiMove_TryMoveGroup(3)) { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + 1); + return INPUT_MULTIMOVE_MOVE_MONS; } else - { - return 9; - } + return INPUT_SCROLL_RIGHT; } else if (JOY_NEW(A_BUTTON)) { - if (sub_8095ABC()) + if (MultiMove_CanPlaceSelection()) { sIsMonBeingMoved = FALSE; - gPSSData->inBoxMovingMode = 0; - return 26; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + return INPUT_MULTIMOVE_PLACE_MONS; } else - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; } else if (JOY_NEW(B_BUTTON)) - { - return 24; - } + return INPUT_MULTIMOVE_UNABLE; + else { if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) { if (JOY_HELD(L_BUTTON)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(R_BUTTON)) - return 9; + return INPUT_SCROLL_RIGHT; } - return 0; + return INPUT_NONE; } } static u8 HandleInput_InParty(void) { - u8 retVal; + u8 input; bool8 gotoBox; s8 cursorArea; s8 cursorPosition; do { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorFlipTimer = 0; + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorFlipTimer = 0; gotoBox = FALSE; - retVal = 0; + input = INPUT_NONE; if (JOY_REPT(DPAD_UP)) { if (--cursorPosition < 0) cursorPosition = PARTY_SIZE; - if (cursorPosition != sBoxCursorPosition) - retVal = 1; + if (cursorPosition != sCursorPosition) + input = INPUT_MOVE_CURSOR; break; } else if (JOY_REPT(DPAD_DOWN)) { if (++cursorPosition > PARTY_SIZE) cursorPosition = 0; - if (cursorPosition != sBoxCursorPosition) - retVal = 1; + if (cursorPosition != sCursorPosition) + input = INPUT_MOVE_CURSOR; break; } - else if (JOY_REPT(DPAD_LEFT) && sBoxCursorPosition != 0) + else if (JOY_REPT(DPAD_LEFT) && sCursorPosition != 0) { - retVal = 1; - gPSSData->cursorPrevHorizPos = sBoxCursorPosition; + input = INPUT_MOVE_CURSOR; + gStorage->cursorPrevPartyPos = sCursorPosition; cursorPosition = 0; break; } else if (JOY_REPT(DPAD_RIGHT)) { - if (sBoxCursorPosition == 0) + if (sCursorPosition == 0) { - retVal = 1; - cursorPosition = gPSSData->cursorPrevHorizPos; + input = INPUT_MOVE_CURSOR; + cursorPosition = gStorage->cursorPrevPartyPos; } else { - retVal = 6; + input = INPUT_HIDE_PARTY; cursorArea = CURSOR_AREA_IN_BOX; cursorPosition = 0; } @@ -1507,213 +1500,209 @@ static u8 HandleInput_InParty(void) if (JOY_NEW(A_BUTTON)) { - if (sBoxCursorPosition == PARTY_SIZE) + if (sCursorPosition == PARTY_SIZE) { - if (gPSSData->boxOption == OPTION_DEPOSIT) - return 4; + if (gStorage->boxOption == OPTION_DEPOSIT) + return INPUT_CLOSE_BOX; gotoBox = TRUE; } - else if (sub_8094924()) + else if (SetSelectionMenuTexts()) { - if (!sCanOnlyMove) - return 8; + if (!sInMultiMoveMode) + return INPUT_IN_MENU; - switch (sub_8094E50(0)) + switch (GetMenuItemTextId(0)) { - case PC_TEXT_STORE: - return 11; - case PC_TEXT_WITHDRAW: - return 12; - case PC_TEXT_MOVE: - return 13; - case PC_TEXT_SHIFT: - return 14; - case PC_TEXT_PLACE: - return 15; - case PC_TEXT_TAKE: - return 16; - case PC_TEXT_GIVE: - return 17; - case PC_TEXT_SWITCH: - return 18; + case MENU_TEXT_STORE: + return INPUT_DEPOSIT; + case MENU_TEXT_WITHDRAW: + return INPUT_WITHDRAW; + case MENU_TEXT_MOVE: + return INPUT_MOVE_MON; + case MENU_TEXT_SHIFT: + return INPUT_SHIFT_MON; + case MENU_TEXT_PLACE: + return INPUT_PLACE_MON; + case MENU_TEXT_TAKE: + return INPUT_TAKE_ITEM; + case MENU_TEXT_GIVE: + return INPUT_GIVE_ITEM; + case MENU_TEXT_SWITCH: + return INPUT_SWITCH_ITEMS; } } } if (JOY_NEW(B_BUTTON)) { - if (gPSSData->boxOption == OPTION_DEPOSIT) - return 19; + if (gStorage->boxOption == OPTION_DEPOSIT) + return INPUT_PRESSED_B; gotoBox = TRUE; } if (gotoBox) { - retVal = 6; + input = INPUT_HIDE_PARTY; cursorArea = CURSOR_AREA_IN_BOX; cursorPosition = 0; } else if (JOY_NEW(SELECT_BUTTON)) { - sub_8094C84(); - return 0; + ToggleCursorMultiMoveMode(); + return INPUT_NONE; } - } while (0); + } while (FALSE); - if (retVal != 0) - { - if (retVal != 6) - sub_80927E8(cursorArea, cursorPosition); - } + if (input != INPUT_NONE && input != INPUT_HIDE_PARTY) + SetCursorPosition(cursorArea, cursorPosition); - return retVal; + return input; } -static u8 HandleInput_OnBox(void) +static u8 HandleInput_BoxTitle(void) { - u8 retVal; + u8 input; s8 cursorArea; s8 cursorPosition; do { - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorFlipTimer = 0; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorFlipTimer = 0; if (JOY_REPT(DPAD_UP)) { - retVal = 1; + input = INPUT_MOVE_CURSOR; cursorArea = CURSOR_AREA_BUTTONS; cursorPosition = 0; - gPSSData->cursorFlipTimer = 1; + gStorage->cursorFlipTimer = 1; break; } else if (JOY_REPT(DPAD_DOWN)) { - retVal = 1; + input = INPUT_MOVE_CURSOR; cursorArea = CURSOR_AREA_IN_BOX; cursorPosition = 2; break; } if (JOY_HELD(DPAD_LEFT)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(DPAD_RIGHT)) - return 9; + return INPUT_SCROLL_RIGHT; if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) { if (JOY_HELD(L_BUTTON)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(R_BUTTON)) - return 9; + return INPUT_SCROLL_RIGHT; } if (JOY_NEW(A_BUTTON)) { AnimateBoxScrollArrows(FALSE); AddBoxMenu(); - return 7; + return INPUT_BOX_OPTIONS; } if (JOY_NEW(B_BUTTON)) - return 19; + return INPUT_PRESSED_B; if (JOY_NEW(SELECT_BUTTON)) { - sub_8094C84(); - return 0; + ToggleCursorMultiMoveMode(); + return INPUT_NONE; } - retVal = 0; + input = INPUT_NONE; - } while (0); + } while (FALSE); - if (retVal) + if (input != INPUT_NONE) { - if (cursorArea != CURSOR_AREA_BOX) + if (cursorArea != CURSOR_AREA_BOX_TITLE) AnimateBoxScrollArrows(FALSE); - sub_80927E8(cursorArea, cursorPosition); + SetCursorPosition(cursorArea, cursorPosition); } - return retVal; + return input; } static u8 HandleInput_OnButtons(void) { - u8 retVal; + u8 input; s8 cursorArea; s8 cursorPosition; s8 prevPos; do { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorFlipTimer = 0; + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorFlipTimer = 0; if (JOY_REPT(DPAD_UP)) { - retVal = 1; + input = INPUT_MOVE_CURSOR; cursorArea = CURSOR_AREA_IN_BOX; - gPSSData->cursorVerticalWrap = -1; - if (sBoxCursorPosition == 0) + gStorage->cursorVerticalWrap = -1; + if (sCursorPosition == 0) cursorPosition = IN_BOX_COUNT - 1 - 5; else cursorPosition = IN_BOX_COUNT - 1; - gPSSData->cursorFlipTimer = 1; + gStorage->cursorFlipTimer = 1; break; } else if (JOY_REPT(DPAD_DOWN | START_BUTTON)) { - retVal = 1; - cursorArea = CURSOR_AREA_BOX; + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BOX_TITLE; cursorPosition = 0; - gPSSData->cursorFlipTimer = 1; + gStorage->cursorFlipTimer = 1; break; } if (JOY_REPT(DPAD_LEFT)) { - retVal = 1; + input = INPUT_MOVE_CURSOR; if (--cursorPosition < 0) cursorPosition = 1; break; } else if (JOY_REPT(DPAD_RIGHT)) { - retVal = 1; + input = INPUT_MOVE_CURSOR; if (++cursorPosition > 1) cursorPosition = 0; break; } if (JOY_NEW(A_BUTTON)) - { - return cursorPosition == 0 ? 5 : 4; - } + return cursorPosition == 0 ? INPUT_SHOW_PARTY : INPUT_CLOSE_BOX; + if (JOY_NEW(B_BUTTON)) - return 19; + return INPUT_PRESSED_B; if (JOY_NEW(SELECT_BUTTON)) { - sub_8094C84(); - return 0; + ToggleCursorMultiMoveMode(); + return INPUT_NONE; } - retVal = 0; - } while (0); + input = INPUT_NONE; + } while (FALSE); - if (retVal != 0) - sub_80927E8(cursorArea, cursorPosition); + if (input != INPUT_NONE) + SetCursorPosition(cursorArea, cursorPosition); - return retVal; + return input; } u8 HandleInput(void) @@ -1724,9 +1713,9 @@ u8 HandleInput(void) s8 area; } static const inputFuncs[] = { - {HandleInput_InBox, CURSOR_AREA_IN_BOX}, - {HandleInput_InParty, CURSOR_AREA_IN_PARTY}, - {HandleInput_OnBox, CURSOR_AREA_BOX}, + {HandleInput_InBox, CURSOR_AREA_IN_BOX}, + {HandleInput_InParty, CURSOR_AREA_IN_PARTY}, + {HandleInput_BoxTitle, CURSOR_AREA_BOX_TITLE}, {HandleInput_OnButtons, CURSOR_AREA_BUTTONS}, {NULL, 0}, }; @@ -1734,62 +1723,62 @@ u8 HandleInput(void) u16 i = 0; while (inputFuncs[i].func != NULL) { - if (inputFuncs[i].area == sBoxCursorArea) + if (inputFuncs[i].area == sCursorArea) return inputFuncs[i].func(); i++; } - return 0; + return INPUT_NONE; } static void AddBoxMenu(void) { InitMenu(); - SetMenuText(PC_TEXT_JUMP); - SetMenuText(PC_TEXT_WALLPAPER); - SetMenuText(PC_TEXT_NAME); - SetMenuText(PC_TEXT_CANCEL); + SetMenuText(MENU_TEXT_JUMP); + SetMenuText(MENU_TEXT_WALLPAPER); + SetMenuText(MENU_TEXT_NAME); + SetMenuText(MENU_TEXT_CANCEL); } -static bool8 sub_8094924(void) +static bool8 SetSelectionMenuTexts(void) { InitMenu(); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return sub_809494C(); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return SetMenuTextsForMon(); else - return sub_8094A0C(); + return SetMenuTextsForItem(); } -static bool8 sub_809494C(void) +static bool8 SetMenuTextsForMon(void) { - u16 var0 = sub_8092458(); + u16 species = GetSpeciesAtCursorPosition(); - switch (gPSSData->boxOption) + switch (gStorage->boxOption) { case OPTION_DEPOSIT: - if (var0) - SetMenuText(PC_TEXT_STORE); + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_STORE); else return FALSE; break; case OPTION_WITHDRAW: - if (var0) - SetMenuText(PC_TEXT_WITHDRAW); + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_WITHDRAW); else return FALSE; break; case OPTION_MOVE_MONS: if (sIsMonBeingMoved) { - if (var0) - SetMenuText(PC_TEXT_SHIFT); + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_SHIFT); else - SetMenuText(PC_TEXT_PLACE); + SetMenuText(MENU_TEXT_PLACE); } else { - if (var0) - SetMenuText(PC_TEXT_MOVE); + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_MOVE); else return FALSE; } @@ -1799,166 +1788,165 @@ static bool8 sub_809494C(void) return FALSE; } - SetMenuText(PC_TEXT_SUMMARY); - if (gPSSData->boxOption == OPTION_MOVE_MONS) + SetMenuText(MENU_TEXT_SUMMARY); + if (gStorage->boxOption == OPTION_MOVE_MONS) { - if (!sBoxCursorArea) - SetMenuText(PC_TEXT_WITHDRAW); + if (!sCursorArea) + SetMenuText(MENU_TEXT_WITHDRAW); else - SetMenuText(PC_TEXT_STORE); + SetMenuText(MENU_TEXT_STORE); } - SetMenuText(PC_TEXT_MARK); - SetMenuText(PC_TEXT_RELEASE); - SetMenuText(PC_TEXT_CANCEL); + SetMenuText(MENU_TEXT_MARK); + SetMenuText(MENU_TEXT_RELEASE); + SetMenuText(MENU_TEXT_CANCEL); return TRUE; } -static bool8 sub_8094A0C(void) +static bool8 SetMenuTextsForItem(void) { - if (gPSSData->displayMonSpecies == SPECIES_EGG) + if (gStorage->displayMonSpecies == SPECIES_EGG) return FALSE; if (!IsActiveItemMoving()) { - if (gPSSData->displayMonItemId == ITEM_NONE) + if (gStorage->displayMonItemId == ITEM_NONE) { - if (gPSSData->displayMonSpecies == SPECIES_NONE) + if (gStorage->displayMonSpecies == SPECIES_NONE) return FALSE; - SetMenuText(PC_TEXT_GIVE2); + SetMenuText(MENU_TEXT_GIVE2); } else { - if (!ItemIsMail(gPSSData->displayMonItemId)) + if (!ItemIsMail(gStorage->displayMonItemId)) { - SetMenuText(PC_TEXT_TAKE); - SetMenuText(PC_TEXT_BAG); + SetMenuText(MENU_TEXT_TAKE); + SetMenuText(MENU_TEXT_BAG); } - SetMenuText(PC_TEXT_INFO); + SetMenuText(MENU_TEXT_INFO); } } else { - if (gPSSData->displayMonItemId == ITEM_NONE) + if (gStorage->displayMonItemId == ITEM_NONE) { - if (gPSSData->displayMonSpecies == SPECIES_NONE) + if (gStorage->displayMonSpecies == SPECIES_NONE) return FALSE; - SetMenuText(PC_TEXT_GIVE); + SetMenuText(MENU_TEXT_GIVE); } else { - if (ItemIsMail(gPSSData->displayMonItemId) == TRUE) + if (ItemIsMail(gStorage->displayMonItemId) == TRUE) return FALSE; - SetMenuText(PC_TEXT_SWITCH); + SetMenuText(MENU_TEXT_SWITCH); } } - SetMenuText(PC_TEXT_CANCEL); + SetMenuText(MENU_TEXT_CANCEL); return TRUE; } -static void sub_8094AB8(struct Sprite *sprite) +static void SpriteCB_CursorShadow(struct Sprite *sprite) { - sprite->x = gPSSData->cursorSprite->x; - sprite->y = gPSSData->cursorSprite->y + 20; + sprite->x = gStorage->cursorSprite->x; + sprite->y = gStorage->cursorSprite->y + 20; } -static void sub_8094AD8(void) +static void CreateCursorSprites(void) { u16 x, y; u8 spriteId; u8 priority, subpriority; struct SpriteSheet spriteSheets[] = { - {sHandCursorTiles, 0x800, TAG_TILE_0}, - {sHandCursorShadowTiles, 0x80, TAG_TILE_1}, + {sHandCursorTiles, 0x800, GFXTAG_CURSOR}, + {sHandCursorShadowTiles, 0x80, GFXTAG_CURSOR_SHADOW}, {} }; struct SpritePalette spritePalettes[] = { - {sHandCursorPalette, TAG_PAL_DAC7}, + {sPokeStorageMisc1Pal, PALTAG_MISC_1}, {} }; - static const struct OamData sOamData_857BA0C = { + static const struct OamData sOamData_Cursor = { .shape = SPRITE_SHAPE(32x32), .size = SPRITE_SIZE(32x32), .priority = 1, }; - static const struct OamData sOamData_857BA14 = { + static const struct OamData sOamData_CursorShadow = { .shape = SPRITE_SHAPE(16x16), .size = SPRITE_SIZE(16x16), .priority = 1, }; - static const union AnimCmd sSpriteAnim_857BA1C[] = { + static const union AnimCmd sAnim_Cursor_Bouncing[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(16, 30), ANIMCMD_JUMP(0) }; - static const union AnimCmd sSpriteAnim_857BA28[] = { + static const union AnimCmd sAnim_Cursor_Still[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; - static const union AnimCmd sSpriteAnim_857BA30[] = { + static const union AnimCmd sAnim_Cursor_Open[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; - static const union AnimCmd sSpriteAnim_857BA38[] = { + static const union AnimCmd sAnim_Cursor_Fist[] = { ANIMCMD_FRAME(48, 5), ANIMCMD_END }; - static const union AnimCmd *const sSpriteAnimTable_857BA40[] = { - sSpriteAnim_857BA1C, - sSpriteAnim_857BA28, - sSpriteAnim_857BA30, - sSpriteAnim_857BA38 + static const union AnimCmd *const sAnims_Cursor[] = { + [CURSOR_ANIM_BOUNCE] = sAnim_Cursor_Bouncing, + [CURSOR_ANIM_STILL] = sAnim_Cursor_Still, + [CURSOR_ANIM_OPEN] = sAnim_Cursor_Open, + [CURSOR_ANIM_FIST] = sAnim_Cursor_Fist, }; - static const struct SpriteTemplate gSpriteTemplate_857BA50 = { - .tileTag = TAG_TILE_0, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_857BA0C, - .anims = sSpriteAnimTable_857BA40, + static const struct SpriteTemplate sSpriteTemplate_Cursor = { + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Cursor, + .anims = sAnims_Cursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - static const struct SpriteTemplate gSpriteTemplate_857BA68 = { - .tileTag = TAG_TILE_1, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_857BA14, + static const struct SpriteTemplate sSpriteTemplate_CursorShadow = { + .tileTag = GFXTAG_CURSOR_SHADOW, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_CursorShadow, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8094AB8, + .callback = SpriteCB_CursorShadow, }; LoadSpriteSheets(spriteSheets); LoadSpritePalettes(spritePalettes); - gPSSData->cursorPalNums[0] = IndexOfSpritePaletteTag(TAG_PAL_WAVEFORM); - gPSSData->cursorPalNums[1] = IndexOfSpritePaletteTag(TAG_PAL_DAC7); + gStorage->cursorPalNums[0] = IndexOfSpritePaletteTag(PALTAG_MISC_2); + gStorage->cursorPalNums[1] = IndexOfSpritePaletteTag(PALTAG_MISC_1); - sub_8092398(sBoxCursorArea, sBoxCursorPosition, &x, &y); - spriteId = CreateSprite(&gSpriteTemplate_857BA50, x, y, 6); + GetCursorCoordsByPos(sCursorArea, sCursorPosition, &x, &y); + spriteId = CreateSprite(&sSpriteTemplate_Cursor, x, y, 6); if (spriteId != MAX_SPRITES) { - gPSSData->cursorSprite = &gSprites[spriteId]; - gPSSData->cursorSprite->oam.paletteNum = gPSSData->cursorPalNums[sCanOnlyMove]; - gPSSData->cursorSprite->oam.priority = 1; + gStorage->cursorSprite = &gSprites[spriteId]; + gStorage->cursorSprite->oam.paletteNum = gStorage->cursorPalNums[sInMultiMoveMode]; + gStorage->cursorSprite->oam.priority = 1; if (sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 3); + StartSpriteAnim(gStorage->cursorSprite, 3); } else - { - gPSSData->cursorSprite = NULL; - } + gStorage->cursorSprite = NULL; - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + + if (sCursorArea == CURSOR_AREA_IN_PARTY) { subpriority = 13; priority = 1; @@ -1969,68 +1957,66 @@ static void sub_8094AD8(void) priority = 2; } - spriteId = CreateSprite(&gSpriteTemplate_857BA68, 0, 0, subpriority); + spriteId = CreateSprite(&sSpriteTemplate_CursorShadow, 0, 0, subpriority); if (spriteId != MAX_SPRITES) { - gPSSData->cursorShadowSprite = &gSprites[spriteId]; - gPSSData->cursorShadowSprite->oam.priority = priority; - if (sBoxCursorArea) - gPSSData->cursorShadowSprite->invisible = 1; + gStorage->cursorShadowSprite = &gSprites[spriteId]; + gStorage->cursorShadowSprite->oam.priority = priority; + if (sCursorArea) + gStorage->cursorShadowSprite->invisible = 1; } else - { - gPSSData->cursorShadowSprite = NULL; - } + gStorage->cursorShadowSprite = NULL; } -static void sub_8094C84(void) +static void ToggleCursorMultiMoveMode(void) { - sCanOnlyMove = !sCanOnlyMove; - gPSSData->cursorSprite->oam.paletteNum = gPSSData->cursorPalNums[sCanOnlyMove]; + sInMultiMoveMode = !sInMultiMoveMode; + gStorage->cursorSprite->oam.paletteNum = gStorage->cursorPalNums[sInMultiMoveMode]; } u8 GetBoxCursorPosition(void) { - return sBoxCursorPosition; + return sCursorPosition; } -void sub_8094CD4(u8 *arg0, u8 *arg1) +void GetCursorBoxColumnAndRow(u8 *column, u8 *row) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) + if (sCursorArea == CURSOR_AREA_IN_BOX) { - *arg0 = sBoxCursorPosition % IN_BOX_ROWS; - *arg1 = sBoxCursorPosition / IN_BOX_ROWS; + *column = sCursorPosition % IN_BOX_COLUMNS; + *row = sCursorPosition / IN_BOX_COLUMNS; } else { - *arg0 = 0; - *arg1 = 0; + *column = 0; + *row = 0; } } -void sub_8094D14(u8 animNum) +void StartCursorAnim(u8 animNum) { - StartSpriteAnim(gPSSData->cursorSprite, animNum); + StartSpriteAnim(gStorage->cursorSprite, animNum); } -u8 sub_8094D34(void) +u8 GetMovingMonOriginalBoxId(void) { return sMovingMonOrigBoxId; } -void sub_8094D40(void) +void SetCursorPriorityTo1(void) { - gPSSData->cursorSprite->oam.priority = 1; + gStorage->cursorSprite->oam.priority = 1; } -void sub_8094D60(void) +void TryHideItemAtCursor(void) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_8095D44(CURSOR_AREA_IN_BOX, sBoxCursorPosition); + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryHideItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); } -void sub_8094D84(void) +void TryShowItemAtCursor(void) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_8095C84(CURSOR_AREA_IN_BOX, sBoxCursorPosition); + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); } diff --git a/src/pokemon_storage_system_6.c b/src/pokemon_storage_system_6.c index 6b8b4f67d..b8fcc3e8b 100644 --- a/src/pokemon_storage_system_6.c +++ b/src/pokemon_storage_system_6.c @@ -8,115 +8,115 @@ void InitMenu(void) { - gPSSData->menuItemsCount = 0; - gPSSData->menuWidth = 0; - gPSSData->menuWindow.bg = 0; - gPSSData->menuWindow.paletteNum = 15; - gPSSData->menuWindow.baseBlock = 92; + gStorage->menuItemsCount = 0; + gStorage->menuWidth = 0; + gStorage->menuWindow.bg = 0; + gStorage->menuWindow.paletteNum = 15; + gStorage->menuWindow.baseBlock = 92; } static const u8 *const sMenuTexts[] = { - [PC_TEXT_CANCEL] = gPCText_Cancel, - [PC_TEXT_STORE] = gPCText_Store, - [PC_TEXT_WITHDRAW] = gPCText_Withdraw, - [PC_TEXT_MOVE] = gPCText_Move, - [PC_TEXT_SHIFT] = gPCText_Shift, - [PC_TEXT_PLACE] = gPCText_Place, - [PC_TEXT_SUMMARY] = gPCText_Summary, - [PC_TEXT_RELEASE] = gPCText_Release, - [PC_TEXT_MARK] = gPCText_Mark, - [PC_TEXT_JUMP] = gPCText_Jump, - [PC_TEXT_WALLPAPER] = gPCText_Wallpaper, - [PC_TEXT_NAME] = gPCText_Name, - [PC_TEXT_TAKE] = gPCText_Take, - [PC_TEXT_GIVE] = gPCText_Give, - [PC_TEXT_GIVE2] = gPCText_Give, - [PC_TEXT_SWITCH] = gPCText_Switch, - [PC_TEXT_BAG] = gPCText_Bag, - [PC_TEXT_INFO] = gPCText_Info, - [PC_TEXT_SCENERY1] = gPCText_Scenery1, - [PC_TEXT_SCENERY2] = gPCText_Scenery2, - [PC_TEXT_SCENERY3] = gPCText_Scenery3, - [PC_TEXT_ETCETERA] = gPCText_Etcetera, - [PC_TEXT_FOREST] = gPCText_Forest, - [PC_TEXT_CITY] = gPCText_City, - [PC_TEXT_DESERT] = gPCText_Desert, - [PC_TEXT_SAVANNA] = gPCText_Savanna, - [PC_TEXT_CRAG] = gPCText_Crag, - [PC_TEXT_VOLCANO] = gPCText_Volcano, - [PC_TEXT_SNOW] = gPCText_Snow, - [PC_TEXT_CAVE] = gPCText_Cave, - [PC_TEXT_BEACH] = gPCText_Beach, - [PC_TEXT_SEAFLOOR] = gPCText_Seafloor, - [PC_TEXT_RIVER] = gPCText_River, - [PC_TEXT_SKY] = gPCText_Sky, - [PC_TEXT_POLKADOT] = gPCText_PolkaDot, - [PC_TEXT_POKECENTER] = gPCText_Pokecenter, - [PC_TEXT_MACHINE] = gPCText_Machine, - [PC_TEXT_SIMPLE] = gPCText_Simple, + [MENU_TEXT_CANCEL] = gPCText_Cancel, + [MENU_TEXT_STORE] = gPCText_Store, + [MENU_TEXT_WITHDRAW] = gPCText_Withdraw, + [MENU_TEXT_MOVE] = gPCText_Move, + [MENU_TEXT_SHIFT] = gPCText_Shift, + [MENU_TEXT_PLACE] = gPCText_Place, + [MENU_TEXT_SUMMARY] = gPCText_Summary, + [MENU_TEXT_RELEASE] = gPCText_Release, + [MENU_TEXT_MARK] = gPCText_Mark, + [MENU_TEXT_JUMP] = gPCText_Jump, + [MENU_TEXT_WALLPAPER] = gPCText_Wallpaper, + [MENU_TEXT_NAME] = gPCText_Name, + [MENU_TEXT_TAKE] = gPCText_Take, + [MENU_TEXT_GIVE] = gPCText_Give, + [MENU_TEXT_GIVE2] = gPCText_Give, + [MENU_TEXT_SWITCH] = gPCText_Switch, + [MENU_TEXT_BAG] = gPCText_Bag, + [MENU_TEXT_INFO] = gPCText_Info, + [MENU_TEXT_SCENERY_1] = gPCText_Scenery1, + [MENU_TEXT_SCENERY_2] = gPCText_Scenery2, + [MENU_TEXT_SCENERY_3] = gPCText_Scenery3, + [MENU_TEXT_ETCETERA] = gPCText_Etcetera, + [MENU_TEXT_FOREST] = gPCText_Forest, + [MENU_TEXT_CITY] = gPCText_City, + [MENU_TEXT_DESERT] = gPCText_Desert, + [MENU_TEXT_SAVANNA] = gPCText_Savanna, + [MENU_TEXT_CRAG] = gPCText_Crag, + [MENU_TEXT_VOLCANO] = gPCText_Volcano, + [MENU_TEXT_SNOW] = gPCText_Snow, + [MENU_TEXT_CAVE] = gPCText_Cave, + [MENU_TEXT_BEACH] = gPCText_Beach, + [MENU_TEXT_SEAFLOOR] = gPCText_Seafloor, + [MENU_TEXT_RIVER] = gPCText_River, + [MENU_TEXT_SKY] = gPCText_Sky, + [MENU_TEXT_POLKADOT] = gPCText_PolkaDot, + [MENU_TEXT_POKECENTER] = gPCText_Pokecenter, + [MENU_TEXT_MACHINE] = gPCText_Machine, + [MENU_TEXT_SIMPLE] = gPCText_Simple, }; void SetMenuText(u8 textId) { - if (gPSSData->menuItemsCount < ARRAY_COUNT(gPSSData->menuItems)) + if (gStorage->menuItemsCount < ARRAY_COUNT(gStorage->menuItems)) { u8 len; - struct StorageMenu *menu = &gPSSData->menuItems[gPSSData->menuItemsCount]; + struct StorageMenu *menu = &gStorage->menuItems[gStorage->menuItemsCount]; menu->text = sMenuTexts[textId]; menu->textId = textId; len = StringLength(menu->text); - if (len > gPSSData->menuWidth) - gPSSData->menuWidth = len; + if (len > gStorage->menuWidth) + gStorage->menuWidth = len; - gPSSData->menuItemsCount++; + gStorage->menuItemsCount++; } } -s8 sub_8094E50(u8 arg0) +s8 GetMenuItemTextId(u8 menuIndex) { - if (arg0 >= gPSSData->menuItemsCount) - return -1; + if (menuIndex >= gStorage->menuItemsCount) + return MENU_B_PRESSED; else - return gPSSData->menuItems[arg0].textId; + return gStorage->menuItems[menuIndex].textId; } void AddMenu(void) { - gPSSData->menuWindow.width = gPSSData->menuWidth + 2; - gPSSData->menuWindow.height = 2 * gPSSData->menuItemsCount; - gPSSData->menuWindow.tilemapLeft = 29 - gPSSData->menuWindow.width; - gPSSData->menuWindow.tilemapTop = 15 - gPSSData->menuWindow.height; - gPSSData->menuWindowId = AddWindow(&gPSSData->menuWindow); - ClearWindowTilemap(gPSSData->menuWindowId); - DrawStdFrameWithCustomTileAndPalette(gPSSData->menuWindowId, FALSE, 0x00b, 14); - PrintTextArray(gPSSData->menuWindowId, FONT_1, 8, 2, 16, gPSSData->menuItemsCount, (void *)gPSSData->menuItems); - Menu_InitCursor(gPSSData->menuWindowId, FONT_1, 0, 2, 16, gPSSData->menuItemsCount, 0); + gStorage->menuWindow.width = gStorage->menuWidth + 2; + gStorage->menuWindow.height = 2 * gStorage->menuItemsCount; + gStorage->menuWindow.tilemapLeft = 29 - gStorage->menuWindow.width; + gStorage->menuWindow.tilemapTop = 15 - gStorage->menuWindow.height; + gStorage->menuWindowId = AddWindow(&gStorage->menuWindow); + ClearWindowTilemap(gStorage->menuWindowId); + DrawStdFrameWithCustomTileAndPalette(gStorage->menuWindowId, FALSE, 11, 14); + PrintTextArray(gStorage->menuWindowId, FONT_1, 8, 2, 16, gStorage->menuItemsCount, (void *)gStorage->menuItems); + Menu_InitCursor(gStorage->menuWindowId, FONT_1, 0, 2, 16, gStorage->menuItemsCount, 0); ScheduleBgCopyTilemapToVram(0); - gPSSData->menuUnusedField = 0; + gStorage->menuUnusedField = 0; } -bool8 sub_8094F90(void) +bool8 IsMenuLoading(void) { - // Some debug flag? + // Possibly stubbed out debug code? return FALSE; } -s16 sub_8094F94(void) +s16 HandleMenuInput(void) { - s32 textId = -2; + s32 input = MENU_NOTHING_CHOSEN; do { if (JOY_NEW(A_BUTTON)) { - textId = Menu_GetCursorPos(); + input = Menu_GetCursorPos(); break; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - textId = -1; + input = MENU_B_PRESSED; } if (JOY_NEW(DPAD_UP)) @@ -129,19 +129,19 @@ s16 sub_8094F94(void) PlaySE(SE_SELECT); Menu_MoveCursor(1); } - } while (0); + } while (FALSE); - if (textId != -2) - sub_8095024(); + if (input != MENU_NOTHING_CHOSEN) + RemoveMenu(); - if (textId >= 0) - textId = gPSSData->menuItems[textId].textId; + if (input >= 0) + input = gStorage->menuItems[input].textId; - return textId; + return input; } -void sub_8095024(void) +void RemoveMenu(void) { - ClearStdWindowAndFrameToTransparent(gPSSData->menuWindowId, TRUE); - RemoveWindow(gPSSData->menuWindowId); + ClearStdWindowAndFrameToTransparent(gStorage->menuWindowId, TRUE); + RemoveWindow(gStorage->menuWindowId); } diff --git a/src/pokemon_storage_system_7.c b/src/pokemon_storage_system_7.c index 95d199172..573aa4b82 100644 --- a/src/pokemon_storage_system_7.c +++ b/src/pokemon_storage_system_7.c @@ -5,50 +5,48 @@ #include "pokemon_storage_system_internal.h" #include "text_window.h" -struct MoveMons +static EWRAM_DATA struct { - u8 field_0; + u8 funcId; u8 state; - u8 fromRow; u8 fromColumn; - u8 toRow; + u8 fromRow; u8 toColumn; - u8 field_6; - u8 field_7; - u8 minRow; + u8 toRow; + u8 cursorColumn; + u8 cursorRow; u8 minColumn; + u8 minRow; + u8 columnsTotal; u8 rowsTotal; - u8 columsTotal; u16 bgX; u16 bgY; - u16 field_10; + u16 bgMoveSteps; struct BoxPokemon boxMons[IN_BOX_COUNT]; -}; +} *sMultiMove = NULL; -static EWRAM_DATA struct MoveMons *sMoveMonsPtr = NULL; +static bool8 MultiMove_Function_Start(void); +static bool8 MultiMove_Function_Single(void); +static bool8 MultiMove_Function_ChangeSelection(void); +static bool8 MultiMove_Function_GrabSelection(void); +static bool8 MultiMove_Function_MoveMons(void); +static bool8 MultiMove_Function_PlaceMons(void); +static void MultiMove_UpdateSelectedIcons(void); +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow); +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn); +static void MultiMove_DeselectColumn(u8 arg0, u8 minRow, u8 maxRow); +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn); +static void MultiMove_SetIconToBg(u8 x, u8 y); +static void MultiMove_ClearIconFromBg(u8 x, u8 y); +static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration); +static u8 MultiMove_UpdateBg(void); +static void MultiMove_GetMonsFromSelection(void); +static void MultiMove_RemoveMonsFromBox(void); +static void MultiMove_CreatePlacedMonIcons(void); +static void MultiMove_SetPlacedMonData(void); +static void MultiMove_ResetBg(void); -static bool8 sub_8095138(void); -static bool8 sub_8095234(void); -static bool8 sub_80952A0(void); -static bool8 sub_8095314(void); -static bool8 sub_8095394(void); -static bool8 sub_80953BC(void); -static void sub_8095520(void); -static void sub_80955C4(u8 arg0, u8 arg1, u8 arg2); -static void sub_80955FC(u8 arg0, u8 arg1, u8 arg2); -static void sub_8095634(u8 arg0, u8 arg1, u8 arg2); -static void sub_809566C(u8 arg0, u8 arg1, u8 arg2); -static void sub_80956A4(u8 x, u8 y); -static void sub_809572C(u8 x, u8 y); -static void sub_8095780(u16 bgX, u16 bgY, u16 duration); -static u8 sub_8095790(void); -static void sub_80957C8(void); -static void sub_80958A0(void); -static void sub_8095918(void); -static void sub_80959A8(void); -static void sub_8095A58(void); - -static const struct WindowTemplate gUnknown_83D35D4 = { +static const struct WindowTemplate sWindowTemplate_MultiMove = { .bg = 0, .tilemapLeft = 10, .tilemapTop = 3, @@ -58,15 +56,15 @@ static const struct WindowTemplate gUnknown_83D35D4 = { .baseBlock = 0x00a }; -bool8 sub_8095050(void) +bool8 MultiMove_Init(void) { - sMoveMonsPtr = Alloc(sizeof(*sMoveMonsPtr)); - if (sMoveMonsPtr != NULL) + sMultiMove = Alloc(sizeof(*sMultiMove)); + if (sMultiMove != NULL) { - gPSSData->field_2200 = AddWindow8Bit(&gUnknown_83D35D4); - if (gPSSData->field_2200 != 0xFF) + gStorage->multiMoveWindowId = AddWindow8Bit(&sWindowTemplate_MultiMove); + if (gStorage->multiMoveWindowId != WINDOW_NONE) { - FillWindowPixelBuffer(gPSSData->field_2200, PIXEL_FILL(0)); + FillWindowPixelBuffer(gStorage->multiMoveWindowId, PIXEL_FILL(0)); return TRUE; } } @@ -74,64 +72,64 @@ bool8 sub_8095050(void) return FALSE; } -void sub_80950A4(void) +void MultiMove_Free(void) { - if (sMoveMonsPtr != NULL) - Free(sMoveMonsPtr); + if (sMultiMove != NULL) + Free(sMultiMove); } -void sub_80950BC(u8 arg0) +void MultiMove_SetFunction(u8 funcId) { - sMoveMonsPtr->field_0 = arg0; - sMoveMonsPtr->state = 0; + sMultiMove->funcId = funcId; + sMultiMove->state = 0; } -bool8 sub_80950D0(void) +bool8 MultiMove_RunFunction(void) { - switch (sMoveMonsPtr->field_0) + switch (sMultiMove->funcId) { - case 0: - return sub_8095138(); - case 1: - return sub_8095234(); - case 2: - return sub_80952A0(); - case 3: - return sub_8095314(); - case 4: - return sub_8095394(); - case 5: - return sub_80953BC(); + case MULTIMOVE_START: + return MultiMove_Function_Start(); + case MULTIMOVE_SINGLE: + return MultiMove_Function_Single(); + case MULTIMOVE_CHANGE_SELECTION: + return MultiMove_Function_ChangeSelection(); + case MULTIMOVE_GRAB_SELECTION: + return MultiMove_Function_GrabSelection(); + case MULTIMOVE_MOVE_MONS: + return MultiMove_Function_MoveMons(); + case MULTIMOVE_PLACE_MONS: + return MultiMove_Function_PlaceMons(); } return FALSE; } -static bool8 sub_8095138(void) +static bool8 MultiMove_Function_Start(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: HideBg(0); LoadMonIconPalettesAt(0x80); - sMoveMonsPtr->state++; + sMultiMove->state++; break; case 1: - sub_8094CD4(&sMoveMonsPtr->fromRow, &sMoveMonsPtr->fromColumn); - sMoveMonsPtr->toRow = sMoveMonsPtr->fromRow; - sMoveMonsPtr->toColumn = sMoveMonsPtr->fromColumn; - ChangeBgX(0, -1024, 0); - ChangeBgY(0, -1024, 0); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - FillWindowPixelBuffer8Bit(gPSSData->field_2200, PIXEL_FILL(0)); - sub_80956A4(sMoveMonsPtr->fromRow, sMoveMonsPtr->fromColumn); + GetCursorBoxColumnAndRow(&sMultiMove->fromColumn, &sMultiMove->fromRow); + sMultiMove->toColumn = sMultiMove->fromColumn; + sMultiMove->toRow = sMultiMove->fromRow; + ChangeBgX(0, -1024, BG_COORD_SET); + ChangeBgY(0, -1024, BG_COORD_SET); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + FillWindowPixelBuffer8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0)); + MultiMove_SetIconToBg(sMultiMove->fromColumn, sMultiMove->fromRow); SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); - PutWindowTilemap(gPSSData->field_2200); - CopyWindowToVram8Bit(gPSSData->field_2200, COPYWIN_FULL); + PutWindowTilemap(gStorage->multiMoveWindowId); + CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_FULL); BlendPalettes(0x3F00, 8, RGB_WHITE); - sub_8094D14(2); + StartCursorAnim(CURSOR_ANIM_OPEN); SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); - sMoveMonsPtr->state++; + sMultiMove->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) @@ -145,23 +143,23 @@ static bool8 sub_8095138(void) return TRUE; } -static bool8 sub_8095234(void) +static bool8 MultiMove_Function_Single(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: HideBg(0); - sMoveMonsPtr->state++; + sMultiMove->state++; break; case 1: - sub_8095A58(); - sub_8094D14(0); - sMoveMonsPtr->state++; + MultiMove_ResetBg(); + StartCursorAnim(CURSOR_ANIM_BOUNCE); + sMultiMove->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_8094D40(); + SetCursorPriorityTo1(); LoadPalette(stdpal_get(3), 0xD0, 0x20); ShowBg(0); return FALSE; @@ -172,19 +170,19 @@ static bool8 sub_8095234(void) return TRUE; } -static bool8 sub_80952A0(void) +static bool8 MultiMove_Function_ChangeSelection(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: - if (!sub_80924A8()) + if (!UpdateCursorPos()) { - sub_8094CD4(&sMoveMonsPtr->field_6, &sMoveMonsPtr->field_7); - sub_8095520(); - sMoveMonsPtr->toRow = sMoveMonsPtr->field_6; - sMoveMonsPtr->toColumn = sMoveMonsPtr->field_7; - CopyWindowToVram8Bit(gPSSData->field_2200, COPYWIN_GFX); - sMoveMonsPtr->state++; + GetCursorBoxColumnAndRow(&sMultiMove->cursorColumn, &sMultiMove->cursorRow); + MultiMove_UpdateSelectedIcons(); + sMultiMove->toColumn = sMultiMove->cursorColumn; + sMultiMove->toRow = sMultiMove->cursorRow; + CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_GFX); + sMultiMove->state++; } break; case 1: @@ -194,31 +192,31 @@ static bool8 sub_80952A0(void) return TRUE; } -static bool8 sub_8095314(void) +static bool8 MultiMove_Function_GrabSelection(void) { - u8 var1, var2; + u8 movingBg, movingMon; - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: - sub_80957C8(); - sub_80958A0(); - sub_8092BAC(FALSE); - sMoveMonsPtr->state++; + MultiMove_GetMonsFromSelection(); + MultiMove_RemoveMonsFromBox(); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; break; case 1: if (!DoMonPlaceChange()) { - sub_8094D14(3); - sub_8095780(0, 256, 8); - sub_8092BAC(TRUE); - sMoveMonsPtr->state++; + StartCursorAnim(CURSOR_ANIM_FIST); + MultiMove_InitBg(0, 256, 8); + InitMultiMonPlaceChange(TRUE); + sMultiMove->state++; } break; case 2: - var1 = sub_8095790(); - var2 = DoMonPlaceChange(); - if (!var1 && !var2) + movingBg = MultiMove_UpdateBg(); + movingMon = DoMonPlaceChange(); + if (!movingBg && !movingMon) return FALSE; break; } @@ -226,50 +224,50 @@ static bool8 sub_8095314(void) return TRUE; } -static bool8 sub_8095394(void) +static bool8 MultiMove_Function_MoveMons(void) { - u8 var1 = sub_80924A8(); - u8 var2 = sub_8095790(); + u8 movingCursor = UpdateCursorPos(); + u8 movingBg = MultiMove_UpdateBg(); - if (!var1 && !var2) + if (!movingCursor && !movingBg) return FALSE; else return TRUE; } -static bool8 sub_80953BC(void) +static bool8 MultiMove_Function_PlaceMons(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: - sub_80959A8(); - sub_8095780(0, -256, 8); - sub_8092BAC(FALSE); - sMoveMonsPtr->state++; + MultiMove_SetPlacedMonData(); + MultiMove_InitBg(0, -256, 8); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; break; case 1: - if (!DoMonPlaceChange() && !sub_8095790()) + if (!DoMonPlaceChange() && !MultiMove_UpdateBg()) { - sub_8095918(); - sub_8094D14(2); - sub_8092BAC(TRUE); + MultiMove_CreatePlacedMonIcons(); + StartCursorAnim(CURSOR_ANIM_OPEN); + InitMultiMonPlaceChange(TRUE); HideBg(0); - sMoveMonsPtr->state++; + sMultiMove->state++; } break; case 2: if (!DoMonPlaceChange()) { - sub_8094D14(0); - sub_8095A58(); - sMoveMonsPtr->state++; + StartCursorAnim(CURSOR_ANIM_BOUNCE); + MultiMove_ResetBg(); + sMultiMove->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { LoadPalette(stdpal_get(3), 0xD0, 0x20); - sub_8094D40(); + SetCursorPriorityTo1(); ShowBg(0); return FALSE; } @@ -279,206 +277,188 @@ static bool8 sub_80953BC(void) return TRUE; } -bool8 sub_8095474(u8 arg0) +bool8 MultiMove_TryMoveGroup(u8 dir) { - switch (arg0) + switch (dir) { case 0: // up - if (sMoveMonsPtr->minColumn == 0) + if (sMultiMove->minRow == 0) return FALSE; - sMoveMonsPtr->minColumn--; - sub_8095780(0, 1024, 6); + sMultiMove->minRow--; + MultiMove_InitBg(0, 1024, 6); break; case 1: // down - if (sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal >= 5) + if (sMultiMove->minRow + sMultiMove->rowsTotal >= 5) return FALSE; - sMoveMonsPtr->minColumn++; - sub_8095780(0, -1024, 6); + sMultiMove->minRow++; + MultiMove_InitBg(0, -1024, 6); break; case 2: // left - if (sMoveMonsPtr->minRow == 0) + if (sMultiMove->minColumn == 0) return FALSE; - sMoveMonsPtr->minRow--; - sub_8095780(1024, 0, 6); + sMultiMove->minColumn--; + MultiMove_InitBg(1024, 0, 6); break; case 3: // right - if (sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal > 5) + if (sMultiMove->minColumn + sMultiMove->columnsTotal > 5) return FALSE; - sMoveMonsPtr->minRow++; - sub_8095780(-1024, 0, 6); + sMultiMove->minColumn++; + MultiMove_InitBg(-1024, 0, 6); break; } return TRUE; } -static void sub_8095520(void) +static void MultiMove_UpdateSelectedIcons(void) { - s16 var = (abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->field_6)) - (abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->toRow)); - s16 var2 = (abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->field_7)) - (abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->toColumn)); + s16 columnChange = (abs(sMultiMove->fromColumn - sMultiMove->cursorColumn)) - (abs(sMultiMove->fromColumn - sMultiMove->toColumn)); + s16 rowChange = (abs(sMultiMove->fromRow - sMultiMove->cursorRow)) - (abs(sMultiMove->fromRow - sMultiMove->toRow)); - if (var > 0) - sub_80955C4(sMoveMonsPtr->field_6, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); + if (columnChange > 0) + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); - if (var < 0) + if (columnChange < 0) { - sub_8095634(sMoveMonsPtr->toRow, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - sub_80955C4(sMoveMonsPtr->field_6, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); + MultiMove_DeselectColumn(sMultiMove->toColumn, sMultiMove->fromRow, sMultiMove->toRow); + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); } - if (var2 > 0) - sub_80955FC(sMoveMonsPtr->field_7, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); + if (rowChange > 0) + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); - if (var2 < 0) + if (rowChange < 0) { - sub_809566C(sMoveMonsPtr->toColumn, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - sub_80955FC(sMoveMonsPtr->field_7, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); + MultiMove_DeselectRow(sMultiMove->toRow, sMultiMove->fromColumn, sMultiMove->toColumn); + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); } } -static void sub_80955C4(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow) { - u8 var1 = arg1; + u8 tmp = minRow; - if (arg1 > arg2) + if (minRow > maxRow) { - arg1 = arg2; - arg2 = var1; + minRow = maxRow; + maxRow = tmp; } - while (arg1 <= arg2) - sub_80956A4(arg0, arg1++); + while (minRow <= maxRow) + MultiMove_SetIconToBg(column, minRow++); } -static void sub_80955FC(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn) { - u8 var1 = arg1; + u8 tmp = minColumn; - if (arg1 > arg2) + if (minColumn > maxColumn) { - arg1 = arg2; - arg2 = var1; + minColumn = maxColumn; + maxColumn = tmp; } - while (arg1 <= arg2) - sub_80956A4(arg1++, arg0); + while (minColumn <= maxColumn) + MultiMove_SetIconToBg(minColumn++, row); } -static void sub_8095634(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_DeselectColumn(u8 column, u8 minRow, u8 maxRow) { - u8 var1 = arg1; + u8 tmp = minRow; - if (arg1 > arg2) + if (minRow > maxRow) { - arg1 = arg2; - arg2 = var1; + minRow = maxRow; + maxRow = tmp; } - while (arg1 <= arg2) - sub_809572C(arg0, arg1++); + while (minRow <= maxRow) + MultiMove_ClearIconFromBg(column, minRow++); } -static void sub_809566C(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) { - u8 var1 = arg1; + u8 tmp = minColumn; - if (arg1 > arg2) + if (minColumn > maxColumn) { - arg1 = arg2; - arg2 = var1; + minColumn = maxColumn; + maxColumn = tmp; } - while (arg1 <= arg2) - sub_809572C(arg1++, arg0); + while (minColumn <= maxColumn) + MultiMove_ClearIconFromBg(minColumn++, row); } -static void sub_80956A4(u8 x, u8 y) +static void MultiMove_SetIconToBg(u8 x, u8 y) { - u8 position = x + (IN_BOX_ROWS * y); + u8 position = x + (IN_BOX_COLUMNS * y); u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); if (species != SPECIES_NONE) { const u8 *iconGfx = GetMonIconPtr(species, personality, 1); - u8 index = GetValidMonIconPalIndex(species) + 8; - - BlitBitmapRectToWindow4BitTo8Bit(gPSSData->field_2200, - iconGfx, - 0, - 0, - 32, - 32, - 24 * x, - 24 * y, - 32, - 32, - index); + u8 palNum = GetValidMonIconPalIndex(species) + 8; + BlitBitmapRectToWindow4BitTo8Bit(gStorage->multiMoveWindowId, iconGfx, 0, 0, 32, 32, 24 * x, 24 * y, 32, 32, palNum); } } -static void sub_809572C(u8 x, u8 y) +static void MultiMove_ClearIconFromBg(u8 x, u8 y) { - u8 position = x + (IN_BOX_ROWS * y); + u8 position = x + (IN_BOX_COLUMNS * y); u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); if (species != SPECIES_NONE) - { - FillWindowPixelRect8Bit(gPSSData->field_2200, - PIXEL_FILL(0), - 24 * x, - 24 * y, - 32, - 32); - } + FillWindowPixelRect8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0), 24 * x, 24 * y, 32, 32); } -static void sub_8095780(u16 bgX, u16 bgY, u16 duration) +static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration) { - sMoveMonsPtr->bgX = bgX; - sMoveMonsPtr->bgY = bgY; - sMoveMonsPtr->field_10 = duration; + sMultiMove->bgX = bgX; + sMultiMove->bgY = bgY; + sMultiMove->bgMoveSteps = duration; } -static u8 sub_8095790(void) +static u8 MultiMove_UpdateBg(void) { - if (sMoveMonsPtr->field_10 != 0) + if (sMultiMove->bgMoveSteps != 0) { - ChangeBgX(0, sMoveMonsPtr->bgX, 1); - ChangeBgY(0, sMoveMonsPtr->bgY, 1); - sMoveMonsPtr->field_10--; + ChangeBgX(0, sMultiMove->bgX, BG_COORD_ADD); + ChangeBgY(0, sMultiMove->bgY, BG_COORD_ADD); + sMultiMove->bgMoveSteps--; } - return sMoveMonsPtr->field_10; + return sMultiMove->bgMoveSteps; } -static void sub_80957C8(void) +static void MultiMove_GetMonsFromSelection(void) { s32 i, j; - s32 rowCount, columnCount; + s32 columnCount, rowCount; u8 boxId; u8 monArrayId; - sMoveMonsPtr->minRow = min(sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - sMoveMonsPtr->minColumn = min(sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - sMoveMonsPtr->rowsTotal = abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->toRow) + 1; - sMoveMonsPtr->columsTotal = abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->toColumn) + 1; + sMultiMove->minColumn = min(sMultiMove->fromColumn, sMultiMove->toColumn); + sMultiMove->minRow = min(sMultiMove->fromRow, sMultiMove->toRow); + sMultiMove->columnsTotal = abs(sMultiMove->fromColumn - sMultiMove->toColumn) + 1; + sMultiMove->rowsTotal = abs(sMultiMove->fromRow - sMultiMove->toRow) + 1; boxId = StorageGetCurrentBox(); monArrayId = 0; - rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { struct BoxPokemon *boxMon = GetBoxedMonPtr(boxId, boxPosition); // UB: possible null dereference #ifdef UBFIX if (boxMon != NULL) - sMoveMonsPtr->boxMons[monArrayId] = *boxMon; + sMultiMove->boxMons[monArrayId] = *boxMon; #else - sMoveMonsPtr->boxMons[monArrayId] = *boxMon; + sMultiMove->boxMons[monArrayId] = *boxMon; #endif monArrayId++; boxPosition++; @@ -486,17 +466,17 @@ static void sub_80957C8(void) } } -static void sub_80958A0(void) +static void MultiMove_RemoveMonsFromBox(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 boxId = StorageGetCurrentBox(); - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { DestroyBoxMonIconAtPosition(boxPosition); ZeroBoxMonAt(boxId, boxPosition); @@ -505,75 +485,75 @@ static void sub_80958A0(void) } } -static void sub_8095918(void) +static void MultiMove_CreatePlacedMonIcons(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 monArrayId = 0; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - sub_80901EC(boxPosition); + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + CreateBoxMonIconAtPos(boxPosition); monArrayId++; boxPosition++; } } } -static void sub_80959A8(void) +static void MultiMove_SetPlacedMonData(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 boxId = StorageGetCurrentBox(); u8 monArrayId = 0; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - SetBoxMonAt(boxId, boxPosition, &sMoveMonsPtr->boxMons[monArrayId]); + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + SetBoxMonAt(boxId, boxPosition, &sMultiMove->boxMons[monArrayId]); boxPosition++; monArrayId++; } } } -static void sub_8095A58(void) +static void MultiMove_ResetBg(void) { - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); SetBgAttribute(0, BG_ATTR_PALETTEMODE, 0); ClearGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); CopyBgTilemapBufferToVram(0); } -u8 sub_8095AA0(void) +u8 MultiMove_GetOriginPosition(void) { - return (IN_BOX_ROWS * sMoveMonsPtr->fromColumn) + sMoveMonsPtr->fromRow; + return (IN_BOX_COLUMNS * sMultiMove->fromRow) + sMultiMove->fromColumn; } -bool8 sub_8095ABC(void) +bool8 MultiMove_CanPlaceSelection(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 monArrayId = 0; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) && GetCurrentBoxMonData(boxPosition, MON_DATA_SANITY_HAS_SPECIES)) return FALSE; diff --git a/src/pokemon_storage_system_8.c b/src/pokemon_storage_system_8.c index cdd7728a2..e7241e4b7 100644 --- a/src/pokemon_storage_system_8.c +++ b/src/pokemon_storage_system_8.c @@ -42,7 +42,7 @@ static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite); static const u32 sItemInfoFrame_Gfx[] = INCBIN_U32("graphics/interface/pss_unk_83D35DC.4bpp"); -static const struct OamData gUnknown_83D365C = { +static const struct OamData sOamData_ItemIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, @@ -58,65 +58,65 @@ static const struct OamData gUnknown_83D365C = { .affineParam = 0 }; -static const union AffineAnimCmd gUnknown_83D3664[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_Small[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D3674[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_Appear[] = { AFFINEANIMCMD_FRAME(88, 88, 0, 0), AFFINEANIMCMD_FRAME(5, 5, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D368C[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_Disappear[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_FRAME(-5, -5, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D36A4[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_PickUp[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_FRAME(10, 10, 0, 12), AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D36C4[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_PutDown[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(-10, -10, 0, 12), AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D36E4[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_PutAway[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(-5, -5, 0, 16), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D36FC[] = { +static const union AffineAnimCmd sAffineAnim_ItemIcon_Large[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_83D370C[] = { - gUnknown_83D3664, - gUnknown_83D3674, - gUnknown_83D368C, - gUnknown_83D36A4, - gUnknown_83D36C4, - gUnknown_83D36E4, - gUnknown_83D36FC +static const union AffineAnimCmd *const sAffineAnims_ItemIcon[] = { + [ITEM_ANIM_NONE] = sAffineAnim_ItemIcon_Small, + [ITEM_ANIM_APPEAR] = sAffineAnim_ItemIcon_Appear, + [ITEM_ANIM_DISAPPEAR] = sAffineAnim_ItemIcon_Disappear, + [ITEM_ANIM_PICK_UP] = sAffineAnim_ItemIcon_PickUp, + [ITEM_ANIM_PUT_DOWN] = sAffineAnim_ItemIcon_PutDown, + [ITEM_ANIM_PUT_AWAY] = sAffineAnim_ItemIcon_PutAway, + [ITEM_ANIM_LARGE] = sAffineAnim_ItemIcon_Large, }; static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { - .tileTag = TAG_TILE_7, - .paletteTag = TAG_PAL_DACB, - .oam = &gUnknown_83D365C, + .tileTag = GFXTAG_ITEM_ICON_0, + .paletteTag = PALTAG_ITEM_ICON_0, + .oam = &sOamData_ItemIcon, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83D370C, + .affineAnims = sAffineAnims_ItemIcon, .callback = SpriteCallbackDummy, }; @@ -128,7 +128,7 @@ void CreateItemIconSprites(void) struct SpriteTemplate spriteTemplate; static u32 sItemIconGfxBuffer[0x61]; - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { spriteSheet.data = sItemIconGfxBuffer; spriteSheet.size = 0x200; @@ -136,30 +136,28 @@ void CreateItemIconSprites(void) for (i = 0; i < MAX_ITEM_ICONS; i++) { - spriteSheet.tag = TAG_TILE_7 + i; + spriteSheet.tag = GFXTAG_ITEM_ICON_0 + i; LoadCompressedSpriteSheet(&spriteSheet); - gPSSData->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void *)(OBJ_VRAM0); - gPSSData->itemIcons[i].palIndex = AllocSpritePalette(TAG_PAL_DACB + i); - gPSSData->itemIcons[i].palIndex *= 16; - gPSSData->itemIcons[i].palIndex += 0x100; - spriteTemplate.tileTag = TAG_TILE_7 + i; - spriteTemplate.paletteTag = TAG_PAL_DACB + i; + gStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void *)(OBJ_VRAM0); + gStorage->itemIcons[i].palIndex = AllocSpritePalette(PALTAG_ITEM_ICON_0 + i); + gStorage->itemIcons[i].palIndex *= 16; + gStorage->itemIcons[i].palIndex += 0x100; + spriteTemplate.tileTag = GFXTAG_ITEM_ICON_0 + i; + spriteTemplate.paletteTag = PALTAG_ITEM_ICON_0 + i; spriteId = CreateSprite(&spriteTemplate, 0, 0, 11); - gPSSData->itemIcons[i].sprite = &gSprites[spriteId]; - gPSSData->itemIcons[i].sprite->invisible = TRUE; - gPSSData->itemIcons[i].active = FALSE; + gStorage->itemIcons[i].sprite = &gSprites[spriteId]; + gStorage->itemIcons[i].sprite->invisible = TRUE; + gStorage->itemIcons[i].active = FALSE; } } - gPSSData->movingItemId = ITEM_NONE; + gStorage->movingItemId = ITEM_NONE; } -void sub_8095C84(u8 cursorArea, u8 cursorPos) +void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos) { u16 heldItem; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - if (IsItemIconAtPosition(cursorArea, cursorPos)) + if ((gStorage->boxOption != OPTION_MOVE_ITEMS) || IsItemIconAtPosition(cursorArea, cursorPos)) return; switch (cursorArea) @@ -186,21 +184,21 @@ void sub_8095C84(u8 cursorArea, u8 cursorPos) SetItemIconPosition(id, cursorArea, cursorPos); LoadItemIconGfx(id, tiles, pal); - SetItemIconAffineAnim(id, 1); + SetItemIconAffineAnim(id, ITEM_ANIM_APPEAR); SetItemIconActive(id, TRUE); } } -void sub_8095D44(u8 cursorArea, u8 cursorPos) +void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos) { u8 id; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; id = GetItemIconIdxByPosition(cursorArea, cursorPos); - SetItemIconAffineAnim(id, 2); - SetItemIconCallback(id, 0, cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_DISAPPEAR); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, cursorArea, cursorPos); } void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) @@ -208,14 +206,14 @@ void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) u8 id; u16 item; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; id = GetItemIconIdxByPosition(cursorArea, cursorPos); item = 0; - SetItemIconAffineAnim(id, 3); - SetItemIconCallback(id, 1, cursorArea, cursorPos); - SetItemIconPosition(id, 2, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PICK_UP); + SetItemIconCallback(id, ITEM_CB_TO_HAND, cursorArea, cursorPos); + SetItemIconPosition(id, CURSOR_AREA_IN_HAND, 0); if (cursorArea == CURSOR_AREA_IN_BOX) { SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); @@ -227,21 +225,21 @@ void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); } - gPSSData->movingItemId = gPSSData->displayMonItemId; + gStorage->movingItemId = gStorage->displayMonItemId; } -void sub_8095E2C(u16 item) +void InitItemIconInCursor(u16 item) { const u32 *tiles = GetItemIconPic(item); const u32 *pal = GetItemIconPalette(item); u8 id = GetNewItemIconIdx(); LoadItemIconGfx(id, tiles, pal); - SetItemIconAffineAnim(id, 6); - SetItemIconCallback(id, 1, CURSOR_AREA_IN_BOX, 0); - SetItemIconPosition(id, CURSOR_AREA_BOX, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_LARGE); + SetItemIconCallback(id, ITEM_CB_TO_HAND, 0, 0); + SetItemIconPosition(id, CURSOR_AREA_IN_HAND, 0); SetItemIconActive(id, TRUE); - gPSSData->movingItemId = item; + gStorage->movingItemId = item; } void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos) @@ -249,48 +247,48 @@ void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos) u8 id; u16 item; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; id = GetItemIconIdxByPosition(cursorArea, cursorPos); - SetItemIconAffineAnim(id, 3); - SetItemIconCallback(id, 3, CURSOR_AREA_BOX, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PICK_UP); + SetItemIconCallback(id, ITEM_CB_SWAP_TO_HAND, CURSOR_AREA_IN_HAND, 0); if (cursorArea == CURSOR_AREA_IN_BOX) { item = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gPSSData->movingItemId); - gPSSData->movingItemId = item; + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gStorage->movingItemId); + gStorage->movingItemId = item; } else { item = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gPSSData->movingItemId); - gPSSData->movingItemId = item; + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gStorage->movingItemId); + gStorage->movingItemId = item; } id = GetItemIconIdxByPosition(2, 0); - SetItemIconAffineAnim(id, 4); - SetItemIconCallback(id, 4, cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_DOWN); + SetItemIconCallback(id, ITEM_CB_SWAP_TO_MON, cursorArea, cursorPos); } void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos) { u8 id; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; id = GetItemIconIdxByPosition(2, 0); - SetItemIconAffineAnim(id, 4); - SetItemIconCallback(id, 2, cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_DOWN); + SetItemIconCallback(id, ITEM_CB_TO_MON, cursorArea, cursorPos); if (cursorArea == CURSOR_AREA_IN_BOX) { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gPSSData->movingItemId); + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gStorage->movingItemId); SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_NORMAL); } else { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gPSSData->movingItemId); + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gStorage->movingItemId); SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_NORMAL); } } @@ -300,13 +298,13 @@ void Item_TakeMons(u8 cursorArea, u8 cursorPos) u8 id; u16 item; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; - item = 0; + item = ITEM_NONE; id = GetItemIconIdxByPosition(cursorArea, cursorPos); - SetItemIconAffineAnim(id, 2); - SetItemIconCallback(id, 0, cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_DISAPPEAR); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, cursorArea, cursorPos); if (cursorArea == CURSOR_AREA_IN_BOX) { SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); @@ -319,41 +317,44 @@ void Item_TakeMons(u8 cursorArea, u8 cursorPos) } } -void sub_8096088(void) +void MoveItemFromCursorToBag(void) { - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { - u8 id = GetItemIconIdxByPosition(2, 0); - SetItemIconAffineAnim(id, 5); - SetItemIconCallback(id, 0, CURSOR_AREA_BOX, 0); + u8 id = GetItemIconIdxByPosition(CURSOR_AREA_IN_HAND, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_AWAY); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, 2, 0); } } -void sub_80960C0(void) +// The party menu is being closed, if the cursor is on +// a Pokémon that has a held item make sure it slides +// up along with the closing menu. +void MoveHeldItemWithPartyMenu(void) { s32 i; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) + if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (gPSSData->itemIcons[i].active && gPSSData->itemIcons[i].cursorArea == CURSOR_AREA_IN_PARTY) - SetItemIconCallback(i, 7, CURSOR_AREA_BOX, 0); + if (gStorage->itemIcons[i].active && gStorage->itemIcons[i].cursorArea == CURSOR_AREA_IN_PARTY) + SetItemIconCallback(i, ITEM_CB_HIDE_PARTY, 2, 0); } } -bool8 sub_809610C(void) +bool8 IsItemIconAnimActive(void) { s32 i; for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (gPSSData->itemIcons[i].active) + if (gStorage->itemIcons[i].active) { - if (!gPSSData->itemIcons[i].sprite->affineAnimEnded && gPSSData->itemIcons[i].sprite->affineAnimBeginning) + if (!gStorage->itemIcons[i].sprite->affineAnimEnded && gStorage->itemIcons[i].sprite->affineAnimBeginning) return TRUE; - if (gPSSData->itemIcons[i].sprite->callback != SpriteCallbackDummy && gPSSData->itemIcons[i].sprite->callback != SpriteCB_ItemIcon_SetPosToCursor) + if (gStorage->itemIcons[i].sprite->callback != SpriteCallbackDummy && gStorage->itemIcons[i].sprite->callback != SpriteCB_ItemIcon_SetPosToCursor) return TRUE; } } @@ -365,11 +366,11 @@ bool8 IsActiveItemMoving(void) { s32 i; - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) + if (gStorage->boxOption == OPTION_MOVE_ITEMS) { for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (gPSSData->itemIcons[i].active && gPSSData->itemIcons[i].cursorArea == CURSOR_AREA_BOX) + if (gStorage->itemIcons[i].active && gStorage->itemIcons[i].cursorArea == CURSOR_AREA_BOX_TITLE) return TRUE; } } @@ -379,12 +380,12 @@ bool8 IsActiveItemMoving(void) const u8 *GetMovingItemName(void) { - return ItemId_GetName(gPSSData->movingItemId); + return ItemId_GetName(gStorage->movingItemId); } u16 GetMovingItem(void) { - return gPSSData->movingItemId; + return gStorage->movingItemId; } static u8 GetNewItemIconIdx(void) @@ -393,9 +394,9 @@ static u8 GetNewItemIconIdx(void) for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (!gPSSData->itemIcons[i].active) + if (!gStorage->itemIcons[i].active) { - gPSSData->itemIcons[i].active = TRUE; + gStorage->itemIcons[i].active = TRUE; return i; } } @@ -409,9 +410,9 @@ static bool32 IsItemIconAtPosition(u8 cursorArea, u8 cursorPos) for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (gPSSData->itemIcons[i].active - && gPSSData->itemIcons[i].cursorArea == cursorArea - && gPSSData->itemIcons[i].cursorPos == cursorPos) + if (gStorage->itemIcons[i].active + && gStorage->itemIcons[i].cursorArea == cursorArea + && gStorage->itemIcons[i].cursorPos == cursorPos) return TRUE; } @@ -424,9 +425,9 @@ static u8 GetItemIconIdxByPosition(u8 cursorArea, u8 cursorPos) for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (gPSSData->itemIcons[i].active - && gPSSData->itemIcons[i].cursorArea == cursorArea - && gPSSData->itemIcons[i].cursorPos == cursorPos) + if (gStorage->itemIcons[i].active + && gStorage->itemIcons[i].cursorArea == cursorArea + && gStorage->itemIcons[i].cursorPos == cursorPos) return i; } @@ -439,8 +440,8 @@ static u8 GetItemIconIdxBySprite(struct Sprite *sprite) for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (gPSSData->itemIcons[i].active - && gPSSData->itemIcons[i].sprite == sprite) + if (gStorage->itemIcons[i].active + && gStorage->itemIcons[i].sprite == sprite) return i; } @@ -457,29 +458,29 @@ static void SetItemIconPosition(u8 id, u8 cursorArea, u8 cursorPos) switch (cursorArea) { case CURSOR_AREA_IN_BOX: - row = cursorPos % IN_BOX_ROWS; - column = cursorPos / IN_BOX_ROWS; - gPSSData->itemIcons[id].sprite->x = (24 * row) + 112; - gPSSData->itemIcons[id].sprite->y = (24 * column) + 56; - gPSSData->itemIcons[id].sprite->oam.priority = 2; + row = cursorPos % IN_BOX_COLUMNS; + column = cursorPos / IN_BOX_COLUMNS; + gStorage->itemIcons[id].sprite->x = (24 * row) + 112; + gStorage->itemIcons[id].sprite->y = (24 * column) + 56; + gStorage->itemIcons[id].sprite->oam.priority = 2; break; case CURSOR_AREA_IN_PARTY: if (cursorPos == 0) { - gPSSData->itemIcons[id].sprite->x = 116; - gPSSData->itemIcons[id].sprite->y = 76; + gStorage->itemIcons[id].sprite->x = 116; + gStorage->itemIcons[id].sprite->y = 76; } else { - gPSSData->itemIcons[id].sprite->x = 164; - gPSSData->itemIcons[id].sprite->y = 24 * (cursorPos - 1) + 28; + gStorage->itemIcons[id].sprite->x = 164; + gStorage->itemIcons[id].sprite->y = 24 * (cursorPos - 1) + 28; } - gPSSData->itemIcons[id].sprite->oam.priority = 1; + gStorage->itemIcons[id].sprite->oam.priority = 1; break; } - gPSSData->itemIcons[id].cursorArea = cursorArea; - gPSSData->itemIcons[id].cursorPos = cursorPos; + gStorage->itemIcons[id].cursorArea = cursorArea; + gStorage->itemIcons[id].cursorPos = cursorPos; } static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal) @@ -489,14 +490,14 @@ static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal) if (id >= MAX_ITEM_ICONS) return; - CpuFastFill(0, gPSSData->itemIconBuffer, 0x200); - LZ77UnCompWram(itemTiles, gPSSData->field_22C4); + CpuFastFill(0, gStorage->itemIconBuffer, 0x200); + LZ77UnCompWram(itemTiles, gStorage->tileBuffer); for (i = 0; i < 3; i++) - CpuFastCopy(gPSSData->field_22C4 + (i * 0x60), gPSSData->itemIconBuffer + (i * 0x80), 0x60); + CpuFastCopy(gStorage->tileBuffer + (i * 0x60), gStorage->itemIconBuffer + (i * 0x80), 0x60); - CpuFastCopy(gPSSData->itemIconBuffer, gPSSData->itemIcons[id].tiles, 0x200); - LZ77UnCompWram(itemPal, gPSSData->itemIconBuffer); - LoadPalette(gPSSData->itemIconBuffer, gPSSData->itemIcons[id].palIndex, 0x20); + CpuFastCopy(gStorage->itemIconBuffer, gStorage->itemIcons[id].tiles, 0x200); + LZ77UnCompWram(itemPal, gStorage->itemIconBuffer); + LoadPalette(gStorage->itemIconBuffer, gStorage->itemIcons[id].palIndex, 0x20); } static void SetItemIconAffineAnim(u8 id, u8 animNum) @@ -504,7 +505,7 @@ static void SetItemIconAffineAnim(u8 id, u8 animNum) if (id >= MAX_ITEM_ICONS) return; - StartSpriteAffineAnim(gPSSData->itemIcons[id].sprite, animNum); + StartSpriteAffineAnim(gStorage->itemIcons[id].sprite, animNum); } #define sItemIconId data[0] @@ -520,36 +521,36 @@ static void SetItemIconCallback(u8 id, u8 callbackId, u8 cursorArea, u8 cursorPo switch (callbackId) { case ITEM_CB_WAIT_ANIM: - gPSSData->itemIcons[id].sprite->sItemIconId = id; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_WaitAnim; + gStorage->itemIcons[id].sprite->sItemIconId = id; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_WaitAnim; break; case ITEM_CB_TO_HAND: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToHand; + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToHand; break; case ITEM_CB_TO_MON: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->sCursorArea = cursorArea; - gPSSData->itemIcons[id].sprite->sCursorPos = cursorPos; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToMon; + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + gStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToMon; break; case ITEM_CB_SWAP_TO_HAND: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToHand; - gPSSData->itemIcons[id].sprite->sCursorArea = cursorArea; - gPSSData->itemIcons[id].sprite->sCursorPos = cursorPos; + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToHand; + gStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + gStorage->itemIcons[id].sprite->sCursorPos = cursorPos; break; case ITEM_CB_SWAP_TO_MON: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->sCursorArea = cursorArea; - gPSSData->itemIcons[id].sprite->sCursorPos = cursorPos; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToMon; + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + gStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToMon; break; case ITEM_CB_HIDE_PARTY: // If cursor is on a Pokémon with a held item and // the player closes the party menu, have the held // item follow the Pokémon as the menu slides out - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_HideParty; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_HideParty; break; } } @@ -559,8 +560,8 @@ static void SetItemIconActive(u8 id, bool8 show) if (id >= MAX_ITEM_ICONS) return; - gPSSData->itemIcons[id].active = show; - gPSSData->itemIcons[id].sprite->invisible = (show == FALSE); + gStorage->itemIcons[id].active = show; + gStorage->itemIcons[id].sprite->invisible = (show == FALSE); } static const u32 *GetItemIconPic(u16 itemId) @@ -578,9 +579,9 @@ void PrintItemDescription(void) const u8 *description; if (IsActiveItemMoving()) - description = ItemId_GetDescription(gPSSData->movingItemId); + description = ItemId_GetDescription(gStorage->movingItemId); else - description = ItemId_GetDescription(gPSSData->displayMonItemId); + description = ItemId_GetDescription(gStorage->displayMonItemId); FillWindowPixelBuffer(2, PIXEL_FILL(1)); AddTextPrinterParameterized5(2, FONT_2, description, 2, 0, 0, NULL, 0, 0); @@ -588,7 +589,7 @@ void PrintItemDescription(void) void InitItemInfoWindow(void) { - gPSSData->itemInfoWindowOffset = 25; + gStorage->itemInfoWindowOffset = 25; LoadBgTiles(0, sItemInfoFrame_Gfx, 0x80, 0x1A4); DrawItemInfoWindow(0); } @@ -597,53 +598,49 @@ bool8 UpdateItemInfoWindowSlideIn(void) { s32 i, pos; - if (gPSSData->itemInfoWindowOffset == 0) + if (gStorage->itemInfoWindowOffset == 0) return FALSE; - gPSSData->itemInfoWindowOffset--; - pos = 25 - gPSSData->itemInfoWindowOffset; + gStorage->itemInfoWindowOffset--; + pos = 25 - gStorage->itemInfoWindowOffset; for (i = 0; i < pos; i++) - { - WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gPSSData->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); - } + WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gStorage->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); DrawItemInfoWindow(pos); - return (gPSSData->itemInfoWindowOffset != 0); + return (gStorage->itemInfoWindowOffset != 0); } bool8 UpdateItemInfoWindowSlideOut(void) { s32 i, pos; - if (gPSSData->itemInfoWindowOffset == 25) + if (gStorage->itemInfoWindowOffset == 25) return FALSE; - if (gPSSData->itemInfoWindowOffset == 0) + if (gStorage->itemInfoWindowOffset == 0) FillBgTilemapBufferRect(0, 0, 25, 11, 1, 10, 17); - gPSSData->itemInfoWindowOffset++; - pos = 25 - gPSSData->itemInfoWindowOffset; + gStorage->itemInfoWindowOffset++; + pos = 25 - gStorage->itemInfoWindowOffset; for (i = 0; i < pos; i++) - { - WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gPSSData->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); - } + WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gStorage->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); DrawItemInfoWindow(pos); - FillBgTilemapBufferRect(0, 0, pos, 11, 1, 10, 0x11); - return (gPSSData->itemInfoWindowOffset != 25); + FillBgTilemapBufferRect(0, 0, pos, 11, 1, 10, 17); + return (gStorage->itemInfoWindowOffset != 25); } static void DrawItemInfoWindow(u32 x) { if (x != 0) { - FillBgTilemapBufferRect(0, 0x1A4, 0, 0xB, x, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x9A4, 0, 0x14, x, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x1A4, 0, 0xB, x, 1, 15); + FillBgTilemapBufferRect(0, 0x9A4, 0, 0x14, x, 1, 15); } - FillBgTilemapBufferRect(0, 0x1A5, x, 0xC, 1, 8, 0xFu); - FillBgTilemapBufferRect(0, 0x1A6, x, 0xB, 1, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x1A7, x, 0x14, 1, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x1A5, x, 0xC, 1, 8, 15); + FillBgTilemapBufferRect(0, 0x1A6, x, 0xB, 1, 1, 15); + FillBgTilemapBufferRect(0, 0x1A7, x, 0x14, 1, 1, 15); ScheduleBgCopyTilemapToVram(0); } @@ -651,14 +648,14 @@ static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - SetItemIconActive(sprite->data[0], FALSE); + SetItemIconActive(sprite->sItemIconId, FALSE); sprite->callback = SpriteCallbackDummy; } } static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->data[1] = sprite->x << 4; @@ -666,7 +663,7 @@ static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite) sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] -= sprite->data[3]; sprite->data[2] -= sprite->data[4]; @@ -680,14 +677,14 @@ static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite) static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *sprite) { - sprite->x = gPSSData->cursorSprite->x + 4; - sprite->y = gPSSData->cursorSprite->y + gPSSData->cursorSprite->y2 + 8; - sprite->oam.priority = gPSSData->cursorSprite->oam.priority; + sprite->x = gStorage->cursorSprite->x + 4; + sprite->y = gStorage->cursorSprite->y + gStorage->cursorSprite->y2 + 8; + sprite->oam.priority = gStorage->cursorSprite->oam.priority; } static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->data[1] = sprite->x << 4; @@ -695,7 +692,7 @@ static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] += sprite->data[3]; sprite->data[2] += sprite->data[4]; @@ -703,7 +700,7 @@ static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) sprite->y = sprite->data[2] >> 4; if (++sprite->data[5] > 11) { - SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->data[6], sprite->data[7]); + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); sprite->callback = SpriteCallbackDummy; } break; @@ -712,7 +709,7 @@ static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->data[1] = sprite->x << 4; @@ -720,7 +717,7 @@ static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] -= sprite->data[3]; sprite->data[2] -= sprite->data[4]; @@ -729,7 +726,7 @@ static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) sprite->x2 = gSineTable[sprite->data[5] * 8] >> 4; if (++sprite->data[5] > 11) { - SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->data[6], sprite->data[7]); + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); sprite->x2 = 0; sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; } @@ -739,7 +736,7 @@ static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->data[1] = sprite->x << 4; @@ -747,7 +744,7 @@ static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite) sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] += sprite->data[3]; sprite->data[2] += sprite->data[4]; @@ -756,7 +753,7 @@ static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite) sprite->x2 = -(gSineTable[sprite->data[5] * 8] >> 4); if (++sprite->data[5] > 11) { - SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->data[6], sprite->data[7]); + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); sprite->callback = SpriteCallbackDummy; sprite->x2 = 0; } @@ -779,16 +776,10 @@ static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite) #undef sCursorArea #undef sCursorPos - -//------------------------------------------------------------------------------ -// SECTION: UnkUtil -// // Some data transfer utility that goes functionally unused. // It gets initialized with UnkUtil_Init, and run every vblank in Pokémon // Storage with UnkUtil_Run, but neither of the Add functions are ever used, // so UnkUtil_Run performs no actions. -//------------------------------------------------------------------------------ - static EWRAM_DATA struct UnkUtil *sUnkUtil = NULL; diff --git a/src/tm_case.c b/src/tm_case.c index 43d590c40..8b77972ab 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -953,7 +953,7 @@ static void Task_SelectTMAction_Type3(u8 taskId) if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]))) { - sTMCaseDynamicResources->savedCallback = Cb2_ReturnToPSS; + sTMCaseDynamicResources->savedCallback = CB2_ReturnToPokeStorage; Task_BeginFadeOutFromTMCase(taskId); } else From c0bf5764452e1ed294682db61e1cd2e88c68010d Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Sat, 3 Sep 2022 23:30:02 +0800 Subject: [PATCH 051/105] Organize Pokemon storage graphics --- graphics/interface/pss_unk_83CDAB8.png | Bin 113 -> 0 bytes graphics/interface/pss_unk_83CE2B8.png | Bin 132 -> 0 bytes graphics/interface/pss_unk_83CE438.png | Bin 168 -> 0 bytes graphics/interface/pss_unk_83CE738.pal | 19 -- graphics/interface/pss_unk_83CE810.png | Bin 282 -> 0 bytes graphics/interface/pss_unk_83CEA10.pal | 19 -- graphics/interface/pss_unk_83CEC80.png | Bin 886 -> 0 bytes graphics/interface/pss_unk_83CF16C.png | Bin 478 -> 0 bytes graphics/interface/pss_unk_83CF464.png | Bin 665 -> 0 bytes graphics/interface/pss_unk_83CF874.png | Bin 512 -> 0 bytes graphics/interface/pss_unk_83CFBA0.png | Bin 748 -> 0 bytes graphics/interface/pss_unk_83D0008.png | Bin 749 -> 0 bytes graphics/interface/pss_unk_83D0454.png | Bin 618 -> 0 bytes graphics/interface/pss_unk_83D0818.png | Bin 736 -> 0 bytes graphics/interface/pss_unk_83D0C78.png | Bin 805 -> 0 bytes graphics/interface/pss_unk_83D1124.png | Bin 636 -> 0 bytes graphics/interface/pss_unk_83D14F4.png | Bin 665 -> 0 bytes graphics/interface/pss_unk_83D18B4.png | Bin 603 -> 0 bytes graphics/interface/pss_unk_83D1C8C.png | Bin 552 -> 0 bytes graphics/interface/pss_unk_83D1FD4.png | Bin 722 -> 0 bytes graphics/interface/pss_unk_83D23DC.png | Bin 404 -> 0 bytes graphics/interface/pss_unk_83D2654.png | Bin 310 -> 0 bytes graphics/interface/pss_unk_83D29D0.pal | 35 ---- graphics/interface/pss_unk_83D2AD0.png | Bin 201 -> 0 bytes graphics/interface/pss_unk_83D2BEC.png | Bin 432 -> 0 bytes graphics/interface/pss_unk_83D33EC.png | Bin 168 -> 0 bytes graphics/interface/pss_unk_83D35DC.png | Bin 110 -> 0 bytes graphics/pokemon_storage/box_scroll_arrow.png | Bin 0 -> 270 bytes .../choose_box_menu_center.png | Bin 0 -> 140 bytes .../choose_box_menu_corners.png | Bin 0 -> 238 bytes graphics/pokemon_storage/close_box_button.bin | 1 + graphics/pokemon_storage/cursor.png | Bin 0 -> 489 bytes graphics/pokemon_storage/cursor_shadow.png | Bin 0 -> 238 bytes .../interface.pal} | 0 .../interface_no_display_mon.pal} | 0 graphics/pokemon_storage/item_info_frame.png | Bin 0 -> 173 bytes .../menu.bin} | Bin .../menu.pal} | 0 .../menu.png} | Bin .../misc1.pal} | 0 graphics/pokemon_storage/misc2.pal | 19 ++ .../party_menu.bin} | Bin .../party_menu.pal} | 0 graphics/pokemon_storage/party_slot_empty.bin | 1 + .../pokemon_storage/party_slot_filled.bin | 1 + graphics/pokemon_storage/pkmn_data.bin | 1 + .../scrolling_bg.bin} | Bin graphics/pokemon_storage/scrolling_bg.png | Bin 0 -> 228 bytes .../scrolling_bg_move_items.pal} | 0 .../unused.pal} | 0 .../unused_choose_box_menu.pal} | 0 .../pokemon_storage/wallpapers/beach/box.pal | 19 ++ .../wallpapers/beach/tilemap.bin} | Bin .../wallpapers/beach/tiles.png | Bin 0 -> 818 bytes .../wallpapers/beach/title.pal} | 18 +- .../wallpapers/cave/box.pal} | 18 +- .../wallpapers/cave/tilemap.bin} | Bin .../pokemon_storage/wallpapers/cave/tiles.png | Bin 0 -> 694 bytes .../pokemon_storage/wallpapers/cave/title.pal | 19 ++ .../pokemon_storage/wallpapers/city/box.pal | 19 ++ .../wallpapers/city/tilemap.bin} | Bin .../pokemon_storage/wallpapers/city/tiles.png | Bin 0 -> 484 bytes .../wallpapers/city/title.pal} | 18 +- .../pokemon_storage/wallpapers/crag/box.pal | 19 ++ .../wallpapers/crag/tilemap.bin} | Bin .../pokemon_storage/wallpapers/crag/tiles.png | Bin 0 -> 729 bytes .../wallpapers/crag/title.pal} | 18 +- .../pokemon_storage/wallpapers/desert/box.pal | 19 ++ .../wallpapers/desert/tilemap.bin} | Bin .../wallpapers/desert/tiles.png | Bin 0 -> 657 bytes .../wallpapers/desert/title.pal} | 18 +- .../pokemon_storage/wallpapers/forest/box.pal | 19 ++ .../wallpapers/forest/tilemap.bin} | Bin .../wallpapers/forest/tiles.png | Bin 0 -> 743 bytes .../wallpapers/forest/title.pal} | 18 +- .../wallpapers/pokecenter/box.pal | 19 ++ .../wallpapers/pokecenter/tilemap.bin} | Bin .../wallpapers/pokecenter/tiles.png | Bin 0 -> 707 bytes .../wallpapers/pokecenter/title.pal} | 18 +- .../wallpapers/river/box.pal} | 18 +- .../wallpapers/river/tilemap.bin} | Bin .../wallpapers/river/tiles.png | Bin 0 -> 622 bytes .../wallpapers/river/title.pal | 19 ++ .../wallpapers/savanna/box.pal | 19 ++ .../wallpapers/savanna/tilemap.bin} | Bin .../wallpapers/savanna/tiles.png | Bin 0 -> 529 bytes .../wallpapers/savanna/title.pal} | 18 +- .../wallpapers/seafloor/box.pal} | 18 +- .../wallpapers/seafloor/tilemap.bin} | Bin .../wallpapers/seafloor/tiles.png | Bin 0 -> 659 bytes .../wallpapers/seafloor/title.pal | 19 ++ .../wallpapers/simple/box.pal} | 18 +- .../wallpapers/simple/tilemap.bin} | Bin .../wallpapers/simple/tiles.png | Bin 0 -> 347 bytes .../wallpapers/simple/title.pal | 19 ++ .../wallpapers/sky/box.pal} | 18 +- .../wallpapers/sky/tilemap.bin} | Bin .../pokemon_storage/wallpapers/sky/tiles.png | Bin 0 -> 614 bytes .../pokemon_storage/wallpapers/sky/title.pal | 19 ++ .../pokemon_storage/wallpapers/snow/box.pal | 19 ++ .../wallpapers/snow/tilemap.bin} | Bin .../pokemon_storage/wallpapers/snow/tiles.png | Bin 0 -> 607 bytes .../wallpapers/snow/title.pal} | 18 +- .../wallpapers/stars/box.pal} | 18 +- .../wallpapers/stars/tilemap.bin} | Bin .../wallpapers/stars/tiles.png | Bin 0 -> 571 bytes .../wallpapers/stars/title.pal | 19 ++ .../wallpapers/tiles/box.pal} | 18 +- .../wallpapers/tiles/tilemap.bin} | Bin .../wallpapers/tiles/tiles.png | Bin 0 -> 444 bytes .../wallpapers/tiles/title.pal | 19 ++ .../wallpapers/unused.bin} | 0 .../wallpapers/volcano/box.pal} | 18 +- .../wallpapers/volcano/tilemap.bin} | Bin .../wallpapers/volcano/tiles.png | Bin 0 -> 720 bytes .../wallpapers/volcano/title.pal | 19 ++ graphics/pokemon_storage/waveform.png | Bin 0 -> 260 bytes graphics_file_rules.mk | 50 +++++ src/graphics.c | 10 +- src/pokemon_storage_system_2.c | 6 +- src/pokemon_storage_system_3.c | 58 ++---- src/pokemon_storage_system_4.c | 180 +++++++++++------- src/pokemon_storage_system_5.c | 6 +- src/pokemon_storage_system_8.c | 2 +- 124 files changed, 536 insertions(+), 464 deletions(-) delete mode 100644 graphics/interface/pss_unk_83CDAB8.png delete mode 100644 graphics/interface/pss_unk_83CE2B8.png delete mode 100644 graphics/interface/pss_unk_83CE438.png delete mode 100644 graphics/interface/pss_unk_83CE738.pal delete mode 100644 graphics/interface/pss_unk_83CE810.png delete mode 100644 graphics/interface/pss_unk_83CEA10.pal delete mode 100644 graphics/interface/pss_unk_83CEC80.png delete mode 100644 graphics/interface/pss_unk_83CF16C.png delete mode 100644 graphics/interface/pss_unk_83CF464.png delete mode 100644 graphics/interface/pss_unk_83CF874.png delete mode 100644 graphics/interface/pss_unk_83CFBA0.png delete mode 100644 graphics/interface/pss_unk_83D0008.png delete mode 100644 graphics/interface/pss_unk_83D0454.png delete mode 100644 graphics/interface/pss_unk_83D0818.png delete mode 100644 graphics/interface/pss_unk_83D0C78.png delete mode 100644 graphics/interface/pss_unk_83D1124.png delete mode 100644 graphics/interface/pss_unk_83D14F4.png delete mode 100644 graphics/interface/pss_unk_83D18B4.png delete mode 100644 graphics/interface/pss_unk_83D1C8C.png delete mode 100644 graphics/interface/pss_unk_83D1FD4.png delete mode 100644 graphics/interface/pss_unk_83D23DC.png delete mode 100644 graphics/interface/pss_unk_83D2654.png delete mode 100644 graphics/interface/pss_unk_83D29D0.pal delete mode 100644 graphics/interface/pss_unk_83D2AD0.png delete mode 100644 graphics/interface/pss_unk_83D2BEC.png delete mode 100644 graphics/interface/pss_unk_83D33EC.png delete mode 100644 graphics/interface/pss_unk_83D35DC.png create mode 100644 graphics/pokemon_storage/box_scroll_arrow.png create mode 100644 graphics/pokemon_storage/choose_box_menu_center.png create mode 100644 graphics/pokemon_storage/choose_box_menu_corners.png create mode 100644 graphics/pokemon_storage/close_box_button.bin create mode 100644 graphics/pokemon_storage/cursor.png create mode 100644 graphics/pokemon_storage/cursor_shadow.png rename graphics/{interface/box_tiles_pal2.pal => pokemon_storage/interface.pal} (100%) rename graphics/{interface/box_tiles_pal3.pal => pokemon_storage/interface_no_display_mon.pal} (100%) create mode 100644 graphics/pokemon_storage/item_info_frame.png rename graphics/{interface/pss_unk_83CE5FC.bin => pokemon_storage/menu.bin} (100%) rename graphics/{interface/pss_unk_83CE5DC.pal => pokemon_storage/menu.pal} (100%) rename graphics/{interface/box_tiles.png => pokemon_storage/menu.png} (100%) rename graphics/{interface/pss_unk_83D2BCC.pal => pokemon_storage/misc1.pal} (100%) create mode 100644 graphics/pokemon_storage/misc2.pal rename graphics/{unknown/unknown_E9CAEC.bin => pokemon_storage/party_menu.bin} (100%) rename graphics/{interface/box_tiles_pal1.pal => pokemon_storage/party_menu.pal} (100%) create mode 100644 graphics/pokemon_storage/party_slot_empty.bin create mode 100644 graphics/pokemon_storage/party_slot_filled.bin create mode 100644 graphics/pokemon_storage/pkmn_data.bin rename graphics/{interface/pss_unk_83CE4D0.bin => pokemon_storage/scrolling_bg.bin} (100%) create mode 100644 graphics/pokemon_storage/scrolling_bg.png rename graphics/{interface/pss_unk_83CE758.pal => pokemon_storage/scrolling_bg_move_items.pal} (100%) rename graphics/{interface/pss_unk_83CE9D0.pal => pokemon_storage/unused.pal} (100%) rename graphics/{interface/pss_unk_83CDA98.pal => pokemon_storage/unused_choose_box_menu.pal} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/beach/box.pal rename graphics/{interface/pss_unk_83D0FFC.bin => pokemon_storage/wallpapers/beach/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/beach/tiles.png rename graphics/{interface/pss_unk_83D0C38.pal => pokemon_storage/wallpapers/beach/title.pal} (52%) rename graphics/{interface/pss_unk_83D07D8.pal => pokemon_storage/wallpapers/cave/box.pal} (52%) rename graphics/{interface/pss_unk_83D0B5C.bin => pokemon_storage/wallpapers/cave/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/cave/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/cave/title.pal create mode 100644 graphics/pokemon_storage/wallpapers/city/box.pal rename graphics/{interface/pss_unk_83CF374.bin => pokemon_storage/wallpapers/city/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/city/tiles.png rename graphics/{interface/pss_unk_83CF12C.pal => pokemon_storage/wallpapers/city/title.pal} (55%) create mode 100644 graphics/pokemon_storage/wallpapers/crag/box.pal rename graphics/{interface/pss_unk_83CFEF0.bin => pokemon_storage/wallpapers/crag/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/crag/tiles.png rename graphics/{interface/pss_unk_83CFB60.pal => pokemon_storage/wallpapers/crag/title.pal} (52%) create mode 100644 graphics/pokemon_storage/wallpapers/desert/box.pal rename graphics/{interface/pss_unk_83CF750.bin => pokemon_storage/wallpapers/desert/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/desert/tiles.png rename graphics/{interface/pss_unk_83CF424.pal => pokemon_storage/wallpapers/desert/title.pal} (55%) create mode 100644 graphics/pokemon_storage/wallpapers/forest/box.pal rename graphics/{interface/pss_unk_83CF050.bin => pokemon_storage/wallpapers/forest/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/forest/tiles.png rename graphics/{interface/pss_unk_83CEC40.pal => pokemon_storage/wallpapers/forest/title.pal} (54%) create mode 100644 graphics/pokemon_storage/wallpapers/pokecenter/box.pal rename graphics/{interface/pss_unk_83D22B8.bin => pokemon_storage/wallpapers/pokecenter/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/pokecenter/tiles.png rename graphics/{interface/pss_unk_83D1F94.pal => pokemon_storage/wallpapers/pokecenter/title.pal} (52%) rename graphics/{interface/pss_unk_83D14B4.pal => pokemon_storage/wallpapers/river/box.pal} (53%) rename graphics/{interface/pss_unk_83D1788.bin => pokemon_storage/wallpapers/river/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/river/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/river/title.pal create mode 100644 graphics/pokemon_storage/wallpapers/savanna/box.pal rename graphics/{interface/pss_unk_83CFA94.bin => pokemon_storage/wallpapers/savanna/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/savanna/tiles.png rename graphics/{interface/pss_unk_83CF834.pal => pokemon_storage/wallpapers/savanna/title.pal} (52%) rename graphics/{interface/pss_unk_83D10E4.pal => pokemon_storage/wallpapers/seafloor/box.pal} (52%) rename graphics/{interface/pss_unk_83D13D8.bin => pokemon_storage/wallpapers/seafloor/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/seafloor/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/seafloor/title.pal rename graphics/{interface/pss_unk_83D2614.pal => pokemon_storage/wallpapers/simple/box.pal} (55%) rename graphics/{interface/pss_unk_83D277C.bin => pokemon_storage/wallpapers/simple/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/simple/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/simple/title.pal rename graphics/{interface/pss_unk_83D1874.pal => pokemon_storage/wallpapers/sky/box.pal} (51%) rename graphics/{interface/pss_unk_83D1B4C.bin => pokemon_storage/wallpapers/sky/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/sky/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/sky/title.pal create mode 100644 graphics/pokemon_storage/wallpapers/snow/box.pal rename graphics/{interface/pss_unk_83D070C.bin => pokemon_storage/wallpapers/snow/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/snow/tiles.png rename graphics/{interface/pss_unk_83D0414.pal => pokemon_storage/wallpapers/snow/title.pal} (51%) rename graphics/{interface/pss_unk_83D1C2C.pal => pokemon_storage/wallpapers/stars/box.pal} (51%) rename graphics/{interface/pss_unk_83D1EC4.bin => pokemon_storage/wallpapers/stars/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/stars/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/stars/title.pal rename graphics/{interface/pss_unk_83D239C.pal => pokemon_storage/wallpapers/tiles/box.pal} (52%) rename graphics/{interface/pss_unk_83D256C.bin => pokemon_storage/wallpapers/tiles/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/tiles/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/tiles/title.pal rename graphics/{interface/pss_unk_83D2820.bin => pokemon_storage/wallpapers/unused.bin} (100%) rename graphics/{interface/pss_unk_83CFFC8.pal => pokemon_storage/wallpapers/volcano/box.pal} (52%) rename graphics/{interface/pss_unk_83D033C.bin => pokemon_storage/wallpapers/volcano/tilemap.bin} (100%) create mode 100644 graphics/pokemon_storage/wallpapers/volcano/tiles.png create mode 100644 graphics/pokemon_storage/wallpapers/volcano/title.pal create mode 100644 graphics/pokemon_storage/waveform.png diff --git a/graphics/interface/pss_unk_83CDAB8.png b/graphics/interface/pss_unk_83CDAB8.png deleted file mode 100644 index 5b7d0a3b69e18afdf3d3f4ddf79bb97df6a93f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz0wfr^{@y$eq%1sL978-hlV^0YNf@w%Eo5xF zo6(@f)O=KSF%twfdoe72@!ElT21xM##RDr2tY8pgU|1>QcKh*U9X60zp00i_>zopr E0JU!-!2kdN diff --git a/graphics/interface/pss_unk_83CE2B8.png b/graphics/interface/pss_unk_83CE2B8.png deleted file mode 100644 index 18ac36e21dbf4fa437e14919c8f1f9936125a073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ0wfrI9P#J^Qr?~}jv*3L&z{>T+Mpo75_oF= znJLDGQZ~3(YF7|Ui{aQ8oX#E@qhLi>Q94goH4xDLmFW7%VF@!NgZGuM+ gZzDqi`#z!LED5(5w|P63W`d0OboFyt=akR{0I{+y<^TWy diff --git a/graphics/interface/pss_unk_83CE438.png b/graphics/interface/pss_unk_83CE438.png deleted file mode 100644 index 8be861a2670f9b9107292efd1963f4ef1ef94d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et0wfrw&pzJ*r1Cvo9780gmYzQ;c));z*G(^QIV{(z!=$wy1~+Y>6Tc#&gXWAqMJ{pinVaaTZM-G>VFRI{+?dn+ak~W@>Znd2Q@9Th+Gw8wXoaY zQvb<3mw&eG&c>BWvo~Gi^2q0(Ve&AnJdoScJ-_b6m%_$(70UZhR0LGcQ2V@+)#?WO Yie65y^-X-`UvsCH9QdAFp9VmoP2OyRwXj@aP= zqPU<(5u^m95r;*-}N|1{{kra$EGc7C7to`*O-9$N7FMne%(%ob%V? z`Z2C)8fiiZ62dG<5t_O)?u+Wpj@n$pEO!!e=eqSYt|hS?l9=R6H_zJ>tmd`)%{$}1so#3xw+6E&EZ1u=A^{^(Wy}3GvX2q*7!ik& zZXXy?3r8|jzYRuim_Lk2t`^)s^S7#4nM?nn%;oe9tb79U0pyB#Z_O!K>E08)dt!8G z_3jdDsW@FckcoAv6XT4L)Yw$Br8)`H;}!5oz_SG0 z?E_)>U7;;yjA6-)-;vQ^n#gDi#3uZE#kie~!B8fOB#B76<0d&pP9P!UsbZ@$&Lb#0 z2&&Xzx!zEvh6u_KEsYy@#<2h_naw9M9SsxN+8QpYZ#;OpKr$XA%k#d@Xru`wWTf?t zx_vNn85R)?>E2h!3y|nh(0`yqxuaP9 z{}1tl^JU(PxPJ=Th*l9gep~LzTS3}BD&y8wIO6pow9_|6$p(B5b6d5<7222T><{* z+&(F7=|A{F$j7@BgTGC**oQw zzOEuSzOfkNE8?dSKZQ&9r~#jKz32#`5keudfEq$|M0)~gaTQNc$&+z0gRSF^^h_&^ z8%0Zluk{L(+|g^eRXn%)xF*HVIJ^SF$0=&3K>b|K7l*fk!wevz{FlL3MHW+lT&{W6 zc-AJ*vdA*kHCcVtDfe8nO^uG(p}y*ONFk-(RSN@M+LlR<*)j!A|`Z6~Jvd^g?WklQd;sZ~3VH|kHt0Is|`UrW5Mq%p&Qq*U7g8QAe z?kAmLtbbK;zzxxhLJfa_8K6f3io&p`fk_Q06fa3l={2aGDxVMPr?;ppUsp>QIl zVW6?C0@7>X7l?Q7BFE$S<9KKM%u4fW@AkA>Qw5PP0?45O(ExIoKvY0}zBu;r#qo9@ zBaVU1K8Nl3VlKg>j-s$Aw&in42cG*|@a-^eR@8Vv6%CGnk4JT6Q3cPi$>8aXqjQe( zIa1(>aj?bAAUcOAha6If4CGMED~GM{@mc)8&%#>tX5Y96U$c!uL%Q z0zn8QnKT#Fg6N0Dr4&Mt5M@bX?{|Yli4$*@9PQyAYzKI@^^?S|d_fmNNGcK1bA(i0 z?D8e<*>w*XEf7yIcz?pKA@_5>yjI6mG5hm+@f)u9<+;vD57i;5uIg;^E#$+x-_Z<9 z$iLPwpKDaXBUR(!ZAKfo)c}a7`orMXQ;WQ++|GM z2*>Q1ZNoblyA*JRdq0EFKnIth3MfE&b%9jp~ zM|5(07E%90l2X(Uvz7UhBtpKyX@mm9g?#@2s0Od!i?C&x00000NkvXXu0mjfdV)vZ diff --git a/graphics/interface/pss_unk_83CF874.png b/graphics/interface/pss_unk_83CF874.png deleted file mode 100644 index bacf96c2ea8edc1159868b0e23e53bd574f24812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)q9TB8s3h9W#FkIuaCBpT-JWn4tj^&3@)z?|{#So34HF>ebXk;*M?fh&* zU&qWhG4xF*6un~eG)%{H=#16=9t+@*0Y{q>KCoi}M3ntV$fF{J=o7oXX5>RT)ZzM< z^0{pxh(U$V^Xh%boB6m0xNfblZ&!SL`MA}*Rr3=v@4~%g#9d6ycbDe%?K02vmglwg zae4hZkXQInkyY~(P8U8@L)FFgOxC-)E>7;_E9=sI#9?6Pz|Ae-OIZ5=(S}5G@#Xr( z`;s*j_EI2GNF?5CAGZ|BkwAH?>MI|k^b6yrA3*X9d=Jz)O=1&-(rkd@k59B4Z}JB0 z3jN3{s0%iL@`@{HrBhI$0|}wM=0 zq;T#N=QgK1r)!h%*jMD=W0m-AF0?XaISt*i*7pa*4iaUnU4TIV0000GU2zgYqM)G2N>@;vgoyY7 zh!mutxRWgS1v> zta*;Hg(uI!lLQYG0mY#BrXd9KIgoqAA^~Hyh96TA0@HI_hZr2kj3U-x0Tm6#feHw* z-jj?@mK#erM^u;yKz!o@@hQ-ca23xD|K|CHfk6r^$lph7atrg%mr?cZPk?&?xO>%r zv(USd0Yp^&HdskbU=~YQ=Tz&AUs$7a$Q4qzTgT>V<*#wNO_zG>DxVLv|Y= zx?(uEd{h6y{ZjQ3Zbe{`urPevdYQ-7d5g4w)vZlka~Z{-m^Xe07Vm(wNvgla*Djcu zxC2%reppd|v7){i+NGS34$ehUC$v(Rkep5oA>mcm)TJZzU~0IwZcXcrV#COaaKK_M zW*UhwZW?EMDF(LJ!H}FBIveJivG~PcfW3;;-z0SiDq99aA$MpJ0Wiv0udJ&ieH#Ms zEKWzzp~JC_tw%IEOff(NJX!_hAWG>H zpU&GlOX*?D)oeEVM)Udntf8}rgP$H#R=D3(l$jxaacro#;ICY~Gw%z^jd@K*DT7Fj zAYv#og)hmm&I?MlONw_>yUvq(o_!^y9fs0oSQoQSur7am z)T-Ro1oWQQ8q<&r>Q?J9;+G?i`_u)isjDwl{|Ebe+_mIB0ayFd&u+d6rYzn7)f<X}1LexcQCdG3a~RhJu>gmhV`tTTl50-g&Dj zvMkXN`->vN1nFK^TKw^VMSOef@J2n7*kXr6O9o00000NkvXXu0mjf&1ztw diff --git a/graphics/interface/pss_unk_83D0454.png b/graphics/interface/pss_unk_83D0454.png deleted file mode 100644 index 48156edeea99012bfbc8e953a6ff227b0abd717d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)j0006pNklyaT@8wSR_Y z_AwvgQ`twJ=W9iNh7#7t8a7S$L^9Ov6rnH4x7#fiih{xcItP-I>d@D1RaX>+og%<4 zQW@Cm>P8W0!y88u0#M-+quyktU~x>Wr?@@9j2#^IfkYT$(H&sI$>m-l1`SOFDX>ah z^wl7bE?-tSkb*mu-KquoJw=M>9dNIJ^K!=_IkF&mpAg_}r_qNNHInJMOhKy4Hb_L^ z&;0(cZiuPrqr4xYnZ3_CJa7MAIe>_oKMH-K8LSU`)F&J27L+X@8P_cwWg)F{hk?$C z*9v+MM1{z>&T&NnbwqhsB@#zutPJ&+;BVf>a2A?EEO-hzh$ZsK6_l+Byt>) z?ZP?I6R_sAcYsNowvCC8&;e@o2p1)71lFO@Ue}G{A2%D15W*-9WdHyG07*qoM6N<$ Ef}?jKlK=n! diff --git a/graphics/interface/pss_unk_83D0818.png b/graphics/interface/pss_unk_83D0818.png deleted file mode 100644 index 6e42fd5258b44efacc60351a0c8a7054ebd5468a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P) zO_I|v5QUoqKoM4~7|4F^$TC;R5s*9=kjw#a5<9XYTgcb>N0s_Y^AcLcBUTV9*B=8*?yCg#24TsLqxP%9E)*NS&F_D69VJR)2q3LuN&W^jPW3K3n!|%=74~+Gre-q3(R(jf`%(; zy$~YvM#OnO^%wh7BdMkO{Y{;*x_dXlE1>5~n5Jaj^NqUEvxA<-8N(Yuc!dqFSMhur zCaAd}Fb6~kv^MykyiqV=b(3;9XV~w+rW~aSH3b}>dP7^Va`f%Ze)M^ZH}a0qyinmG zD$0PnTGl+0n#I&e8Q{bKC$^Kru8=MeJ=5j9O~6e- z@;0r@+uX^EF&6@64!WH=mq;^o4S;rJ;+nPRM?DxP@%%D+9YeHbiOpM%qq!8%FXQOj zeg#C{5f8Ut*ngO(r;XwZJsB0WBZkpiAK`HuX*SX4apUk!f9UpCZsP~w_Ue0z-iHRS z!0<+c-hj~TI_^JQ8^MM8 Sk=x(^0000mjG3KLSSPHf04qbpE`Y&TVwR+X>~9jH3Q*IlTP zXzeUzKxyoOtuR>d1mQo&N!qk_YR>TK+W!6DbMC!9rXhmLqJqd^ASgj(=piUVl+(p= z8C@LTtYgG6Fk5$la=QLZU5(KpRr}t_)%829b2@!W&XgkMy6v%Uj&XZP#seBszXhmM z;1eTZ3@Zy*#7Z^fQNSZTK^1_#Ko&bhP=Fwf$WTROX$V9ofGjGb6a2qUkgt>ckm+ol z)FBn!Lx_QQ9dZzk{B3C)2+KxkQch9A6JN=Ez^cS^S%}p{| z=LWg$51VxC?ww=1_fl$qbOG(8nxr?vfvwvEd1&Qq#!J z0q_3&BJgl^j61yhL^S-v;3Fjqv525mLD5)#whr?7#7f$;v_7+ZO`PEpr zl28;!z5M(}x*i2d5>xMoWzDD~KB_?niDg-9#kyJ;B`mSXMC9wjD5QiX)|)l6SciIp zOI8ijtQXCDMAn))vZ^tAk zy%A$vIkthj_SH{FAW13&*@z5RmQEn1ieU@hmR&mebe|*>^s-j3b%37ZX;kEMpY)K1 z-}SiuQn_StV~1*09We17|!-_kPtc3fPZ;6VUu?(&)r1B?bTIt=*U0PhBqe?<^* zZF)dmKR6_hox2#aGf(c1I`uWbuk2S}$Gu(58~78ym+(7iu-`iSdF-bz{QQyMKKm^# j!(|603{DF2E2;YjsL?`7#cEtu00000NkvXXu0mjfL;-^e diff --git a/graphics/interface/pss_unk_83D1124.png b/graphics/interface/pss_unk_83D1124.png deleted file mode 100644 index fe7810abbb95ac0a379a1bef810ad058862dd661..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)9wBG&vjXfR@_0J&I@G&lqp5Qbi(*rVyj~yykX3EPg9EMVzF4n zv|6oVa$WZoot|FQx~!p#5d}hqj$z-h%38YQAdcfm(+<(i8#g2sAnQC|(yQxOB?!7j zjOqZ$2K>rb*tMSTAlCZGZ}2@@lI%#QL)1^}u$1f?;-4(J;rh*Z^^FnX;CDdj>qyb` zomS+&1eQ^t2n$6Q3>^Tf-9Ce8wa>$9^>_jhQT~^~EvgiowqcsO4x_`%Xg>X7qr=nc z5gmF)m!_q2zpm&+eGm`&aT8kUP;3ibEgAK*(lz~pd+HKwF+5PdvF}lT>3X0{o&iJ; z7$?UQ_#fs~?if79AahcKlo9m~>3Z~;-Zf9()K$Z6e}}yLUqC8>K$!kx({UKF1}87CMQQr*I(5fp6{|_7lT?qR&qhe%ND3@A8tw=c^fcS5p_4XD$i# z=?u=|14)w?>1aMj-qqW=Ab0vklDov-@*H{3MP*w0vAx{zW#HoyE1__&@H%<#(ftR3 Wb14i?fo|~t0000`e8KNmeelw{}?50_>| zlSZt0(ksiJ)UmSYO_Z(P;(CK(7hNOPJYGx%W!)3QQ2*hbw|Hkn@7*vScC>p&9qB#r z>NQY*1kRsN*&U287ZSe!C>XmP=oLaMxbhVN6m?a;g!Z1!|Sc0GTPixTqL>~nYG{k*8=9+m3EXnSi2-uoccMk;FyKLd_h<(YQTKzE2#OknG|(>9qG$)1++Zd}N-m~OfSPy6CYdDRPhpO1`nPa#P1hbrmq`(ArH z^xEzzKy;6BGylT=#d+Fg7EcV&STu~U$&YZTjNKLC9G@J%<|p23zVn9o0DL;yzUM)& z!^#`r|M3I&*_Q+G_%Pi_Y z`?zJG8VXQ5$cmpt*lG$DqvVA=#M%L+So3H}RRu^XHvF`ir?$9{xvuLv`i3~7>vDCu z>n3zh2x`CJ@Mb`54=@xLdWScR2jHy$h-moD;8xKHa>8mZc1<{hDpYrhpnDLKv|;e5 z3#WCctN8Gg+CxgGDomB3lM3&Y66yu~SxWcZV+-1pmYkm%yGieZ_p5bZlI<~Co3WeH zI-u0r@w&%!v+n$duC`p~#r*Cgv8t_3>h2MdPP>J5gRVDxWJmM!7e|EBE#-$cB5R0G z5ctFp=K#?w#@V3*|AAi(g~z)s;5;1TIcd^cM1Vtt)MDLeZrfj2ce?>x2RyaD?|IVW z@Zt=-eDRar@jL9bIBn)vXsVyTwUZamO6TDxZ5fTnWp3&G)eTPlI`ZtO1^yHL{!gxR zFUD>HOfUufM|m$c`(B)!)LHhD5}(N$P@nyPA*Y=r<0?r%xUYJ?>{wAnX{5Y;@`$Mq pgm4xExaaVL9h|0`bGBnHe*u<6GX2H=57Ynv002ovPDHLkV1kfJAQS)q diff --git a/graphics/interface/pss_unk_83D1C8C.png b/graphics/interface/pss_unk_83D1C8C.png deleted file mode 100644 index 5554f6a51de1ad0c45088355483408a32a836044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmV+@0@wYCP)ZjsYKAK$PocP9D*#OrdIQvMBi^_pTVD?Z@`L`%)r>e?Sp+E%Ge6p#l@Ew3d@VHd9d>x7MHT#09_vjRA zVy?*`Xd-aN3~1M&*zOLG*2=q`#1J#ofQKKTm<9VlPmz)RPOP2Kapz7f>@f(wo>GdG zpvoIpSQ>Pon7fufF?UGyv7&9(8tUV-|2EZP!k$-8M(+m!ByD_Mub&^T6)>NJ?VX6j zUc|eN2w1#1)|5l7JT?&l-s0yVpG9oC2sewE&)@p3oRooA0s^M@)EvUDL07xSoJigt zu&=^L+!#XiSk>By-%+b?{_j>sM~fP?`}$1Td)0^KT#4_zJ+E|-(Q5h(NeZ&n*Vgkk z-+^?RrPI78kSmDZKK+=oEXC=^ItzEn*k34Gr*xrpg2y4=jj~~_(#I|;#)re0000l&X6os#&f|5wBY^gsWGGT!Y|A97o-4QA~6LUA(p%Po^#uz+B-FR$_MXI`Waiq?b zlKum#?ycN&-m~Gwc~D=WPdB{7jeULYwd4q?iwt35LN6s1jj%`wuTC3ra3=ajv>@^8 z&a_@T_4J{7F+$daHbCmvB}tD+ByJH%{W_i|iA9e%P!GbQ6veINP`$XLfi4jnbp3r< zcXgfn)t~HLwt2q_civWBU0bP86vBZ|7erAcAv1+k6jPrrqOOt^x}U)9T`uzUK9@+g z$cQK`Gi#bZD3xahU-8=vPe0Fsl-W7(J7mU#Ao@=RcP+ga^e8*mxQtX=-$fx>$0vde z-4J=MpnIZh@6p$etS?Tw0#R%+xHxIcRUBW68lca%_bUR;x7IUIig-m_+3ynP)Q2wZ z4R0Nh?9rkL;YK2E?aC+iPjg@-rs(lfiOnt*@S0HSfke}ypS88EdO=6Lq&Hv=DY}QO z9O8&WeDnd78K0Qrh~wD|Q3sE_0r%y%-;v$jZzcb`-CFA%ytFOCqR<6&M5xSQP#1c2 zm9Ywx8u)bs47=jk59|WyXs@m^_QsArU1iM~JNk5H8M(U-tIDU_Z?0nD_5AgWPYeGg zh1b0G9azc*ip+3!UaI){dPlK z*KNZaK4p0EZ$Ceifv7KP$iYfVIU=Rh#6!%N%^x$$pdB7=vR*z$%$Hy=O)-vf%b2yk zPhh<gXXAGY&F>O%+ zPYk!{d92vn1MMG6U{R4-e*l|pL*}Pxyj`szsvr*y00-miunb;wuLK}! zQ(vfmV-nUUhI@uBjn@rZl}N9G`b2$ zG($kHIo($b26&TGFJB#;7+lDjjaHF2Jn+y@+g9GS**wv&GBq zOZJ5fLcS;@M-r!T>hi9;f$U<4I#)wG(uU#FVdQ&MBb@0JJquJpcdz diff --git a/graphics/interface/pss_unk_83D2BEC.png b/graphics/interface/pss_unk_83D2BEC.png deleted file mode 100644 index 3a6e353079ee9d11e6f822ad9448b2ec721668c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5ZC`l|4*5+CMYQC|FfuX z_lmzg+j6#=q1ub#KOAhy`o9Fky?5^(P}AgFW_N%TV@Z%-FoVOh8)-nco~Mgrh)3ts zsfKxn4R~CaO3&EU_%bjqs_)Ipr4#2(*=QA#xjfTD)U{!oGefqK{62@9fBtbjjK6Mj z#bCD))4nKAACIeEmz<8c32jv~>sn%Z@(pXqviXhgCNORY`L>|bgnQe(+{r#m*WWG8 zopGV;siYDM`=8a%&o(D~k5?7&+dl7t0oN*XpVWoyZ4bZct$V#K>hK$ei+nbLj2oE! zw>@RdX@8txVWDy0$4|cvbq{BBPh@ztC;pv~1dq_=M+dj=<9Gj`^Ik%BPWKFFg&C^KY_~v;4uTA978ty2cbdxvBT#8rCxmnGD7aZY@jgTe~ HDWM4fJ}n`j diff --git a/graphics/pokemon_storage/box_scroll_arrow.png b/graphics/pokemon_storage/box_scroll_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..c56139ea115173ed0662c6d534b4d45402ed8b6b GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!VDzu-cxxDq*&4&eH|GXHuiJ>Nn{1`4FY^Z zT!HkIDQkj)qW=H?fA;_XsJ-u^mYfZ0UJ{g54HN{*-n;j0$&xKVHO0jsk+lq5!az~R zk|4ie28U-i(tsTH5>H=O_GcV2f`a0&XUy{i3W=AvMwA5SrA{CXFZnOzNo+i; z-Z4?|h}`Ce8LUUXe?PJN>57gIN-f*vJl{^(bNR+iDGOayn^n(#USAG0k-^i|&t;uc GLK6VC{$vUO literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/choose_box_menu_center.png b/graphics/pokemon_storage/choose_box_menu_center.png new file mode 100644 index 0000000000000000000000000000000000000000..81500fdf6e93dec9647a884fd2cfca79502eba58 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|ei2$Dv*Z)WVPnohNC@AXxv#4+P zioZSEa<-bG+Ka*UwQwR(jlQRgV~EG`WDjKq2@Wj|RR)O|j)p+i#awQpJz5f>4l9|O lTnjB39U=~DNU(Y^Fz6iIIN`G6@hG5H22WQ%mvv4FO#lLoDZl^# literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/choose_box_menu_corners.png b/graphics/pokemon_storage/choose_box_menu_corners.png new file mode 100644 index 0000000000000000000000000000000000000000..5600b0462ca7d162c3a21db8f7eed5de6847d4d8 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^QY`6?zK#qG8~eHcB(ehe5&=FT zuK$nzpE6}lP*BwWXHnno6@PoSRaKOb{ gK;(q`4b^{~g()?+ZRfNt02<5S>FVdQ&MBb@08D9A0RR91 literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/close_box_button.bin b/graphics/pokemon_storage/close_box_button.bin new file mode 100644 index 000000000..8b130a481 --- /dev/null +++ b/graphics/pokemon_storage/close_box_button.bin @@ -0,0 +1 @@ +LMNOpqrst\]^_€‚ƒ„uvwxyz{|}…†‡ˆ‰Š‹Œ \ No newline at end of file diff --git a/graphics/pokemon_storage/cursor.png b/graphics/pokemon_storage/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..d64dc3bd8b571722ac4c40a2e3c3aa4fa74896b4 GIT binary patch literal 489 zcmV(O5E1~000+sMObuGZ)S9NVRB^v zM@&RePDdbiWpW@hE;Mn4q~QPn0V+vEK~zY`?UgZZ#4rp5$sbt!fv8e$k}a86%Ozd; z%J@+!66Z+cf}}`*11{<`SYs`5u_F4_HJ$dQrY#qJjuIBd5+%|A3leSsEGPs3yk-H$ z^feH`Pr!V!3^w;If_3lFq+{&!o?JH-jjmP;7fK)>y{{Qi{Ql#1=;78K28J7!9GJx% z-vq|CS5L0%90NmwRW%M=FiMF7muN{uB+-G0h_#+?Yx+;j4-#_;lA;ZGx=P9^AS^9| z_x*J^+$<+XFjB>Evj+DifB|#uI9vq-uA44LP{o>!y_Sx8jJlcbmFLg@DBY`0u{1=d zl1k$d`{U2^!qR}3Adz;fPy&#g7vgp~ff+z76rN%39)Y_?K;k1kNyOdP1W5KRRSvP% f(;HK!d&|fh(ByWT!yjc200000NkvXXu0mjfKTgGJ literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/cursor_shadow.png b/graphics/pokemon_storage/cursor_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..7b2e218e5e5ea14d64b3b2a2596afef042f084da GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF7lTCBGH?k4MHx$i z{DK)Ap4~_Ta@b2eeO=j~amWZtam(aNp9Knum$*ih1m~xflqVLYGPwJ=0NtlhmRh7> ztY=c#y5u2HiJGU2V+coda)N^37xMd UVMEBfD?l9#p00i_>zopr02w_@WdHyG literal 0 HcmV?d00001 diff --git a/graphics/interface/box_tiles_pal2.pal b/graphics/pokemon_storage/interface.pal similarity index 100% rename from graphics/interface/box_tiles_pal2.pal rename to graphics/pokemon_storage/interface.pal diff --git a/graphics/interface/box_tiles_pal3.pal b/graphics/pokemon_storage/interface_no_display_mon.pal similarity index 100% rename from graphics/interface/box_tiles_pal3.pal rename to graphics/pokemon_storage/interface_no_display_mon.pal diff --git a/graphics/pokemon_storage/item_info_frame.png b/graphics/pokemon_storage/item_info_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5f52460ccded64db27413ffb89e82b86ca8aee GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^3P8-k!VDy{RzH{nqznRlLR^9L|NsA!l9H}oJqu(L z1eXuKodHy2;pyTSQZXm_1}{rfQ`6?gD?$Qi4TL!ydS)6gf6v6t;dCI!(eY%K2_uJ^ lib7JA`_JYD@<);T3K0RUUWDBS=6 literal 0 HcmV?d00001 diff --git a/graphics/interface/pss_unk_83CE5FC.bin b/graphics/pokemon_storage/menu.bin similarity index 100% rename from graphics/interface/pss_unk_83CE5FC.bin rename to graphics/pokemon_storage/menu.bin diff --git a/graphics/interface/pss_unk_83CE5DC.pal b/graphics/pokemon_storage/menu.pal similarity index 100% rename from graphics/interface/pss_unk_83CE5DC.pal rename to graphics/pokemon_storage/menu.pal diff --git a/graphics/interface/box_tiles.png b/graphics/pokemon_storage/menu.png similarity index 100% rename from graphics/interface/box_tiles.png rename to graphics/pokemon_storage/menu.png diff --git a/graphics/interface/pss_unk_83D2BCC.pal b/graphics/pokemon_storage/misc1.pal similarity index 100% rename from graphics/interface/pss_unk_83D2BCC.pal rename to graphics/pokemon_storage/misc1.pal diff --git a/graphics/pokemon_storage/misc2.pal b/graphics/pokemon_storage/misc2.pal new file mode 100644 index 000000000..40bc5d1cb --- /dev/null +++ b/graphics/pokemon_storage/misc2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +148 148 172 +82 82 90 +255 255 255 +205 255 255 +90 189 238 +90 164 205 +82 131 164 +82 106 123 +82 82 90 +0 0 0 +222 222 246 +164 164 180 +148 148 172 +115 115 123 +82 82 90 diff --git a/graphics/unknown/unknown_E9CAEC.bin b/graphics/pokemon_storage/party_menu.bin similarity index 100% rename from graphics/unknown/unknown_E9CAEC.bin rename to graphics/pokemon_storage/party_menu.bin diff --git a/graphics/interface/box_tiles_pal1.pal b/graphics/pokemon_storage/party_menu.pal similarity index 100% rename from graphics/interface/box_tiles_pal1.pal rename to graphics/pokemon_storage/party_menu.pal diff --git a/graphics/pokemon_storage/party_slot_empty.bin b/graphics/pokemon_storage/party_slot_empty.bin new file mode 100644 index 000000000..991c232f7 --- /dev/null +++ b/graphics/pokemon_storage/party_slot_empty.bin @@ -0,0 +1 @@ +CDDESTTUcdde \ No newline at end of file diff --git a/graphics/pokemon_storage/party_slot_filled.bin b/graphics/pokemon_storage/party_slot_filled.bin new file mode 100644 index 000000000..c0b93bf14 --- /dev/null +++ b/graphics/pokemon_storage/party_slot_filled.bin @@ -0,0 +1 @@ +@AABPQQR`aab \ No newline at end of file diff --git a/graphics/pokemon_storage/pkmn_data.bin b/graphics/pokemon_storage/pkmn_data.bin new file mode 100644 index 000000000..3336797aa --- /dev/null +++ b/graphics/pokemon_storage/pkmn_data.bin @@ -0,0 +1 @@ +!!!!!!!!!!!!!!!! \ No newline at end of file diff --git a/graphics/interface/pss_unk_83CE4D0.bin b/graphics/pokemon_storage/scrolling_bg.bin similarity index 100% rename from graphics/interface/pss_unk_83CE4D0.bin rename to graphics/pokemon_storage/scrolling_bg.bin diff --git a/graphics/pokemon_storage/scrolling_bg.png b/graphics/pokemon_storage/scrolling_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7215fdb40cdcafd1477c17fb9a57b5e5de249cd8 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1nuGG)#G|NnuE>b?IN zs{j9QZeAlH@&Dbk|Ie=ezjqcWjtnlxNtpxr`JOJ0Ar*5<&z}@LV8FrbaLRoh!-@j| zsZWf5wmk3Ku_Pk1pgcHKe`Vye)h28^!jl>s4`}4IOgMS(g|yEqcICI9rSuhn;5nOTR56@5F|+c|J-Ztq Or+B*hxvX{- zMhaEEoBA>UfcR0hpf(LKqbabV)Kdd2Icg}LVoLdisinHpGoh<4KVM!9D8?Th`g6i5coYx0V?+H zMG!SDFdompZrAmC<0z^herb+0u$BfskLv5A!%_WX0|AuXAa~D>Qs%O|Maf{H`WVGQ zZo5y;7V6yRzMtcMtCa!<#o;E+(PHsI3w4_L(U^xdUZK^%N*S|^;&Gt!ZAu$>=h6C( zTij>V_ghY8}5 zetH=;|7pO_0`P-&9cFp^^V!TmsIkfT>Y3|#+5$OcSzig@90-KKpr&Jz z_e|E(w;)e6&7lmqitn0yd5+^i7b*)LU9p4GJK%dDFj6m#@w?l}v&##>NCDPwHwY@Bz(@gk_E`H3S$>NFM!G`K>z2#F(Kp6| wJsjXM0Q$yA0l@JQ3hP@(8gPDXW~mDQ0UcB}p$QjWh5!Hn07*qoM6N<$f}MkvsN%OL^j{L2v+;`D16@ zRq(FFNX|O;FW&jSjGeB#Ce}t=2OJt905n2@F?pZT0;V5Q^fMxkK8FHcfV5bks}Bnz zaX#>k0E4G{x=U`LOAHAo8sPa9|IdSUeZBXz<06DyggPxC6fjfxUGPjTIQN<{agX(nQxMIflhZ91s`7vx7V{IGx5pg)AZ^) zb^42SjZqG)yoyg}z{??wyu~Gxk=q&Y2+J6i2+PFn9QcJH1YVp|;dTxfd3cKcA4v*8 c3#VP+FO<;NH!gcedH?_b07*qoM6N<$f{D5^X8-^I literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/wallpapers/cave/title.pal b/graphics/pokemon_storage/wallpapers/cave/title.pal new file mode 100644 index 000000000..f6e731395 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/cave/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +230 197 123 +213 180 98 +180 148 65 +148 115 32 +115 82 0 +0 0 0 +0 0 0 +139 90 115 +156 106 131 +115 65 90 +0 0 0 +230 230 230 +255 255 255 +90 90 131 +49 49 90 diff --git a/graphics/pokemon_storage/wallpapers/city/box.pal b/graphics/pokemon_storage/wallpapers/city/box.pal new file mode 100644 index 000000000..ba67b3414 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/city/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 246 +255 238 246 +230 213 222 +205 189 197 +164 148 156 +139 123 131 +0 0 0 +0 0 0 +180 164 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +156 123 82 +115 82 41 diff --git a/graphics/interface/pss_unk_83CF374.bin b/graphics/pokemon_storage/wallpapers/city/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CF374.bin rename to graphics/pokemon_storage/wallpapers/city/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/city/tiles.png b/graphics/pokemon_storage/wallpapers/city/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..f5684850afc67772d4f6be3f1b345fa7e8394edb GIT binary patch literal 484 zcmV(b~26vLLZlXOo@yo4*juyJW( z6WzG1HxS><8_G->Ab!c~6y^&vzsWp8y4VaY9JPGH#DU!*{ID-fxUjF|xMW{&xM1oy z{f{t~QG}y47c9<5APa|um~4mGK&LQ4#G~?nf}>yyT7@S4!ny}ibdrVjIh^CcD1`Z< zLrBwXp3hr_G^Y;%4O)dX4d|Q#b<9g9d^PUPj!-tJ&*2S(fkp^%&AfOi^;iFKS){XU zS%lBw`^T=dF>UgcK%mzoyH9TELMOy=d`IJW1tXm?VNY%x5Rzm?Dg5w}2}8p*XR2g-8c%AqjwI6lU7BJf?P zXe(U!2*%V1-#CARF}-WgbD?0I3PFx(m~8c`P#DND4YuQ`DpKvdj%kd0grUV&ci9d+ aZ~6yg=KBNylb>J!00005P)(owIx5<+yBv)jf$<>pp|1X^03SxN1~Kq#4=@@T!@#3*c_72+H20EWP#*6GPRXXp1JuS?qMQer zdtF&r8ooW`Nw3(A&vJ`do_cF7N|>wTCImpNoOl5!ce%Adrj!myf(lrg6Gtxfd7e9) z8u4ayegzm~ND6?=p_Mv(CM#)`_ZZ+fFOANTb-n@I#TJk!4DiP>z$^LG+BCCt(EwKF zVkTcpnar0YgaJs_pJtVSBqm;6W}PKni-FHpob{$xNpf@BjR-7uZT$@!}v5T)uzDz_sWwwW1;c;=|N2{!M@% zMsTSpmT_Tp8XtXIg2mmJW%T>*EaqiSW;jB+<``q00000 LNkvXXu0mjf1B*kF literal 0 HcmV?d00001 diff --git a/graphics/interface/pss_unk_83CFB60.pal b/graphics/pokemon_storage/wallpapers/crag/title.pal similarity index 52% rename from graphics/interface/pss_unk_83CFB60.pal rename to graphics/pokemon_storage/wallpapers/crag/title.pal index 292b6db72..c4f85c644 100644 --- a/graphics/interface/pss_unk_83CFB60.pal +++ b/graphics/pokemon_storage/wallpapers/crag/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 222 222 222 189 189 189 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 213 189 82 172 148 41 -255 255 255 -222 222 222 -189 189 189 -156 156 156 -123 123 123 -90 90 90 -57 57 57 -41 41 41 -222 189 205 -197 164 180 -172 139 156 -246 213 230 -238 238 238 -255 255 255 -213 189 82 -172 148 41 diff --git a/graphics/pokemon_storage/wallpapers/desert/box.pal b/graphics/pokemon_storage/wallpapers/desert/box.pal new file mode 100644 index 000000000..c5ca027d2 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/desert/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 238 189 +255 213 164 +230 189 139 +205 164 115 +180 139 90 +156 115 65 +131 90 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +164 139 82 +123 98 41 diff --git a/graphics/interface/pss_unk_83CF750.bin b/graphics/pokemon_storage/wallpapers/desert/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CF750.bin rename to graphics/pokemon_storage/wallpapers/desert/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/desert/tiles.png b/graphics/pokemon_storage/wallpapers/desert/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..373749994149e4b1d9cb25f9c1ee63040ceb3024 GIT binary patch literal 657 zcmV;C0&e|@P)PRK_V^~8fz6742>hFBbCq#7)I(SeH8SlfP&I3 z9p@%>)DW04DGa1wGAV#J!0g_g;>+nz{LOey_Wtgh`_{T;Y!m(I&}P80LkbvoXfvQ^ z%M?Z)$pGrv8yQh`r0e*jllRnfWkvjnz?U6T3-Fg59vH2GtH9q^75>DC*gv4X~4HnV9S0Q2~3IQfgwZ zherimXyBE84HzfgSy_M`bMaCGJqy^fV=jK_yLo5<*ABkuv8zapz^O+-0D+3G)>^Xw zXVCyns?R=55icInCPOH7pg00000NkvXXu0mjfnA$5O literal 0 HcmV?d00001 diff --git a/graphics/interface/pss_unk_83CF424.pal b/graphics/pokemon_storage/wallpapers/desert/title.pal similarity index 55% rename from graphics/interface/pss_unk_83CF424.pal rename to graphics/pokemon_storage/wallpapers/desert/title.pal index a3a5cb4ea..4cf04f8ae 100644 --- a/graphics/interface/pss_unk_83CF424.pal +++ b/graphics/pokemon_storage/wallpapers/desert/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 255 255 139 205 189 131 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 164 139 82 123 98 41 -255 255 255 -255 238 189 -255 213 164 -230 189 139 -205 164 115 -180 139 90 -156 115 65 -131 90 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -164 139 82 -123 98 41 diff --git a/graphics/pokemon_storage/wallpapers/forest/box.pal b/graphics/pokemon_storage/wallpapers/forest/box.pal new file mode 100644 index 000000000..946becabb --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/forest/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +230 255 172 +205 255 148 +180 230 123 +156 205 98 +131 180 74 +106 156 49 +82 131 24 +0 0 0 +205 213 172 +172 180 139 +0 0 0 +0 0 0 +0 0 0 +164 139 82 +123 98 41 diff --git a/graphics/interface/pss_unk_83CF050.bin b/graphics/pokemon_storage/wallpapers/forest/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CF050.bin rename to graphics/pokemon_storage/wallpapers/forest/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/forest/tiles.png b/graphics/pokemon_storage/wallpapers/forest/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..1c00feb8200dbf24075bbf466d23c3ab6daa4375 GIT binary patch literal 743 zcmV?P)KGlg3G!p5Ki$|C3iuAP_%=VN;ZY2-6VHGMZ%^4(i*Ls!YF{m za2ISUtcnxVwXP}*>Zg%3+y$$IQQ?^}c-*RR+S-dyTJC~T!lf}>Iux!7tz8eI#Bmo~ zDtg$S#2IVq!a6(+TyhtBXwiMv#l5Yq3bap$pNEpWpt_=#e?`stDxGuc<@@PmkQpvS zEziKWmBi@*0Z33GYWdd$d@sh+cX^&qCwV^NLe%mMe96asnx~BV^e$@oHw66I{NvQ} z3=|s?wLBg2cneU=6R<5T>})m|O+Q|*bpaG9ulcg*KM5!e*-^Y=DjanL2`-w8pK=z>3i9x&Z*UJab+G6dZB zFO3R#;y4VfT^beey9C}c@Tw5v1w* zDr$DSJ^;|#V!2EbSW637h+6>B0oV)NSv5;^n)CA(aJMKIheMRb&EmKP+>^L^b%lD{ ZfPba2`O6JDf=B=W002ovPDHLkV1gAYQtJQ! literal 0 HcmV?d00001 diff --git a/graphics/interface/pss_unk_83CEC40.pal b/graphics/pokemon_storage/wallpapers/forest/title.pal similarity index 54% rename from graphics/interface/pss_unk_83CEC40.pal rename to graphics/pokemon_storage/wallpapers/forest/title.pal index d2663e710..1b4166087 100644 --- a/graphics/interface/pss_unk_83CEC40.pal +++ b/graphics/pokemon_storage/wallpapers/forest/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 246 255 230 255 255 213 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 164 139 82 123 98 41 -255 255 255 -230 255 172 -205 255 148 -180 230 123 -156 205 98 -131 180 74 -106 156 49 -82 131 24 -0 0 0 -205 213 172 -172 180 139 -0 0 0 -0 0 0 -0 0 0 -164 139 82 -123 98 41 diff --git a/graphics/pokemon_storage/wallpapers/pokecenter/box.pal b/graphics/pokemon_storage/wallpapers/pokecenter/box.pal new file mode 100644 index 000000000..60b96bbd9 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/pokecenter/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 115 +41 82 82 +65 115 115 +115 164 156 +90 131 82 +131 172 123 +172 213 172 +189 230 197 +213 255 222 +255 164 139 +213 213 230 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +255 255 255 diff --git a/graphics/interface/pss_unk_83D22B8.bin b/graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D22B8.bin rename to graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/pokecenter/tiles.png b/graphics/pokemon_storage/wallpapers/pokecenter/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..e82b88e077b7e2f15331271d32fbbbbe47e57eb6 GIT binary patch literal 707 zcmV;!0zCbRP)<%%Ydp6VB+H0*l zKq`uJm=^`$ivXlvbxm&_0ayeD;GN|+O~9Pb&k1B83kI7kZnp@A?hy3*R z8vJP?@X{)P83tBr{TASdF^lS#lT8q?8iCSBkLO6#76eoo0^svEEN`)3hbscg$RM&H z;PHYei#O4;_NtCWD#Zl_`X6VR(b-IQp%ztJ99U>@c~{D1cmU>+1O8$yG*m*Mjtw`HL24aK?q{xV`};UoMRK9x6CMd1obNUyS({Dky+B zJ0QA*%?`jht~%J*fz)tlKaU;gJ{t~)t%T%&H`Mp54hM+<1p_l09JzJx;AL$kjdJ1} zM+VEy4k*3^QfNJH7e9T}_ElsMEZqDm3ag^?sQrbI4X|^0a2=98+7IkiJ$gqA*&|d* zYX=eF@~6S!O_ZqNczhEBWiUVsbhsUlC$v0xPl6CfG&r&i5t!Ug{AO9N!|y~bPnV}E zeK8_!N>eSTQv?RvfG27=o!+Rl|AB!`;xyBI5c(p``|rE7Fmg$SKaY<2E*gM-&En5} z>26w>HIQ`!FghNRgDgx3w4cfOs|XlEU>p5rcn`AclBf0(GT+Tmd$1K}LbwaxVi-ZVJ+ax(}0YV7&5`+wX8GJWrKCj?TlPW zAyvF44}cAughe$V?9sGbSc?G3W!rZfM!=emaxUx>0b8gr^?LV|F#u-a)Ix^fK6w+{8;@UN!;p(phtCt7oWRl%AiFd^4imw#jHn-GHf0^tz-+p&rw*dF zw%wHnzG?W_+5J3^0XtmVc`N`{$!7LNlVm{|av8NIb+HD} zmp)+KeFF7JKw<8?SQ14`Btv)yAYJ5d7qHyvpFwyhvh(XAiOjk@Tq}&0zPzS95w+ElnFm-;5Yz!VVSjgTyF!Qy>nO6MgT{ROkWWQ?{ z%1i@LAYI0j05IPTuv*Ynz8#pWbwEVGPZywQ%4rH{SHXQ1e_n$ccf4BMa{vGU07*qo IM6N<$f_Z!o&;S4c literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/wallpapers/river/title.pal b/graphics/pokemon_storage/wallpapers/river/title.pal new file mode 100644 index 000000000..9fcc4cbca --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/river/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +238 255 255 +205 255 255 +164 255 255 +131 222 222 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 180 0 +148 213 24 +180 246 57 +230 230 230 +255 255 255 +180 148 106 +139 106 65 diff --git a/graphics/pokemon_storage/wallpapers/savanna/box.pal b/graphics/pokemon_storage/wallpapers/savanna/box.pal new file mode 100644 index 000000000..d80816c35 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/savanna/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 131 +222 222 98 +189 189 65 +156 156 32 +123 123 0 +90 90 0 +57 57 0 +189 189 65 +131 180 57 +115 164 41 +205 205 82 +238 238 238 +255 255 255 +189 156 82 +148 115 41 diff --git a/graphics/interface/pss_unk_83CFA94.bin b/graphics/pokemon_storage/wallpapers/savanna/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CFA94.bin rename to graphics/pokemon_storage/wallpapers/savanna/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/savanna/tiles.png b/graphics/pokemon_storage/wallpapers/savanna/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..ec1e4e8fdf793730847b56cf8c6fa2dcb8411b1a GIT binary patch literal 529 zcmV+s0`C2ZP)RX};RO&D zPXQH3sQj6j2on+$!RI?SP7@o!r@FrQezE;s;xN{v{LWVjf&i~8dMN>^2H>L(%uGEM zb)au*4}jZ_Rt?zy4Y1CzgQ@@-0McsUJH%YczW`lS6F{5YLUn3l^`U~uGuKA@P;NdHpD^6sKRm77>1DH!>F5-O7%7}F~ z0eGL;L_lE`0xbtH0l+12jrNDKr6a09Iy#^mtIj!}hc^U}H~NPfU=hwvC9ss|jEbYY z^Q0_S1b{q7%vykF0AAb7ZtzMAHmEq5OzQ T2}0n)00000NkvXXu0mjfemdb? literal 0 HcmV?d00001 diff --git a/graphics/interface/pss_unk_83CF834.pal b/graphics/pokemon_storage/wallpapers/savanna/title.pal similarity index 52% rename from graphics/interface/pss_unk_83CF834.pal rename to graphics/pokemon_storage/wallpapers/savanna/title.pal index a7789ddfe..1c1742cc2 100644 --- a/graphics/interface/pss_unk_83CF834.pal +++ b/graphics/pokemon_storage/wallpapers/savanna/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 222 222 222 189 189 189 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 189 156 82 148 115 41 -255 255 255 -255 255 131 -222 222 98 -189 189 65 -156 156 32 -123 123 0 -90 90 0 -57 57 0 -189 189 65 -131 180 57 -115 164 41 -205 205 82 -238 238 238 -255 255 255 -189 156 82 -148 115 41 diff --git a/graphics/interface/pss_unk_83D10E4.pal b/graphics/pokemon_storage/wallpapers/seafloor/box.pal similarity index 52% rename from graphics/interface/pss_unk_83D10E4.pal rename to graphics/pokemon_storage/wallpapers/seafloor/box.pal index b91fdd173..43b2eecab 100644 --- a/graphics/interface/pss_unk_83D10E4.pal +++ b/graphics/pokemon_storage/wallpapers/seafloor/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -131 180 255 -98 148 222 -65 115 189 -32 82 156 -0 24 98 -0 0 0 -0 0 0 -139 90 115 -156 106 131 -115 65 90 -0 0 0 -230 230 230 -255 255 255 -148 180 41 -106 139 0 +16 255 255 255 164 213 255 131 180 255 diff --git a/graphics/interface/pss_unk_83D13D8.bin b/graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D13D8.bin rename to graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/seafloor/tiles.png b/graphics/pokemon_storage/wallpapers/seafloor/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..192f7126c0d682d6c6cd12996588a613d3b4a6ee GIT binary patch literal 659 zcmV;E0&M+>P)@-8iSVEAj@ktL5m;@4_=pqtHUZ7)!poQ$QE)08a z5CnN2kNG!ssxxJca>pZOQI@NGGC_m<@p#`!q!91XVyzzAfM*8o*6F@rK+5Rjsy1W! z)dPcG0}v(ON}#{n2*?JY!>R&{xx_8HRefUF{|rd*M5kMm2M)`TP8+aPkK}TIXgnTA zb#0>@&_5Ushjy@6gFGxataK|o;IzQM}nK|o;ofq*AI##;pgp{Z9IWMHQeu=}!<16HrRu6@mk zae)6*4x)@PN^7I3cfht`u}y=sN*P7H1NOdK8MbLsg>Y)9cfel;F8EW=FnE>?4D}AE z+MG*cH%KW3m%~QY=KKZsPPN1&%Nzom7(pq_k{+cS0Wv{3QZJle9HAd8SU~AmB4bk5 z0rIQ#+1X^mB()GgzvlRKI{Y!g+03>OK)?EQmglpdxHw6v1pxU~`XXWDr|!|iX*P{3tQYMXTJ~P z4T6&9ues*{Ybst4NHGj#p>t{h9AK!p+wzqMDJDr$v))`#96&Ey7o`{k3_&=n=JzhJ zQ~-hR)o}pD0Y+wi;sCFxb3k42{08WU*{Gt9UHcJaRq*4Q18jk#>7aOX1=^tQ5YFii tse2C`XaTLwa{_zwoWKqi2mg)#0dF89`@BX?eXIZg002ovPDHLkV1i%Fjm-c6 literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/wallpapers/simple/title.pal b/graphics/pokemon_storage/wallpapers/simple/title.pal new file mode 100644 index 000000000..9b4ffb97f --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/simple/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 156 213 +82 65 115 +106 90 139 +131 115 164 +172 172 255 +189 189 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +255 255 255 diff --git a/graphics/interface/pss_unk_83D1874.pal b/graphics/pokemon_storage/wallpapers/sky/box.pal similarity index 51% rename from graphics/interface/pss_unk_83D1874.pal rename to graphics/pokemon_storage/wallpapers/sky/box.pal index a529046e5..3d722ed6d 100644 --- a/graphics/interface/pss_unk_83D1874.pal +++ b/graphics/pokemon_storage/wallpapers/sky/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -238 255 255 -205 255 255 -164 255 255 -123 213 246 -90 180 213 -57 148 180 -24 115 148 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -230 230 230 -255 255 255 -205 139 41 -164 98 0 +16 255 255 255 238 255 255 205 255 255 diff --git a/graphics/interface/pss_unk_83D1B4C.bin b/graphics/pokemon_storage/wallpapers/sky/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D1B4C.bin rename to graphics/pokemon_storage/wallpapers/sky/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/sky/tiles.png b/graphics/pokemon_storage/wallpapers/sky/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..2b28d3897a03cb10b4b4ec9e65f7b5fd3f97e97c GIT binary patch literal 614 zcmV-s0-61ZP)L5d?g+dL~#l#lWtmJ}?>pW+(=_!pxME;AtExj}`%6RU56M z0*Scj5)}X#DU7j<3iHIu!WziAj5@=1;bL&ba2=W9N8|Fa+oS!!UM;Mo2ReV)!ZhHG zn7h3QqXEDgN4p3dG=>KQ;0$T~KtOYN5YRIHLcrT0>u4uH+td#&3NZEpe6A?5K!4=H zlrBC?E#N+?MO3TY0vy}67Ms;BRKTf>oK$SOeVkVgc(-Fs+TQNRG_Nesw7E%L1e#X@ zjG8t#-}MpN1n%aw%_;&H;SV5|maC$%AnYYh>_W-)%nLsdK`wwce&EE;CO-h7irwSU zpn3q%V^hEnETi0ah1q0J)B^Mv`+&Z0zvhm90VC~3-z!L)^#A|>07*qoM6N<$f=Pc5 A2mk;8 literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/wallpapers/sky/title.pal b/graphics/pokemon_storage/wallpapers/sky/title.pal new file mode 100644 index 000000000..951f59ecf --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/sky/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +238 255 255 +205 255 255 +164 255 255 +123 213 246 +90 180 213 +57 148 180 +24 115 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 230 230 +255 255 255 +205 139 41 +164 98 0 diff --git a/graphics/pokemon_storage/wallpapers/snow/box.pal b/graphics/pokemon_storage/wallpapers/snow/box.pal new file mode 100644 index 000000000..01e46d027 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/snow/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +230 230 230 +205 205 205 +139 148 189 +106 115 156 +74 82 123 +41 49 90 +8 16 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +238 238 238 +255 255 255 +213 131 139 +172 90 98 diff --git a/graphics/interface/pss_unk_83D070C.bin b/graphics/pokemon_storage/wallpapers/snow/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D070C.bin rename to graphics/pokemon_storage/wallpapers/snow/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/snow/tiles.png b/graphics/pokemon_storage/wallpapers/snow/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..00225d6fccfe16a45cd4406228ea4400bc7fa30b GIT binary patch literal 607 zcmV-l0-*hgP)d-QG=i$TLz=@n62(s6j`(d88hZH9ujxECY?Gp zotiP~-O-Y$fAP{h*cL_pNbo%$nIubky01i=(4OeA1*!$$&k*3Tel$a1JJweP?n>1x z@a+&Vv%=?~IbdU|Vy!89Nvf%k(^r5st(mA=rxV~b2oRYtMQDMt(wEyqbXp&lUVx9S93CPsD`ZVNPfp^hG(mUpWC=g#H z6XOpG{0wv6OM7bUMF1awkF$VYVEfF!EXDBT3tiy2ZtUfBqYZi5#aK6ki!A~^?2`&M z?F0^ivl~+#Y+4oI0QePv+fepW#;l(Rh;8n+HeF6~4;;ldcYnhcrD!`~U~{*fx>y1R t^*5*g0jM8_Wx#GMS_Z(*CcNP${{e@&%H4*_sF(l%002ovPDHLkV1kQT49oxk literal 0 HcmV?d00001 diff --git a/graphics/interface/pss_unk_83D0414.pal b/graphics/pokemon_storage/wallpapers/snow/title.pal similarity index 51% rename from graphics/interface/pss_unk_83D0414.pal rename to graphics/pokemon_storage/wallpapers/snow/title.pal index 64a768cb1..437ccb934 100644 --- a/graphics/interface/pss_unk_83D0414.pal +++ b/graphics/pokemon_storage/wallpapers/snow/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 230 230 230 205 205 205 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 213 131 139 172 90 98 -255 255 255 -230 230 230 -205 205 205 -139 148 189 -106 115 156 -74 82 123 -41 49 90 -8 16 57 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -238 238 238 -255 255 255 -213 131 139 -172 90 98 diff --git a/graphics/interface/pss_unk_83D1C2C.pal b/graphics/pokemon_storage/wallpapers/stars/box.pal similarity index 51% rename from graphics/interface/pss_unk_83D1C2C.pal rename to graphics/pokemon_storage/wallpapers/stars/box.pal index 0d9a33ee1..fc4215468 100644 --- a/graphics/interface/pss_unk_83D1C2C.pal +++ b/graphics/pokemon_storage/wallpapers/stars/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 115 -106 8 115 -156 41 148 -205 74 180 -74 106 156 -98 123 205 -123 139 255 -238 238 57 -213 156 123 -156 230 82 -180 164 131 -213 106 189 -156 115 197 -139 180 164 -230 213 213 -255 255 255 +16 255 255 115 106 8 115 156 41 148 diff --git a/graphics/interface/pss_unk_83D1EC4.bin b/graphics/pokemon_storage/wallpapers/stars/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D1EC4.bin rename to graphics/pokemon_storage/wallpapers/stars/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/stars/tiles.png b/graphics/pokemon_storage/wallpapers/stars/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..51c9f86749d30f7428ddba365af20170a7c63184 GIT binary patch literal 571 zcmV-B0>u4^P){0~s8Dz!KT=RlU{qf*cW z=YV$E%mVCO>vN7O1rX*rBmlUcw1QcKZg6KzK%|2iLnqvoPJ`LYfzUM=;r3W;TL6H! z9B4@|wI@yp& z3b2sZm)Oumz`6+F9T3ie?e^{>P19e1N%#N|TT5jG^mG~m(?;bRR-6Ncb`pg$;Rmplp89hMDQ%LA+(lnkGt0B^4&jJmRR=o`k`1JYA#Z#=^!^p`0o zxIKUb+}>dDDJNC+DnDfhCpMA#voSA7IIRP|XvthZC$Bk3&zwSyc!-S7rl=F)6av&% zv%jKr)q7!PBEZ6*^jt5xWJ=5;b0qz4u-(qh{;{*7~w-GRW`31<{ zaR?R^77w76?Bnmi@I)9Y14}qW?1}{Se1Ou9Ol(ZDk3hRT#5aA3f1X-w7pMRL002ov JPDHLkV1k2o`vU*~ literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/wallpapers/stars/title.pal b/graphics/pokemon_storage/wallpapers/stars/title.pal new file mode 100644 index 000000000..e7b45e524 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/stars/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 115 +106 8 115 +156 41 148 +205 74 180 +74 106 156 +98 123 205 +123 139 255 +238 238 57 +213 156 123 +156 230 82 +180 164 131 +213 106 189 +156 115 197 +139 180 164 +230 213 213 +255 255 255 diff --git a/graphics/interface/pss_unk_83D239C.pal b/graphics/pokemon_storage/wallpapers/tiles/box.pal similarity index 52% rename from graphics/interface/pss_unk_83D239C.pal rename to graphics/pokemon_storage/wallpapers/tiles/box.pal index 07d069629..9ff5c0789 100644 --- a/graphics/interface/pss_unk_83D239C.pal +++ b/graphics/pokemon_storage/wallpapers/tiles/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 115 -156 90 41 -205 106 8 -230 156 8 -0 0 255 -0 0 255 -0 0 255 -164 156 139 -213 205 172 -0 0 255 -131 131 131 -164 164 164 -180 180 180 -197 197 197 -213 213 213 -255 255 255 +16 255 255 115 156 90 41 205 106 8 diff --git a/graphics/interface/pss_unk_83D256C.bin b/graphics/pokemon_storage/wallpapers/tiles/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D256C.bin rename to graphics/pokemon_storage/wallpapers/tiles/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/tiles/tiles.png b/graphics/pokemon_storage/wallpapers/tiles/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3443a0a9c22b0ea697ae6ce45d5d41b17293fc GIT binary patch literal 444 zcmV;t0YmF#!loJvu8#D(dX_%~LO*N$$C zO9@=p9Dt^2wzXtKH_bbP`5<`Scz|@^@g;!elLwWe$TsHHwD6Nt4v#Va)%3xvKvHZI z08ME@RkUCd05>Io{L(+aWpLvF>btB1<1CfXoHGE6S=xcK@OASjE=hqX+-6Qoz4rO$poN@!AETRs5s*5Ksz8Ps1OQF>ePm m07j@#TB`@Yb`-Goz~gVv!Hgu{B88m*00000x$iEP)Y%0xe z5OCEAq)85HcF}AB?z8Ud;R&enDFdHIqhn*vMy-xWhv|@7Jo5m>D|k6t5f9B*_y&f7 z$trNDbsB&P0RUiV`M7HP0lZa!2 zS&17H0BVfqI?;n@`;ljrk=K+ACoWRSu*A|tNTo%|z-Lx)Ch>{@!YS z<_!Z)rxY--*9W|7`j5Ws#EADW8$Tr4C?^Xr4Zy^OgPRt>8p0f6y(9S{`A(N$d>>{<#ki5T9F+0;5L;j{c4FXKxDn?OaQnGPfcDC~ih!REcp<<)_%(66JpYIA9S2=%aRu z*aDZcHa>mr@+?;92?D;9d`M*7*iaduu8~hC1HYi=tBk1Hw!L|e^ijJC(ibhS+R$7W z3oXDkYkAluL0`&kq(}b+V6Q!LUVG%c_O+<{EBpm5a$w3d=7}Z%0000#u$$|!0gvnXN5|VG zZ!flYY<~I1v87Lr>F-;aeP;&bK~{azlGJ^!L8 zOGAS`!;2TM8IsmoM#ve~*E{Cjmy8v-{87{)HP~*?w!`;U^eQv`zOthm=tKrjS3j3^ HP6boxOption != OPTION_MOVE_ITEMS) LoadPalette(sScrollingBg_Pal, 0x30, sizeof(sScrollingBg_Pal)); else diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c index 11eccef85..c6b45194a 100644 --- a/src/pokemon_storage_system_4.c +++ b/src/pokemon_storage_system_4.c @@ -76,74 +76,122 @@ static const union AffineAnimCmd *const sAffineAnims_ReleaseMon[] = { [RELEASE_ANIM_COME_BACK] = sAffineAnim_ReleaseMon_ComeBack, }; -static const u16 sWallpaperPalettes_Forest[] = INCBIN_U16("graphics/interface/pss_unk_83CEC40.gbapal"); -static const u32 sWallpaperTiles_Forest[] = INCBIN_U32("graphics/interface/pss_unk_83CEC80.4bpp.lz"); -static const u32 sWallpaperTilemap_Forest[] = INCBIN_U32("graphics/interface/pss_unk_83CF050.bin.lz"); +static const u16 sWallpaperPalettes_Forest[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/forest/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/forest/box.gbapal"), +}; +static const u32 sWallpaperTiles_Forest[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/forest/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Forest[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/forest/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_City[] = INCBIN_U16("graphics/interface/pss_unk_83CF12C.gbapal"); -static const u32 sWallpaperTiles_City[] = INCBIN_U32("graphics/interface/pss_unk_83CF16C.4bpp.lz"); -static const u32 sWallpaperTilemap_City[] = INCBIN_U32("graphics/interface/pss_unk_83CF374.bin.lz"); +static const u16 sWallpaperPalettes_City[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/city/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/city/box.gbapal"), +}; +static const u32 sWallpaperTiles_City[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/city/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_City[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/city/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Desert[] = INCBIN_U16("graphics/interface/pss_unk_83CF424.gbapal"); -static const u32 sWallpaperTiles_Desert[] = INCBIN_U32("graphics/interface/pss_unk_83CF464.4bpp.lz"); -static const u32 sWallpaperTilemap_Desert[] = INCBIN_U32("graphics/interface/pss_unk_83CF750.bin.lz"); +static const u16 sWallpaperPalettes_Desert[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/desert/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/desert/box.gbapal"), +}; +static const u32 sWallpaperTiles_Desert[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/desert/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Desert[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/desert/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Savanna[] = INCBIN_U16("graphics/interface/pss_unk_83CF834.gbapal"); -static const u32 sWallpaperTiles_Savanna[] = INCBIN_U32("graphics/interface/pss_unk_83CF874.4bpp.lz"); -static const u32 sWallpaperTilemap_Savanna[] = INCBIN_U32("graphics/interface/pss_unk_83CFA94.bin.lz"); +static const u16 sWallpaperPalettes_Savanna[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/savanna/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/savanna/box.gbapal"), +}; +static const u32 sWallpaperTiles_Savanna[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/savanna/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Savanna[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/savanna/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Crag[] = INCBIN_U16("graphics/interface/pss_unk_83CFB60.gbapal"); -static const u32 sWallpaperTiles_Crag[] = INCBIN_U32("graphics/interface/pss_unk_83CFBA0.4bpp.lz"); -static const u32 sWallpaperTilemap_Crag[] = INCBIN_U32("graphics/interface/pss_unk_83CFEF0.bin.lz"); +static const u16 sWallpaperPalettes_Crag[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/crag/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/crag/box.gbapal"), +}; +static const u32 sWallpaperTiles_Crag[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/crag/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Crag[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/crag/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Volcano[] = INCBIN_U16("graphics/interface/pss_unk_83CFFC8.gbapal"); -static const u32 sWallpaperTiles_Volcano[] = INCBIN_U32("graphics/interface/pss_unk_83D0008.4bpp.lz"); +static const u16 sWallpaperPalettes_Volcano[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/volcano/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/volcano/box.gbapal"), +}; +static const u32 sWallpaperTiles_Volcano[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/volcano/tiles.4bpp.lz"); static const u8 sUnusedSpace1[4] = {}; -static const u32 sWallpaperTilemap_Volcano[] = INCBIN_U32("graphics/interface/pss_unk_83D033C.bin.lz"); +static const u32 sWallpaperTilemap_Volcano[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/volcano/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Snow[] = INCBIN_U16("graphics/interface/pss_unk_83D0414.gbapal"); -static const u32 sWallpaperTiles_Snow[] = INCBIN_U32("graphics/interface/pss_unk_83D0454.4bpp.lz"); -static const u32 sWallpaperTilemap_Snow[] = INCBIN_U32("graphics/interface/pss_unk_83D070C.bin.lz"); +static const u16 sWallpaperPalettes_Snow[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/snow/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/snow/box.gbapal"), +}; +static const u32 sWallpaperTiles_Snow[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/snow/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Snow[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/snow/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Cave[] = INCBIN_U16("graphics/interface/pss_unk_83D07D8.gbapal"); -static const u32 sWallpaperTiles_Cave[] = INCBIN_U32("graphics/interface/pss_unk_83D0818.4bpp.lz"); -static const u32 sWallpaperTilemap_Cave[] = INCBIN_U32("graphics/interface/pss_unk_83D0B5C.bin.lz"); +static const u16 sWallpaperPalettes_Cave[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/cave/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/cave/box.gbapal"), +}; +static const u32 sWallpaperTiles_Cave[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/cave/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Cave[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/cave/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Beach[] = INCBIN_U16("graphics/interface/pss_unk_83D0C38.gbapal"); -static const u32 sWallpaperTiles_Beach[] = INCBIN_U32("graphics/interface/pss_unk_83D0C78.4bpp.lz"); -static const u32 sWallpaperTilemap_Beach[] = INCBIN_U32("graphics/interface/pss_unk_83D0FFC.bin.lz"); +static const u16 sWallpaperPalettes_Beach[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/beach/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/beach/box.gbapal"), +}; +static const u32 sWallpaperTiles_Beach[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/beach/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Beach[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/beach/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Seafloor[] = INCBIN_U16("graphics/interface/pss_unk_83D10E4.gbapal"); -static const u32 sWallpaperTiles_Seafloor[] = INCBIN_U32("graphics/interface/pss_unk_83D1124.4bpp.lz"); -static const u32 sWallpaperTilemap_Seafloor[] = INCBIN_U32("graphics/interface/pss_unk_83D13D8.bin.lz"); +static const u16 sWallpaperPalettes_Seafloor[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/seafloor/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/seafloor/box.gbapal"), +}; +static const u32 sWallpaperTiles_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/seafloor/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_River[] = INCBIN_U16("graphics/interface/pss_unk_83D14B4.gbapal"); -static const u32 sWallpaperTiles_River[] = INCBIN_U32("graphics/interface/pss_unk_83D14F4.4bpp.lz"); -static const u32 sWallpaperTilemap_River[] = INCBIN_U32("graphics/interface/pss_unk_83D1788.bin.lz"); +static const u16 sWallpaperPalettes_River[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/river/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/river/box.gbapal"), +}; +static const u32 sWallpaperTiles_River[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/river/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_River[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/river/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Sky[] = INCBIN_U16("graphics/interface/pss_unk_83D1874.gbapal"); -static const u32 sWallpaperTiles_Sky[] = INCBIN_U32("graphics/interface/pss_unk_83D18B4.4bpp.lz"); -static const u32 sWallpaperTilemap_Sky[] = INCBIN_U32("graphics/interface/pss_unk_83D1B4C.bin.lz"); +static const u16 sWallpaperPalettes_Sky[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/sky/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/sky/box.gbapal"), +}; +static const u32 sWallpaperTiles_Sky[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/sky/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Sky[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/sky/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Stars[] = INCBIN_U16("graphics/interface/pss_unk_83D1C2C.gbapal"); +static const u16 sWallpaperPalettes_Stars[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/stars/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/stars/box.gbapal"), +}; static const u8 sUnusedSpace2[32] = {}; -static const u32 sWallpaperTiles_Stars[] = INCBIN_U32("graphics/interface/pss_unk_83D1C8C.4bpp.lz"); -static const u32 sWallpaperTilemap_Stars[] = INCBIN_U32("graphics/interface/pss_unk_83D1EC4.bin.lz"); +static const u32 sWallpaperTiles_Stars[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/stars/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Stars[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/stars/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Pokecenter[] = INCBIN_U16("graphics/interface/pss_unk_83D1F94.gbapal"); -static const u32 sWallpaperTiles_Pokecenter[] = INCBIN_U32("graphics/interface/pss_unk_83D1FD4.4bpp.lz"); -static const u32 sWallpaperTilemap_Pokecenter[] = INCBIN_U32("graphics/interface/pss_unk_83D22B8.bin.lz"); +static const u16 sWallpaperPalettes_Pokecenter[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter/box.gbapal"), +}; +static const u32 sWallpaperTiles_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Tiles[] = INCBIN_U16("graphics/interface/pss_unk_83D239C.gbapal"); -static const u32 sWallpaperTiles_Tiles[] = INCBIN_U32("graphics/interface/pss_unk_83D23DC.4bpp.lz"); -static const u32 sWallpaperTilemap_Tiles[] = INCBIN_U32("graphics/interface/pss_unk_83D256C.bin.lz"); +static const u16 sWallpaperPalettes_Tiles[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/tiles/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/tiles/box.gbapal"), +}; +static const u32 sWallpaperTiles_Tiles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/tiles/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Tiles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/tiles/tilemap.bin.lz"); -static const u16 sWallpaperPalettes_Simple[] = INCBIN_U16("graphics/interface/pss_unk_83D2614.gbapal"); -static const u32 sWallpaperTiles_Simple[] = INCBIN_U32("graphics/interface/pss_unk_83D2654.4bpp.lz"); -static const u32 sWallpaperTilemap_Simple[] = INCBIN_U32("graphics/interface/pss_unk_83D277C.bin.lz"); +static const u16 sWallpaperPalettes_Simple[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/simple/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/simple/box.gbapal"), +}; +static const u32 sWallpaperTiles_Simple[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/simple/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Simple[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/simple/tilemap.bin.lz"); // Unused -static const u16 sWallpaperTilemap_Unused[] = INCBIN_U16("graphics/interface/pss_unk_83D2820.bin"); +static const u16 sWallpaperTilemap_Unused[] = INCBIN_U16("graphics/pokemon_storage/wallpapers/unused.bin"); // Shadow color, text color static const u16 sBoxTitleColors[][2] = { @@ -166,25 +214,25 @@ static const u16 sBoxTitleColors[][2] = { }; static const struct Wallpaper sWallpapers[] = { - {sWallpaperTiles_Forest, sWallpaperTilemap_Forest, sWallpaperPalettes_Forest }, - {sWallpaperTiles_City, sWallpaperTilemap_City, sWallpaperPalettes_City }, - {sWallpaperTiles_Desert, sWallpaperTilemap_Desert, sWallpaperPalettes_Desert }, - {sWallpaperTiles_Savanna, sWallpaperTilemap_Savanna, sWallpaperPalettes_Savanna }, - {sWallpaperTiles_Crag, sWallpaperTilemap_Crag, sWallpaperPalettes_Crag }, - {sWallpaperTiles_Volcano, sWallpaperTilemap_Volcano, sWallpaperPalettes_Volcano }, - {sWallpaperTiles_Snow, sWallpaperTilemap_Snow, sWallpaperPalettes_Snow }, - {sWallpaperTiles_Cave, sWallpaperTilemap_Cave, sWallpaperPalettes_Cave }, - {sWallpaperTiles_Beach, sWallpaperTilemap_Beach, sWallpaperPalettes_Beach }, - {sWallpaperTiles_Seafloor, sWallpaperTilemap_Seafloor, sWallpaperPalettes_Seafloor }, - {sWallpaperTiles_River, sWallpaperTilemap_River, sWallpaperPalettes_River }, - {sWallpaperTiles_Sky, sWallpaperTilemap_Sky, sWallpaperPalettes_Sky }, - {sWallpaperTiles_Stars, sWallpaperTilemap_Stars, sWallpaperPalettes_Stars }, - {sWallpaperTiles_Pokecenter, sWallpaperTilemap_Pokecenter, sWallpaperPalettes_Pokecenter}, - {sWallpaperTiles_Tiles, sWallpaperTilemap_Tiles, sWallpaperPalettes_Tiles }, - {sWallpaperTiles_Simple, sWallpaperTilemap_Simple, sWallpaperPalettes_Simple }, + {sWallpaperTiles_Forest, sWallpaperTilemap_Forest, *sWallpaperPalettes_Forest }, + {sWallpaperTiles_City, sWallpaperTilemap_City, *sWallpaperPalettes_City }, + {sWallpaperTiles_Desert, sWallpaperTilemap_Desert, *sWallpaperPalettes_Desert }, + {sWallpaperTiles_Savanna, sWallpaperTilemap_Savanna, *sWallpaperPalettes_Savanna }, + {sWallpaperTiles_Crag, sWallpaperTilemap_Crag, *sWallpaperPalettes_Crag }, + {sWallpaperTiles_Volcano, sWallpaperTilemap_Volcano, *sWallpaperPalettes_Volcano }, + {sWallpaperTiles_Snow, sWallpaperTilemap_Snow, *sWallpaperPalettes_Snow }, + {sWallpaperTiles_Cave, sWallpaperTilemap_Cave, *sWallpaperPalettes_Cave }, + {sWallpaperTiles_Beach, sWallpaperTilemap_Beach, *sWallpaperPalettes_Beach }, + {sWallpaperTiles_Seafloor, sWallpaperTilemap_Seafloor, *sWallpaperPalettes_Seafloor }, + {sWallpaperTiles_River, sWallpaperTilemap_River, *sWallpaperPalettes_River }, + {sWallpaperTiles_Sky, sWallpaperTilemap_Sky, *sWallpaperPalettes_Sky }, + {sWallpaperTiles_Stars, sWallpaperTilemap_Stars, *sWallpaperPalettes_Stars }, + {sWallpaperTiles_Pokecenter, sWallpaperTilemap_Pokecenter, *sWallpaperPalettes_Pokecenter}, + {sWallpaperTiles_Tiles, sWallpaperTilemap_Tiles, *sWallpaperPalettes_Tiles }, + {sWallpaperTiles_Simple, sWallpaperTilemap_Simple, *sWallpaperPalettes_Simple }, }; -static const u16 sBoxScrollArrow_Gfx[] = INCBIN_U16("graphics/interface/pss_unk_83D2AD0.4bpp"); +static const u16 sBoxScrollArrow_Gfx[] = INCBIN_U16("graphics/pokemon_storage/box_scroll_arrow.4bpp"); static const u16 sUnusedColor = RGB(26, 29, 8); diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c index 4eecee08b..d3373f247 100644 --- a/src/pokemon_storage_system_5.c +++ b/src/pokemon_storage_system_5.c @@ -45,9 +45,9 @@ static bool8 SetMenuTextsForItem(void); static void CreateCursorSprites(void); static void ToggleCursorMultiMoveMode(void); -static const u16 sPokeStorageMisc1Pal[] = INCBIN_U16("graphics/interface/pss_unk_83D2BCC.gbapal"); -static const u16 sHandCursorTiles[] = INCBIN_U16("graphics/interface/pss_unk_83D2BEC.4bpp"); -static const u16 sHandCursorShadowTiles[] = INCBIN_U16("graphics/interface/pss_unk_83D33EC.4bpp"); +static const u16 sPokeStorageMisc1Pal[] = INCBIN_U16("graphics/pokemon_storage/misc1.gbapal"); +static const u16 sHandCursorTiles[] = INCBIN_U16("graphics/pokemon_storage/cursor.4bpp"); +static const u16 sHandCursorShadowTiles[] = INCBIN_U16("graphics/pokemon_storage/cursor_shadow.4bpp"); // Modes for selecting and moving Pokémon in the box. Multiple Pokémon can be // selected by pressing the Select button to change the cursor, then holding diff --git a/src/pokemon_storage_system_8.c b/src/pokemon_storage_system_8.c index e7241e4b7..644aad1aa 100644 --- a/src/pokemon_storage_system_8.c +++ b/src/pokemon_storage_system_8.c @@ -40,7 +40,7 @@ static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite); static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite); static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite); -static const u32 sItemInfoFrame_Gfx[] = INCBIN_U32("graphics/interface/pss_unk_83D35DC.4bpp"); +static const u32 sItemInfoFrame_Gfx[] = INCBIN_U32("graphics/pokemon_storage/item_info_frame.4bpp"); static const struct OamData sOamData_ItemIcon = { .y = 0, From 3a1994f7f790dd7d50ea6963c4f3bea833628f29 Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Sat, 3 Sep 2022 23:35:07 +0800 Subject: [PATCH 052/105] Rearrange Pokemon storage source files --- ...arty_pokemon_dropdown.h => tilemap_util.h} | 6 +- ld_script.txt | 28 +- src/pokemon_storage_system_6.c | 147 ----- src/pokemon_storage_system_7.c | 566 ------------------ ...stem_5.c => pokemon_storage_system_data.c} | 143 +++++ ..._4.c => pokemon_storage_system_graphics.c} | 0 ...stem_2.c => pokemon_storage_system_menu.c} | 0 ...stem_8.c => pokemon_storage_system_misc.c} | 563 +++++++++++++++++ ...tem_3.c => pokemon_storage_system_tasks.c} | 2 +- ...arty_pokemon_dropdown.c => tilemap_util.c} | 2 +- sym_bss.txt | 2 +- sym_ewram.txt | 11 +- 12 files changed, 729 insertions(+), 741 deletions(-) rename include/{box_party_pokemon_dropdown.h => tilemap_util.h} (75%) delete mode 100644 src/pokemon_storage_system_6.c delete mode 100644 src/pokemon_storage_system_7.c rename src/{pokemon_storage_system_5.c => pokemon_storage_system_data.c} (92%) rename src/{pokemon_storage_system_4.c => pokemon_storage_system_graphics.c} (100%) rename src/{pokemon_storage_system_2.c => pokemon_storage_system_menu.c} (100%) rename src/{pokemon_storage_system_8.c => pokemon_storage_system_misc.c} (61%) rename src/{pokemon_storage_system_3.c => pokemon_storage_system_tasks.c} (99%) rename src/{box_party_pokemon_dropdown.c => tilemap_util.c} (99%) diff --git a/include/box_party_pokemon_dropdown.h b/include/tilemap_util.h similarity index 75% rename from include/box_party_pokemon_dropdown.h rename to include/tilemap_util.h index 5e925e8a2..b8388c6f5 100644 --- a/include/box_party_pokemon_dropdown.h +++ b/include/tilemap_util.h @@ -1,5 +1,5 @@ -#ifndef GUARD_BOX_PARTY_POKEMON_DROPDOWN_H -#define GUARD_BOX_PARTY_POKEMON_DROPDOWN_H +#ifndef GUARD_TILEMAP_UTIL_H +#define GUARD_TILEMAP_UTIL_H void TilemapUtil_Init(u8 numTilemapIds); void TilemapUtil_Free(void); @@ -9,4 +9,4 @@ void TilemapUtil_SetRect(u8 tilemapId, u16 x, u16 y, u16 width, u16 height); void TilemapUtil_Move(u8 tilemapId, u8 mode, s8 param); void TilemapUtil_Update(u8 tilemapId); -#endif //GUARD_BOX_PARTY_POKEMON_DROPDOWN_H +#endif //GUARD_TILEMAP_UTIL_H diff --git a/ld_script.txt b/ld_script.txt index 21538a7ba..a97a5ac2a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -130,13 +130,11 @@ SECTIONS { src/pokedex.o(.text); src/trainer_card.o(.text); src/pokemon_storage_system.o(.text); - src/pokemon_storage_system_2.o(.text); - src/pokemon_storage_system_3.o(.text); - src/pokemon_storage_system_4.o(.text); - src/pokemon_storage_system_5.o(.text); - src/pokemon_storage_system_6.o(.text); - src/pokemon_storage_system_7.o(.text); - src/pokemon_storage_system_8.o(.text); + src/pokemon_storage_system_menu.o(.text); + src/pokemon_storage_system_tasks.o(.text); + src/pokemon_storage_system_graphics.o(.text); + src/pokemon_storage_system_data.o(.text); + src/pokemon_storage_system_misc.o(.text); src/pokemon_icon.o(.text); src/script_movement.o(.text); src/fldeff_cut.o(.text); @@ -228,7 +226,7 @@ SECTIONS { src/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); src/new_menu_helpers.o(.text); - src/box_party_pokemon_dropdown.o(.text); + src/tilemap_util.o(.text); src/save_menu_util.o(.text); src/map_preview_screen.o(.text); src/link_rfu_2.o(.text); @@ -452,13 +450,11 @@ SECTIONS { src/field_effect.o(.rodata); src/option_menu.o(.rodata); src/trainer_card.o(.rodata); - src/pokemon_storage_system_2.o(.rodata); - src/pokemon_storage_system_3.o(.rodata); - src/pokemon_storage_system_4.o(.rodata); - src/pokemon_storage_system_5.o(.rodata); - src/pokemon_storage_system_6.o(.rodata); - src/pokemon_storage_system_7.o(.rodata); - src/pokemon_storage_system_8.o(.rodata); + src/pokemon_storage_system_menu.o(.rodata); + src/pokemon_storage_system_tasks.o(.rodata); + src/pokemon_storage_system_graphics.o(.rodata); + src/pokemon_storage_system_data.o(.rodata); + src/pokemon_storage_system_misc.o(.rodata); src/pokemon_icon.o(.rodata); src/fldeff_cut.o(.rodata); src/map_name_popup.o(.rodata); @@ -524,7 +520,7 @@ SECTIONS { src/clear_save_data_screen.o(.rodata); src/evolution_graphics.o(.rodata); src/new_menu_helpers.o(.rodata); - src/box_party_pokemon_dropdown.o(.rodata); + src/tilemap_util.o(.rodata); src/map_preview_screen.o(.rodata); src/link_rfu_2.o(.rodata); src/link_rfu_3.o(.rodata); diff --git a/src/pokemon_storage_system_6.c b/src/pokemon_storage_system_6.c deleted file mode 100644 index b8fcc3e8b..000000000 --- a/src/pokemon_storage_system_6.c +++ /dev/null @@ -1,147 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "menu.h" -#include "new_menu_helpers.h" -#include "pokemon_storage_system_internal.h" -#include "strings.h" -#include "constants/songs.h" - -void InitMenu(void) -{ - gStorage->menuItemsCount = 0; - gStorage->menuWidth = 0; - gStorage->menuWindow.bg = 0; - gStorage->menuWindow.paletteNum = 15; - gStorage->menuWindow.baseBlock = 92; -} - -static const u8 *const sMenuTexts[] = { - [MENU_TEXT_CANCEL] = gPCText_Cancel, - [MENU_TEXT_STORE] = gPCText_Store, - [MENU_TEXT_WITHDRAW] = gPCText_Withdraw, - [MENU_TEXT_MOVE] = gPCText_Move, - [MENU_TEXT_SHIFT] = gPCText_Shift, - [MENU_TEXT_PLACE] = gPCText_Place, - [MENU_TEXT_SUMMARY] = gPCText_Summary, - [MENU_TEXT_RELEASE] = gPCText_Release, - [MENU_TEXT_MARK] = gPCText_Mark, - [MENU_TEXT_JUMP] = gPCText_Jump, - [MENU_TEXT_WALLPAPER] = gPCText_Wallpaper, - [MENU_TEXT_NAME] = gPCText_Name, - [MENU_TEXT_TAKE] = gPCText_Take, - [MENU_TEXT_GIVE] = gPCText_Give, - [MENU_TEXT_GIVE2] = gPCText_Give, - [MENU_TEXT_SWITCH] = gPCText_Switch, - [MENU_TEXT_BAG] = gPCText_Bag, - [MENU_TEXT_INFO] = gPCText_Info, - [MENU_TEXT_SCENERY_1] = gPCText_Scenery1, - [MENU_TEXT_SCENERY_2] = gPCText_Scenery2, - [MENU_TEXT_SCENERY_3] = gPCText_Scenery3, - [MENU_TEXT_ETCETERA] = gPCText_Etcetera, - [MENU_TEXT_FOREST] = gPCText_Forest, - [MENU_TEXT_CITY] = gPCText_City, - [MENU_TEXT_DESERT] = gPCText_Desert, - [MENU_TEXT_SAVANNA] = gPCText_Savanna, - [MENU_TEXT_CRAG] = gPCText_Crag, - [MENU_TEXT_VOLCANO] = gPCText_Volcano, - [MENU_TEXT_SNOW] = gPCText_Snow, - [MENU_TEXT_CAVE] = gPCText_Cave, - [MENU_TEXT_BEACH] = gPCText_Beach, - [MENU_TEXT_SEAFLOOR] = gPCText_Seafloor, - [MENU_TEXT_RIVER] = gPCText_River, - [MENU_TEXT_SKY] = gPCText_Sky, - [MENU_TEXT_POLKADOT] = gPCText_PolkaDot, - [MENU_TEXT_POKECENTER] = gPCText_Pokecenter, - [MENU_TEXT_MACHINE] = gPCText_Machine, - [MENU_TEXT_SIMPLE] = gPCText_Simple, -}; - -void SetMenuText(u8 textId) -{ - if (gStorage->menuItemsCount < ARRAY_COUNT(gStorage->menuItems)) - { - u8 len; - struct StorageMenu *menu = &gStorage->menuItems[gStorage->menuItemsCount]; - - menu->text = sMenuTexts[textId]; - menu->textId = textId; - len = StringLength(menu->text); - if (len > gStorage->menuWidth) - gStorage->menuWidth = len; - - gStorage->menuItemsCount++; - } -} - -s8 GetMenuItemTextId(u8 menuIndex) -{ - if (menuIndex >= gStorage->menuItemsCount) - return MENU_B_PRESSED; - else - return gStorage->menuItems[menuIndex].textId; -} - -void AddMenu(void) -{ - gStorage->menuWindow.width = gStorage->menuWidth + 2; - gStorage->menuWindow.height = 2 * gStorage->menuItemsCount; - gStorage->menuWindow.tilemapLeft = 29 - gStorage->menuWindow.width; - gStorage->menuWindow.tilemapTop = 15 - gStorage->menuWindow.height; - gStorage->menuWindowId = AddWindow(&gStorage->menuWindow); - ClearWindowTilemap(gStorage->menuWindowId); - DrawStdFrameWithCustomTileAndPalette(gStorage->menuWindowId, FALSE, 11, 14); - PrintTextArray(gStorage->menuWindowId, FONT_1, 8, 2, 16, gStorage->menuItemsCount, (void *)gStorage->menuItems); - Menu_InitCursor(gStorage->menuWindowId, FONT_1, 0, 2, 16, gStorage->menuItemsCount, 0); - ScheduleBgCopyTilemapToVram(0); - gStorage->menuUnusedField = 0; -} - -bool8 IsMenuLoading(void) -{ - // Possibly stubbed out debug code? - return FALSE; -} - -s16 HandleMenuInput(void) -{ - s32 input = MENU_NOTHING_CHOSEN; - - do - { - if (JOY_NEW(A_BUTTON)) - { - input = Menu_GetCursorPos(); - break; - } - else if (JOY_NEW(B_BUTTON)) - { - PlaySE(SE_SELECT); - input = MENU_B_PRESSED; - } - - if (JOY_NEW(DPAD_UP)) - { - PlaySE(SE_SELECT); - Menu_MoveCursor(-1); - } - else if (JOY_NEW(DPAD_DOWN)) - { - PlaySE(SE_SELECT); - Menu_MoveCursor(1); - } - } while (FALSE); - - if (input != MENU_NOTHING_CHOSEN) - RemoveMenu(); - - if (input >= 0) - input = gStorage->menuItems[input].textId; - - return input; -} - -void RemoveMenu(void) -{ - ClearStdWindowAndFrameToTransparent(gStorage->menuWindowId, TRUE); - RemoveWindow(gStorage->menuWindowId); -} diff --git a/src/pokemon_storage_system_7.c b/src/pokemon_storage_system_7.c deleted file mode 100644 index 573aa4b82..000000000 --- a/src/pokemon_storage_system_7.c +++ /dev/null @@ -1,566 +0,0 @@ -#include // to declare abs -#include "global.h" -#include "gflib.h" -#include "pokemon_icon.h" -#include "pokemon_storage_system_internal.h" -#include "text_window.h" - -static EWRAM_DATA struct -{ - u8 funcId; - u8 state; - u8 fromColumn; - u8 fromRow; - u8 toColumn; - u8 toRow; - u8 cursorColumn; - u8 cursorRow; - u8 minColumn; - u8 minRow; - u8 columnsTotal; - u8 rowsTotal; - u16 bgX; - u16 bgY; - u16 bgMoveSteps; - struct BoxPokemon boxMons[IN_BOX_COUNT]; -} *sMultiMove = NULL; - -static bool8 MultiMove_Function_Start(void); -static bool8 MultiMove_Function_Single(void); -static bool8 MultiMove_Function_ChangeSelection(void); -static bool8 MultiMove_Function_GrabSelection(void); -static bool8 MultiMove_Function_MoveMons(void); -static bool8 MultiMove_Function_PlaceMons(void); -static void MultiMove_UpdateSelectedIcons(void); -static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow); -static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn); -static void MultiMove_DeselectColumn(u8 arg0, u8 minRow, u8 maxRow); -static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn); -static void MultiMove_SetIconToBg(u8 x, u8 y); -static void MultiMove_ClearIconFromBg(u8 x, u8 y); -static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration); -static u8 MultiMove_UpdateBg(void); -static void MultiMove_GetMonsFromSelection(void); -static void MultiMove_RemoveMonsFromBox(void); -static void MultiMove_CreatePlacedMonIcons(void); -static void MultiMove_SetPlacedMonData(void); -static void MultiMove_ResetBg(void); - -static const struct WindowTemplate sWindowTemplate_MultiMove = { - .bg = 0, - .tilemapLeft = 10, - .tilemapTop = 3, - .width = 20, - .height = 18, - .paletteNum = 9, - .baseBlock = 0x00a -}; - -bool8 MultiMove_Init(void) -{ - sMultiMove = Alloc(sizeof(*sMultiMove)); - if (sMultiMove != NULL) - { - gStorage->multiMoveWindowId = AddWindow8Bit(&sWindowTemplate_MultiMove); - if (gStorage->multiMoveWindowId != WINDOW_NONE) - { - FillWindowPixelBuffer(gStorage->multiMoveWindowId, PIXEL_FILL(0)); - return TRUE; - } - } - - return FALSE; -} - -void MultiMove_Free(void) -{ - if (sMultiMove != NULL) - Free(sMultiMove); -} - -void MultiMove_SetFunction(u8 funcId) -{ - sMultiMove->funcId = funcId; - sMultiMove->state = 0; -} - -bool8 MultiMove_RunFunction(void) -{ - switch (sMultiMove->funcId) - { - case MULTIMOVE_START: - return MultiMove_Function_Start(); - case MULTIMOVE_SINGLE: - return MultiMove_Function_Single(); - case MULTIMOVE_CHANGE_SELECTION: - return MultiMove_Function_ChangeSelection(); - case MULTIMOVE_GRAB_SELECTION: - return MultiMove_Function_GrabSelection(); - case MULTIMOVE_MOVE_MONS: - return MultiMove_Function_MoveMons(); - case MULTIMOVE_PLACE_MONS: - return MultiMove_Function_PlaceMons(); - } - - return FALSE; -} - -static bool8 MultiMove_Function_Start(void) -{ - switch (sMultiMove->state) - { - case 0: - HideBg(0); - LoadMonIconPalettesAt(0x80); - sMultiMove->state++; - break; - case 1: - GetCursorBoxColumnAndRow(&sMultiMove->fromColumn, &sMultiMove->fromRow); - sMultiMove->toColumn = sMultiMove->fromColumn; - sMultiMove->toRow = sMultiMove->fromRow; - ChangeBgX(0, -1024, BG_COORD_SET); - ChangeBgY(0, -1024, BG_COORD_SET); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillWindowPixelBuffer8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0)); - MultiMove_SetIconToBg(sMultiMove->fromColumn, sMultiMove->fromRow); - SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); - PutWindowTilemap(gStorage->multiMoveWindowId); - CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_FULL); - BlendPalettes(0x3F00, 8, RGB_WHITE); - StartCursorAnim(CURSOR_ANIM_OPEN); - SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); - sMultiMove->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - ShowBg(0); - return FALSE; - } - break; - } - - return TRUE; -} - -static bool8 MultiMove_Function_Single(void) -{ - switch (sMultiMove->state) - { - case 0: - HideBg(0); - sMultiMove->state++; - break; - case 1: - MultiMove_ResetBg(); - StartCursorAnim(CURSOR_ANIM_BOUNCE); - sMultiMove->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - SetCursorPriorityTo1(); - LoadPalette(stdpal_get(3), 0xD0, 0x20); - ShowBg(0); - return FALSE; - } - break; - } - - return TRUE; -} - -static bool8 MultiMove_Function_ChangeSelection(void) -{ - switch (sMultiMove->state) - { - case 0: - if (!UpdateCursorPos()) - { - GetCursorBoxColumnAndRow(&sMultiMove->cursorColumn, &sMultiMove->cursorRow); - MultiMove_UpdateSelectedIcons(); - sMultiMove->toColumn = sMultiMove->cursorColumn; - sMultiMove->toRow = sMultiMove->cursorRow; - CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_GFX); - sMultiMove->state++; - } - break; - case 1: - return IsDma3ManagerBusyWithBgCopy(); - } - - return TRUE; -} - -static bool8 MultiMove_Function_GrabSelection(void) -{ - u8 movingBg, movingMon; - - switch (sMultiMove->state) - { - case 0: - MultiMove_GetMonsFromSelection(); - MultiMove_RemoveMonsFromBox(); - InitMultiMonPlaceChange(FALSE); - sMultiMove->state++; - break; - case 1: - if (!DoMonPlaceChange()) - { - StartCursorAnim(CURSOR_ANIM_FIST); - MultiMove_InitBg(0, 256, 8); - InitMultiMonPlaceChange(TRUE); - sMultiMove->state++; - } - break; - case 2: - movingBg = MultiMove_UpdateBg(); - movingMon = DoMonPlaceChange(); - if (!movingBg && !movingMon) - return FALSE; - break; - } - - return TRUE; -} - -static bool8 MultiMove_Function_MoveMons(void) -{ - u8 movingCursor = UpdateCursorPos(); - u8 movingBg = MultiMove_UpdateBg(); - - if (!movingCursor && !movingBg) - return FALSE; - else - return TRUE; -} - -static bool8 MultiMove_Function_PlaceMons(void) -{ - switch (sMultiMove->state) - { - case 0: - MultiMove_SetPlacedMonData(); - MultiMove_InitBg(0, -256, 8); - InitMultiMonPlaceChange(FALSE); - sMultiMove->state++; - break; - case 1: - if (!DoMonPlaceChange() && !MultiMove_UpdateBg()) - { - MultiMove_CreatePlacedMonIcons(); - StartCursorAnim(CURSOR_ANIM_OPEN); - InitMultiMonPlaceChange(TRUE); - HideBg(0); - sMultiMove->state++; - } - break; - case 2: - if (!DoMonPlaceChange()) - { - StartCursorAnim(CURSOR_ANIM_BOUNCE); - MultiMove_ResetBg(); - sMultiMove->state++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - { - LoadPalette(stdpal_get(3), 0xD0, 0x20); - SetCursorPriorityTo1(); - ShowBg(0); - return FALSE; - } - break; - } - - return TRUE; -} - -bool8 MultiMove_TryMoveGroup(u8 dir) -{ - switch (dir) - { - case 0: // up - if (sMultiMove->minRow == 0) - return FALSE; - sMultiMove->minRow--; - MultiMove_InitBg(0, 1024, 6); - break; - case 1: // down - if (sMultiMove->minRow + sMultiMove->rowsTotal >= 5) - return FALSE; - sMultiMove->minRow++; - MultiMove_InitBg(0, -1024, 6); - break; - case 2: // left - if (sMultiMove->minColumn == 0) - return FALSE; - sMultiMove->minColumn--; - MultiMove_InitBg(1024, 0, 6); - break; - case 3: // right - if (sMultiMove->minColumn + sMultiMove->columnsTotal > 5) - return FALSE; - sMultiMove->minColumn++; - MultiMove_InitBg(-1024, 0, 6); - break; - } - - return TRUE; -} - -static void MultiMove_UpdateSelectedIcons(void) -{ - s16 columnChange = (abs(sMultiMove->fromColumn - sMultiMove->cursorColumn)) - (abs(sMultiMove->fromColumn - sMultiMove->toColumn)); - s16 rowChange = (abs(sMultiMove->fromRow - sMultiMove->cursorRow)) - (abs(sMultiMove->fromRow - sMultiMove->toRow)); - - if (columnChange > 0) - MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); - - if (columnChange < 0) - { - MultiMove_DeselectColumn(sMultiMove->toColumn, sMultiMove->fromRow, sMultiMove->toRow); - MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); - } - - if (rowChange > 0) - MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); - - if (rowChange < 0) - { - MultiMove_DeselectRow(sMultiMove->toRow, sMultiMove->fromColumn, sMultiMove->toColumn); - MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); - } -} - -static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow) -{ - u8 tmp = minRow; - - if (minRow > maxRow) - { - minRow = maxRow; - maxRow = tmp; - } - - while (minRow <= maxRow) - MultiMove_SetIconToBg(column, minRow++); -} - -static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn) -{ - u8 tmp = minColumn; - - if (minColumn > maxColumn) - { - minColumn = maxColumn; - maxColumn = tmp; - } - - while (minColumn <= maxColumn) - MultiMove_SetIconToBg(minColumn++, row); -} - -static void MultiMove_DeselectColumn(u8 column, u8 minRow, u8 maxRow) -{ - u8 tmp = minRow; - - if (minRow > maxRow) - { - minRow = maxRow; - maxRow = tmp; - } - - while (minRow <= maxRow) - MultiMove_ClearIconFromBg(column, minRow++); -} - -static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) -{ - u8 tmp = minColumn; - - if (minColumn > maxColumn) - { - minColumn = maxColumn; - maxColumn = tmp; - } - - while (minColumn <= maxColumn) - MultiMove_ClearIconFromBg(minColumn++, row); -} - -static void MultiMove_SetIconToBg(u8 x, u8 y) -{ - u8 position = x + (IN_BOX_COLUMNS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); - u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); - - if (species != SPECIES_NONE) - { - const u8 *iconGfx = GetMonIconPtr(species, personality, 1); - u8 palNum = GetValidMonIconPalIndex(species) + 8; - BlitBitmapRectToWindow4BitTo8Bit(gStorage->multiMoveWindowId, iconGfx, 0, 0, 32, 32, 24 * x, 24 * y, 32, 32, palNum); - } -} - -static void MultiMove_ClearIconFromBg(u8 x, u8 y) -{ - u8 position = x + (IN_BOX_COLUMNS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); - - if (species != SPECIES_NONE) - FillWindowPixelRect8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0), 24 * x, 24 * y, 32, 32); -} - -static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration) -{ - sMultiMove->bgX = bgX; - sMultiMove->bgY = bgY; - sMultiMove->bgMoveSteps = duration; -} - -static u8 MultiMove_UpdateBg(void) -{ - if (sMultiMove->bgMoveSteps != 0) - { - ChangeBgX(0, sMultiMove->bgX, BG_COORD_ADD); - ChangeBgY(0, sMultiMove->bgY, BG_COORD_ADD); - sMultiMove->bgMoveSteps--; - } - - return sMultiMove->bgMoveSteps; -} - -static void MultiMove_GetMonsFromSelection(void) -{ - s32 i, j; - s32 columnCount, rowCount; - u8 boxId; - u8 monArrayId; - - sMultiMove->minColumn = min(sMultiMove->fromColumn, sMultiMove->toColumn); - sMultiMove->minRow = min(sMultiMove->fromRow, sMultiMove->toRow); - sMultiMove->columnsTotal = abs(sMultiMove->fromColumn - sMultiMove->toColumn) + 1; - sMultiMove->rowsTotal = abs(sMultiMove->fromRow - sMultiMove->toRow) + 1; - boxId = StorageGetCurrentBox(); - monArrayId = 0; - columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; - rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; - for (i = sMultiMove->minRow; i < rowCount; i++) - { - u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; - for (j = sMultiMove->minColumn; j < columnCount; j++) - { - struct BoxPokemon *boxMon = GetBoxedMonPtr(boxId, boxPosition); - // UB: possible null dereference -#ifdef UBFIX - if (boxMon != NULL) - sMultiMove->boxMons[monArrayId] = *boxMon; -#else - sMultiMove->boxMons[monArrayId] = *boxMon; -#endif - monArrayId++; - boxPosition++; - } - } -} - -static void MultiMove_RemoveMonsFromBox(void) -{ - s32 i, j; - s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; - s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; - u8 boxId = StorageGetCurrentBox(); - - for (i = sMultiMove->minRow; i < rowCount; i++) - { - u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; - for (j = sMultiMove->minColumn; j < columnCount; j++) - { - DestroyBoxMonIconAtPosition(boxPosition); - ZeroBoxMonAt(boxId, boxPosition); - boxPosition++; - } - } -} - -static void MultiMove_CreatePlacedMonIcons(void) -{ - s32 i, j; - s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; - s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; - u8 monArrayId = 0; - - for (i = sMultiMove->minRow; i < rowCount; i++) - { - u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; - for (j = sMultiMove->minColumn; j < columnCount; j++) - { - if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - CreateBoxMonIconAtPos(boxPosition); - monArrayId++; - boxPosition++; - } - } -} - -static void MultiMove_SetPlacedMonData(void) -{ - s32 i, j; - s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; - s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; - u8 boxId = StorageGetCurrentBox(); - u8 monArrayId = 0; - - for (i = sMultiMove->minRow; i < rowCount; i++) - { - u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; - for (j = sMultiMove->minColumn; j < columnCount; j++) - { - if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - SetBoxMonAt(boxId, boxPosition, &sMultiMove->boxMons[monArrayId]); - boxPosition++; - monArrayId++; - } - } -} - -static void MultiMove_ResetBg(void) -{ - ChangeBgX(0, 0, BG_COORD_SET); - ChangeBgY(0, 0, BG_COORD_SET); - SetBgAttribute(0, BG_ATTR_PALETTEMODE, 0); - ClearGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - CopyBgTilemapBufferToVram(0); -} - -u8 MultiMove_GetOriginPosition(void) -{ - return (IN_BOX_COLUMNS * sMultiMove->fromRow) + sMultiMove->fromColumn; -} - -bool8 MultiMove_CanPlaceSelection(void) -{ - s32 i, j; - s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; - s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; - u8 monArrayId = 0; - - for (i = sMultiMove->minRow; i < rowCount; i++) - { - u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; - for (j = sMultiMove->minColumn; j < columnCount; j++) - { - if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) - && GetCurrentBoxMonData(boxPosition, MON_DATA_SANITY_HAS_SPECIES)) - return FALSE; - - monArrayId++; - boxPosition++; - } - } - - return TRUE; -} diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_data.c similarity index 92% rename from src/pokemon_storage_system_5.c rename to src/pokemon_storage_system_data.c index d3373f247..dfe34330a 100644 --- a/src/pokemon_storage_system_5.c +++ b/src/pokemon_storage_system_data.c @@ -3,11 +3,14 @@ #include "data.h" #include "item.h" #include "mail_data.h" +#include "menu.h" +#include "new_menu_helpers.h" #include "pokemon_storage_system_internal.h" #include "pokemon_summary_screen.h" #include "strings.h" #include "constants/items.h" #include "constants/moves.h" +#include "constants/songs.h" static EWRAM_DATA struct Pokemon sMonBeingCarried = {}; static EWRAM_DATA s8 sCursorArea = 0; @@ -2020,3 +2023,143 @@ void TryShowItemAtCursor(void) if (sCursorArea == CURSOR_AREA_IN_BOX) TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); } + +static const u8 *const sMenuTexts[] = { + [MENU_TEXT_CANCEL] = gPCText_Cancel, + [MENU_TEXT_STORE] = gPCText_Store, + [MENU_TEXT_WITHDRAW] = gPCText_Withdraw, + [MENU_TEXT_MOVE] = gPCText_Move, + [MENU_TEXT_SHIFT] = gPCText_Shift, + [MENU_TEXT_PLACE] = gPCText_Place, + [MENU_TEXT_SUMMARY] = gPCText_Summary, + [MENU_TEXT_RELEASE] = gPCText_Release, + [MENU_TEXT_MARK] = gPCText_Mark, + [MENU_TEXT_JUMP] = gPCText_Jump, + [MENU_TEXT_WALLPAPER] = gPCText_Wallpaper, + [MENU_TEXT_NAME] = gPCText_Name, + [MENU_TEXT_TAKE] = gPCText_Take, + [MENU_TEXT_GIVE] = gPCText_Give, + [MENU_TEXT_GIVE2] = gPCText_Give, + [MENU_TEXT_SWITCH] = gPCText_Switch, + [MENU_TEXT_BAG] = gPCText_Bag, + [MENU_TEXT_INFO] = gPCText_Info, + [MENU_TEXT_SCENERY_1] = gPCText_Scenery1, + [MENU_TEXT_SCENERY_2] = gPCText_Scenery2, + [MENU_TEXT_SCENERY_3] = gPCText_Scenery3, + [MENU_TEXT_ETCETERA] = gPCText_Etcetera, + [MENU_TEXT_FOREST] = gPCText_Forest, + [MENU_TEXT_CITY] = gPCText_City, + [MENU_TEXT_DESERT] = gPCText_Desert, + [MENU_TEXT_SAVANNA] = gPCText_Savanna, + [MENU_TEXT_CRAG] = gPCText_Crag, + [MENU_TEXT_VOLCANO] = gPCText_Volcano, + [MENU_TEXT_SNOW] = gPCText_Snow, + [MENU_TEXT_CAVE] = gPCText_Cave, + [MENU_TEXT_BEACH] = gPCText_Beach, + [MENU_TEXT_SEAFLOOR] = gPCText_Seafloor, + [MENU_TEXT_RIVER] = gPCText_River, + [MENU_TEXT_SKY] = gPCText_Sky, + [MENU_TEXT_POLKADOT] = gPCText_PolkaDot, + [MENU_TEXT_POKECENTER] = gPCText_Pokecenter, + [MENU_TEXT_MACHINE] = gPCText_Machine, + [MENU_TEXT_SIMPLE] = gPCText_Simple, +}; + +void InitMenu(void) +{ + gStorage->menuItemsCount = 0; + gStorage->menuWidth = 0; + gStorage->menuWindow.bg = 0; + gStorage->menuWindow.paletteNum = 15; + gStorage->menuWindow.baseBlock = 92; +} + +void SetMenuText(u8 textId) +{ + if (gStorage->menuItemsCount < ARRAY_COUNT(gStorage->menuItems)) + { + u8 len; + struct StorageMenu *menu = &gStorage->menuItems[gStorage->menuItemsCount]; + + menu->text = sMenuTexts[textId]; + menu->textId = textId; + len = StringLength(menu->text); + if (len > gStorage->menuWidth) + gStorage->menuWidth = len; + + gStorage->menuItemsCount++; + } +} + +s8 GetMenuItemTextId(u8 menuIndex) +{ + if (menuIndex >= gStorage->menuItemsCount) + return MENU_B_PRESSED; + else + return gStorage->menuItems[menuIndex].textId; +} + +void AddMenu(void) +{ + gStorage->menuWindow.width = gStorage->menuWidth + 2; + gStorage->menuWindow.height = 2 * gStorage->menuItemsCount; + gStorage->menuWindow.tilemapLeft = 29 - gStorage->menuWindow.width; + gStorage->menuWindow.tilemapTop = 15 - gStorage->menuWindow.height; + gStorage->menuWindowId = AddWindow(&gStorage->menuWindow); + ClearWindowTilemap(gStorage->menuWindowId); + DrawStdFrameWithCustomTileAndPalette(gStorage->menuWindowId, FALSE, 11, 14); + PrintTextArray(gStorage->menuWindowId, FONT_1, 8, 2, 16, gStorage->menuItemsCount, (void *)gStorage->menuItems); + Menu_InitCursor(gStorage->menuWindowId, FONT_1, 0, 2, 16, gStorage->menuItemsCount, 0); + ScheduleBgCopyTilemapToVram(0); + gStorage->menuUnusedField = 0; +} + +bool8 IsMenuLoading(void) +{ + // Possibly stubbed out debug code? + return FALSE; +} + +s16 HandleMenuInput(void) +{ + s32 input = MENU_NOTHING_CHOSEN; + + do + { + if (JOY_NEW(A_BUTTON)) + { + input = Menu_GetCursorPos(); + break; + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + input = MENU_B_PRESSED; + } + + if (JOY_NEW(DPAD_UP)) + { + PlaySE(SE_SELECT); + Menu_MoveCursor(-1); + } + else if (JOY_NEW(DPAD_DOWN)) + { + PlaySE(SE_SELECT); + Menu_MoveCursor(1); + } + } while (FALSE); + + if (input != MENU_NOTHING_CHOSEN) + RemoveMenu(); + + if (input >= 0) + input = gStorage->menuItems[input].textId; + + return input; +} + +void RemoveMenu(void) +{ + ClearStdWindowAndFrameToTransparent(gStorage->menuWindowId, TRUE); + RemoveWindow(gStorage->menuWindowId); +} diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_graphics.c similarity index 100% rename from src/pokemon_storage_system_4.c rename to src/pokemon_storage_system_graphics.c diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_menu.c similarity index 100% rename from src/pokemon_storage_system_2.c rename to src/pokemon_storage_system_menu.c diff --git a/src/pokemon_storage_system_8.c b/src/pokemon_storage_system_misc.c similarity index 61% rename from src/pokemon_storage_system_8.c rename to src/pokemon_storage_system_misc.c index 644aad1aa..2cfa98152 100644 --- a/src/pokemon_storage_system_8.c +++ b/src/pokemon_storage_system_misc.c @@ -1,3 +1,4 @@ +#include // to declare abs #include "global.h" #include "gflib.h" #include "decompress.h" @@ -5,10 +6,572 @@ #include "item_menu_icons.h" #include "menu.h" #include "new_menu_helpers.h" +#include "pokemon_icon.h" #include "pokemon_storage_system_internal.h" +#include "text_window.h" #include "trig.h" #include "constants/items.h" +static EWRAM_DATA struct +{ + u8 funcId; + u8 state; + u8 fromColumn; + u8 fromRow; + u8 toColumn; + u8 toRow; + u8 cursorColumn; + u8 cursorRow; + u8 minColumn; + u8 minRow; + u8 columnsTotal; + u8 rowsTotal; + u16 bgX; + u16 bgY; + u16 bgMoveSteps; + struct BoxPokemon boxMons[IN_BOX_COUNT]; +} *sMultiMove = NULL; + +static bool8 MultiMove_Function_Start(void); +static bool8 MultiMove_Function_Single(void); +static bool8 MultiMove_Function_ChangeSelection(void); +static bool8 MultiMove_Function_GrabSelection(void); +static bool8 MultiMove_Function_MoveMons(void); +static bool8 MultiMove_Function_PlaceMons(void); +static void MultiMove_UpdateSelectedIcons(void); +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow); +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn); +static void MultiMove_DeselectColumn(u8 arg0, u8 minRow, u8 maxRow); +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn); +static void MultiMove_SetIconToBg(u8 x, u8 y); +static void MultiMove_ClearIconFromBg(u8 x, u8 y); +static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration); +static u8 MultiMove_UpdateBg(void); +static void MultiMove_GetMonsFromSelection(void); +static void MultiMove_RemoveMonsFromBox(void); +static void MultiMove_CreatePlacedMonIcons(void); +static void MultiMove_SetPlacedMonData(void); +static void MultiMove_ResetBg(void); + +static const struct WindowTemplate sWindowTemplate_MultiMove = { + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 3, + .width = 20, + .height = 18, + .paletteNum = 9, + .baseBlock = 0x00a +}; + +bool8 MultiMove_Init(void) +{ + sMultiMove = Alloc(sizeof(*sMultiMove)); + if (sMultiMove != NULL) + { + gStorage->multiMoveWindowId = AddWindow8Bit(&sWindowTemplate_MultiMove); + if (gStorage->multiMoveWindowId != WINDOW_NONE) + { + FillWindowPixelBuffer(gStorage->multiMoveWindowId, PIXEL_FILL(0)); + return TRUE; + } + } + + return FALSE; +} + +void MultiMove_Free(void) +{ + if (sMultiMove != NULL) + Free(sMultiMove); +} + +void MultiMove_SetFunction(u8 funcId) +{ + sMultiMove->funcId = funcId; + sMultiMove->state = 0; +} + +bool8 MultiMove_RunFunction(void) +{ + switch (sMultiMove->funcId) + { + case MULTIMOVE_START: + return MultiMove_Function_Start(); + case MULTIMOVE_SINGLE: + return MultiMove_Function_Single(); + case MULTIMOVE_CHANGE_SELECTION: + return MultiMove_Function_ChangeSelection(); + case MULTIMOVE_GRAB_SELECTION: + return MultiMove_Function_GrabSelection(); + case MULTIMOVE_MOVE_MONS: + return MultiMove_Function_MoveMons(); + case MULTIMOVE_PLACE_MONS: + return MultiMove_Function_PlaceMons(); + } + + return FALSE; +} + +static bool8 MultiMove_Function_Start(void) +{ + switch (sMultiMove->state) + { + case 0: + HideBg(0); + LoadMonIconPalettesAt(0x80); + sMultiMove->state++; + break; + case 1: + GetCursorBoxColumnAndRow(&sMultiMove->fromColumn, &sMultiMove->fromRow); + sMultiMove->toColumn = sMultiMove->fromColumn; + sMultiMove->toRow = sMultiMove->fromRow; + ChangeBgX(0, -1024, BG_COORD_SET); + ChangeBgY(0, -1024, BG_COORD_SET); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + FillWindowPixelBuffer8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0)); + MultiMove_SetIconToBg(sMultiMove->fromColumn, sMultiMove->fromRow); + SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); + PutWindowTilemap(gStorage->multiMoveWindowId); + CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_FULL); + BlendPalettes(0x3F00, 8, RGB_WHITE); + StartCursorAnim(CURSOR_ANIM_OPEN); + SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); + sMultiMove->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 MultiMove_Function_Single(void) +{ + switch (sMultiMove->state) + { + case 0: + HideBg(0); + sMultiMove->state++; + break; + case 1: + MultiMove_ResetBg(); + StartCursorAnim(CURSOR_ANIM_BOUNCE); + sMultiMove->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + SetCursorPriorityTo1(); + LoadPalette(stdpal_get(3), 0xD0, 0x20); + ShowBg(0); + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 MultiMove_Function_ChangeSelection(void) +{ + switch (sMultiMove->state) + { + case 0: + if (!UpdateCursorPos()) + { + GetCursorBoxColumnAndRow(&sMultiMove->cursorColumn, &sMultiMove->cursorRow); + MultiMove_UpdateSelectedIcons(); + sMultiMove->toColumn = sMultiMove->cursorColumn; + sMultiMove->toRow = sMultiMove->cursorRow; + CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_GFX); + sMultiMove->state++; + } + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 MultiMove_Function_GrabSelection(void) +{ + u8 movingBg, movingMon; + + switch (sMultiMove->state) + { + case 0: + MultiMove_GetMonsFromSelection(); + MultiMove_RemoveMonsFromBox(); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; + break; + case 1: + if (!DoMonPlaceChange()) + { + StartCursorAnim(CURSOR_ANIM_FIST); + MultiMove_InitBg(0, 256, 8); + InitMultiMonPlaceChange(TRUE); + sMultiMove->state++; + } + break; + case 2: + movingBg = MultiMove_UpdateBg(); + movingMon = DoMonPlaceChange(); + if (!movingBg && !movingMon) + return FALSE; + break; + } + + return TRUE; +} + +static bool8 MultiMove_Function_MoveMons(void) +{ + u8 movingCursor = UpdateCursorPos(); + u8 movingBg = MultiMove_UpdateBg(); + + if (!movingCursor && !movingBg) + return FALSE; + else + return TRUE; +} + +static bool8 MultiMove_Function_PlaceMons(void) +{ + switch (sMultiMove->state) + { + case 0: + MultiMove_SetPlacedMonData(); + MultiMove_InitBg(0, -256, 8); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; + break; + case 1: + if (!DoMonPlaceChange() && !MultiMove_UpdateBg()) + { + MultiMove_CreatePlacedMonIcons(); + StartCursorAnim(CURSOR_ANIM_OPEN); + InitMultiMonPlaceChange(TRUE); + HideBg(0); + sMultiMove->state++; + } + break; + case 2: + if (!DoMonPlaceChange()) + { + StartCursorAnim(CURSOR_ANIM_BOUNCE); + MultiMove_ResetBg(); + sMultiMove->state++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + LoadPalette(stdpal_get(3), 0xD0, 0x20); + SetCursorPriorityTo1(); + ShowBg(0); + return FALSE; + } + break; + } + + return TRUE; +} + +bool8 MultiMove_TryMoveGroup(u8 dir) +{ + switch (dir) + { + case 0: // up + if (sMultiMove->minRow == 0) + return FALSE; + sMultiMove->minRow--; + MultiMove_InitBg(0, 1024, 6); + break; + case 1: // down + if (sMultiMove->minRow + sMultiMove->rowsTotal >= 5) + return FALSE; + sMultiMove->minRow++; + MultiMove_InitBg(0, -1024, 6); + break; + case 2: // left + if (sMultiMove->minColumn == 0) + return FALSE; + sMultiMove->minColumn--; + MultiMove_InitBg(1024, 0, 6); + break; + case 3: // right + if (sMultiMove->minColumn + sMultiMove->columnsTotal > 5) + return FALSE; + sMultiMove->minColumn++; + MultiMove_InitBg(-1024, 0, 6); + break; + } + + return TRUE; +} + +static void MultiMove_UpdateSelectedIcons(void) +{ + s16 columnChange = (abs(sMultiMove->fromColumn - sMultiMove->cursorColumn)) - (abs(sMultiMove->fromColumn - sMultiMove->toColumn)); + s16 rowChange = (abs(sMultiMove->fromRow - sMultiMove->cursorRow)) - (abs(sMultiMove->fromRow - sMultiMove->toRow)); + + if (columnChange > 0) + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); + + if (columnChange < 0) + { + MultiMove_DeselectColumn(sMultiMove->toColumn, sMultiMove->fromRow, sMultiMove->toRow); + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); + } + + if (rowChange > 0) + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); + + if (rowChange < 0) + { + MultiMove_DeselectRow(sMultiMove->toRow, sMultiMove->fromColumn, sMultiMove->toColumn); + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); + } +} + +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow) +{ + u8 tmp = minRow; + + if (minRow > maxRow) + { + minRow = maxRow; + maxRow = tmp; + } + + while (minRow <= maxRow) + MultiMove_SetIconToBg(column, minRow++); +} + +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn) +{ + u8 tmp = minColumn; + + if (minColumn > maxColumn) + { + minColumn = maxColumn; + maxColumn = tmp; + } + + while (minColumn <= maxColumn) + MultiMove_SetIconToBg(minColumn++, row); +} + +static void MultiMove_DeselectColumn(u8 column, u8 minRow, u8 maxRow) +{ + u8 tmp = minRow; + + if (minRow > maxRow) + { + minRow = maxRow; + maxRow = tmp; + } + + while (minRow <= maxRow) + MultiMove_ClearIconFromBg(column, minRow++); +} + +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) +{ + u8 tmp = minColumn; + + if (minColumn > maxColumn) + { + minColumn = maxColumn; + maxColumn = tmp; + } + + while (minColumn <= maxColumn) + MultiMove_ClearIconFromBg(minColumn++, row); +} + +static void MultiMove_SetIconToBg(u8 x, u8 y) +{ + u8 position = x + (IN_BOX_COLUMNS * y); + u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); + u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); + + if (species != SPECIES_NONE) + { + const u8 *iconGfx = GetMonIconPtr(species, personality, 1); + u8 palNum = GetValidMonIconPalIndex(species) + 8; + BlitBitmapRectToWindow4BitTo8Bit(gStorage->multiMoveWindowId, iconGfx, 0, 0, 32, 32, 24 * x, 24 * y, 32, 32, palNum); + } +} + +static void MultiMove_ClearIconFromBg(u8 x, u8 y) +{ + u8 position = x + (IN_BOX_COLUMNS * y); + u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); + + if (species != SPECIES_NONE) + FillWindowPixelRect8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0), 24 * x, 24 * y, 32, 32); +} + +static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration) +{ + sMultiMove->bgX = bgX; + sMultiMove->bgY = bgY; + sMultiMove->bgMoveSteps = duration; +} + +static u8 MultiMove_UpdateBg(void) +{ + if (sMultiMove->bgMoveSteps != 0) + { + ChangeBgX(0, sMultiMove->bgX, BG_COORD_ADD); + ChangeBgY(0, sMultiMove->bgY, BG_COORD_ADD); + sMultiMove->bgMoveSteps--; + } + + return sMultiMove->bgMoveSteps; +} + +static void MultiMove_GetMonsFromSelection(void) +{ + s32 i, j; + s32 columnCount, rowCount; + u8 boxId; + u8 monArrayId; + + sMultiMove->minColumn = min(sMultiMove->fromColumn, sMultiMove->toColumn); + sMultiMove->minRow = min(sMultiMove->fromRow, sMultiMove->toRow); + sMultiMove->columnsTotal = abs(sMultiMove->fromColumn - sMultiMove->toColumn) + 1; + sMultiMove->rowsTotal = abs(sMultiMove->fromRow - sMultiMove->toRow) + 1; + boxId = StorageGetCurrentBox(); + monArrayId = 0; + columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + struct BoxPokemon *boxMon = GetBoxedMonPtr(boxId, boxPosition); + // UB: possible null dereference +#ifdef UBFIX + if (boxMon != NULL) + sMultiMove->boxMons[monArrayId] = *boxMon; +#else + sMultiMove->boxMons[monArrayId] = *boxMon; +#endif + monArrayId++; + boxPosition++; + } + } +} + +static void MultiMove_RemoveMonsFromBox(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 boxId = StorageGetCurrentBox(); + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + DestroyBoxMonIconAtPosition(boxPosition); + ZeroBoxMonAt(boxId, boxPosition); + boxPosition++; + } + } +} + +static void MultiMove_CreatePlacedMonIcons(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 monArrayId = 0; + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + CreateBoxMonIconAtPos(boxPosition); + monArrayId++; + boxPosition++; + } + } +} + +static void MultiMove_SetPlacedMonData(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 boxId = StorageGetCurrentBox(); + u8 monArrayId = 0; + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + SetBoxMonAt(boxId, boxPosition, &sMultiMove->boxMons[monArrayId]); + boxPosition++; + monArrayId++; + } + } +} + +static void MultiMove_ResetBg(void) +{ + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); + SetBgAttribute(0, BG_ATTR_PALETTEMODE, 0); + ClearGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + CopyBgTilemapBufferToVram(0); +} + +u8 MultiMove_GetOriginPosition(void) +{ + return (IN_BOX_COLUMNS * sMultiMove->fromRow) + sMultiMove->fromColumn; +} + +bool8 MultiMove_CanPlaceSelection(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 monArrayId = 0; + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) + && GetCurrentBoxMonData(boxPosition, MON_DATA_SANITY_HAS_SPECIES)) + return FALSE; + + monArrayId++; + boxPosition++; + } + } + + return TRUE; +} + // IDs for the item icon sprite callbacks enum { ITEM_CB_WAIT_ANIM, diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_tasks.c similarity index 99% rename from src/pokemon_storage_system_3.c rename to src/pokemon_storage_system_tasks.c index b7b4eaf4f..bad54118e 100644 --- a/src/pokemon_storage_system_3.c +++ b/src/pokemon_storage_system_tasks.c @@ -1,6 +1,5 @@ #include "global.h" #include "gflib.h" -#include "box_party_pokemon_dropdown.h" #include "data.h" #include "decompress.h" #include "dynamic_placeholder_text_util.h" @@ -21,6 +20,7 @@ #include "strings.h" #include "task.h" #include "text_window.h" +#include "tilemap_util.h" #include "trig.h" #include "constants/items.h" #include "constants/help_system.h" diff --git a/src/box_party_pokemon_dropdown.c b/src/tilemap_util.c similarity index 99% rename from src/box_party_pokemon_dropdown.c rename to src/tilemap_util.c index f4cf05bd8..fe2f34866 100644 --- a/src/box_party_pokemon_dropdown.c +++ b/src/tilemap_util.c @@ -1,6 +1,6 @@ #include "global.h" #include "bg.h" -#include "box_party_pokemon_dropdown.h" +#include "tilemap_util.h" #include "malloc.h" // Handles 3 particular tilemaps ("PKMN Data" text, party menu, close box diff --git a/sym_bss.txt b/sym_bss.txt index 63a52555c..9f50fd0a7 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -16,7 +16,7 @@ .include "src/tileset_anims.o" .include "src/sound.o" .include "src/field_effect.o" - .include "src/pokemon_storage_system_8.o" + .include "src/pokemon_storage_system_misc.o" .include "src/easy_chat.o" .include "src/link_rfu_2.o" .include "src/link_rfu_3.o" diff --git a/sym_ewram.txt b/sym_ewram.txt index a3766873e..ef48abffa 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -38,11 +38,10 @@ .include "src/scanline_effect.o" .include "src/option_menu.o" .include "src/trainer_card.o" - .include "src/pokemon_storage_system_2.o" - .include "src/pokemon_storage_system_3.o" - .include "src/pokemon_storage_system_5.o" - .include "src/pokemon_storage_system_7.o" - .include "src/pokemon_storage_system_8.o" + .include "src/pokemon_storage_system_menu.o" + .include "src/pokemon_storage_system_tasks.o" + .include "src/pokemon_storage_system_data.o" + .include "src/pokemon_storage_system_misc.o" .include "src/script_movement.o" .include "src/fldeff_cut.o" .include "src/item_menu_icons.o" @@ -84,7 +83,7 @@ .include "src/save_failed_screen.o" .include "src/clear_save_data_screen.o" .include "src/new_menu_helpers.o" - .include "src/box_party_pokemon_dropdown.o" + .include "src/tilemap_util.o" .include "src/map_preview_screen.o" .include "src/link_rfu_2.o" .include "src/link_rfu_3.o" From bfd1fb2419de4a3eef9bf9c09349a38f91d9c3c9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 3 Sep 2022 14:59:18 -0400 Subject: [PATCH 053/105] MAP_NONE -> MAP_DYNAMIC, treat warp ids as strings to allow constants --- asm/macros/event.inc | 2 +- data/maps/BattleColosseum_2P/map.json | 8 +-- data/maps/BattleColosseum_4P/map.json | 16 ++--- data/maps/BirthIsland_Exterior/map.json | 2 +- data/maps/BirthIsland_Harbor/map.json | 2 +- data/maps/CeladonCity/map.json | 26 ++++---- .../maps/CeladonCity_Condominiums_1F/map.json | 12 ++-- .../maps/CeladonCity_Condominiums_2F/map.json | 8 +-- .../maps/CeladonCity_Condominiums_3F/map.json | 8 +-- .../CeladonCity_Condominiums_Roof/map.json | 6 +- .../map.json | 6 +- .../CeladonCity_DepartmentStore_1F/map.json | 16 ++--- .../CeladonCity_DepartmentStore_2F/map.json | 6 +- .../CeladonCity_DepartmentStore_3F/map.json | 6 +- .../CeladonCity_DepartmentStore_4F/map.json | 6 +- .../CeladonCity_DepartmentStore_5F/map.json | 6 +- .../map.json | 8 +-- .../CeladonCity_DepartmentStore_Roof/map.json | 2 +- data/maps/CeladonCity_GameCorner/map.json | 8 +-- .../CeladonCity_GameCorner_PrizeRoom/map.json | 6 +- data/maps/CeladonCity_Gym/map.json | 6 +- data/maps/CeladonCity_Hotel/map.json | 6 +- data/maps/CeladonCity_House1/map.json | 6 +- .../CeladonCity_PokemonCenter_1F/map.json | 8 +-- .../CeladonCity_PokemonCenter_2F/map.json | 6 +- data/maps/CeladonCity_Restaurant/map.json | 6 +- data/maps/CeruleanCave_1F/map.json | 16 ++--- data/maps/CeruleanCave_2F/map.json | 12 ++-- data/maps/CeruleanCave_B1F/map.json | 2 +- data/maps/CeruleanCity/map.json | 28 ++++---- data/maps/CeruleanCity_BikeShop/map.json | 6 +- data/maps/CeruleanCity_Gym/map.json | 6 +- data/maps/CeruleanCity_House1/map.json | 8 +-- data/maps/CeruleanCity_House2/map.json | 8 +-- data/maps/CeruleanCity_House3/map.json | 6 +- data/maps/CeruleanCity_House4/map.json | 2 +- data/maps/CeruleanCity_House5/map.json | 2 +- data/maps/CeruleanCity_Mart/map.json | 6 +- .../CeruleanCity_PokemonCenter_1F/map.json | 8 +-- .../CeruleanCity_PokemonCenter_2F/map.json | 6 +- data/maps/CinnabarIsland/map.json | 10 +-- data/maps/CinnabarIsland_Gym/map.json | 6 +- data/maps/CinnabarIsland_Mart/map.json | 6 +- .../CinnabarIsland_PokemonCenter_1F/map.json | 8 +-- .../CinnabarIsland_PokemonCenter_2F/map.json | 6 +- .../map.json | 12 ++-- .../map.json | 2 +- .../CinnabarIsland_PokemonLab_Lounge/map.json | 2 +- .../map.json | 2 +- data/maps/DiglettsCave_B1F/map.json | 4 +- data/maps/DiglettsCave_NorthEntrance/map.json | 4 +- data/maps/DiglettsCave_SouthEntrance/map.json | 4 +- data/maps/FiveIsland/map.json | 8 +-- data/maps/FiveIsland_Harbor/map.json | 2 +- data/maps/FiveIsland_House1/map.json | 2 +- data/maps/FiveIsland_House2/map.json | 2 +- .../FiveIsland_LostCave_Entrance/map.json | 4 +- data/maps/FiveIsland_LostCave_Room1/map.json | 10 +-- data/maps/FiveIsland_LostCave_Room10/map.json | 2 +- data/maps/FiveIsland_LostCave_Room11/map.json | 2 +- data/maps/FiveIsland_LostCave_Room12/map.json | 2 +- data/maps/FiveIsland_LostCave_Room13/map.json | 2 +- data/maps/FiveIsland_LostCave_Room14/map.json | 2 +- data/maps/FiveIsland_LostCave_Room2/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room3/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room4/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room5/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room6/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room7/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room8/map.json | 8 +-- data/maps/FiveIsland_LostCave_Room9/map.json | 8 +-- data/maps/FiveIsland_Meadow/map.json | 2 +- .../maps/FiveIsland_PokemonCenter_1F/map.json | 4 +- .../maps/FiveIsland_PokemonCenter_2F/map.json | 6 +- data/maps/FiveIsland_ResortGorgeous/map.json | 4 +- .../FiveIsland_ResortGorgeous_House/map.json | 2 +- data/maps/FiveIsland_RocketWarehouse/map.json | 2 +- data/maps/FourIsland/map.json | 16 ++--- data/maps/FourIsland_Harbor/map.json | 2 +- data/maps/FourIsland_House1/map.json | 2 +- data/maps/FourIsland_House2/map.json | 2 +- data/maps/FourIsland_IcefallCave_1F/map.json | 12 ++-- data/maps/FourIsland_IcefallCave_B1F/map.json | 6 +- .../maps/FourIsland_IcefallCave_Back/map.json | 2 +- .../FourIsland_IcefallCave_Entrance/map.json | 6 +- data/maps/FourIsland_LoreleisHouse/map.json | 2 +- data/maps/FourIsland_Mart/map.json | 2 +- .../maps/FourIsland_PokemonCenter_1F/map.json | 4 +- .../maps/FourIsland_PokemonCenter_2F/map.json | 6 +- data/maps/FourIsland_PokemonDayCare/map.json | 2 +- data/maps/FuchsiaCity/map.json | 22 +++---- data/maps/FuchsiaCity_Gym/map.json | 6 +- data/maps/FuchsiaCity_House1/map.json | 6 +- data/maps/FuchsiaCity_House2/map.json | 8 +-- data/maps/FuchsiaCity_House3/map.json | 2 +- data/maps/FuchsiaCity_Mart/map.json | 6 +- .../FuchsiaCity_PokemonCenter_1F/map.json | 8 +-- .../FuchsiaCity_PokemonCenter_2F/map.json | 6 +- .../FuchsiaCity_SafariZone_Entrance/map.json | 8 +-- .../FuchsiaCity_SafariZone_Office/map.json | 6 +- data/maps/FuchsiaCity_WardensHouse/map.json | 6 +- data/maps/IndigoPlateau_Exterior/map.json | 2 +- .../IndigoPlateau_PokemonCenter_1F/map.json | 6 +- .../IndigoPlateau_PokemonCenter_2F/map.json | 6 +- data/maps/LavenderTown/map.json | 12 ++-- data/maps/LavenderTown_House1/map.json | 6 +- data/maps/LavenderTown_House2/map.json | 6 +- data/maps/LavenderTown_Mart/map.json | 6 +- .../LavenderTown_PokemonCenter_1F/map.json | 8 +-- .../LavenderTown_PokemonCenter_2F/map.json | 6 +- .../map.json | 6 +- data/maps/MtEmber_Exterior/map.json | 12 ++-- data/maps/MtEmber_RubyPath_1F/map.json | 6 +- data/maps/MtEmber_RubyPath_B1F/map.json | 4 +- .../maps/MtEmber_RubyPath_B1F_Stairs/map.json | 4 +- data/maps/MtEmber_RubyPath_B2F/map.json | 4 +- .../maps/MtEmber_RubyPath_B2F_Stairs/map.json | 4 +- data/maps/MtEmber_RubyPath_B3F/map.json | 6 +- data/maps/MtEmber_RubyPath_B4F/map.json | 4 +- data/maps/MtEmber_RubyPath_B5F/map.json | 2 +- data/maps/MtEmber_Summit/map.json | 2 +- data/maps/MtEmber_SummitPath_1F/map.json | 4 +- data/maps/MtEmber_SummitPath_2F/map.json | 4 +- data/maps/MtEmber_SummitPath_3F/map.json | 4 +- data/maps/MtMoon_1F/map.json | 8 +-- data/maps/MtMoon_B1F/map.json | 16 ++--- data/maps/MtMoon_B2F/map.json | 8 +-- data/maps/NavelRock_1F/map.json | 4 +- data/maps/NavelRock_B1F/map.json | 4 +- data/maps/NavelRock_Base/map.json | 2 +- data/maps/NavelRock_BasePath_B10F/map.json | 4 +- data/maps/NavelRock_BasePath_B11F/map.json | 4 +- data/maps/NavelRock_BasePath_B1F/map.json | 4 +- data/maps/NavelRock_BasePath_B2F/map.json | 4 +- data/maps/NavelRock_BasePath_B3F/map.json | 4 +- data/maps/NavelRock_BasePath_B4F/map.json | 4 +- data/maps/NavelRock_BasePath_B5F/map.json | 4 +- data/maps/NavelRock_BasePath_B6F/map.json | 4 +- data/maps/NavelRock_BasePath_B7F/map.json | 4 +- data/maps/NavelRock_BasePath_B8F/map.json | 4 +- data/maps/NavelRock_BasePath_B9F/map.json | 4 +- data/maps/NavelRock_Exterior/map.json | 4 +- data/maps/NavelRock_Fork/map.json | 6 +- data/maps/NavelRock_Harbor/map.json | 2 +- data/maps/NavelRock_Summit/map.json | 2 +- data/maps/NavelRock_SummitPath_2F/map.json | 4 +- data/maps/NavelRock_SummitPath_3F/map.json | 4 +- data/maps/NavelRock_SummitPath_4F/map.json | 4 +- data/maps/NavelRock_SummitPath_5F/map.json | 4 +- data/maps/OneIsland/map.json | 8 +-- data/maps/OneIsland_Harbor/map.json | 2 +- data/maps/OneIsland_House1/map.json | 2 +- data/maps/OneIsland_House2/map.json | 2 +- data/maps/OneIsland_KindleRoad/map.json | 6 +- .../OneIsland_KindleRoad_EmberSpa/map.json | 2 +- data/maps/OneIsland_PokemonCenter_1F/map.json | 4 +- data/maps/OneIsland_PokemonCenter_2F/map.json | 6 +- data/maps/PalletTown/map.json | 6 +- data/maps/PalletTown_PlayersHouse_1F/map.json | 8 +-- data/maps/PalletTown_PlayersHouse_2F/map.json | 2 +- .../maps/PalletTown_ProfessorOaksLab/map.json | 6 +- data/maps/PalletTown_RivalsHouse/map.json | 6 +- data/maps/PewterCity/map.json | 14 ++-- data/maps/PewterCity_Gym/map.json | 6 +- data/maps/PewterCity_House1/map.json | 6 +- data/maps/PewterCity_House2/map.json | 6 +- data/maps/PewterCity_Mart/map.json | 6 +- data/maps/PewterCity_Museum_1F/map.json | 12 ++-- data/maps/PewterCity_Museum_2F/map.json | 2 +- .../maps/PewterCity_PokemonCenter_1F/map.json | 8 +-- .../maps/PewterCity_PokemonCenter_2F/map.json | 6 +- data/maps/PokemonLeague_AgathasRoom/map.json | 4 +- data/maps/PokemonLeague_BrunosRoom/map.json | 4 +- .../maps/PokemonLeague_ChampionsRoom/map.json | 4 +- data/maps/PokemonLeague_HallOfFame/map.json | 2 +- data/maps/PokemonLeague_LancesRoom/map.json | 4 +- data/maps/PokemonLeague_LoreleisRoom/map.json | 4 +- data/maps/PokemonMansion_1F/map.json | 20 +++--- data/maps/PokemonMansion_2F/map.json | 10 +-- data/maps/PokemonMansion_3F/map.json | 16 ++--- data/maps/PokemonMansion_B1F/map.json | 2 +- data/maps/PokemonTower_1F/map.json | 8 +-- data/maps/PokemonTower_2F/map.json | 4 +- data/maps/PokemonTower_3F/map.json | 4 +- data/maps/PokemonTower_4F/map.json | 4 +- data/maps/PokemonTower_5F/map.json | 4 +- data/maps/PokemonTower_6F/map.json | 4 +- data/maps/PokemonTower_7F/map.json | 2 +- data/maps/PowerPlant/map.json | 10 +-- data/maps/RecordCorner/map.json | 16 ++--- data/maps/RockTunnel_1F/map.json | 12 ++-- data/maps/RockTunnel_B1F/map.json | 8 +-- data/maps/RocketHideout_B1F/map.json | 12 ++-- data/maps/RocketHideout_B2F/map.json | 10 +-- data/maps/RocketHideout_B3F/map.json | 4 +- data/maps/RocketHideout_B4F/map.json | 6 +- data/maps/RocketHideout_Elevator/map.json | 8 +-- data/maps/Route10/map.json | 10 +-- data/maps/Route10_PokemonCenter_1F/map.json | 8 +-- data/maps/Route10_PokemonCenter_2F/map.json | 6 +- data/maps/Route11/map.json | 6 +- data/maps/Route11_EastEntrance_1F/map.json | 10 +-- data/maps/Route11_EastEntrance_2F/map.json | 2 +- data/maps/Route12/map.json | 8 +-- data/maps/Route12_FishingHouse/map.json | 6 +- data/maps/Route12_NorthEntrance_1F/map.json | 10 +-- data/maps/Route12_NorthEntrance_2F/map.json | 2 +- data/maps/Route15/map.json | 4 +- data/maps/Route15_WestEntrance_1F/map.json | 10 +-- data/maps/Route15_WestEntrance_2F/map.json | 2 +- data/maps/Route16/map.json | 10 +-- data/maps/Route16_House/map.json | 6 +- data/maps/Route16_NorthEntrance_1F/map.json | 10 +-- data/maps/Route16_NorthEntrance_2F/map.json | 2 +- data/maps/Route18/map.json | 4 +- data/maps/Route18_EastEntrance_1F/map.json | 6 +- data/maps/Route18_EastEntrance_2F/map.json | 2 +- data/maps/Route2/map.json | 20 +++--- data/maps/Route20/map.json | 4 +- data/maps/Route22/map.json | 4 +- data/maps/Route22_NorthEntrance/map.json | 8 +-- data/maps/Route23/map.json | 8 +-- data/maps/Route25/map.json | 2 +- data/maps/Route25_SeaCottage/map.json | 6 +- data/maps/Route2_EastBuilding/map.json | 8 +-- data/maps/Route2_House/map.json | 6 +- .../map.json | 8 +-- .../map.json | 8 +-- data/maps/Route4/map.json | 6 +- data/maps/Route4_PokemonCenter_1F/map.json | 8 +-- data/maps/Route4_PokemonCenter_2F/map.json | 6 +- data/maps/Route5/map.json | 8 +-- data/maps/Route5_PokemonDayCare/map.json | 6 +- data/maps/Route5_SouthEntrance/map.json | 8 +-- data/maps/Route6/map.json | 6 +- data/maps/Route6_NorthEntrance/map.json | 8 +-- data/maps/Route7/map.json | 4 +- data/maps/Route7_EastEntrance/map.json | 8 +-- data/maps/Route8/map.json | 4 +- data/maps/Route8_WestEntrance/map.json | 8 +-- data/maps/SSAnne_1F_Corridor/map.json | 26 ++++---- data/maps/SSAnne_1F_Room1/map.json | 2 +- data/maps/SSAnne_1F_Room2/map.json | 2 +- data/maps/SSAnne_1F_Room3/map.json | 2 +- data/maps/SSAnne_1F_Room4/map.json | 2 +- data/maps/SSAnne_1F_Room5/map.json | 2 +- data/maps/SSAnne_1F_Room6/map.json | 2 +- data/maps/SSAnne_1F_Room7/map.json | 2 +- data/maps/SSAnne_2F_Corridor/map.json | 18 ++--- data/maps/SSAnne_2F_Room1/map.json | 2 +- data/maps/SSAnne_2F_Room2/map.json | 2 +- data/maps/SSAnne_2F_Room3/map.json | 2 +- data/maps/SSAnne_2F_Room4/map.json | 2 +- data/maps/SSAnne_2F_Room5/map.json | 2 +- data/maps/SSAnne_2F_Room6/map.json | 2 +- data/maps/SSAnne_3F_Corridor/map.json | 6 +- data/maps/SSAnne_B1F_Corridor/map.json | 12 ++-- data/maps/SSAnne_B1F_Room1/map.json | 2 +- data/maps/SSAnne_B1F_Room2/map.json | 2 +- data/maps/SSAnne_B1F_Room3/map.json | 2 +- data/maps/SSAnne_B1F_Room4/map.json | 2 +- data/maps/SSAnne_B1F_Room5/map.json | 2 +- data/maps/SSAnne_CaptainsOffice/map.json | 2 +- data/maps/SSAnne_Deck/map.json | 4 +- data/maps/SSAnne_Exterior/map.json | 10 +-- data/maps/SSAnne_Kitchen/map.json | 2 +- data/maps/SafariZone_Center/map.json | 26 ++++---- .../maps/SafariZone_Center_RestHouse/map.json | 6 +- data/maps/SafariZone_East/map.json | 14 ++-- data/maps/SafariZone_East_RestHouse/map.json | 6 +- data/maps/SafariZone_North/map.json | 26 ++++---- data/maps/SafariZone_North_RestHouse/map.json | 6 +- data/maps/SafariZone_SecretHouse/map.json | 6 +- data/maps/SafariZone_West/map.json | 22 +++---- data/maps/SafariZone_West_RestHouse/map.json | 6 +- data/maps/SaffronCity/map.json | 30 ++++----- .../SaffronCity_CopycatsHouse_1F/map.json | 8 +-- .../SaffronCity_CopycatsHouse_2F/map.json | 2 +- data/maps/SaffronCity_Dojo/map.json | 6 +- data/maps/SaffronCity_Gym/map.json | 66 +++++++++---------- data/maps/SaffronCity_House/map.json | 6 +- data/maps/SaffronCity_Mart/map.json | 6 +- .../maps/SaffronCity_MrPsychicsHouse/map.json | 6 +- .../SaffronCity_PokemonCenter_1F/map.json | 8 +-- .../SaffronCity_PokemonCenter_2F/map.json | 6 +- .../map.json | 2 +- data/maps/SeafoamIslands_1F/map.json | 14 ++-- data/maps/SeafoamIslands_B1F/map.json | 22 +++---- data/maps/SeafoamIslands_B2F/map.json | 22 +++---- data/maps/SeafoamIslands_B3F/map.json | 18 ++--- data/maps/SeafoamIslands_B4F/map.json | 8 +-- data/maps/SevenIsland/map.json | 8 +-- data/maps/SevenIsland_Harbor/map.json | 2 +- data/maps/SevenIsland_House_Room1/map.json | 4 +- data/maps/SevenIsland_House_Room2/map.json | 2 +- data/maps/SevenIsland_Mart/map.json | 2 +- .../SevenIsland_PokemonCenter_1F/map.json | 4 +- .../SevenIsland_PokemonCenter_2F/map.json | 6 +- data/maps/SevenIsland_SevaultCanyon/map.json | 4 +- .../SevenIsland_SevaultCanyon_House/map.json | 2 +- .../map.json | 2 +- data/maps/SevenIsland_TanobyRuins/map.json | 14 ++-- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- data/maps/SevenIsland_TrainerTower/map.json | 2 +- data/maps/SilphCo_10F/map.json | 12 ++-- data/maps/SilphCo_11F/map.json | 6 +- data/maps/SilphCo_1F/map.json | 10 +-- data/maps/SilphCo_2F/map.json | 14 ++-- data/maps/SilphCo_3F/map.json | 20 +++--- data/maps/SilphCo_4F/map.json | 14 ++-- data/maps/SilphCo_5F/map.json | 14 ++-- data/maps/SilphCo_6F/map.json | 10 +-- data/maps/SilphCo_7F/map.json | 12 ++-- data/maps/SilphCo_8F/map.json | 14 ++-- data/maps/SilphCo_9F/map.json | 10 +-- data/maps/SilphCo_Elevator/map.json | 4 +- data/maps/SixIsland/map.json | 8 +-- data/maps/SixIsland_AlteringCave/map.json | 2 +- data/maps/SixIsland_DottedHole_1F/map.json | 8 +-- data/maps/SixIsland_DottedHole_B1F/map.json | 10 +-- data/maps/SixIsland_DottedHole_B2F/map.json | 10 +-- data/maps/SixIsland_DottedHole_B3F/map.json | 10 +-- data/maps/SixIsland_DottedHole_B4F/map.json | 10 +-- .../map.json | 4 +- data/maps/SixIsland_GreenPath/map.json | 8 +-- data/maps/SixIsland_Harbor/map.json | 2 +- data/maps/SixIsland_House/map.json | 2 +- data/maps/SixIsland_Mart/map.json | 2 +- data/maps/SixIsland_OutcastIsland/map.json | 2 +- data/maps/SixIsland_PatternBush/map.json | 12 ++-- data/maps/SixIsland_PokemonCenter_1F/map.json | 4 +- data/maps/SixIsland_PokemonCenter_2F/map.json | 6 +- data/maps/SixIsland_RuinValley/map.json | 2 +- data/maps/SixIsland_WaterPath/map.json | 4 +- data/maps/SixIsland_WaterPath_House1/map.json | 2 +- data/maps/SixIsland_WaterPath_House2/map.json | 2 +- data/maps/ThreeIsland/map.json | 14 ++-- data/maps/ThreeIsland_BerryForest/map.json | 6 +- data/maps/ThreeIsland_BondBridge/map.json | 4 +- .../maps/ThreeIsland_DunsparceTunnel/map.json | 4 +- data/maps/ThreeIsland_Harbor/map.json | 2 +- data/maps/ThreeIsland_House1/map.json | 2 +- data/maps/ThreeIsland_House2/map.json | 2 +- data/maps/ThreeIsland_House3/map.json | 2 +- data/maps/ThreeIsland_House4/map.json | 2 +- data/maps/ThreeIsland_House5/map.json | 2 +- data/maps/ThreeIsland_Mart/map.json | 2 +- .../ThreeIsland_PokemonCenter_1F/map.json | 4 +- .../ThreeIsland_PokemonCenter_2F/map.json | 6 +- data/maps/ThreeIsland_Port/map.json | 6 +- data/maps/TradeCenter/map.json | 8 +-- data/maps/TrainerTower_1F/map.json | 4 +- data/maps/TrainerTower_2F/map.json | 6 +- data/maps/TrainerTower_3F/map.json | 6 +- data/maps/TrainerTower_4F/map.json | 6 +- data/maps/TrainerTower_5F/map.json | 6 +- data/maps/TrainerTower_6F/map.json | 6 +- data/maps/TrainerTower_7F/map.json | 6 +- data/maps/TrainerTower_8F/map.json | 6 +- data/maps/TrainerTower_Elevator/map.json | 4 +- data/maps/TrainerTower_Lobby/map.json | 6 +- data/maps/TrainerTower_Roof/map.json | 4 +- data/maps/TwoIsland/map.json | 8 +-- data/maps/TwoIsland_CapeBrink/map.json | 2 +- data/maps/TwoIsland_CapeBrink_House/map.json | 2 +- data/maps/TwoIsland_Harbor/map.json | 2 +- data/maps/TwoIsland_House/map.json | 2 +- data/maps/TwoIsland_JoyfulGameCorner/map.json | 2 +- data/maps/TwoIsland_PokemonCenter_1F/map.json | 4 +- data/maps/TwoIsland_PokemonCenter_2F/map.json | 6 +- .../UndergroundPath_EastEntrance/map.json | 8 +-- .../UndergroundPath_EastWestTunnel/map.json | 4 +- .../UndergroundPath_NorthEntrance/map.json | 8 +-- .../UndergroundPath_NorthSouthTunnel/map.json | 4 +- .../UndergroundPath_SouthEntrance/map.json | 8 +-- .../UndergroundPath_WestEntrance/map.json | 8 +-- data/maps/UnionRoom/map.json | 4 +- data/maps/VermilionCity/map.json | 20 +++--- data/maps/VermilionCity_Gym/map.json | 6 +- data/maps/VermilionCity_House1/map.json | 6 +- data/maps/VermilionCity_House2/map.json | 6 +- data/maps/VermilionCity_House3/map.json | 6 +- data/maps/VermilionCity_Mart/map.json | 6 +- .../VermilionCity_PokemonCenter_1F/map.json | 8 +-- .../VermilionCity_PokemonCenter_2F/map.json | 6 +- .../VermilionCity_PokemonFanClub/map.json | 6 +- data/maps/VictoryRoad_1F/map.json | 4 +- data/maps/VictoryRoad_2F/map.json | 18 ++--- data/maps/VictoryRoad_3F/map.json | 10 +-- data/maps/ViridianCity/map.json | 10 +-- data/maps/ViridianCity_Gym/map.json | 6 +- data/maps/ViridianCity_House/map.json | 6 +- data/maps/ViridianCity_Mart/map.json | 6 +- .../ViridianCity_PokemonCenter_1F/map.json | 8 +-- .../ViridianCity_PokemonCenter_2F/map.json | 6 +- data/maps/ViridianCity_School/map.json | 6 +- data/maps/ViridianForest/map.json | 12 ++-- include/constants/maps.h | 9 ++- src/field_control_avatar.c | 4 +- tools/mapjson/mapjson.cpp | 4 +- 406 files changed, 1326 insertions(+), 1319 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 50115b361..612d45efa 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -476,7 +476,7 @@ formatwarp \map, \a, \b, \c .endm - @ Sets the dynamic warp destination. Warps with a destination map of MAP_NONE will target this destination. + @ Sets the dynamic warp destination. Warps with a destination map of MAP_DYNAMIC will target this destination. @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setdynamicwarp map:req, a, b, c diff --git a/data/maps/BattleColosseum_2P/map.json b/data/maps/BattleColosseum_2P/map.json index 04b0103f4..1a9f7fd6a 100644 --- a/data/maps/BattleColosseum_2P/map.json +++ b/data/maps/BattleColosseum_2P/map.json @@ -35,15 +35,15 @@ "x": 6, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 7, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/BattleColosseum_4P/map.json b/data/maps/BattleColosseum_4P/map.json index 3a1be5e7d..82103f13d 100644 --- a/data/maps/BattleColosseum_4P/map.json +++ b/data/maps/BattleColosseum_4P/map.json @@ -20,29 +20,29 @@ "x": 5, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 6, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 7, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 8, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/BirthIsland_Exterior/map.json b/data/maps/BirthIsland_Exterior/map.json index dc240a5a6..255ca4645 100644 --- a/data/maps/BirthIsland_Exterior/map.json +++ b/data/maps/BirthIsland_Exterior/map.json @@ -50,7 +50,7 @@ "y": 24, "elevation": 3, "dest_map": "MAP_BIRTH_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/BirthIsland_Harbor/map.json b/data/maps/BirthIsland_Harbor/map.json index c40a0a509..d26338c28 100644 --- a/data/maps/BirthIsland_Harbor/map.json +++ b/data/maps/BirthIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_BIRTH_ISLAND_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity/map.json b/data/maps/CeladonCity/map.json index fcc532d77..a6a2a5935 100644 --- a/data/maps/CeladonCity/map.json +++ b/data/maps/CeladonCity/map.json @@ -237,91 +237,91 @@ "y": 21, "elevation": 0, "dest_map": "MAP_CELADON_CITY_GAME_CORNER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 14, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 14, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 30, "y": 11, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 48, "y": 11, "elevation": 0, "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 39, "y": 20, "elevation": 0, "dest_map": "MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 30, "elevation": 0, "dest_map": "MAP_CELADON_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 37, "y": 29, "elevation": 0, "dest_map": "MAP_CELADON_CITY_RESTAURANT", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 41, "y": 29, "elevation": 0, "dest_map": "MAP_CELADON_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 49, "y": 29, "elevation": 0, "dest_map": "MAP_CELADON_CITY_HOTEL", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 5, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 30, "y": 4, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 31, "y": 5, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_1F/map.json b/data/maps/CeladonCity_Condominiums_1F/map.json index 0ce266087..f85c98135 100644 --- a/data/maps/CeladonCity_Condominiums_1F/map.json +++ b/data/maps/CeladonCity_Condominiums_1F/map.json @@ -78,42 +78,42 @@ "y": 19, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 12, "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 13, "y": 19, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 1, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 11 + "dest_warp_id": "11" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_2F/map.json b/data/maps/CeladonCity_Condominiums_2F/map.json index ba3c67dd8..30dbdcacd 100644 --- a/data/maps/CeladonCity_Condominiums_2F/map.json +++ b/data/maps/CeladonCity_Condominiums_2F/map.json @@ -50,28 +50,28 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 12, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_3F/map.json b/data/maps/CeladonCity_Condominiums_3F/map.json index 7d39a62cc..7b62fae53 100644 --- a/data/maps/CeladonCity_Condominiums_3F/map.json +++ b/data/maps/CeladonCity_Condominiums_3F/map.json @@ -78,28 +78,28 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_Roof/map.json b/data/maps/CeladonCity_Condominiums_Roof/map.json index 7492b8718..ab42bbd0e 100644 --- a/data/maps/CeladonCity_Condominiums_Roof/map.json +++ b/data/maps/CeladonCity_Condominiums_Roof/map.json @@ -21,21 +21,21 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 2, "y": 12, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json index 3efe6a4d6..26d0871ed 100644 --- a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json @@ -50,21 +50,21 @@ "y": 8, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 8, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_1F/map.json b/data/maps/CeladonCity_DepartmentStore_1F/map.json index 970ff3e58..85e4641bf 100644 --- a/data/maps/CeladonCity_DepartmentStore_1F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_1F/map.json @@ -36,56 +36,56 @@ "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 14, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 10, "y": 14, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 11, "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_2F/map.json b/data/maps/CeladonCity_DepartmentStore_2F/map.json index a087c291c..f97e35bfd 100644 --- a/data/maps/CeladonCity_DepartmentStore_2F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_2F/map.json @@ -78,21 +78,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 9, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_3F/map.json b/data/maps/CeladonCity_DepartmentStore_3F/map.json index b5d458946..4fa3b75b3 100644 --- a/data/maps/CeladonCity_DepartmentStore_3F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_3F/map.json @@ -92,21 +92,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_4F/map.json b/data/maps/CeladonCity_DepartmentStore_4F/map.json index bc8b5737a..deedb2485 100644 --- a/data/maps/CeladonCity_DepartmentStore_4F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_4F/map.json @@ -64,21 +64,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_5F/map.json b/data/maps/CeladonCity_DepartmentStore_5F/map.json index 14248d0ec..27de2a596 100644 --- a/data/maps/CeladonCity_DepartmentStore_5F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_5F/map.json @@ -78,21 +78,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator/map.json b/data/maps/CeladonCity_DepartmentStore_Elevator/map.json index a863045a7..7805bb3f1 100644 --- a/data/maps/CeladonCity_DepartmentStore_Elevator/map.json +++ b/data/maps/CeladonCity_DepartmentStore_Elevator/map.json @@ -20,15 +20,15 @@ "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 2, "y": 6, "elevation": 0, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/map.json b/data/maps/CeladonCity_DepartmentStore_Roof/map.json index a0b948294..7d8881bce 100644 --- a/data/maps/CeladonCity_DepartmentStore_Roof/map.json +++ b/data/maps/CeladonCity_DepartmentStore_Roof/map.json @@ -50,7 +50,7 @@ "y": 6, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_GameCorner/map.json b/data/maps/CeladonCity_GameCorner/map.json index 58baa4145..f17531201 100644 --- a/data/maps/CeladonCity_GameCorner/map.json +++ b/data/maps/CeladonCity_GameCorner/map.json @@ -176,28 +176,28 @@ "y": 13, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 13, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 13, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json index 3c39900ed..7efe5a838 100644 --- a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json @@ -92,21 +92,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Gym/map.json b/data/maps/CeladonCity_Gym/map.json index e73b79f7b..5db7ad035 100644 --- a/data/maps/CeladonCity_Gym/map.json +++ b/data/maps/CeladonCity_Gym/map.json @@ -176,21 +176,21 @@ "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 6, "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 7, "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Hotel/map.json b/data/maps/CeladonCity_Hotel/map.json index 9ec22dbab..70c59e155 100644 --- a/data/maps/CeladonCity_Hotel/map.json +++ b/data/maps/CeladonCity_Hotel/map.json @@ -78,21 +78,21 @@ "y": 10, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 4, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 10, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_House1/map.json b/data/maps/CeladonCity_House1/map.json index 4c0b51f05..db88aa3ed 100644 --- a/data/maps/CeladonCity_House1/map.json +++ b/data/maps/CeladonCity_House1/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_PokemonCenter_1F/map.json b/data/maps/CeladonCity_PokemonCenter_1F/map.json index 9283cbe47..6cf24c45c 100644 --- a/data/maps/CeladonCity_PokemonCenter_1F/map.json +++ b/data/maps/CeladonCity_PokemonCenter_1F/map.json @@ -78,28 +78,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_PokemonCenter_2F/map.json b/data/maps/CeladonCity_PokemonCenter_2F/map.json index 84d0405bc..91313423e 100644 --- a/data/maps/CeladonCity_PokemonCenter_2F/map.json +++ b/data/maps/CeladonCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Restaurant/map.json b/data/maps/CeladonCity_Restaurant/map.json index ef5f6e4ed..3488bf4fb 100644 --- a/data/maps/CeladonCity_Restaurant/map.json +++ b/data/maps/CeladonCity_Restaurant/map.json @@ -92,21 +92,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 6, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 7, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/CeruleanCave_1F/map.json b/data/maps/CeruleanCave_1F/map.json index 41aa39ad7..de5b0a516 100644 --- a/data/maps/CeruleanCave_1F/map.json +++ b/data/maps/CeruleanCave_1F/map.json @@ -148,56 +148,56 @@ "y": 21, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 34, "y": 2, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 15, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 30, "y": 10, "elevation": 4, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 24, "y": 11, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 2, "y": 4, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CeruleanCave_2F/map.json b/data/maps/CeruleanCave_2F/map.json index db465862c..fb800f0dc 100644 --- a/data/maps/CeruleanCave_2F/map.json +++ b/data/maps/CeruleanCave_2F/map.json @@ -204,42 +204,42 @@ "y": 4, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 4, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 14, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 26, "y": 9, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 23, "y": 10, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 6, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/CeruleanCave_B1F/map.json b/data/maps/CeruleanCave_B1F/map.json index 498c360c8..d155ea0b3 100644 --- a/data/maps/CeruleanCave_B1F/map.json +++ b/data/maps/CeruleanCave_B1F/map.json @@ -190,7 +190,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity/map.json b/data/maps/CeruleanCity/map.json index 1618eacea..836696f94 100644 --- a/data/maps/CeruleanCity/map.json +++ b/data/maps/CeruleanCity/map.json @@ -205,98 +205,98 @@ "y": 11, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 11, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 17, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE3", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 19, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 21, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 28, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 28, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 12, "elevation": 0, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_HOUSE1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 9, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 28, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 28, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 11, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE5", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/CeruleanCity_BikeShop/map.json b/data/maps/CeruleanCity_BikeShop/map.json index b614cbd6b..3cf55978f 100644 --- a/data/maps/CeruleanCity_BikeShop/map.json +++ b/data/maps/CeruleanCity_BikeShop/map.json @@ -64,21 +64,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 6, "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_Gym/map.json b/data/maps/CeruleanCity_Gym/map.json index e1f673ced..8bb783973 100644 --- a/data/maps/CeruleanCity_Gym/map.json +++ b/data/maps/CeruleanCity_Gym/map.json @@ -78,21 +78,21 @@ "y": 18, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 18, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 9, "y": 18, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House1/map.json b/data/maps/CeruleanCity_House1/map.json index e8a336444..7082d2aa1 100644 --- a/data/maps/CeruleanCity_House1/map.json +++ b/data/maps/CeruleanCity_House1/map.json @@ -36,28 +36,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 1, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House2/map.json b/data/maps/CeruleanCity_House2/map.json index 4aaf6d44a..ed5913862 100644 --- a/data/maps/CeruleanCity_House2/map.json +++ b/data/maps/CeruleanCity_House2/map.json @@ -50,28 +50,28 @@ "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 7, "elevation": 1, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 1, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House3/map.json b/data/maps/CeruleanCity_House3/map.json index f26980765..7e9abe77f 100644 --- a/data/maps/CeruleanCity_House3/map.json +++ b/data/maps/CeruleanCity_House3/map.json @@ -50,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House4/map.json b/data/maps/CeruleanCity_House4/map.json index 63c7b16e0..48fad54a7 100644 --- a/data/maps/CeruleanCity_House4/map.json +++ b/data/maps/CeruleanCity_House4/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House5/map.json b/data/maps/CeruleanCity_House5/map.json index 314a11123..b56b2de33 100644 --- a/data/maps/CeruleanCity_House5/map.json +++ b/data/maps/CeruleanCity_House5/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 13 + "dest_warp_id": "13" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_Mart/map.json b/data/maps/CeruleanCity_Mart/map.json index fde948c8a..62860b2bc 100644 --- a/data/maps/CeruleanCity_Mart/map.json +++ b/data/maps/CeruleanCity_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_PokemonCenter_1F/map.json b/data/maps/CeruleanCity_PokemonCenter_1F/map.json index bf92db5b5..074444248 100644 --- a/data/maps/CeruleanCity_PokemonCenter_1F/map.json +++ b/data/maps/CeruleanCity_PokemonCenter_1F/map.json @@ -120,28 +120,28 @@ "y": 8, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 8, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 8, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_PokemonCenter_2F/map.json b/data/maps/CeruleanCity_PokemonCenter_2F/map.json index 142d3b21c..a8a570130 100644 --- a/data/maps/CeruleanCity_PokemonCenter_2F/map.json +++ b/data/maps/CeruleanCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland/map.json b/data/maps/CinnabarIsland/map.json index de15e8e78..09e909d0c 100644 --- a/data/maps/CinnabarIsland/map.json +++ b/data/maps/CinnabarIsland/map.json @@ -89,35 +89,35 @@ "y": 3, "elevation": 0, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 4, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 9, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 11, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 11, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/CinnabarIsland_Gym/map.json b/data/maps/CinnabarIsland_Gym/map.json index 77973ab9f..0a1fa5e2e 100644 --- a/data/maps/CinnabarIsland_Gym/map.json +++ b/data/maps/CinnabarIsland_Gym/map.json @@ -148,21 +148,21 @@ "y": 23, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 23, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 26, "y": 23, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_Mart/map.json b/data/maps/CinnabarIsland_Mart/map.json index f6d0106eb..cd11131ca 100644 --- a/data/maps/CinnabarIsland_Mart/map.json +++ b/data/maps/CinnabarIsland_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json index 69fe81200..9491f5f43 100644 --- a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json +++ b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json @@ -120,28 +120,28 @@ "y": 8, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 8, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json index 7c7647dbf..637d748d8 100644 --- a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json +++ b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json index ca87e241b..c7a013141 100644 --- a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json @@ -36,42 +36,42 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 5, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 5, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json index f266abb85..2730a98a1 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json @@ -50,7 +50,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json index 0eb411782..28f1e04ae 100644 --- a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json @@ -64,7 +64,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json index 4ed0d75ca..415475d3c 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json @@ -50,7 +50,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/DiglettsCave_B1F/map.json b/data/maps/DiglettsCave_B1F/map.json index a95991fad..081e09b45 100644 --- a/data/maps/DiglettsCave_B1F/map.json +++ b/data/maps/DiglettsCave_B1F/map.json @@ -21,14 +21,14 @@ "y": 3, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 82, "y": 71, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/DiglettsCave_NorthEntrance/map.json b/data/maps/DiglettsCave_NorthEntrance/map.json index b330b8eac..8c3705955 100644 --- a/data/maps/DiglettsCave_NorthEntrance/map.json +++ b/data/maps/DiglettsCave_NorthEntrance/map.json @@ -36,14 +36,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/DiglettsCave_SouthEntrance/map.json b/data/maps/DiglettsCave_SouthEntrance/map.json index daa426fc2..c1758eeae 100644 --- a/data/maps/DiglettsCave_SouthEntrance/map.json +++ b/data/maps/DiglettsCave_SouthEntrance/map.json @@ -36,14 +36,14 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 4, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland/map.json b/data/maps/FiveIsland/map.json index 088394782..2da00d1c3 100644 --- a/data/maps/FiveIsland/map.json +++ b/data/maps/FiveIsland/map.json @@ -69,28 +69,28 @@ "y": 14, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 6, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 6, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 9, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_Harbor/map.json b/data/maps/FiveIsland_Harbor/map.json index 4ff5f5249..5a290ddfb 100644 --- a/data/maps/FiveIsland_Harbor/map.json +++ b/data/maps/FiveIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_House1/map.json b/data/maps/FiveIsland_House1/map.json index ad10095dd..6c2d5b9bf 100644 --- a/data/maps/FiveIsland_House1/map.json +++ b/data/maps/FiveIsland_House1/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_House2/map.json b/data/maps/FiveIsland_House2/map.json index 6003998f6..e065f4771 100644 --- a/data/maps/FiveIsland_House2/map.json +++ b/data/maps/FiveIsland_House2/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Entrance/map.json b/data/maps/FiveIsland_LostCave_Entrance/map.json index d91c86b79..4e607722d 100644 --- a/data/maps/FiveIsland_LostCave_Entrance/map.json +++ b/data/maps/FiveIsland_LostCave_Entrance/map.json @@ -21,14 +21,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room1/map.json b/data/maps/FiveIsland_LostCave_Room1/map.json index 7f7d06cee..da449b0ad 100644 --- a/data/maps/FiveIsland_LostCave_Room1/map.json +++ b/data/maps/FiveIsland_LostCave_Room1/map.json @@ -36,35 +36,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room10/map.json b/data/maps/FiveIsland_LostCave_Room10/map.json index f5eaeed87..d7b55d659 100644 --- a/data/maps/FiveIsland_LostCave_Room10/map.json +++ b/data/maps/FiveIsland_LostCave_Room10/map.json @@ -50,7 +50,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room11/map.json b/data/maps/FiveIsland_LostCave_Room11/map.json index 0c018195f..622087adf 100644 --- a/data/maps/FiveIsland_LostCave_Room11/map.json +++ b/data/maps/FiveIsland_LostCave_Room11/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room12/map.json b/data/maps/FiveIsland_LostCave_Room12/map.json index 67adcdd17..8d4ef0a00 100644 --- a/data/maps/FiveIsland_LostCave_Room12/map.json +++ b/data/maps/FiveIsland_LostCave_Room12/map.json @@ -36,7 +36,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room13/map.json b/data/maps/FiveIsland_LostCave_Room13/map.json index f21ac95fc..593bb763c 100644 --- a/data/maps/FiveIsland_LostCave_Room13/map.json +++ b/data/maps/FiveIsland_LostCave_Room13/map.json @@ -36,7 +36,7 @@ "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room14/map.json b/data/maps/FiveIsland_LostCave_Room14/map.json index 5607e08e8..9510f3d3f 100644 --- a/data/maps/FiveIsland_LostCave_Room14/map.json +++ b/data/maps/FiveIsland_LostCave_Room14/map.json @@ -36,7 +36,7 @@ "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room2/map.json b/data/maps/FiveIsland_LostCave_Room2/map.json index d1a5ff27d..e549c4f42 100644 --- a/data/maps/FiveIsland_LostCave_Room2/map.json +++ b/data/maps/FiveIsland_LostCave_Room2/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room3/map.json b/data/maps/FiveIsland_LostCave_Room3/map.json index 97c46a1dd..a8fe5ef25 100644 --- a/data/maps/FiveIsland_LostCave_Room3/map.json +++ b/data/maps/FiveIsland_LostCave_Room3/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room4/map.json b/data/maps/FiveIsland_LostCave_Room4/map.json index 0489a8b11..8547d0586 100644 --- a/data/maps/FiveIsland_LostCave_Room4/map.json +++ b/data/maps/FiveIsland_LostCave_Room4/map.json @@ -36,28 +36,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room5/map.json b/data/maps/FiveIsland_LostCave_Room5/map.json index 099d76722..4b3cf3b80 100644 --- a/data/maps/FiveIsland_LostCave_Room5/map.json +++ b/data/maps/FiveIsland_LostCave_Room5/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room6/map.json b/data/maps/FiveIsland_LostCave_Room6/map.json index c96ab57f7..83c0a0a6f 100644 --- a/data/maps/FiveIsland_LostCave_Room6/map.json +++ b/data/maps/FiveIsland_LostCave_Room6/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room7/map.json b/data/maps/FiveIsland_LostCave_Room7/map.json index 91f787589..51916314c 100644 --- a/data/maps/FiveIsland_LostCave_Room7/map.json +++ b/data/maps/FiveIsland_LostCave_Room7/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room8/map.json b/data/maps/FiveIsland_LostCave_Room8/map.json index 243b3fed6..869de172b 100644 --- a/data/maps/FiveIsland_LostCave_Room8/map.json +++ b/data/maps/FiveIsland_LostCave_Room8/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room9/map.json b/data/maps/FiveIsland_LostCave_Room9/map.json index b2bb357d8..4f90d61b0 100644 --- a/data/maps/FiveIsland_LostCave_Room9/map.json +++ b/data/maps/FiveIsland_LostCave_Room9/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_Meadow/map.json b/data/maps/FiveIsland_Meadow/map.json index d9f9de9b8..b543265d1 100644 --- a/data/maps/FiveIsland_Meadow/map.json +++ b/data/maps/FiveIsland_Meadow/map.json @@ -131,7 +131,7 @@ "y": 21, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_ROCKET_WAREHOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_PokemonCenter_1F/map.json b/data/maps/FiveIsland_PokemonCenter_1F/map.json index b97c5f124..7d8d75de3 100644 --- a/data/maps/FiveIsland_PokemonCenter_1F/map.json +++ b/data/maps/FiveIsland_PokemonCenter_1F/map.json @@ -92,14 +92,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_PokemonCenter_2F/map.json b/data/maps/FiveIsland_PokemonCenter_2F/map.json index 415be644e..2122e04d1 100644 --- a/data/maps/FiveIsland_PokemonCenter_2F/map.json +++ b/data/maps/FiveIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_ResortGorgeous/map.json b/data/maps/FiveIsland_ResortGorgeous/map.json index c86041b08..a23843293 100644 --- a/data/maps/FiveIsland_ResortGorgeous/map.json +++ b/data/maps/FiveIsland_ResortGorgeous/map.json @@ -140,14 +140,14 @@ "y": 13, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 39, "y": 8, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_ResortGorgeous_House/map.json b/data/maps/FiveIsland_ResortGorgeous_House/map.json index 59f076913..bec5ba745 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/map.json +++ b/data/maps/FiveIsland_ResortGorgeous_House/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_RocketWarehouse/map.json b/data/maps/FiveIsland_RocketWarehouse/map.json index 08f53138b..81c2fc436 100644 --- a/data/maps/FiveIsland_RocketWarehouse/map.json +++ b/data/maps/FiveIsland_RocketWarehouse/map.json @@ -162,7 +162,7 @@ "y": 25, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_MEADOW", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json index 13eab3339..f986e9868 100644 --- a/data/maps/FourIsland/map.json +++ b/data/maps/FourIsland/map.json @@ -190,56 +190,56 @@ "y": 20, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 13, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_POKEMON_DAY_CARE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 14, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 38, "y": 12, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 33, "y": 23, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_LORELEIS_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 26, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 28, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 26, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_Harbor/map.json b/data/maps/FourIsland_Harbor/map.json index ad551aef5..5a9432afd 100644 --- a/data/maps/FourIsland_Harbor/map.json +++ b/data/maps/FourIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/FourIsland_House1/map.json b/data/maps/FourIsland_House1/map.json index fe8f822d3..d84c882d9 100644 --- a/data/maps/FourIsland_House1/map.json +++ b/data/maps/FourIsland_House1/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FourIsland_House2/map.json b/data/maps/FourIsland_House2/map.json index 084eec236..70e18a4c3 100644 --- a/data/maps/FourIsland_House2/map.json +++ b/data/maps/FourIsland_House2/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/FourIsland_IcefallCave_1F/map.json b/data/maps/FourIsland_IcefallCave_1F/map.json index 7358bea0f..c0fe62b24 100644 --- a/data/maps/FourIsland_IcefallCave_1F/map.json +++ b/data/maps/FourIsland_IcefallCave_1F/map.json @@ -50,42 +50,42 @@ "y": 17, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 8, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 12, "y": 12, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 3, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 16, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 6, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_IcefallCave_B1F/map.json b/data/maps/FourIsland_IcefallCave_B1F/map.json index addbe2579..d9fdf61df 100644 --- a/data/maps/FourIsland_IcefallCave_B1F/map.json +++ b/data/maps/FourIsland_IcefallCave_B1F/map.json @@ -50,21 +50,21 @@ "y": 12, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 12, "y": 3, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 15, "y": 16, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FourIsland_IcefallCave_Back/map.json b/data/maps/FourIsland_IcefallCave_Back/map.json index 99cc4c00f..be6cb7c39 100644 --- a/data/maps/FourIsland_IcefallCave_Back/map.json +++ b/data/maps/FourIsland_IcefallCave_Back/map.json @@ -78,7 +78,7 @@ "y": 23, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [ diff --git a/data/maps/FourIsland_IcefallCave_Entrance/map.json b/data/maps/FourIsland_IcefallCave_Entrance/map.json index aa97ac246..728d15c3d 100644 --- a/data/maps/FourIsland_IcefallCave_Entrance/map.json +++ b/data/maps/FourIsland_IcefallCave_Entrance/map.json @@ -21,21 +21,21 @@ "y": 30, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 10, "y": 21, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FourIsland_LoreleisHouse/map.json b/data/maps/FourIsland_LoreleisHouse/map.json index 743db1a81..ba745bf94 100644 --- a/data/maps/FourIsland_LoreleisHouse/map.json +++ b/data/maps/FourIsland_LoreleisHouse/map.json @@ -232,7 +232,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FourIsland_Mart/map.json b/data/maps/FourIsland_Mart/map.json index 36ddc0271..d3dbae34a 100644 --- a/data/maps/FourIsland_Mart/map.json +++ b/data/maps/FourIsland_Mart/map.json @@ -64,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/FourIsland_PokemonCenter_1F/map.json b/data/maps/FourIsland_PokemonCenter_1F/map.json index a8abb5e39..c6e9f2aba 100644 --- a/data/maps/FourIsland_PokemonCenter_1F/map.json +++ b/data/maps/FourIsland_PokemonCenter_1F/map.json @@ -78,14 +78,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_PokemonCenter_2F/map.json b/data/maps/FourIsland_PokemonCenter_2F/map.json index 43c798013..d606536c8 100644 --- a/data/maps/FourIsland_PokemonCenter_2F/map.json +++ b/data/maps/FourIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_PokemonDayCare/map.json b/data/maps/FourIsland_PokemonDayCare/map.json index 726acdcb4..380c5574d 100644 --- a/data/maps/FourIsland_PokemonDayCare/map.json +++ b/data/maps/FourIsland_PokemonDayCare/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json index af2d5818f..38e9352c6 100644 --- a/data/maps/FuchsiaCity/map.json +++ b/data/maps/FuchsiaCity/map.json @@ -262,77 +262,77 @@ "y": 5, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 33, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_WARDENS_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 15, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 16, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 32, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 31, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 38, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 39, "y": 28, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 39, "y": 29, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 19, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_HOUSE3", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_Gym/map.json b/data/maps/FuchsiaCity_Gym/map.json index 5deac5214..abeb179e0 100644 --- a/data/maps/FuchsiaCity_Gym/map.json +++ b/data/maps/FuchsiaCity_Gym/map.json @@ -134,21 +134,21 @@ "y": 21, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 7, "y": 21, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 21, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_House1/map.json b/data/maps/FuchsiaCity_House1/map.json index 8823e1c20..aff96b597 100644 --- a/data/maps/FuchsiaCity_House1/map.json +++ b/data/maps/FuchsiaCity_House1/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_House2/map.json b/data/maps/FuchsiaCity_House2/map.json index d133581c1..d800bc15f 100644 --- a/data/maps/FuchsiaCity_House2/map.json +++ b/data/maps/FuchsiaCity_House2/map.json @@ -36,28 +36,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 3, "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 4, "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 3, "y": 1, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_House3/map.json b/data/maps/FuchsiaCity_House3/map.json index 73d65c047..5b7e20007 100644 --- a/data/maps/FuchsiaCity_House3/map.json +++ b/data/maps/FuchsiaCity_House3/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_Mart/map.json b/data/maps/FuchsiaCity_Mart/map.json index a09a2e10f..e4d04596b 100644 --- a/data/maps/FuchsiaCity_Mart/map.json +++ b/data/maps/FuchsiaCity_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json index 73b1270bc..9d1b7c252 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json @@ -78,28 +78,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json index 8b3526aa7..60eb84ecf 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json index 02a4768ed..c74062929 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json @@ -50,28 +50,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/FuchsiaCity_SafariZone_Office/map.json b/data/maps/FuchsiaCity_SafariZone_Office/map.json index 1a4032edf..7a8dca1b5 100644 --- a/data/maps/FuchsiaCity_SafariZone_Office/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Office/map.json @@ -78,21 +78,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 9, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_WardensHouse/map.json b/data/maps/FuchsiaCity_WardensHouse/map.json index 7b402867f..527e9c22d 100644 --- a/data/maps/FuchsiaCity_WardensHouse/map.json +++ b/data/maps/FuchsiaCity_WardensHouse/map.json @@ -78,21 +78,21 @@ "y": 10, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 7, "y": 10, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/IndigoPlateau_Exterior/map.json b/data/maps/IndigoPlateau_Exterior/map.json index 89a1dd9b4..13d14c825 100644 --- a/data/maps/IndigoPlateau_Exterior/map.json +++ b/data/maps/IndigoPlateau_Exterior/map.json @@ -56,7 +56,7 @@ "y": 6, "elevation": 0, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json index 4c0c97759..7955bd1cd 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json @@ -134,21 +134,21 @@ "y": 16, "elevation": 3, "dest_map": "MAP_INDIGO_PLATEAU_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 1, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 14, "elevation": 4, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json index f717a09ea..770645384 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/LavenderTown/map.json b/data/maps/LavenderTown/map.json index 8d9fe4be8..edbe04fb6 100644 --- a/data/maps/LavenderTown/map.json +++ b/data/maps/LavenderTown/map.json @@ -80,42 +80,42 @@ "y": 6, "elevation": 0, "dest_map": "MAP_POKEMON_TOWER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 5, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 11, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 16, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 16, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 15, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_House1/map.json b/data/maps/LavenderTown_House1/map.json index 94a07604b..98f026fbf 100644 --- a/data/maps/LavenderTown_House1/map.json +++ b/data/maps/LavenderTown_House1/map.json @@ -50,21 +50,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_House2/map.json b/data/maps/LavenderTown_House2/map.json index 94383a699..688eeddc9 100644 --- a/data/maps/LavenderTown_House2/map.json +++ b/data/maps/LavenderTown_House2/map.json @@ -36,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_Mart/map.json b/data/maps/LavenderTown_Mart/map.json index b6f7c5055..6a7fbb2ca 100644 --- a/data/maps/LavenderTown_Mart/map.json +++ b/data/maps/LavenderTown_Mart/map.json @@ -78,21 +78,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_PokemonCenter_1F/map.json b/data/maps/LavenderTown_PokemonCenter_1F/map.json index 14433de2a..055802ae6 100644 --- a/data/maps/LavenderTown_PokemonCenter_1F/map.json +++ b/data/maps/LavenderTown_PokemonCenter_1F/map.json @@ -92,28 +92,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_PokemonCenter_2F/map.json b/data/maps/LavenderTown_PokemonCenter_2F/map.json index 232f6ecce..6fc2a4346 100644 --- a/data/maps/LavenderTown_PokemonCenter_2F/map.json +++ b/data/maps/LavenderTown_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json index 7f241ad23..304d66005 100644 --- a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json +++ b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json @@ -106,21 +106,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json index 6f300b9d6..c2e580138 100644 --- a/data/maps/MtEmber_Exterior/map.json +++ b/data/maps/MtEmber_Exterior/map.json @@ -302,42 +302,42 @@ "y": 48, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 29, "y": 48, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 24, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 39, "y": 19, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 7, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 42, "y": 39, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/MtEmber_RubyPath_1F/map.json b/data/maps/MtEmber_RubyPath_1F/map.json index 32108cf47..62b96b80b 100644 --- a/data/maps/MtEmber_RubyPath_1F/map.json +++ b/data/maps/MtEmber_RubyPath_1F/map.json @@ -92,21 +92,21 @@ "y": 17, "elevation": 3, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 1, "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 24, "y": 5, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B1F/map.json b/data/maps/MtEmber_RubyPath_B1F/map.json index b2e84cd47..8b118eecd 100644 --- a/data/maps/MtEmber_RubyPath_B1F/map.json +++ b/data/maps/MtEmber_RubyPath_B1F/map.json @@ -78,14 +78,14 @@ "y": 21, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json index e55831c9d..d3242092b 100644 --- a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json @@ -36,14 +36,14 @@ "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 5, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B2F/map.json b/data/maps/MtEmber_RubyPath_B2F/map.json index 99d15f9bd..5dd0f9e7b 100644 --- a/data/maps/MtEmber_RubyPath_B2F/map.json +++ b/data/maps/MtEmber_RubyPath_B2F/map.json @@ -120,14 +120,14 @@ "y": 7, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 9, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json index 2935f1bf9..9b0c34663 100644 --- a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json @@ -50,14 +50,14 @@ "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 4, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B3F/map.json b/data/maps/MtEmber_RubyPath_B3F/map.json index df674ff77..87a812708 100644 --- a/data/maps/MtEmber_RubyPath_B3F/map.json +++ b/data/maps/MtEmber_RubyPath_B3F/map.json @@ -162,21 +162,21 @@ "y": 4, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 19, "y": 19, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 19, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B4F/map.json b/data/maps/MtEmber_RubyPath_B4F/map.json index d4ed67e9c..ebd016595 100644 --- a/data/maps/MtEmber_RubyPath_B4F/map.json +++ b/data/maps/MtEmber_RubyPath_B4F/map.json @@ -21,14 +21,14 @@ "y": 14, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B5F/map.json b/data/maps/MtEmber_RubyPath_B5F/map.json index 9b032993f..fc7a056fa 100644 --- a/data/maps/MtEmber_RubyPath_B5F/map.json +++ b/data/maps/MtEmber_RubyPath_B5F/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_Summit/map.json b/data/maps/MtEmber_Summit/map.json index 0a697576a..c9ca661b4 100644 --- a/data/maps/MtEmber_Summit/map.json +++ b/data/maps/MtEmber_Summit/map.json @@ -92,7 +92,7 @@ "y": 15, "elevation": 0, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/MtEmber_SummitPath_1F/map.json b/data/maps/MtEmber_SummitPath_1F/map.json index 2f577dc02..ecaef12c0 100644 --- a/data/maps/MtEmber_SummitPath_1F/map.json +++ b/data/maps/MtEmber_SummitPath_1F/map.json @@ -21,14 +21,14 @@ "y": 15, "elevation": 0, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 11, "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_SummitPath_2F/map.json b/data/maps/MtEmber_SummitPath_2F/map.json index 07c8acf42..6b6b5e92a 100644 --- a/data/maps/MtEmber_SummitPath_2F/map.json +++ b/data/maps/MtEmber_SummitPath_2F/map.json @@ -148,14 +148,14 @@ "y": 39, "elevation": 0, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 39, "y": 6, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_SummitPath_3F/map.json b/data/maps/MtEmber_SummitPath_3F/map.json index 19dd584bc..e8571acce 100644 --- a/data/maps/MtEmber_SummitPath_3F/map.json +++ b/data/maps/MtEmber_SummitPath_3F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 0, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 8, "elevation": 0, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/MtMoon_1F/map.json b/data/maps/MtMoon_1F/map.json index 91415dca0..163749680 100644 --- a/data/maps/MtMoon_1F/map.json +++ b/data/maps/MtMoon_1F/map.json @@ -218,28 +218,28 @@ "y": 6, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 14, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 16, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 18, "y": 37, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtMoon_B1F/map.json b/data/maps/MtMoon_B1F/map.json index 68723ddee..81281c549 100644 --- a/data/maps/MtMoon_B1F/map.json +++ b/data/maps/MtMoon_B1F/map.json @@ -21,56 +21,56 @@ "y": 3, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 4, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 43, "y": 21, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 18, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 5, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 26, "y": 36, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 39, "y": 4, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 45, "y": 4, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/MtMoon_B2F/map.json b/data/maps/MtMoon_B2F/map.json index 3b8d645ed..0ce444496 100644 --- a/data/maps/MtMoon_B2F/map.json +++ b/data/maps/MtMoon_B2F/map.json @@ -176,28 +176,28 @@ "y": 21, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 11, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 17, "y": 31, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 10, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [ diff --git a/data/maps/NavelRock_1F/map.json b/data/maps/NavelRock_1F/map.json index 1cee54ae8..59660ad6c 100644 --- a/data/maps/NavelRock_1F/map.json +++ b/data/maps/NavelRock_1F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 23, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_B1F/map.json b/data/maps/NavelRock_B1F/map.json index 8ebd55017..2485fe670 100644 --- a/data/maps/NavelRock_B1F/map.json +++ b/data/maps/NavelRock_B1F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_FORK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Base/map.json b/data/maps/NavelRock_Base/map.json index 3d3791a51..faa3eef81 100644 --- a/data/maps/NavelRock_Base/map.json +++ b/data/maps/NavelRock_Base/map.json @@ -36,7 +36,7 @@ "y": 20, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B10F/map.json b/data/maps/NavelRock_BasePath_B10F/map.json index c579af031..a9a1f7497 100644 --- a/data/maps/NavelRock_BasePath_B10F/map.json +++ b/data/maps/NavelRock_BasePath_B10F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B11F/map.json b/data/maps/NavelRock_BasePath_B11F/map.json index 579b13577..a16259cf4 100644 --- a/data/maps/NavelRock_BasePath_B11F/map.json +++ b/data/maps/NavelRock_BasePath_B11F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B1F/map.json b/data/maps/NavelRock_BasePath_B1F/map.json index f0289d880..5e88bf657 100644 --- a/data/maps/NavelRock_BasePath_B1F/map.json +++ b/data/maps/NavelRock_BasePath_B1F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_FORK", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B2F/map.json b/data/maps/NavelRock_BasePath_B2F/map.json index 5cd175db3..9c871d0d7 100644 --- a/data/maps/NavelRock_BasePath_B2F/map.json +++ b/data/maps/NavelRock_BasePath_B2F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B3F/map.json b/data/maps/NavelRock_BasePath_B3F/map.json index fdbe8f4e3..8db0435a4 100644 --- a/data/maps/NavelRock_BasePath_B3F/map.json +++ b/data/maps/NavelRock_BasePath_B3F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B4F/map.json b/data/maps/NavelRock_BasePath_B4F/map.json index e90cabc93..a8ad85aa9 100644 --- a/data/maps/NavelRock_BasePath_B4F/map.json +++ b/data/maps/NavelRock_BasePath_B4F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B5F/map.json b/data/maps/NavelRock_BasePath_B5F/map.json index 61737e2e6..a5f95b8ba 100644 --- a/data/maps/NavelRock_BasePath_B5F/map.json +++ b/data/maps/NavelRock_BasePath_B5F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B6F/map.json b/data/maps/NavelRock_BasePath_B6F/map.json index 54801807e..2dba61b3e 100644 --- a/data/maps/NavelRock_BasePath_B6F/map.json +++ b/data/maps/NavelRock_BasePath_B6F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B7F/map.json b/data/maps/NavelRock_BasePath_B7F/map.json index b64c7ae1c..ac3ad1a6d 100644 --- a/data/maps/NavelRock_BasePath_B7F/map.json +++ b/data/maps/NavelRock_BasePath_B7F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B8F/map.json b/data/maps/NavelRock_BasePath_B8F/map.json index 5a50563b7..5e74b9780 100644 --- a/data/maps/NavelRock_BasePath_B8F/map.json +++ b/data/maps/NavelRock_BasePath_B8F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B9F/map.json b/data/maps/NavelRock_BasePath_B9F/map.json index a14c35048..1d4cf4847 100644 --- a/data/maps/NavelRock_BasePath_B9F/map.json +++ b/data/maps/NavelRock_BasePath_B9F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Exterior/map.json b/data/maps/NavelRock_Exterior/map.json index e7578b073..e8d2476bc 100644 --- a/data/maps/NavelRock_Exterior/map.json +++ b/data/maps/NavelRock_Exterior/map.json @@ -21,14 +21,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 16, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Fork/map.json b/data/maps/NavelRock_Fork/map.json index 25e7ecf40..e20f46526 100644 --- a/data/maps/NavelRock_Fork/map.json +++ b/data/maps/NavelRock_Fork/map.json @@ -21,21 +21,21 @@ "y": 95, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 1, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 26, "y": 1, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Harbor/map.json b/data/maps/NavelRock_Harbor/map.json index e65348867..f53a46a84 100644 --- a/data/maps/NavelRock_Harbor/map.json +++ b/data/maps/NavelRock_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Summit/map.json b/data/maps/NavelRock_Summit/map.json index cd1e58794..c7ea83f07 100644 --- a/data/maps/NavelRock_Summit/map.json +++ b/data/maps/NavelRock_Summit/map.json @@ -36,7 +36,7 @@ "y": 18, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/NavelRock_SummitPath_2F/map.json b/data/maps/NavelRock_SummitPath_2F/map.json index 9a61e4b79..06f005826 100644 --- a/data/maps/NavelRock_SummitPath_2F/map.json +++ b/data/maps/NavelRock_SummitPath_2F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_FORK", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_SummitPath_3F/map.json b/data/maps/NavelRock_SummitPath_3F/map.json index e61f23fb8..30a79db74 100644 --- a/data/maps/NavelRock_SummitPath_3F/map.json +++ b/data/maps/NavelRock_SummitPath_3F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_SummitPath_4F/map.json b/data/maps/NavelRock_SummitPath_4F/map.json index 3d55fb5d7..371d04ef3 100644 --- a/data/maps/NavelRock_SummitPath_4F/map.json +++ b/data/maps/NavelRock_SummitPath_4F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_SummitPath_5F/map.json b/data/maps/NavelRock_SummitPath_5F/map.json index 0182b2eec..3256004c8 100644 --- a/data/maps/NavelRock_SummitPath_5F/map.json +++ b/data/maps/NavelRock_SummitPath_5F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland/map.json b/data/maps/OneIsland/map.json index 43cff9bfd..f8ac5c92d 100644 --- a/data/maps/OneIsland/map.json +++ b/data/maps/OneIsland/map.json @@ -75,28 +75,28 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 9, "elevation": 0, "dest_map": "MAP_ONE_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 11, "elevation": 0, "dest_map": "MAP_ONE_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 18, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland_Harbor/map.json b/data/maps/OneIsland_Harbor/map.json index b56d7746d..d26171247 100644 --- a/data/maps/OneIsland_Harbor/map.json +++ b/data/maps/OneIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/OneIsland_House1/map.json b/data/maps/OneIsland_House1/map.json index a3f225e6a..33677be61 100644 --- a/data/maps/OneIsland_House1/map.json +++ b/data/maps/OneIsland_House1/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/OneIsland_House2/map.json b/data/maps/OneIsland_House2/map.json index 9600e847e..07bc21d68 100644 --- a/data/maps/OneIsland_House2/map.json +++ b/data/maps/OneIsland_House2/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/OneIsland_KindleRoad/map.json b/data/maps/OneIsland_KindleRoad/map.json index c7f3793c7..b23c862a1 100644 --- a/data/maps/OneIsland_KindleRoad/map.json +++ b/data/maps/OneIsland_KindleRoad/map.json @@ -434,21 +434,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 6, "elevation": 3, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 58, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json index 2bc4bec54..ea0c5a2e1 100644 --- a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json @@ -106,7 +106,7 @@ "y": 36, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/OneIsland_PokemonCenter_1F/map.json b/data/maps/OneIsland_PokemonCenter_1F/map.json index 473d8a751..98c9bb585 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/map.json +++ b/data/maps/OneIsland_PokemonCenter_1F/map.json @@ -106,14 +106,14 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 5, "elevation": 4, "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/OneIsland_PokemonCenter_2F/map.json b/data/maps/OneIsland_PokemonCenter_2F/map.json index 00ac518fe..62c92bff7 100644 --- a/data/maps/OneIsland_PokemonCenter_2F/map.json +++ b/data/maps/OneIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PalletTown/map.json b/data/maps/PalletTown/map.json index 8926beb48..355411bc1 100644 --- a/data/maps/PalletTown/map.json +++ b/data/maps/PalletTown/map.json @@ -75,21 +75,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 7, "elevation": 0, "dest_map": "MAP_PALLET_TOWN_RIVALS_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 13, "elevation": 0, "dest_map": "MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/PalletTown_PlayersHouse_1F/map.json b/data/maps/PalletTown_PlayersHouse_1F/map.json index 6622fca15..a03192be5 100644 --- a/data/maps/PalletTown_PlayersHouse_1F/map.json +++ b/data/maps/PalletTown_PlayersHouse_1F/map.json @@ -36,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 9, "elevation": 0, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PalletTown_PlayersHouse_2F/map.json b/data/maps/PalletTown_PlayersHouse_2F/map.json index 9d38997a1..05337daa4 100644 --- a/data/maps/PalletTown_PlayersHouse_2F/map.json +++ b/data/maps/PalletTown_PlayersHouse_2F/map.json @@ -21,7 +21,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/PalletTown_ProfessorOaksLab/map.json b/data/maps/PalletTown_ProfessorOaksLab/map.json index 7ae7434e7..ddbc3e3e2 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/map.json +++ b/data/maps/PalletTown_ProfessorOaksLab/map.json @@ -162,21 +162,21 @@ "y": 12, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 12, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 12, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/PalletTown_RivalsHouse/map.json b/data/maps/PalletTown_RivalsHouse/map.json index 6c354f2f6..ad9b2880d 100644 --- a/data/maps/PalletTown_RivalsHouse/map.json +++ b/data/maps/PalletTown_RivalsHouse/map.json @@ -50,21 +50,21 @@ "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PewterCity/map.json b/data/maps/PewterCity/map.json index 25d8be29f..b39ee8b85 100644 --- a/data/maps/PewterCity/map.json +++ b/data/maps/PewterCity/map.json @@ -131,49 +131,49 @@ "y": 6, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 4, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 15, "y": 16, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 18, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 33, "y": 11, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 17, "y": 25, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 30, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/PewterCity_Gym/map.json b/data/maps/PewterCity_Gym/map.json index 7c11199d4..5ecb2eb7c 100644 --- a/data/maps/PewterCity_Gym/map.json +++ b/data/maps/PewterCity_Gym/map.json @@ -64,21 +64,21 @@ "y": 14, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 14, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 14, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/PewterCity_House1/map.json b/data/maps/PewterCity_House1/map.json index 44ca8f0d9..097a58484 100644 --- a/data/maps/PewterCity_House1/map.json +++ b/data/maps/PewterCity_House1/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/PewterCity_House2/map.json b/data/maps/PewterCity_House2/map.json index 7ecc4596e..b1c86a681 100644 --- a/data/maps/PewterCity_House2/map.json +++ b/data/maps/PewterCity_House2/map.json @@ -50,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/PewterCity_Mart/map.json b/data/maps/PewterCity_Mart/map.json index 1cbef2d6a..c11a3939b 100644 --- a/data/maps/PewterCity_Mart/map.json +++ b/data/maps/PewterCity_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/PewterCity_Museum_1F/map.json b/data/maps/PewterCity_Museum_1F/map.json index 2959ccf25..530760e18 100644 --- a/data/maps/PewterCity_Museum_1F/map.json +++ b/data/maps/PewterCity_Museum_1F/map.json @@ -106,42 +106,42 @@ "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 21, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_PEWTER_CITY_MUSEUM_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/PewterCity_Museum_2F/map.json b/data/maps/PewterCity_Museum_2F/map.json index b57a75607..4e10ce252 100644 --- a/data/maps/PewterCity_Museum_2F/map.json +++ b/data/maps/PewterCity_Museum_2F/map.json @@ -92,7 +92,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/PewterCity_PokemonCenter_1F/map.json b/data/maps/PewterCity_PokemonCenter_1F/map.json index 7d6fafb6c..d8840a13b 100644 --- a/data/maps/PewterCity_PokemonCenter_1F/map.json +++ b/data/maps/PewterCity_PokemonCenter_1F/map.json @@ -120,28 +120,28 @@ "y": 8, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 8, "y": 8, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PewterCity_PokemonCenter_2F/map.json b/data/maps/PewterCity_PokemonCenter_2F/map.json index e91aeba2a..756892072 100644 --- a/data/maps/PewterCity_PokemonCenter_2F/map.json +++ b/data/maps/PewterCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_AgathasRoom/map.json b/data/maps/PokemonLeague_AgathasRoom/map.json index 791f4fc2f..c1791ebf0 100644 --- a/data/maps/PokemonLeague_AgathasRoom/map.json +++ b/data/maps/PokemonLeague_AgathasRoom/map.json @@ -36,14 +36,14 @@ "y": 12, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_BrunosRoom/map.json b/data/maps/PokemonLeague_BrunosRoom/map.json index a10f99c0a..3150972ac 100644 --- a/data/maps/PokemonLeague_BrunosRoom/map.json +++ b/data/maps/PokemonLeague_BrunosRoom/map.json @@ -36,14 +36,14 @@ "y": 12, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_ChampionsRoom/map.json b/data/maps/PokemonLeague_ChampionsRoom/map.json index 89988b5fb..32329b02d 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/map.json +++ b/data/maps/PokemonLeague_ChampionsRoom/map.json @@ -50,14 +50,14 @@ "y": 19, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_HALL_OF_FAME", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_HallOfFame/map.json b/data/maps/PokemonLeague_HallOfFame/map.json index baa87e865..e728c6554 100644 --- a/data/maps/PokemonLeague_HallOfFame/map.json +++ b/data/maps/PokemonLeague_HallOfFame/map.json @@ -36,7 +36,7 @@ "y": 12, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_LancesRoom/map.json b/data/maps/PokemonLeague_LancesRoom/map.json index 8ef0a06bb..4a1dde336 100644 --- a/data/maps/PokemonLeague_LancesRoom/map.json +++ b/data/maps/PokemonLeague_LancesRoom/map.json @@ -36,14 +36,14 @@ "y": 13, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 5, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_LoreleisRoom/map.json b/data/maps/PokemonLeague_LoreleisRoom/map.json index 4b03e865c..0e6943857 100644 --- a/data/maps/PokemonLeague_LoreleisRoom/map.json +++ b/data/maps/PokemonLeague_LoreleisRoom/map.json @@ -36,14 +36,14 @@ "y": 12, "elevation": 0, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonMansion_1F/map.json b/data/maps/PokemonMansion_1F/map.json index 32073b70a..f517febf3 100644 --- a/data/maps/PokemonMansion_1F/map.json +++ b/data/maps/PokemonMansion_1F/map.json @@ -92,70 +92,70 @@ "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 13, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 25, "y": 27, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 35, "y": 34, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 22, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 20, "y": 22, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 11, "y": 13, "elevation": 0, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/PokemonMansion_2F/map.json b/data/maps/PokemonMansion_2F/map.json index d600cf6cb..89220add4 100644 --- a/data/maps/PokemonMansion_2F/map.json +++ b/data/maps/PokemonMansion_2F/map.json @@ -78,35 +78,35 @@ "y": 3, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 22, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 14, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 9, "y": 14, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 27, "y": 17, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/PokemonMansion_3F/map.json b/data/maps/PokemonMansion_3F/map.json index a567098a8..66816e89f 100644 --- a/data/maps/PokemonMansion_3F/map.json +++ b/data/maps/PokemonMansion_3F/map.json @@ -78,56 +78,56 @@ "y": 3, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 11, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 18, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 19, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 23, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 20, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 24, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/PokemonMansion_B1F/map.json b/data/maps/PokemonMansion_B1F/map.json index 3f2b04726..75fe3af53 100644 --- a/data/maps/PokemonMansion_B1F/map.json +++ b/data/maps/PokemonMansion_B1F/map.json @@ -106,7 +106,7 @@ "y": 29, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_1F/map.json b/data/maps/PokemonTower_1F/map.json index e67ce4974..900da797b 100644 --- a/data/maps/PokemonTower_1F/map.json +++ b/data/maps/PokemonTower_1F/map.json @@ -92,28 +92,28 @@ "y": 19, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 18, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 19, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 9, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_2F/map.json b/data/maps/PokemonTower_2F/map.json index 86f397409..05e924e0f 100644 --- a/data/maps/PokemonTower_2F/map.json +++ b/data/maps/PokemonTower_2F/map.json @@ -50,14 +50,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [ diff --git a/data/maps/PokemonTower_3F/map.json b/data/maps/PokemonTower_3F/map.json index 8e5d2599e..f894e4cf4 100644 --- a/data/maps/PokemonTower_3F/map.json +++ b/data/maps/PokemonTower_3F/map.json @@ -78,14 +78,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_4F/map.json b/data/maps/PokemonTower_4F/map.json index 286e7b07f..67aa43d0f 100644 --- a/data/maps/PokemonTower_4F/map.json +++ b/data/maps/PokemonTower_4F/map.json @@ -106,14 +106,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_5F/map.json b/data/maps/PokemonTower_5F/map.json index cd58f14a4..b4feeb07c 100644 --- a/data/maps/PokemonTower_5F/map.json +++ b/data/maps/PokemonTower_5F/map.json @@ -120,14 +120,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_6F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/PokemonTower_6F/map.json b/data/maps/PokemonTower_6F/map.json index b54a5d499..da60ee269 100644 --- a/data/maps/PokemonTower_6F/map.json +++ b/data/maps/PokemonTower_6F/map.json @@ -92,14 +92,14 @@ "y": 16, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_7F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/PokemonTower_7F/map.json b/data/maps/PokemonTower_7F/map.json index a0f23bd76..f5289a31e 100644 --- a/data/maps/PokemonTower_7F/map.json +++ b/data/maps/PokemonTower_7F/map.json @@ -78,7 +78,7 @@ "y": 16, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_6F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PowerPlant/map.json b/data/maps/PowerPlant/map.json index fc61ef633..d0c40dcd5 100644 --- a/data/maps/PowerPlant/map.json +++ b/data/maps/PowerPlant/map.json @@ -134,35 +134,35 @@ "y": 39, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 38, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 39, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 0, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index b12044673..48aea0b56 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -35,29 +35,29 @@ "x": 8, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 9, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 11, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 10, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/RockTunnel_1F/map.json b/data/maps/RockTunnel_1F/map.json index 185bdab33..8c56778c2 100644 --- a/data/maps/RockTunnel_1F/map.json +++ b/data/maps/RockTunnel_1F/map.json @@ -162,42 +162,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 45, "y": 2, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 13, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 45, "y": 21, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 18, "y": 37, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/RockTunnel_B1F/map.json b/data/maps/RockTunnel_B1F/map.json index 9c2fcb6ae..b5dac6490 100644 --- a/data/maps/RockTunnel_B1F/map.json +++ b/data/maps/RockTunnel_B1F/map.json @@ -386,28 +386,28 @@ "y": 28, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 33, "y": 3, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 27, "y": 12, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 3, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_B1F/map.json b/data/maps/RocketHideout_B1F/map.json index 9380f0fdf..a387f96e2 100644 --- a/data/maps/RocketHideout_B1F/map.json +++ b/data/maps/RocketHideout_B1F/map.json @@ -120,42 +120,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_GAME_CORNER", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 17, "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 30, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 23, "y": 25, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 25, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 25, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_B2F/map.json b/data/maps/RocketHideout_B2F/map.json index c5e9b5e55..6b465505d 100644 --- a/data/maps/RocketHideout_B2F/map.json +++ b/data/maps/RocketHideout_B2F/map.json @@ -92,35 +92,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 28, "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 12, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 28, "y": 16, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 16, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_B3F/map.json b/data/maps/RocketHideout_B3F/map.json index 5b54baeb8..af785dae4 100644 --- a/data/maps/RocketHideout_B3F/map.json +++ b/data/maps/RocketHideout_B3F/map.json @@ -92,14 +92,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 18, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_B4F/map.json b/data/maps/RocketHideout_B4F/map.json index da0f43378..4bfdfca24 100644 --- a/data/maps/RocketHideout_B4F/map.json +++ b/data/maps/RocketHideout_B4F/map.json @@ -148,21 +148,21 @@ "y": 15, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 23, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 21, "y": 23, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_Elevator/map.json b/data/maps/RocketHideout_Elevator/map.json index 71a762a19..223fa0497 100644 --- a/data/maps/RocketHideout_Elevator/map.json +++ b/data/maps/RocketHideout_Elevator/map.json @@ -20,15 +20,15 @@ "x": 1, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/Route10/map.json b/data/maps/Route10/map.json index 7b14e946d..ff5cce9b0 100644 --- a/data/maps/Route10/map.json +++ b/data/maps/Route10/map.json @@ -173,35 +173,35 @@ "y": 19, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 57, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 40, "elevation": 3, "dest_map": "MAP_POWER_PLANT", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 20, "elevation": 0, "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 37, "elevation": 3, "dest_map": "MAP_POWER_PLANT", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/Route10_PokemonCenter_1F/map.json b/data/maps/Route10_PokemonCenter_1F/map.json index ce0147d0e..a49cb927d 100644 --- a/data/maps/Route10_PokemonCenter_1F/map.json +++ b/data/maps/Route10_PokemonCenter_1F/map.json @@ -92,28 +92,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE10_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route10_PokemonCenter_2F/map.json b/data/maps/Route10_PokemonCenter_2F/map.json index 5c653874f..314ea1b67 100644 --- a/data/maps/Route10_PokemonCenter_2F/map.json +++ b/data/maps/Route10_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route11/map.json b/data/maps/Route11/map.json index 0c0f76b57..24ee24b14 100644 --- a/data/maps/Route11/map.json +++ b/data/maps/Route11/map.json @@ -215,21 +215,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 58, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 65, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route11_EastEntrance_1F/map.json b/data/maps/Route11_EastEntrance_1F/map.json index a09cc6f74..e6a85b2a2 100644 --- a/data/maps/Route11_EastEntrance_1F/map.json +++ b/data/maps/Route11_EastEntrance_1F/map.json @@ -50,35 +50,35 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 11, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route11_EastEntrance_2F/map.json b/data/maps/Route11_EastEntrance_2F/map.json index 9c5a0986e..50a7c6f58 100644 --- a/data/maps/Route11_EastEntrance_2F/map.json +++ b/data/maps/Route11_EastEntrance_2F/map.json @@ -50,7 +50,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route12/map.json b/data/maps/Route12/map.json index 0d6f31a05..54d24b715 100644 --- a/data/maps/Route12/map.json +++ b/data/maps/Route12/map.json @@ -234,28 +234,28 @@ "y": 86, "elevation": 0, "dest_map": "MAP_ROUTE12_FISHING_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 15, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 15, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 21, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route12_FishingHouse/map.json b/data/maps/Route12_FishingHouse/map.json index 1cedae260..c0e761da1 100644 --- a/data/maps/Route12_FishingHouse/map.json +++ b/data/maps/Route12_FishingHouse/map.json @@ -36,21 +36,21 @@ "y": 8, "elevation": 0, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 8, "elevation": 0, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route12_NorthEntrance_1F/map.json b/data/maps/Route12_NorthEntrance_1F/map.json index 436bc8e47..4a03cf2cf 100644 --- a/data/maps/Route12_NorthEntrance_1F/map.json +++ b/data/maps/Route12_NorthEntrance_1F/map.json @@ -36,35 +36,35 @@ "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 0, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route12_NorthEntrance_2F/map.json b/data/maps/Route12_NorthEntrance_2F/map.json index 81267ac70..0a57d4beb 100644 --- a/data/maps/Route12_NorthEntrance_2F/map.json +++ b/data/maps/Route12_NorthEntrance_2F/map.json @@ -36,7 +36,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route15/map.json b/data/maps/Route15/map.json index a698de29c..433c045bb 100644 --- a/data/maps/Route15/map.json +++ b/data/maps/Route15/map.json @@ -223,14 +223,14 @@ "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route15_WestEntrance_1F/map.json b/data/maps/Route15_WestEntrance_1F/map.json index 9ac95b3ef..e1d529a19 100644 --- a/data/maps/Route15_WestEntrance_1F/map.json +++ b/data/maps/Route15_WestEntrance_1F/map.json @@ -36,35 +36,35 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route15_WestEntrance_2F/map.json b/data/maps/Route15_WestEntrance_2F/map.json index ca878b2ba..4163c8bb8 100644 --- a/data/maps/Route15_WestEntrance_2F/map.json +++ b/data/maps/Route15_WestEntrance_2F/map.json @@ -36,7 +36,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route16/map.json b/data/maps/Route16/map.json index d0e7f771a..af1c20d8b 100644 --- a/data/maps/Route16/map.json +++ b/data/maps/Route16/map.json @@ -173,35 +173,35 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE16_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 27, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 27, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/Route16_House/map.json b/data/maps/Route16_House/map.json index c9e7f326a..b2a9374c7 100644 --- a/data/maps/Route16_House/map.json +++ b/data/maps/Route16_House/map.json @@ -50,21 +50,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route16_NorthEntrance_1F/map.json b/data/maps/Route16_NorthEntrance_1F/map.json index 2d289ca2e..272c358b9 100644 --- a/data/maps/Route16_NorthEntrance_1F/map.json +++ b/data/maps/Route16_NorthEntrance_1F/map.json @@ -50,35 +50,35 @@ "y": 3, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 3, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 12, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 12, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 9, "y": 16, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route16_NorthEntrance_2F/map.json b/data/maps/Route16_NorthEntrance_2F/map.json index 256220887..6bea3b6cd 100644 --- a/data/maps/Route16_NorthEntrance_2F/map.json +++ b/data/maps/Route16_NorthEntrance_2F/map.json @@ -64,7 +64,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route18/map.json b/data/maps/Route18/map.json index fb6c538fc..14f7aee1c 100644 --- a/data/maps/Route18/map.json +++ b/data/maps/Route18/map.json @@ -75,14 +75,14 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 48, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route18_EastEntrance_1F/map.json b/data/maps/Route18_EastEntrance_1F/map.json index 032fdeb9f..cb905b343 100644 --- a/data/maps/Route18_EastEntrance_1F/map.json +++ b/data/maps/Route18_EastEntrance_1F/map.json @@ -36,21 +36,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE18", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE18", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route18_EastEntrance_2F/map.json b/data/maps/Route18_EastEntrance_2F/map.json index 427e0deb1..e29d59992 100644 --- a/data/maps/Route18_EastEntrance_2F/map.json +++ b/data/maps/Route18_EastEntrance_2F/map.json @@ -36,7 +36,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route2/map.json b/data/maps/Route2/map.json index 8bdcf3f51..ae86c838d 100644 --- a/data/maps/Route2/map.json +++ b/data/maps/Route2/map.json @@ -125,70 +125,70 @@ "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 51, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 17, "y": 11, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 17, "y": 22, "elevation": 0, "dest_map": "MAP_ROUTE2_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 18, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 18, "y": 41, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 19, "y": 41, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 19, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 51, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route20/map.json b/data/maps/Route20/map.json index c53ce065f..2900cf4ac 100644 --- a/data/maps/Route20/map.json +++ b/data/maps/Route20/map.json @@ -187,14 +187,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 72, "y": 14, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route22/map.json b/data/maps/Route22/map.json index 1317ff4e3..ee918e6fa 100644 --- a/data/maps/Route22/map.json +++ b/data/maps/Route22/map.json @@ -47,14 +47,14 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/Route22_NorthEntrance/map.json b/data/maps/Route22_NorthEntrance/map.json index 01ab2de00..40191e5c2 100644 --- a/data/maps/Route22_NorthEntrance/map.json +++ b/data/maps/Route22_NorthEntrance/map.json @@ -36,28 +36,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE22", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE22", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE22", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json index ddb4eeef9..86044c923 100644 --- a/data/maps/Route23/map.json +++ b/data/maps/Route23/map.json @@ -131,28 +131,28 @@ "y": 28, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 18, "y": 28, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 153, "elevation": 3, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 154, "elevation": 0, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route25/map.json b/data/maps/Route25/map.json index 7b45398b3..9ebeb1841 100644 --- a/data/maps/Route25/map.json +++ b/data/maps/Route25/map.json @@ -210,7 +210,7 @@ "y": 4, "elevation": 0, "dest_map": "MAP_ROUTE25_SEA_COTTAGE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route25_SeaCottage/map.json b/data/maps/Route25_SeaCottage/map.json index d1550e65d..82dd50402 100644 --- a/data/maps/Route25_SeaCottage/map.json +++ b/data/maps/Route25_SeaCottage/map.json @@ -50,21 +50,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE25", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE25", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE25", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route2_EastBuilding/map.json b/data/maps/Route2_EastBuilding/map.json index 1ba0e9df0..e7d96be6e 100644 --- a/data/maps/Route2_EastBuilding/map.json +++ b/data/maps/Route2_EastBuilding/map.json @@ -50,28 +50,28 @@ "y": 10, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/Route2_House/map.json b/data/maps/Route2_House/map.json index 4531b0c79..a688bf780 100644 --- a/data/maps/Route2_House/map.json +++ b/data/maps/Route2_House/map.json @@ -50,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/map.json b/data/maps/Route2_ViridianForest_NorthEntrance/map.json index 652f096ff..f0b7393b2 100644 --- a/data/maps/Route2_ViridianForest_NorthEntrance/map.json +++ b/data/maps/Route2_ViridianForest_NorthEntrance/map.json @@ -64,28 +64,28 @@ "y": 10, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/map.json b/data/maps/Route2_ViridianForest_SouthEntrance/map.json index 7930c462d..4f5a7fb05 100644 --- a/data/maps/Route2_ViridianForest_SouthEntrance/map.json +++ b/data/maps/Route2_ViridianForest_SouthEntrance/map.json @@ -50,28 +50,28 @@ "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 1, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route4/map.json b/data/maps/Route4/map.json index 4692d24dc..5bd534dfa 100644 --- a/data/maps/Route4/map.json +++ b/data/maps/Route4/map.json @@ -125,21 +125,21 @@ "y": 5, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 32, "y": 5, "elevation": 0, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 12, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route4_PokemonCenter_1F/map.json b/data/maps/Route4_PokemonCenter_1F/map.json index 071aabffd..52cf73b1d 100644 --- a/data/maps/Route4_PokemonCenter_1F/map.json +++ b/data/maps/Route4_PokemonCenter_1F/map.json @@ -106,28 +106,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE4_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route4_PokemonCenter_2F/map.json b/data/maps/Route4_PokemonCenter_2F/map.json index e3deac4ae..cdadbfccf 100644 --- a/data/maps/Route4_PokemonCenter_2F/map.json +++ b/data/maps/Route4_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route5/map.json b/data/maps/Route5/map.json index 85b0e75a2..34199b1bd 100644 --- a/data/maps/Route5/map.json +++ b/data/maps/Route5/map.json @@ -32,28 +32,28 @@ "y": 31, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 25, "elevation": 0, "dest_map": "MAP_ROUTE5_POKEMON_DAY_CARE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 32, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 32, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route5_PokemonDayCare/map.json b/data/maps/Route5_PokemonDayCare/map.json index 9f8624c7a..773450928 100644 --- a/data/maps/Route5_PokemonDayCare/map.json +++ b/data/maps/Route5_PokemonDayCare/map.json @@ -36,21 +36,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route5_SouthEntrance/map.json b/data/maps/Route5_SouthEntrance/map.json index fc8b66ac8..650568ac1 100644 --- a/data/maps/Route5_SouthEntrance/map.json +++ b/data/maps/Route5_SouthEntrance/map.json @@ -36,28 +36,28 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 4, "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [ diff --git a/data/maps/Route6/map.json b/data/maps/Route6/map.json index 8f9f1821e..a8a7754c7 100644 --- a/data/maps/Route6/map.json +++ b/data/maps/Route6/map.json @@ -117,21 +117,21 @@ "y": 13, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 13, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route6_NorthEntrance/map.json b/data/maps/Route6_NorthEntrance/map.json index 04867359f..fb2edae08 100644 --- a/data/maps/Route6_NorthEntrance/map.json +++ b/data/maps/Route6_NorthEntrance/map.json @@ -36,28 +36,28 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/Route7/map.json b/data/maps/Route7/map.json index 80de4df63..b6227e677 100644 --- a/data/maps/Route7/map.json +++ b/data/maps/Route7/map.json @@ -41,14 +41,14 @@ "y": 14, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route7_EastEntrance/map.json b/data/maps/Route7_EastEntrance/map.json index 0dd963003..4be396210 100644 --- a/data/maps/Route7_EastEntrance/map.json +++ b/data/maps/Route7_EastEntrance/map.json @@ -36,28 +36,28 @@ "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [ diff --git a/data/maps/Route8/map.json b/data/maps/Route8/map.json index e1304aa90..7741c79f8 100644 --- a/data/maps/Route8/map.json +++ b/data/maps/Route8/map.json @@ -243,14 +243,14 @@ "y": 4, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route8_WestEntrance/map.json b/data/maps/Route8_WestEntrance/map.json index f1583f862..538e467a2 100644 --- a/data/maps/Route8_WestEntrance/map.json +++ b/data/maps/Route8_WestEntrance/map.json @@ -36,28 +36,28 @@ "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/SSAnne_1F_Corridor/map.json b/data/maps/SSAnne_1F_Corridor/map.json index c7737b75b..45bd8e606 100644 --- a/data/maps/SSAnne_1F_Corridor/map.json +++ b/data/maps/SSAnne_1F_Corridor/map.json @@ -50,91 +50,91 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 18, "elevation": 3, "dest_map": "MAP_SSANNE_KITCHEN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 1, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 20, "y": 0, "elevation": 0, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 3, "y": 20, "elevation": 0, "dest_map": "MAP_SSANNE_KITCHEN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 28, "y": 17, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 23, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 20, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM6", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room1/map.json b/data/maps/SSAnne_1F_Room1/map.json index 89cb5ca70..a74f0215e 100644 --- a/data/maps/SSAnne_1F_Room1/map.json +++ b/data/maps/SSAnne_1F_Room1/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room2/map.json b/data/maps/SSAnne_1F_Room2/map.json index f96591fc9..3681c1b97 100644 --- a/data/maps/SSAnne_1F_Room2/map.json +++ b/data/maps/SSAnne_1F_Room2/map.json @@ -78,7 +78,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room3/map.json b/data/maps/SSAnne_1F_Room3/map.json index 68c4d8dc8..1523f1259 100644 --- a/data/maps/SSAnne_1F_Room3/map.json +++ b/data/maps/SSAnne_1F_Room3/map.json @@ -64,7 +64,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room4/map.json b/data/maps/SSAnne_1F_Room4/map.json index 5598fb79f..08de2fce8 100644 --- a/data/maps/SSAnne_1F_Room4/map.json +++ b/data/maps/SSAnne_1F_Room4/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room5/map.json b/data/maps/SSAnne_1F_Room5/map.json index 38456ea10..a796b3aa7 100644 --- a/data/maps/SSAnne_1F_Room5/map.json +++ b/data/maps/SSAnne_1F_Room5/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room6/map.json b/data/maps/SSAnne_1F_Room6/map.json index 83d01462c..2b19578a0 100644 --- a/data/maps/SSAnne_1F_Room6/map.json +++ b/data/maps/SSAnne_1F_Room6/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room7/map.json b/data/maps/SSAnne_1F_Room7/map.json index 2435e864c..92dd20902 100644 --- a/data/maps/SSAnne_1F_Room7/map.json +++ b/data/maps/SSAnne_1F_Room7/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 11 + "dest_warp_id": "11" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Corridor/map.json b/data/maps/SSAnne_2F_Corridor/map.json index 59678eb49..90934647d 100644 --- a/data/maps/SSAnne_2F_Corridor/map.json +++ b/data/maps/SSAnne_2F_Corridor/map.json @@ -50,63 +50,63 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 12, "elevation": 3, "dest_map": "MAP_SSANNE_3F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SSANNE_CAPTAINS_OFFICE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 26, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM6", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/SSAnne_2F_Room1/map.json b/data/maps/SSAnne_2F_Room1/map.json index cd85d395e..9bf965c75 100644 --- a/data/maps/SSAnne_2F_Room1/map.json +++ b/data/maps/SSAnne_2F_Room1/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room2/map.json b/data/maps/SSAnne_2F_Room2/map.json index 27ffa8b66..0809ce817 100644 --- a/data/maps/SSAnne_2F_Room2/map.json +++ b/data/maps/SSAnne_2F_Room2/map.json @@ -64,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room3/map.json b/data/maps/SSAnne_2F_Room3/map.json index f4ca52f39..c1dce2a6d 100644 --- a/data/maps/SSAnne_2F_Room3/map.json +++ b/data/maps/SSAnne_2F_Room3/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room4/map.json b/data/maps/SSAnne_2F_Room4/map.json index 3a3e4d107..ee878da63 100644 --- a/data/maps/SSAnne_2F_Room4/map.json +++ b/data/maps/SSAnne_2F_Room4/map.json @@ -64,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room5/map.json b/data/maps/SSAnne_2F_Room5/map.json index c75da955a..f982577f8 100644 --- a/data/maps/SSAnne_2F_Room5/map.json +++ b/data/maps/SSAnne_2F_Room5/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room6/map.json b/data/maps/SSAnne_2F_Room6/map.json index 6c87a8ec0..9b199c30a 100644 --- a/data/maps/SSAnne_2F_Room6/map.json +++ b/data/maps/SSAnne_2F_Room6/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/SSAnne_3F_Corridor/map.json b/data/maps/SSAnne_3F_Corridor/map.json index 9337e19f3..4c7259290 100644 --- a/data/maps/SSAnne_3F_Corridor/map.json +++ b/data/maps/SSAnne_3F_Corridor/map.json @@ -36,21 +36,21 @@ "y": 4, "elevation": 3, "dest_map": "MAP_SSANNE_DECK", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 2, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 0, "y": 5, "elevation": 0, "dest_map": "MAP_SSANNE_DECK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Corridor/map.json b/data/maps/SSAnne_B1F_Corridor/map.json index 4e0ad1134..858673bc5 100644 --- a/data/maps/SSAnne_B1F_Corridor/map.json +++ b/data/maps/SSAnne_B1F_Corridor/map.json @@ -21,42 +21,42 @@ "y": 3, "elevation": 3, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 2, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room1/map.json b/data/maps/SSAnne_B1F_Room1/map.json index e0b41fc12..254074b36 100644 --- a/data/maps/SSAnne_B1F_Room1/map.json +++ b/data/maps/SSAnne_B1F_Room1/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room2/map.json b/data/maps/SSAnne_B1F_Room2/map.json index af0e08af2..edbedddbe 100644 --- a/data/maps/SSAnne_B1F_Room2/map.json +++ b/data/maps/SSAnne_B1F_Room2/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room3/map.json b/data/maps/SSAnne_B1F_Room3/map.json index 703525282..f46cc525a 100644 --- a/data/maps/SSAnne_B1F_Room3/map.json +++ b/data/maps/SSAnne_B1F_Room3/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room4/map.json b/data/maps/SSAnne_B1F_Room4/map.json index 2da162618..d57823eb4 100644 --- a/data/maps/SSAnne_B1F_Room4/map.json +++ b/data/maps/SSAnne_B1F_Room4/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room5/map.json b/data/maps/SSAnne_B1F_Room5/map.json index 35487ba46..dce8aff51 100644 --- a/data/maps/SSAnne_B1F_Room5/map.json +++ b/data/maps/SSAnne_B1F_Room5/map.json @@ -64,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SSAnne_CaptainsOffice/map.json b/data/maps/SSAnne_CaptainsOffice/map.json index bba9fdf25..4282796c7 100644 --- a/data/maps/SSAnne_CaptainsOffice/map.json +++ b/data/maps/SSAnne_CaptainsOffice/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SSAnne_Deck/map.json b/data/maps/SSAnne_Deck/map.json index 4d3dde7f3..193652c1e 100644 --- a/data/maps/SSAnne_Deck/map.json +++ b/data/maps/SSAnne_Deck/map.json @@ -92,14 +92,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SSANNE_3F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 9, "elevation": 3, "dest_map": "MAP_SSANNE_3F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_Exterior/map.json b/data/maps/SSAnne_Exterior/map.json index bc9a9f9c2..211b244e4 100644 --- a/data/maps/SSAnne_Exterior/map.json +++ b/data/maps/SSAnne_Exterior/map.json @@ -36,35 +36,35 @@ "y": 5, "elevation": 0, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 5, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 32, "y": 14, "elevation": 3, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 33, "y": 15, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 33, "y": 5, "elevation": 0, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SSAnne_Kitchen/map.json b/data/maps/SSAnne_Kitchen/map.json index 163b88d12..af1f147ac 100644 --- a/data/maps/SSAnne_Kitchen/map.json +++ b/data/maps/SSAnne_Kitchen/map.json @@ -134,7 +134,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json index bf49fb4b8..1eaad1f23 100644 --- a/data/maps/SafariZone_Center/map.json +++ b/data/maps/SafariZone_Center/map.json @@ -36,91 +36,91 @@ "y": 30, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 26, "y": 30, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 27, "y": 30, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 26, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 27, "y": 5, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 8, "y": 17, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 18, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 8, "y": 19, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 43, "y": 15, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 43, "y": 16, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 43, "y": 17, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 29, "y": 25, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_Center_RestHouse/map.json b/data/maps/SafariZone_Center_RestHouse/map.json index b5b111f7a..1bf350eb9 100644 --- a/data/maps/SafariZone_Center_RestHouse/map.json +++ b/data/maps/SafariZone_Center_RestHouse/map.json @@ -50,21 +50,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/SafariZone_East/map.json b/data/maps/SafariZone_East/map.json index 3e2151f8c..cc9ed8726 100644 --- a/data/maps/SafariZone_East/map.json +++ b/data/maps/SafariZone_East/map.json @@ -78,49 +78,49 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 8, "y": 11, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 8, "y": 26, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 8, "y": 27, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 8, "y": 28, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 40, "y": 14, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_EAST_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_East_RestHouse/map.json b/data/maps/SafariZone_East_RestHouse/map.json index 5c0b460ac..a9682a68e 100644 --- a/data/maps/SafariZone_East_RestHouse/map.json +++ b/data/maps/SafariZone_East_RestHouse/map.json @@ -64,21 +64,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json index e90b9aa0d..f0d2e8639 100644 --- a/data/maps/SafariZone_North/map.json +++ b/data/maps/SafariZone_North/map.json @@ -64,91 +64,91 @@ "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 34, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 20, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 21, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 22, "y": 34, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 48, "y": 31, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 48, "y": 32, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 48, "y": 33, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 30, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 32, "y": 34, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 43, "y": 8, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_North_RestHouse/map.json b/data/maps/SafariZone_North_RestHouse/map.json index cecf86a54..2a55ff569 100644 --- a/data/maps/SafariZone_North_RestHouse/map.json +++ b/data/maps/SafariZone_North_RestHouse/map.json @@ -78,21 +78,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/SafariZone_SecretHouse/map.json b/data/maps/SafariZone_SecretHouse/map.json index 49061ae7c..782716f0c 100644 --- a/data/maps/SafariZone_SecretHouse/map.json +++ b/data/maps/SafariZone_SecretHouse/map.json @@ -36,21 +36,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json index ed9cef50c..ccbf3d8b6 100644 --- a/data/maps/SafariZone_West/map.json +++ b/data/maps/SafariZone_West/map.json @@ -78,77 +78,77 @@ "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 32, "y": 5, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 37, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 38, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 39, "y": 5, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 40, "y": 26, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 40, "y": 27, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 40, "y": 28, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 12, "y": 7, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_SECRET_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 19, "y": 18, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_West_RestHouse/map.json b/data/maps/SafariZone_West_RestHouse/map.json index ea046b849..0b7b3bb6e 100644 --- a/data/maps/SafariZone_West_RestHouse/map.json +++ b/data/maps/SafariZone_West_RestHouse/map.json @@ -64,21 +64,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/SaffronCity/map.json b/data/maps/SaffronCity/map.json index 8da2e4099..31eb5193c 100644 --- a/data/maps/SaffronCity/map.json +++ b/data/maps/SaffronCity/map.json @@ -254,105 +254,105 @@ "y": 30, "elevation": 0, "dest_map": "MAP_SILPH_CO_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 14, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 40, "y": 12, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_DOJO", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 46, "y": 12, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 27, "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 40, "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 38, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 43, "y": 38, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_MR_PSYCHICS_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 27, "elevation": 3, "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 34, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 58, "y": 27, "elevation": 3, "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 34, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 35, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 35, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 47, "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_CopycatsHouse_1F/map.json b/data/maps/SaffronCity_CopycatsHouse_1F/map.json index c7abb00d7..4bb8a60a8 100644 --- a/data/maps/SaffronCity_CopycatsHouse_1F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_1F/map.json @@ -64,28 +64,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_CopycatsHouse_2F/map.json b/data/maps/SaffronCity_CopycatsHouse_2F/map.json index 919c12a0b..9a6be7486 100644 --- a/data/maps/SaffronCity_CopycatsHouse_2F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_2F/map.json @@ -78,7 +78,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_Dojo/map.json b/data/maps/SaffronCity_Dojo/map.json index 01f94fc0d..062741bfa 100644 --- a/data/maps/SaffronCity_Dojo/map.json +++ b/data/maps/SaffronCity_Dojo/map.json @@ -120,21 +120,21 @@ "y": 14, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 14, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 14, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/SaffronCity_Gym/map.json b/data/maps/SaffronCity_Gym/map.json index 4fc950d9b..faf4769e4 100644 --- a/data/maps/SaffronCity_Gym/map.json +++ b/data/maps/SaffronCity_Gym/map.json @@ -148,231 +148,231 @@ "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 15, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 18, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 32 + "dest_warp_id": "32" }, { "x": 0, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 22 + "dest_warp_id": "22" }, { "x": 0, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 20 + "dest_warp_id": "20" }, { "x": 0, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 30 + "dest_warp_id": "30" }, { "x": 0, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 0, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 28 + "dest_warp_id": "28" }, { "x": 0, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 19 + "dest_warp_id": "19" }, { "x": 8, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 18 + "dest_warp_id": "18" }, { "x": 8, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 8, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 17 + "dest_warp_id": "17" }, { "x": 8, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 15 + "dest_warp_id": "15" }, { "x": 8, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 26 + "dest_warp_id": "26" }, { "x": 8, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 13 + "dest_warp_id": "13" }, { "x": 12, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 24 + "dest_warp_id": "24" }, { "x": 12, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 16, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 16, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 18, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 20, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 23 + "dest_warp_id": "23" }, { "x": 20, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 20, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 21 + "dest_warp_id": "21" }, { "x": 20, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 16 + "dest_warp_id": "16" }, { "x": 20, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 27 + "dest_warp_id": "27" }, { "x": 20, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 14 + "dest_warp_id": "14" }, { "x": 28, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 25 + "dest_warp_id": "25" }, { "x": 28, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 28, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 31 + "dest_warp_id": "31" }, { "x": 28, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 28, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 29 + "dest_warp_id": "29" }, { "x": 28, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_House/map.json b/data/maps/SaffronCity_House/map.json index 70e9b3fe9..304d9cb7b 100644 --- a/data/maps/SaffronCity_House/map.json +++ b/data/maps/SaffronCity_House/map.json @@ -78,21 +78,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_Mart/map.json b/data/maps/SaffronCity_Mart/map.json index b72d0e84e..0618e78d1 100644 --- a/data/maps/SaffronCity_Mart/map.json +++ b/data/maps/SaffronCity_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_MrPsychicsHouse/map.json b/data/maps/SaffronCity_MrPsychicsHouse/map.json index 9e01e083f..444045571 100644 --- a/data/maps/SaffronCity_MrPsychicsHouse/map.json +++ b/data/maps/SaffronCity_MrPsychicsHouse/map.json @@ -36,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonCenter_1F/map.json b/data/maps/SaffronCity_PokemonCenter_1F/map.json index 5a87f8862..dfb7b03be 100644 --- a/data/maps/SaffronCity_PokemonCenter_1F/map.json +++ b/data/maps/SaffronCity_PokemonCenter_1F/map.json @@ -106,28 +106,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonCenter_2F/map.json b/data/maps/SaffronCity_PokemonCenter_2F/map.json index 24e3e4730..53db3c4ca 100644 --- a/data/maps/SaffronCity_PokemonCenter_2F/map.json +++ b/data/maps/SaffronCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json index 538df731e..02db9fdb5 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json @@ -162,7 +162,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 14 + "dest_warp_id": "14" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_1F/map.json b/data/maps/SeafoamIslands_1F/map.json index ab8ec8235..3893afd63 100644 --- a/data/maps/SeafoamIslands_1F/map.json +++ b/data/maps/SeafoamIslands_1F/map.json @@ -64,49 +64,49 @@ "y": 6, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 21, "elevation": 3, "dest_map": "MAP_ROUTE20", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 21, "elevation": 3, "dest_map": "MAP_ROUTE20", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 21, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 30, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B1F/map.json b/data/maps/SeafoamIslands_B1F/map.json index 39f6184bf..ddd704e26 100644 --- a/data/maps/SeafoamIslands_B1F/map.json +++ b/data/maps/SeafoamIslands_B1F/map.json @@ -78,77 +78,77 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 3, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 17, "y": 9, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 25, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 32, "y": 14, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 23, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 28, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 21, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 29, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B2F/map.json b/data/maps/SeafoamIslands_B2F/map.json index 7f620f30b..421b263b4 100644 --- a/data/maps/SeafoamIslands_B2F/map.json +++ b/data/maps/SeafoamIslands_B2F/map.json @@ -64,77 +64,77 @@ "y": 17, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 17, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 17, "y": 9, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 25, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 32, "y": 14, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 22, "y": 7, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 29, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 24, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 27, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B3F/map.json b/data/maps/SeafoamIslands_B3F/map.json index 4cbf7e29a..6f53158a4 100644 --- a/data/maps/SeafoamIslands_B3F/map.json +++ b/data/maps/SeafoamIslands_B3F/map.json @@ -106,63 +106,63 @@ "y": 14, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 16, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 12, "y": 9, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 29, "y": 5, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 9, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 24, "y": 9, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 6, "y": 18, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 18, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B4F/map.json b/data/maps/SeafoamIslands_B4F/map.json index f7cf6a0a0..41f9a7597 100644 --- a/data/maps/SeafoamIslands_B4F/map.json +++ b/data/maps/SeafoamIslands_B4F/map.json @@ -78,28 +78,28 @@ "y": 9, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 32, "y": 5, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 17, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 9, "y": 17, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [ diff --git a/data/maps/SevenIsland/map.json b/data/maps/SevenIsland/map.json index 6f0157a1c..d775303af 100644 --- a/data/maps/SevenIsland/map.json +++ b/data/maps/SevenIsland/map.json @@ -75,28 +75,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 9, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 3, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 13, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_Harbor/map.json b/data/maps/SevenIsland_Harbor/map.json index 4c0a1879e..22f5f6844 100644 --- a/data/maps/SevenIsland_Harbor/map.json +++ b/data/maps/SevenIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_House_Room1/map.json b/data/maps/SevenIsland_House_Room1/map.json index 1315c5430..4204f1811 100644 --- a/data/maps/SevenIsland_House_Room1/map.json +++ b/data/maps/SevenIsland_House_Room1/map.json @@ -36,14 +36,14 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 1, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_House_Room2/map.json b/data/maps/SevenIsland_House_Room2/map.json index 04375b39e..2e280939c 100644 --- a/data/maps/SevenIsland_House_Room2/map.json +++ b/data/maps/SevenIsland_House_Room2/map.json @@ -36,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_Mart/map.json b/data/maps/SevenIsland_Mart/map.json index 0dac386df..227c6931a 100644 --- a/data/maps/SevenIsland_Mart/map.json +++ b/data/maps/SevenIsland_Mart/map.json @@ -78,7 +78,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_PokemonCenter_1F/map.json b/data/maps/SevenIsland_PokemonCenter_1F/map.json index ab0e7158c..010db8bec 100644 --- a/data/maps/SevenIsland_PokemonCenter_1F/map.json +++ b/data/maps/SevenIsland_PokemonCenter_1F/map.json @@ -106,14 +106,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_PokemonCenter_2F/map.json b/data/maps/SevenIsland_PokemonCenter_2F/map.json index ef43a8fa1..95ff5a714 100644 --- a/data/maps/SevenIsland_PokemonCenter_2F/map.json +++ b/data/maps/SevenIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_SevaultCanyon/map.json b/data/maps/SevenIsland_SevaultCanyon/map.json index ce1002299..2c8f76642 100644 --- a/data/maps/SevenIsland_SevaultCanyon/map.json +++ b/data/maps/SevenIsland_SevaultCanyon/map.json @@ -313,14 +313,14 @@ "y": 17, "elevation": 5, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 61, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_SevaultCanyon_House/map.json b/data/maps/SevenIsland_SevaultCanyon_House/map.json index e1a5d7460..e5e14894a 100644 --- a/data/maps/SevenIsland_SevaultCanyon_House/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_House/map.json @@ -64,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json index d59f38bd2..639d495cb 100644 --- a/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json @@ -120,7 +120,7 @@ "y": 13, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/SevenIsland_TanobyRuins/map.json b/data/maps/SevenIsland_TanobyRuins/map.json index e589e8362..ff476137c 100644 --- a/data/maps/SevenIsland_TanobyRuins/map.json +++ b/data/maps/SevenIsland_TanobyRuins/map.json @@ -84,49 +84,49 @@ "y": 10, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 103, "y": 10, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 88, "y": 8, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 44, "y": 11, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 9, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json index f51307ed0..df2917eb6 100644 --- a/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json index 5786a9f73..ba3dc36ec 100644 --- a/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json index efb2dc13c..edf7c74bd 100644 --- a/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json b/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json index e0a656acf..75b490006 100644 --- a/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json index 266b18579..072eeb144 100644 --- a/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json index a1cd61249..9d2d4594f 100644 --- a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json index b9e11db9b..15124e2d2 100644 --- a/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TrainerTower/map.json b/data/maps/SevenIsland_TrainerTower/map.json index 365be8499..079f8ce1b 100644 --- a/data/maps/SevenIsland_TrainerTower/map.json +++ b/data/maps/SevenIsland_TrainerTower/map.json @@ -56,7 +56,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_LOBBY", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SilphCo_10F/map.json b/data/maps/SilphCo_10F/map.json index f3ca6b9ed..0ba516fdb 100644 --- a/data/maps/SilphCo_10F/map.json +++ b/data/maps/SilphCo_10F/map.json @@ -106,42 +106,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_11F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 9, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 8, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 17, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 13, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_11F/map.json b/data/maps/SilphCo_11F/map.json index 0a40ff336..eb5c24042 100644 --- a/data/maps/SilphCo_11F/map.json +++ b/data/maps/SilphCo_11F/map.json @@ -106,21 +106,21 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/SilphCo_1F/map.json b/data/maps/SilphCo_1F/map.json index fe60d23e3..60dcf04ee 100644 --- a/data/maps/SilphCo_1F/map.json +++ b/data/maps/SilphCo_1F/map.json @@ -36,35 +36,35 @@ "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_2F/map.json b/data/maps/SilphCo_2F/map.json index 3b7940b21..91a37c98f 100644 --- a/data/maps/SilphCo_2F/map.json +++ b/data/maps/SilphCo_2F/map.json @@ -92,49 +92,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 15, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 19, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 33, "y": 19, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_3F/map.json b/data/maps/SilphCo_3F/map.json index 75c82254c..9e0bfe88a 100644 --- a/data/maps/SilphCo_3F/map.json +++ b/data/maps/SilphCo_3F/map.json @@ -78,70 +78,70 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 2, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 29, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 32, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 33, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_4F/map.json b/data/maps/SilphCo_4F/map.json index 978582eac..15b95fb8b 100644 --- a/data/maps/SilphCo_4F/map.json +++ b/data/maps/SilphCo_4F/map.json @@ -134,49 +134,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 12, "y": 9, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 18, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_5F/map.json b/data/maps/SilphCo_5F/map.json index 5f76346bf..a134b7d4b 100644 --- a/data/maps/SilphCo_5F/map.json +++ b/data/maps/SilphCo_5F/map.json @@ -148,49 +148,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 7, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 10, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 33, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_6F/map.json b/data/maps/SilphCo_6F/map.json index 081752b34..29b033bdb 100644 --- a/data/maps/SilphCo_6F/map.json +++ b/data/maps/SilphCo_6F/map.json @@ -162,35 +162,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 29, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 26, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 2, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_7F/map.json b/data/maps/SilphCo_7F/map.json index 21e3dc0ad..b5072b37f 100644 --- a/data/maps/SilphCo_7F/map.json +++ b/data/maps/SilphCo_7F/map.json @@ -176,42 +176,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_SILPH_CO_11F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 17, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 27, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 4, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 23, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/SilphCo_8F/map.json b/data/maps/SilphCo_8F/map.json index a901ec1b8..49ee7a3e4 100644 --- a/data/maps/SilphCo_8F/map.json +++ b/data/maps/SilphCo_8F/map.json @@ -106,49 +106,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 10, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 10, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 28, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 12, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 17, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_9F/map.json b/data/maps/SilphCo_9F/map.json index cbd76fef4..bf2ab5433 100644 --- a/data/maps/SilphCo_9F/map.json +++ b/data/maps/SilphCo_9F/map.json @@ -78,35 +78,35 @@ "y": 2, "elevation": 0, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 18, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 9, "y": 4, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 18, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 24, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_Elevator/map.json b/data/maps/SilphCo_Elevator/map.json index 95e2bdfcd..846cd8fce 100644 --- a/data/maps/SilphCo_Elevator/map.json +++ b/data/maps/SilphCo_Elevator/map.json @@ -20,8 +20,8 @@ "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/SixIsland/map.json b/data/maps/SixIsland/map.json index daa46f76c..87e66d7e4 100644 --- a/data/maps/SixIsland/map.json +++ b/data/maps/SixIsland/map.json @@ -56,28 +56,28 @@ "y": 23, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 11, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 17, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 20, "y": 11, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_AlteringCave/map.json b/data/maps/SixIsland_AlteringCave/map.json index b6447b1b2..2b97053f3 100644 --- a/data/maps/SixIsland_AlteringCave/map.json +++ b/data/maps/SixIsland_AlteringCave/map.json @@ -21,7 +21,7 @@ "y": 22, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_OUTCAST_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_1F/map.json b/data/maps/SixIsland_DottedHole_1F/map.json index 802d67e26..dc2a4ae75 100644 --- a/data/maps/SixIsland_DottedHole_1F/map.json +++ b/data/maps/SixIsland_DottedHole_1F/map.json @@ -21,28 +21,28 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_RUIN_VALLEY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B1F/map.json b/data/maps/SixIsland_DottedHole_B1F/map.json index 7522ff81c..60032fcc2 100644 --- a/data/maps/SixIsland_DottedHole_B1F/map.json +++ b/data/maps/SixIsland_DottedHole_B1F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B2F/map.json b/data/maps/SixIsland_DottedHole_B2F/map.json index e45898a49..cd3365b4c 100644 --- a/data/maps/SixIsland_DottedHole_B2F/map.json +++ b/data/maps/SixIsland_DottedHole_B2F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B3F/map.json b/data/maps/SixIsland_DottedHole_B3F/map.json index 5c871db50..91528bf0b 100644 --- a/data/maps/SixIsland_DottedHole_B3F/map.json +++ b/data/maps/SixIsland_DottedHole_B3F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B4F/map.json b/data/maps/SixIsland_DottedHole_B4F/map.json index 108aa3cce..1fe17117d 100644 --- a/data/maps/SixIsland_DottedHole_B4F/map.json +++ b/data/maps/SixIsland_DottedHole_B4F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json index 1df78033e..fe9af6319 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json @@ -50,14 +50,14 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_GreenPath/map.json b/data/maps/SixIsland_GreenPath/map.json index 0b9dde9b6..ed2e62719 100644 --- a/data/maps/SixIsland_GreenPath/map.json +++ b/data/maps/SixIsland_GreenPath/map.json @@ -47,28 +47,28 @@ "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 64, "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 45, "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 46, "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SixIsland_Harbor/map.json b/data/maps/SixIsland_Harbor/map.json index 18524878a..84482518c 100644 --- a/data/maps/SixIsland_Harbor/map.json +++ b/data/maps/SixIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_House/map.json b/data/maps/SixIsland_House/map.json index acca8851e..37cd73c6e 100644 --- a/data/maps/SixIsland_House/map.json +++ b/data/maps/SixIsland_House/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SixIsland_Mart/map.json b/data/maps/SixIsland_Mart/map.json index 90774c5ec..0f5b787e9 100644 --- a/data/maps/SixIsland_Mart/map.json +++ b/data/maps/SixIsland_Mart/map.json @@ -64,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_OutcastIsland/map.json b/data/maps/SixIsland_OutcastIsland/map.json index c5a4b7c8e..69fec4d9b 100644 --- a/data/maps/SixIsland_OutcastIsland/map.json +++ b/data/maps/SixIsland_OutcastIsland/map.json @@ -126,7 +126,7 @@ "y": 21, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_ALTERING_CAVE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_PatternBush/map.json b/data/maps/SixIsland_PatternBush/map.json index 8231109bd..9595abbc9 100644 --- a/data/maps/SixIsland_PatternBush/map.json +++ b/data/maps/SixIsland_PatternBush/map.json @@ -190,42 +190,42 @@ "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 55, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 56, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_PokemonCenter_1F/map.json b/data/maps/SixIsland_PokemonCenter_1F/map.json index 34fadf276..b027d1990 100644 --- a/data/maps/SixIsland_PokemonCenter_1F/map.json +++ b/data/maps/SixIsland_PokemonCenter_1F/map.json @@ -78,14 +78,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_PokemonCenter_2F/map.json b/data/maps/SixIsland_PokemonCenter_2F/map.json index 941989e3d..fd46d24fa 100644 --- a/data/maps/SixIsland_PokemonCenter_2F/map.json +++ b/data/maps/SixIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_RuinValley/map.json b/data/maps/SixIsland_RuinValley/map.json index 9e2851451..72cc69b52 100644 --- a/data/maps/SixIsland_RuinValley/map.json +++ b/data/maps/SixIsland_RuinValley/map.json @@ -266,7 +266,7 @@ "y": 24, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_WaterPath/map.json b/data/maps/SixIsland_WaterPath/map.json index 080a0749d..0ff0b08f6 100644 --- a/data/maps/SixIsland_WaterPath/map.json +++ b/data/maps/SixIsland_WaterPath/map.json @@ -164,14 +164,14 @@ "y": 13, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 19, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_WaterPath_House1/map.json b/data/maps/SixIsland_WaterPath_House1/map.json index 266c79a8a..69b8967f4 100644 --- a/data/maps/SixIsland_WaterPath_House1/map.json +++ b/data/maps/SixIsland_WaterPath_House1/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_WATER_PATH", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_WaterPath_House2/map.json b/data/maps/SixIsland_WaterPath_House2/map.json index 0964b2399..3de52cacd 100644 --- a/data/maps/SixIsland_WaterPath_House2/map.json +++ b/data/maps/SixIsland_WaterPath_House2/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_WATER_PATH", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland/map.json b/data/maps/ThreeIsland/map.json index 7b593a7be..450c66f3c 100644 --- a/data/maps/ThreeIsland/map.json +++ b/data/maps/ThreeIsland/map.json @@ -229,49 +229,49 @@ "y": 31, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 27, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 12, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 6, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 12, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 19, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE5", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/ThreeIsland_BerryForest/map.json b/data/maps/ThreeIsland_BerryForest/map.json index 7c03e0d7c..53d69e452 100644 --- a/data/maps/ThreeIsland_BerryForest/map.json +++ b/data/maps/ThreeIsland_BerryForest/map.json @@ -218,21 +218,21 @@ "y": 41, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 42, "y": 41, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 44, "y": 41, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_BondBridge/map.json b/data/maps/ThreeIsland_BondBridge/map.json index 69cd2ab45..65bcf0c7e 100644 --- a/data/maps/ThreeIsland_BondBridge/map.json +++ b/data/maps/ThreeIsland_BondBridge/map.json @@ -154,14 +154,14 @@ "y": 6, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 6, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_DunsparceTunnel/map.json b/data/maps/ThreeIsland_DunsparceTunnel/map.json index c4b7b5a6a..d04bd68b5 100644 --- a/data/maps/ThreeIsland_DunsparceTunnel/map.json +++ b/data/maps/ThreeIsland_DunsparceTunnel/map.json @@ -36,14 +36,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_PORT", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 5, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_PORT", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_Harbor/map.json b/data/maps/ThreeIsland_Harbor/map.json index 17d8caccd..91b0068f3 100644 --- a/data/maps/ThreeIsland_Harbor/map.json +++ b/data/maps/ThreeIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_PORT", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House1/map.json b/data/maps/ThreeIsland_House1/map.json index 0922488e0..6f8adafad 100644 --- a/data/maps/ThreeIsland_House1/map.json +++ b/data/maps/ThreeIsland_House1/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House2/map.json b/data/maps/ThreeIsland_House2/map.json index a079b8482..16f5c6329 100644 --- a/data/maps/ThreeIsland_House2/map.json +++ b/data/maps/ThreeIsland_House2/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House3/map.json b/data/maps/ThreeIsland_House3/map.json index 608bae55e..92dd72209 100644 --- a/data/maps/ThreeIsland_House3/map.json +++ b/data/maps/ThreeIsland_House3/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House4/map.json b/data/maps/ThreeIsland_House4/map.json index 93c3d4c12..3f717a01e 100644 --- a/data/maps/ThreeIsland_House4/map.json +++ b/data/maps/ThreeIsland_House4/map.json @@ -50,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House5/map.json b/data/maps/ThreeIsland_House5/map.json index 7f2f8becf..078de6766 100644 --- a/data/maps/ThreeIsland_House5/map.json +++ b/data/maps/ThreeIsland_House5/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_Mart/map.json b/data/maps/ThreeIsland_Mart/map.json index 682126052..87d40bc50 100644 --- a/data/maps/ThreeIsland_Mart/map.json +++ b/data/maps/ThreeIsland_Mart/map.json @@ -78,7 +78,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_PokemonCenter_1F/map.json b/data/maps/ThreeIsland_PokemonCenter_1F/map.json index 1f61598aa..40a381d8a 100644 --- a/data/maps/ThreeIsland_PokemonCenter_1F/map.json +++ b/data/maps/ThreeIsland_PokemonCenter_1F/map.json @@ -78,14 +78,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_PokemonCenter_2F/map.json b/data/maps/ThreeIsland_PokemonCenter_2F/map.json index a6ba54a41..fc9dc06bf 100644 --- a/data/maps/ThreeIsland_PokemonCenter_2F/map.json +++ b/data/maps/ThreeIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_Port/map.json b/data/maps/ThreeIsland_Port/map.json index e5cd31db8..061bf2808 100644 --- a/data/maps/ThreeIsland_Port/map.json +++ b/data/maps/ThreeIsland_Port/map.json @@ -70,21 +70,21 @@ "y": 4, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 38, "y": 5, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 13, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index 098772ac9..6a630234f 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -35,15 +35,15 @@ "x": 5, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 6, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_1F/map.json b/data/maps/TrainerTower_1F/map.json index 58b696f35..7547f513b 100644 --- a/data/maps/TrainerTower_1F/map.json +++ b/data/maps/TrainerTower_1F/map.json @@ -92,14 +92,14 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_LOBBY", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_2F/map.json b/data/maps/TrainerTower_2F/map.json index c40c83b34..b92b7b6b7 100644 --- a/data/maps/TrainerTower_2F/map.json +++ b/data/maps/TrainerTower_2F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_3F/map.json b/data/maps/TrainerTower_3F/map.json index 6c1bc8950..e6adefa4b 100644 --- a/data/maps/TrainerTower_3F/map.json +++ b/data/maps/TrainerTower_3F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_4F/map.json b/data/maps/TrainerTower_4F/map.json index 40abcc338..82ad54a67 100644 --- a/data/maps/TrainerTower_4F/map.json +++ b/data/maps/TrainerTower_4F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_5F/map.json b/data/maps/TrainerTower_5F/map.json index 0e4e358fd..706a18d53 100644 --- a/data/maps/TrainerTower_5F/map.json +++ b/data/maps/TrainerTower_5F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_6F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_6F/map.json b/data/maps/TrainerTower_6F/map.json index 37fc68129..b10e110e0 100644 --- a/data/maps/TrainerTower_6F/map.json +++ b/data/maps/TrainerTower_6F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_7F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_7F/map.json b/data/maps/TrainerTower_7F/map.json index 83b8b8a8f..33fa4b6bc 100644 --- a/data/maps/TrainerTower_7F/map.json +++ b/data/maps/TrainerTower_7F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_8F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_6F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_8F/map.json b/data/maps/TrainerTower_8F/map.json index 3ae1211bb..5624035e3 100644 --- a/data/maps/TrainerTower_8F/map.json +++ b/data/maps/TrainerTower_8F/map.json @@ -92,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_ROOF", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_7F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_Elevator/map.json b/data/maps/TrainerTower_Elevator/map.json index c0a71f79e..285a704d1 100644 --- a/data/maps/TrainerTower_Elevator/map.json +++ b/data/maps/TrainerTower_Elevator/map.json @@ -20,8 +20,8 @@ "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/TrainerTower_Lobby/map.json b/data/maps/TrainerTower_Lobby/map.json index 3bd89a4c9..8ca6a756d 100644 --- a/data/maps/TrainerTower_Lobby/map.json +++ b/data/maps/TrainerTower_Lobby/map.json @@ -92,21 +92,21 @@ "y": 2, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 8, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_Roof/map.json b/data/maps/TrainerTower_Roof/map.json index cc42f893c..3e603b3cd 100644 --- a/data/maps/TrainerTower_Roof/map.json +++ b/data/maps/TrainerTower_Roof/map.json @@ -36,14 +36,14 @@ "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_8F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland/map.json b/data/maps/TwoIsland/map.json index 8263f2953..41ae31f39 100644 --- a/data/maps/TwoIsland/map.json +++ b/data/maps/TwoIsland/map.json @@ -154,28 +154,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_JOYFUL_GAME_CORNER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 33, "y": 9, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 21, "y": 7, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 8, "elevation": 3, "dest_map": "MAP_TWO_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_CapeBrink/map.json b/data/maps/TwoIsland_CapeBrink/map.json index f4fbfe4e4..85e333654 100644 --- a/data/maps/TwoIsland_CapeBrink/map.json +++ b/data/maps/TwoIsland_CapeBrink/map.json @@ -27,7 +27,7 @@ "y": 16, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_CapeBrink_House/map.json b/data/maps/TwoIsland_CapeBrink_House/map.json index 6d6456e21..a37a6d584 100644 --- a/data/maps/TwoIsland_CapeBrink_House/map.json +++ b/data/maps/TwoIsland_CapeBrink_House/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_Harbor/map.json b/data/maps/TwoIsland_Harbor/map.json index 07c78ebf4..19734c66e 100644 --- a/data/maps/TwoIsland_Harbor/map.json +++ b/data/maps/TwoIsland_Harbor/map.json @@ -50,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_House/map.json b/data/maps/TwoIsland_House/map.json index 28286b198..b8ebaf876 100644 --- a/data/maps/TwoIsland_House/map.json +++ b/data/maps/TwoIsland_House/map.json @@ -36,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_JoyfulGameCorner/map.json b/data/maps/TwoIsland_JoyfulGameCorner/map.json index efaeecdc9..58f88994c 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/map.json +++ b/data/maps/TwoIsland_JoyfulGameCorner/map.json @@ -78,7 +78,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_PokemonCenter_1F/map.json b/data/maps/TwoIsland_PokemonCenter_1F/map.json index b241134ff..6daf7c00a 100644 --- a/data/maps/TwoIsland_PokemonCenter_1F/map.json +++ b/data/maps/TwoIsland_PokemonCenter_1F/map.json @@ -64,14 +64,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_PokemonCenter_2F/map.json b/data/maps/TwoIsland_PokemonCenter_2F/map.json index 9d57d7a33..adb9a6b49 100644 --- a/data/maps/TwoIsland_PokemonCenter_2F/map.json +++ b/data/maps/TwoIsland_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_EastEntrance/map.json b/data/maps/UndergroundPath_EastEntrance/map.json index 91fe1143e..88777f77c 100644 --- a/data/maps/UndergroundPath_EastEntrance/map.json +++ b/data/maps/UndergroundPath_EastEntrance/map.json @@ -36,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_EastWestTunnel/map.json b/data/maps/UndergroundPath_EastWestTunnel/map.json index 9648812ad..174cbc920 100644 --- a/data/maps/UndergroundPath_EastWestTunnel/map.json +++ b/data/maps/UndergroundPath_EastWestTunnel/map.json @@ -21,14 +21,14 @@ "y": 3, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 3, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_NorthEntrance/map.json b/data/maps/UndergroundPath_NorthEntrance/map.json index ee360615b..f3602bf1f 100644 --- a/data/maps/UndergroundPath_NorthEntrance/map.json +++ b/data/maps/UndergroundPath_NorthEntrance/map.json @@ -36,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_NorthSouthTunnel/map.json b/data/maps/UndergroundPath_NorthSouthTunnel/map.json index 5358160b7..321e1071a 100644 --- a/data/maps/UndergroundPath_NorthSouthTunnel/map.json +++ b/data/maps/UndergroundPath_NorthSouthTunnel/map.json @@ -21,14 +21,14 @@ "y": 3, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 3, "y": 60, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_SouthEntrance/map.json b/data/maps/UndergroundPath_SouthEntrance/map.json index e6b3ea257..3b1d0c9b9 100644 --- a/data/maps/UndergroundPath_SouthEntrance/map.json +++ b/data/maps/UndergroundPath_SouthEntrance/map.json @@ -36,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_WestEntrance/map.json b/data/maps/UndergroundPath_WestEntrance/map.json index e987e2e7f..92162da3a 100644 --- a/data/maps/UndergroundPath_WestEntrance/map.json +++ b/data/maps/UndergroundPath_WestEntrance/map.json @@ -36,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json index 057ee2fc3..45c625f84 100644 --- a/data/maps/UnionRoom/map.json +++ b/data/maps/UnionRoom/map.json @@ -147,8 +147,8 @@ "x": 7, "y": 11, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/VermilionCity/map.json b/data/maps/VermilionCity/map.json index f37f90399..3df3a72b7 100644 --- a/data/maps/VermilionCity/map.json +++ b/data/maps/VermilionCity/map.json @@ -145,70 +145,70 @@ "y": 34, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 34, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 34, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 6, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 6, "elevation": 3, "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 17, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_POKEMON_FAN_CLUB", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 19, "y": 17, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 17, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 24, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_HOUSE3", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 25, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/VermilionCity_Gym/map.json b/data/maps/VermilionCity_Gym/map.json index 936866d6c..62d686734 100644 --- a/data/maps/VermilionCity_Gym/map.json +++ b/data/maps/VermilionCity_Gym/map.json @@ -92,21 +92,21 @@ "y": 19, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 19, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 6, "y": 19, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_House1/map.json b/data/maps/VermilionCity_House1/map.json index 9c8bdec89..d2628a141 100644 --- a/data/maps/VermilionCity_House1/map.json +++ b/data/maps/VermilionCity_House1/map.json @@ -36,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_House2/map.json b/data/maps/VermilionCity_House2/map.json index ce9ed5ee3..6e9117fa7 100644 --- a/data/maps/VermilionCity_House2/map.json +++ b/data/maps/VermilionCity_House2/map.json @@ -36,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_House3/map.json b/data/maps/VermilionCity_House3/map.json index 1283bfdb7..f9c6bc68a 100644 --- a/data/maps/VermilionCity_House3/map.json +++ b/data/maps/VermilionCity_House3/map.json @@ -78,21 +78,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_Mart/map.json b/data/maps/VermilionCity_Mart/map.json index 5eca5f366..b62113ed5 100644 --- a/data/maps/VermilionCity_Mart/map.json +++ b/data/maps/VermilionCity_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonCenter_1F/map.json b/data/maps/VermilionCity_PokemonCenter_1F/map.json index 42b53dd2b..4faf56365 100644 --- a/data/maps/VermilionCity_PokemonCenter_1F/map.json +++ b/data/maps/VermilionCity_PokemonCenter_1F/map.json @@ -120,28 +120,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonCenter_2F/map.json b/data/maps/VermilionCity_PokemonCenter_2F/map.json index 49f8af57e..d9e4b1808 100644 --- a/data/maps/VermilionCity_PokemonCenter_2F/map.json +++ b/data/maps/VermilionCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonFanClub/map.json b/data/maps/VermilionCity_PokemonFanClub/map.json index 9d7e914f0..2ab3825ad 100644 --- a/data/maps/VermilionCity_PokemonFanClub/map.json +++ b/data/maps/VermilionCity_PokemonFanClub/map.json @@ -106,21 +106,21 @@ "y": 10, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 10, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 6, "y": 10, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json index 3fdf718bd..634e03995 100644 --- a/data/maps/VictoryRoad_1F/map.json +++ b/data/maps/VictoryRoad_1F/map.json @@ -120,14 +120,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 20, "elevation": 3, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/VictoryRoad_2F/map.json b/data/maps/VictoryRoad_2F/map.json index 9bdf82001..ab71c632d 100644 --- a/data/maps/VictoryRoad_2F/map.json +++ b/data/maps/VictoryRoad_2F/map.json @@ -204,63 +204,63 @@ "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 3, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 38, "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 36, "y": 17, "elevation": 4, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 49, "y": 13, "elevation": 0, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 48, "y": 12, "elevation": 3, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 47, "y": 13, "elevation": 0, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 34, "y": 19, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [ diff --git a/data/maps/VictoryRoad_3F/map.json b/data/maps/VictoryRoad_3F/map.json index a3100ccd3..1c62f8a19 100644 --- a/data/maps/VictoryRoad_3F/map.json +++ b/data/maps/VictoryRoad_3F/map.json @@ -190,35 +190,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 34, "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 37, "y": 10, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 39, "y": 17, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 34, "y": 18, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [ diff --git a/data/maps/ViridianCity/map.json b/data/maps/ViridianCity/map.json index 5efc88834..ccd10d432 100644 --- a/data/maps/ViridianCity/map.json +++ b/data/maps/ViridianCity/map.json @@ -164,35 +164,35 @@ "y": 26, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 11, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 36, "y": 10, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 18, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_SCHOOL", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 36, "y": 19, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json index 0c7278947..083b0cf07 100644 --- a/data/maps/ViridianCity_Gym/map.json +++ b/data/maps/ViridianCity_Gym/map.json @@ -162,21 +162,21 @@ "y": 22, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 17, "y": 22, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 18, "y": 22, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_House/map.json b/data/maps/ViridianCity_House/map.json index 29ed4175a..7448c7a66 100644 --- a/data/maps/ViridianCity_House/map.json +++ b/data/maps/ViridianCity_House/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_Mart/map.json b/data/maps/ViridianCity_Mart/map.json index 91bb7aead..23cbb6e81 100644 --- a/data/maps/ViridianCity_Mart/map.json +++ b/data/maps/ViridianCity_Mart/map.json @@ -64,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_PokemonCenter_1F/map.json b/data/maps/ViridianCity_PokemonCenter_1F/map.json index 2b8733bc3..84ad95c4d 100644 --- a/data/maps/ViridianCity_PokemonCenter_1F/map.json +++ b/data/maps/ViridianCity_PokemonCenter_1F/map.json @@ -78,28 +78,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_PokemonCenter_2F/map.json b/data/maps/ViridianCity_PokemonCenter_2F/map.json index 5453270bb..6458e0f52 100644 --- a/data/maps/ViridianCity_PokemonCenter_2F/map.json +++ b/data/maps/ViridianCity_PokemonCenter_2F/map.json @@ -78,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_School/map.json b/data/maps/ViridianCity_School/map.json index 76bb354f4..195161147 100644 --- a/data/maps/ViridianCity_School/map.json +++ b/data/maps/ViridianCity_School/map.json @@ -50,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/ViridianForest/map.json b/data/maps/ViridianForest/map.json index 494dbd394..ef89e4b3f 100644 --- a/data/maps/ViridianForest/map.json +++ b/data/maps/ViridianForest/map.json @@ -176,42 +176,42 @@ "y": 62, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 28, "y": 62, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 62, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/include/constants/maps.h b/include/constants/maps.h index 6e127ede6..0452a6666 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -4,7 +4,10 @@ #include "constants/map_groups.h" #include "constants/map_types.h" -#define MAP_NONE (0x7F | (0x7F << 8)) +// Warps using this map will instead use the warp data stored in gSaveBlock1Ptr->dynamicWarp. +// Used for warps that need to change destinations, e.g. when stepping off an elevator. +#define MAP_DYNAMIC (0x7F | (0x7F << 8)) + #define MAP_UNDEFINED (0xFF | (0xFF << 8)) #define MAP_GROUP(map) (MAP_##map >> 8) @@ -12,6 +15,10 @@ #define MAP(map) MAP_GROUP(map), MAP_NUM(map) +// ID for dynamic warps. Used in the dest_warp_id field for warp events, but it's never +// read in practice. A dest_map of MAP_DYNAMIC is used to indicate that a dynamic warp +// should be used, at which point the warp id is ignored. It can be passed to SetDynamicWarp +// or SetDynamicWarpWithCoords as the first argument, but this argument is unused. #define WARP_ID_DYNAMIC 0x7F // Used to indicate an invalid warp id, for dummy warps or when a warp should diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 949369b77..6e11a45f5 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -968,7 +968,7 @@ static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPositi warpEvent = &gMapHeader.events->warps[warpEventId]; - if (warpEvent->mapNum == MAP_NUM(NONE)) + if (warpEvent->mapNum == MAP_NUM(DYNAMIC)) { SetWarpDestinationToDynamicWarp(warpEvent->warpId); } @@ -979,7 +979,7 @@ static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPositi SetWarpDestinationToMapWarp(warpEvent->mapGroup, warpEvent->mapNum, warpEvent->warpId); UpdateEscapeWarp(position->x, position->y); mapHeader = Overworld_GetMapHeaderByGroupAndId(warpEvent->mapGroup, warpEvent->mapNum); - if (mapHeader->events->warps[warpEvent->warpId].mapNum == MAP_NUM(NONE)) + if (mapHeader->events->warps[warpEvent->warpId].mapNum == MAP_NUM(DYNAMIC)) SetDynamicWarp(mapHeader->events->warps[warpEventId].warpId, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, warpEventId); } } diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 79445e6cd..8978305e8 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -200,7 +200,7 @@ string generate_map_events_text(Json map_data) { << warp_event["x"].int_value() << ", " << warp_event["y"].int_value() << ", " << warp_event["elevation"].int_value() << ", " - << warp_event["dest_warp_id"].int_value() << ", " + << warp_event["dest_warp_id"].string_value() << ", " << warp_event["dest_map"].string_value() << "\n"; } text << "\n"; @@ -324,7 +324,7 @@ string generate_firered_map_events_text(Json map_data) { << warp_event["x"].int_value() << ", " << warp_event["y"].int_value() << ", " << warp_event["elevation"].int_value() << ", " - << warp_event["dest_warp_id"].int_value() << ", " + << warp_event["dest_warp_id"].string_value() << ", " << warp_event["dest_map"].string_value() << "\n"; } text << "\n"; From dbaf8f5900ff65e948659bfd92aa639cc9fd9e8d Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Sun, 4 Sep 2022 17:55:15 +0800 Subject: [PATCH 054/105] Document field moves --- include/event_object_movement.h | 4 +- .../object_events/object_event_graphics.h | 6 +- src/fldeff_cut.c | 4 +- src/fldeff_dig.c | 6 +- src/fldeff_rocksmash.c | 12 ++-- src/fldeff_softboiled.c | 63 +++++++++---------- src/strings.c | 2 +- 7 files changed, 48 insertions(+), 49 deletions(-) diff --git a/include/event_object_movement.h b/include/event_object_movement.h index b59fb209b..21bac2013 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -192,8 +192,8 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; extern const struct SpritePalette gSpritePalette_GeneralFieldEffect1; extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[]; extern const struct OamData gObjectEventBaseOam_32x32; -extern const u16 gUnknown_8398648[]; -extern const u16 gUnknown_8398688[]; +extern const u16 gFieldEffectObjectPic_CutGrass[]; +extern const u16 gFieldEffectPal_CutGrass[]; extern const u8 gReflectionEffectPaletteMap[]; u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z); u8 sub_8063FDC(u32 direction); diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 7d0f57e3c..6e6831a82 100644 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -191,9 +191,9 @@ const u16 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U16("graphics/field_effe const u16 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_large.4bpp"); const u16 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_extra_large.4bpp"); const u16 filler_8398188[0x90] = {}; -const u16 gUnknown_8398648[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); -const u16 gUnknown_8398668[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); -const u16 gUnknown_8398688[] = INCBIN_U16("graphics/field_effects/fldeff_cut.gbapal"); +const u16 gFieldEffectObjectPic_CutGrass[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); +UNUSED const u16 gFieldEffectObjectPic_CutGrass2[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); +const u16 gFieldEffectPal_CutGrass[] = INCBIN_U16("graphics/field_effects/fldeff_cut.gbapal"); const u16 gFieldEffectObjectPic_Ripple[] = INCBIN_U16("graphics/field_effects/pics/ripple.4bpp"); const u16 gFieldEffectObjectPic_Ash[] = INCBIN_U16("graphics/field_effects/pics/ash.4bpp"); const u16 gFieldEffectObjectPic_Arrow[] = INCBIN_U16("graphics/field_effects/pics/arrow.4bpp"); diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 20fff2606..86548ddb2 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -93,11 +93,11 @@ static const union AnimCmd *const sSpriteAnimTable_FldEff_CutGrass[] = { }; static const struct SpriteFrameImage sSpriteFrameImages_FldEff_CutGrass[] = { - {gUnknown_8398648, 0x20} + {gFieldEffectObjectPic_CutGrass, 0x20} }; const struct SpritePalette gFldEffPalette_CutGrass[] = { - gUnknown_8398688, 4096 + gFieldEffectPal_CutGrass, 4096 }; static const struct SpriteTemplate sSpriteTemplate_FldEff_CutGrass = { diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index 0eb0d3c1e..0d25953af 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -7,7 +7,7 @@ #include "party_menu.h" static void FieldCallback_Dig(void); -static void sub_80C9AFC(void); +static void StartDigFieldEffect(void); bool8 SetUpFieldMove_Dig(void) { @@ -31,12 +31,12 @@ bool8 FldEff_UseDig(void) { u8 taskId = CreateFieldEffectShowMon(); - FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC); + FLDEFF_SET_FUNC_TO_DATA(StartDigFieldEffect); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return FALSE; } -static void sub_80C9AFC(void) +static void StartDigFieldEffect(void) { u8 taskId; diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 74e92e9ee..b416e1fce 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -18,8 +18,8 @@ static void Task_FieldEffectShowMon_Init(u8 taskId); static void Task_FieldEffectShowMon_WaitFldeff(u8 taskId); static void Task_FieldEffectShowMon_WaitPlayerAnim(u8 taskId); static void Task_FieldEffectShowMon_Cleanup(u8 taskId); -static void sub_80C9A10(void); -static void sub_80C9A60(void); +static void FieldCallback_UseRockSmash(void); +static void StartRockSmashFieldEffect(void); EWRAM_DATA struct MapPosition gPlayerFacingPosition = {}; @@ -108,13 +108,13 @@ bool8 SetUpFieldMove_RockSmash(void) if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_ROCK_SMASH_ROCK) == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_80C9A10; + gPostMenuFieldCallback = FieldCallback_UseRockSmash; return TRUE; } return FALSE; } -static void sub_80C9A10(void) +static void FieldCallback_UseRockSmash(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); ScriptContext_SetupScript(EventScript_FldEffRockSmash); @@ -124,12 +124,12 @@ bool8 FldEff_UseRockSmash(void) { u8 taskId = CreateFieldEffectShowMon(); - FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60); + FLDEFF_SET_FUNC_TO_DATA(StartRockSmashFieldEffect); IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); return FALSE; } -static void sub_80C9A60(void) +static void StartRockSmashFieldEffect(void) { PlaySE(SE_M_ROCK_THROW); FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index 22887242a..6eb24dc6b 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -5,12 +5,12 @@ #include "new_menu_helpers.h" #include "constants/songs.h" -static void sub_80E57E8(u8 taskId); -static void sub_80E583C(u8 taskId); -static void sub_80E58A0(u8 taskId); -static void sub_80E5934(u8 taskId); +static void Task_SoftboiledRestoreHealth(u8 taskId); +static void Task_DisplayHPRestoredMessage(u8 taskId); +static void Task_FinishSoftboiled(u8 taskId); +static void CantUseSoftboiledOnMon(u8 taskId); -extern const u8 gUnknown_84169F8[]; +extern const u8 gText_CantBeUsedOnPkmn[]; extern const u8 gText_PkmnHPRestoredByVar2[]; bool8 SetUpFieldMove_SoftBoiled(void) @@ -26,84 +26,83 @@ bool8 SetUpFieldMove_SoftBoiled(void) void ChooseMonForSoftboiled(u8 taskId) { - gPartyMenu.action = 10; + gPartyMenu.action = PARTY_ACTION_SOFTBOILED; gPartyMenu.slotId2 = gPartyMenu.slotId; AnimatePartySlot(GetCursorSelectionMonId(), 1); - DisplayPartyMenuStdMessage(5); + DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } void Task_TryUseSoftboiledOnPartyMon(u8 taskId) { - u8 r8 = gPartyMenu.slotId; - u8 r5 = gPartyMenu.slotId2; + u8 userPartyId = gPartyMenu.slotId; + u8 recipientPartyId = gPartyMenu.slotId2; u16 curHp; - s16 delta; - if (r5 > 6) + if (recipientPartyId > PARTY_SIZE) { - gPartyMenu.action = 0; - DisplayPartyMenuStdMessage(0); + gPartyMenu.action = PARTY_ACTION_CHOOSE_MON; + DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } else { - curHp = GetMonData(&gPlayerParty[r5], MON_DATA_HP); - if (curHp == 0 || r8 == r5 || GetMonData(&gPlayerParty[r5], MON_DATA_MAX_HP) == curHp) - { - sub_80E5934(taskId); - } + curHp = GetMonData(&gPlayerParty[recipientPartyId], MON_DATA_HP); + if (curHp == 0 + || userPartyId == recipientPartyId + || GetMonData(&gPlayerParty[recipientPartyId], MON_DATA_MAX_HP) == curHp) + CantUseSoftboiledOnMon(taskId); else { PlaySE(SE_USE_ITEM); - PartyMenuModifyHP(taskId, r8, -1, GetMonData(&gPlayerParty[r8], MON_DATA_MAX_HP) / 5, sub_80E57E8); + PartyMenuModifyHP(taskId, userPartyId, -1, GetMonData(&gPlayerParty[userPartyId], MON_DATA_MAX_HP) / 5, Task_SoftboiledRestoreHealth); } } } -static void sub_80E57E8(u8 taskId) +static void Task_SoftboiledRestoreHealth(u8 taskId) { PlaySE(SE_USE_ITEM); - PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP) / 5, sub_80E583C); + PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP) / 5, Task_DisplayHPRestoredMessage); } -static void sub_80E583C(u8 taskId) +static void Task_DisplayHPRestoredMessage(u8 taskId) { GetMonNickname(&gPlayerParty[gPartyMenu.slotId2], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_PkmnHPRestoredByVar2); - DisplayPartyMenuMessage(gStringVar4, 0); + DisplayPartyMenuMessage(gStringVar4, FALSE); ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = sub_80E58A0; + gTasks[taskId].func = Task_FinishSoftboiled; } -static void sub_80E58A0(u8 taskId) +static void Task_FinishSoftboiled(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - gPartyMenu.action = 0; + gPartyMenu.action = PARTY_ACTION_CHOOSE_MON; AnimatePartySlot(gPartyMenu.slotId, 0); gPartyMenu.slotId = gPartyMenu.slotId2; AnimatePartySlot(gPartyMenu.slotId2, 1); ClearStdWindowAndFrameToTransparent(6, 0); ClearWindowTilemap(6); - DisplayPartyMenuStdMessage(0); + DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } } -static void sub_80E5900(u8 taskId) +static void Task_ChooseNewMonForSoftboiled(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - DisplayPartyMenuStdMessage(5); + DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } } -static void sub_80E5934(u8 taskId) +static void CantUseSoftboiledOnMon(u8 taskId) { PlaySE(SE_SELECT); - DisplayPartyMenuMessage(gUnknown_84169F8, 0); + DisplayPartyMenuMessage(gText_CantBeUsedOnPkmn, FALSE); ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = sub_80E5900; + gTasks[taskId].func = Task_ChooseNewMonForSoftboiled; } diff --git a/src/strings.c b/src/strings.c index c8f85b50f..996cf1ac3 100644 --- a/src/strings.c +++ b/src/strings.c @@ -252,7 +252,7 @@ const u8 gMenuText_Confirm[] = _("OK"); const u8 gUnknown_84169D8[] = _(""); const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}"); const u8 gText_WontHaveEffect[] = _("It won't have any effect.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_84169F8[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantBeUsedOnPkmn[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCantSwitchOut[] = _("{STR_VAR_1} can't be switched\nout!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyInBattle[] = _("{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadySelected[] = _("{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}"); From 81ef26732d3967c02637f82c07192505d341d016 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 4 Sep 2022 18:06:58 -0300 Subject: [PATCH 055/105] Removed UNUSED attribute --- include/constants/weather.h | 17 ++++++++++ include/party_menu.h | 8 ++--- src/battle_anim_special.c | 12 ++++--- src/battle_bg.c | 6 ++-- src/battle_controller_player.c | 3 +- src/battle_gfx_sfx_util.c | 4 +-- src/battle_main.c | 12 +++---- src/berry_crush.c | 34 +++++++++---------- src/bike.c | 4 +-- src/credits.c | 2 +- .../object_events/object_event_graphics.h | 6 ++-- src/field_weather.c | 25 +++++++------- src/librfu_rfu.c | 10 +++--- src/link_rfu_2.c | 2 +- src/link_rfu_3.c | 2 +- src/party_menu.c | 24 ++++++------- src/pc_screen_effect.c | 4 +-- src/pokemon_special_anim_scene.c | 13 ++++--- src/pokemon_summary_screen.c | 4 +-- 19 files changed, 110 insertions(+), 82 deletions(-) diff --git a/include/constants/weather.h b/include/constants/weather.h index b02496bff..d7572f91b 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -20,4 +20,21 @@ #define WEATHER_ROUTE119_CYCLE 20 // unused #define WEATHER_ROUTE123_CYCLE 21 // unused +// These are used in maps' coord_weather_event entries. +// They are not a one-to-one mapping with the engine's +// internal weather constants above. +#define COORD_EVENT_WEATHER_SUNNY_CLOUDS 1 +#define COORD_EVENT_WEATHER_SUNNY 2 +#define COORD_EVENT_WEATHER_RAIN 3 +#define COORD_EVENT_WEATHER_SNOW 4 +#define COORD_EVENT_WEATHER_RAIN_THUNDERSTORM 5 +#define COORD_EVENT_WEATHER_FOG_HORIZONTAL 6 +#define COORD_EVENT_WEATHER_FOG_DIAGONAL 7 +#define COORD_EVENT_WEATHER_VOLCANIC_ASH 8 +#define COORD_EVENT_WEATHER_SANDSTORM 9 +#define COORD_EVENT_WEATHER_SHADE 10 +#define COORD_EVENT_WEATHER_DROUGHT 11 +#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 +#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 + #endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/party_menu.h b/include/party_menu.h index 69f25e319..5d329d246 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -53,14 +53,14 @@ void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData); void CB2_ShowPartyMenuForItemUse(void); void ItemUseCB_Medicine(u8 taskId, TaskFunc func); void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func); -void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func); -void ItemUseCB_PPUp(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func); +void ItemUseCB_PPUp(u8 taskId, TaskFunc func); u16 ItemIdToBattleMoveId(u16 item); bool8 IsMoveHm(u16 move); bool8 MonKnowsMove(struct Pokemon *mon, u16 move); -void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_TMHM(u8 taskId, TaskFunc func); void ItemUseCB_RareCandy(u8 taskId, TaskFunc func); -void ItemUseCB_SacredAsh(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func); void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func); u8 GetItemEffectType(u16 item); void CB2_PartyMenuFromStartMenu(void); diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 8850ebc3a..b4197d598 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -35,9 +35,9 @@ #define TAG_HEALTHBOX_PALS_2 55050 // RAM -UNUSED u32 gMonShrinkDuration; -UNUSED u16 gMonShrinkDelta; -UNUSED u16 gMonShrinkDistance; +u32 gMonShrinkDuration; +u16 gMonShrinkDelta; +u16 gMonShrinkDistance; // Function Declarations static void AnimTask_UnusedLevelUpHealthBox_Step(u8); @@ -409,7 +409,9 @@ const struct SpriteTemplate gSafariRockTemplate = }; // Functions -UNUSED void AnimTask_UnusedLevelUpHealthBox(u8 taskId) + +// Unused +void AnimTask_LevelUpHealthBox(u8 taskId) { struct BattleAnimBgData animBgData; u8 healthBoxSpriteId; @@ -2205,7 +2207,7 @@ static void SpriteCB_ShinySparkles_2(struct Sprite *sprite) void AnimTask_LoadBaitGfx(u8 taskId) { - UNUSED u8 paletteIndex; + u8 paletteIndex; LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_SAFARI_BAIT - ANIM_SPRITES_START]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_SAFARI_BAIT - ANIM_SPRITES_START]); diff --git a/src/battle_bg.c b/src/battle_bg.c index dd9666499..c141d3d51 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -588,7 +588,8 @@ static const struct { {MAP_BATTLE_SCENE_LINK, BATTLE_TERRAIN_LINK} }; -UNUSED void CreateUnknownDebugSprite(void) +// Unused +void CreateUnknownDebugSprite(void) { u8 spriteId; @@ -634,7 +635,8 @@ static void LoadBattleTerrainEntryGfx(u16 terrain) LZDecompressVram(sBattleTerrainTable[terrain].entryTilemap, (void *)BG_SCREEN_ADDR(28)); } -UNUSED void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr) +// Unused +void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr) { if (terrain > BATTLE_TERRAIN_PLAIN) terrain = BATTLE_TERRAIN_PLAIN; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index d12b8a4e7..a1204de6f 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -309,7 +309,8 @@ static void HandleInputChooseAction(void) } } -UNUSED static void UnusedEndBounceEffect(void) +// Unused +static void EndBounceEffect2(void) { EndBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX); EndBounceEffect(gActiveBattler, BOUNCE_MON); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 327253c04..42f7ed4fc 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -146,8 +146,8 @@ void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite) } } -// not used -UNUSED static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1) +// Unused +static void DoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1) { sprite->animPaused = 1; sprite->callback = SpriteCallbackDummy; diff --git a/src/battle_main.c b/src/battle_main.c index 349d5e12f..b727437f1 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -76,7 +76,7 @@ static void CB2_EndLinkBattle(void); static void EndLinkBattleInSteps(void); static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite); static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite); -static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite); +static void SpriteCB_8011E28_Step(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); static void SpriteCB_BlinkVisible(struct Sprite *sprite); static void oac_poke_ally_(struct Sprite *sprite); @@ -1917,16 +1917,16 @@ void SpriteCallbackDummy_2(struct Sprite *sprite) { } -// not used -UNUSED static void SpriteCB_Unused_8011E28(struct Sprite *sprite) +// Unused +static void SpriteCB_8011E28(struct Sprite *sprite) { sprite->data[3] = 6; sprite->data[4] = 1; - sprite->callback = SpriteCB_Unused_8011E28_Step; + sprite->callback = SpriteCB_8011E28_Step; } -// not used -static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite) +// Unused +static void SpriteCB_8011E28_Step(struct Sprite *sprite) { --sprite->data[4]; if (sprite->data[4] == 0) diff --git a/src/berry_crush.c b/src/berry_crush.c index b21158cbb..464e629c5 100644 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1299,21 +1299,21 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_ShowGameDisplay(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_ShowGameDisplay(struct BerryCrushGame * game, u8 *args) { if (ShowGameDisplay()) RunOrScheduleCommand(game->nextCmd, RUN_CMD, game->commandParams); return 0; } -static u32 Cmd_HideGameDisplay(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_HideGameDisplay(struct BerryCrushGame * game, u8 *args) { if (HideGameDisplay()) RunOrScheduleCommand(game->nextCmd, RUN_CMD, game->commandParams); return 0; } -static u32 Cmd_SignalReadyToBegin(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_SignalReadyToBegin(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1356,7 +1356,7 @@ static u32 Cmd_AskPickBerry(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_GoToBerryPouch(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_GoToBerryPouch(struct BerryCrushGame * game, u8 *args) { game->cmdCallback = NULL; SetMainCallback2(ChooseBerry); @@ -1415,7 +1415,7 @@ static u32 Cmd_WaitForOthersToPickBerries(struct BerryCrushGame * game, u8 *args return 0; } -static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1470,7 +1470,7 @@ static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame * game, UNUSED u8 *a return 0; } -static u32 Cmd_DropLid(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_DropLid(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1517,7 +1517,7 @@ static u32 Cmd_DropLid(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_Countdown(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_Countdown(struct BerryCrushGame * game, u8 *args) { switch (game-> cmdState) { @@ -1822,7 +1822,7 @@ static void RecvLinkData(struct BerryCrushGame * game) game->endGame = TRUE; } -static u32 Cmd_PlayGame_Leader(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_PlayGame_Leader(struct BerryCrushGame * game, u8 *args) { memset(&game->localState, 0, sizeof(game->localState)); memset(&game->recvCmd, 0, sizeof(game->recvCmd)); @@ -1855,7 +1855,7 @@ static u32 Cmd_PlayGame_Leader(struct BerryCrushGame * game, UNUSED u8 *args) } } -static u32 Cmd_PlayGame_Member(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_PlayGame_Member(struct BerryCrushGame * game, u8 *args) { memset(&game->localState, 0, sizeof(game->localState)); memset(&game->recvCmd, 0, sizeof(game->recvCmd)); @@ -1886,7 +1886,7 @@ static u32 Cmd_PlayGame_Member(struct BerryCrushGame * game, UNUSED u8 *args) } // Game was 'won', crusher was pushed down fully before time was up -static u32 Cmd_FinishGame(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_FinishGame(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1983,7 +1983,7 @@ static u32 Cmd_HandleTimeUp(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_TabulateResults(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_TabulateResults(struct BerryCrushGame * game, u8 *args) { u8 i, j, tempPlayerId; s32 temp1, temp2; @@ -2283,7 +2283,7 @@ static u32 Cmd_AskPlayAgain(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame * game, u8 *args) { u8 i = 0; @@ -2330,7 +2330,7 @@ static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame * game, UNUSE return 0; } -static u32 Cmd_PlayAgain(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_PlayAgain(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -2360,7 +2360,7 @@ static u32 Cmd_PlayAgain(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_StopGame(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_StopGame(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -2391,7 +2391,7 @@ static u32 Cmd_StopGame(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_CloseLink(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_CloseLink(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -2415,7 +2415,7 @@ static u32 Cmd_CloseLink(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_Quit(UNUSED struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_Quit(struct BerryCrushGame * game, u8 *args) { QuitBerryCrush(NULL); return 0; @@ -2766,7 +2766,7 @@ static void SpriteCB_DropBerryIntoCrusher(struct Sprite *sprite) #undef MASK_TARGET_Y #undef F_MOVE_HORIZ -static void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame * game, UNUSED struct BerryCrushGame_Gfx * gfx) +static void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame * game, struct BerryCrushGame_Gfx * gfx) { u8 i; for (i = 0; i < game->playerCount; i++) diff --git a/src/bike.c b/src/bike.c index 4a24fb2a3..941a9773a 100644 --- a/src/bike.c +++ b/src/bike.c @@ -100,7 +100,7 @@ static u8 BikeInputHandler_Normal(u8 *direction_p, u16 newKeys, u16 heldKeys) } } -static u8 BikeInputHandler_Turning(u8 *direction_p, UNUSED u16 newKeys, UNUSED u16 heldKeys) +static u8 BikeInputHandler_Turning(u8 *direction_p, u16 newKeys, u16 heldKeys) { *direction_p = gPlayerAvatar.newDirBackup; gPlayerAvatar.runningState = TURN_DIRECTION; @@ -196,7 +196,7 @@ static void BikeTransition_MoveDirection(u8 direction) } } -static void BikeTransition_Downhill(UNUSED u8 v) +static void BikeTransition_Downhill(u8 v) { u8 collision = GetBikeCollision(DIR_SOUTH); diff --git a/src/credits.c b/src/credits.c index af2ea3889..5252ea682 100644 --- a/src/credits.c +++ b/src/credits.c @@ -776,7 +776,7 @@ static void DestroyCreditsWindow(void) } } -static bool32 DoOverworldMapScrollScene(UNUSED u8 unused) +static bool32 DoOverworldMapScrollScene(u8 whichMon) { switch (sCreditsMgr->subseqno) { diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 6e6831a82..97da9e822 100644 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -192,7 +192,7 @@ const u16 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U16("graphics/field_effec const u16 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_extra_large.4bpp"); const u16 filler_8398188[0x90] = {}; const u16 gFieldEffectObjectPic_CutGrass[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); -UNUSED const u16 gFieldEffectObjectPic_CutGrass2[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); +const u16 gFieldEffectObjectPic_CutGrass2[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); // Unused const u16 gFieldEffectPal_CutGrass[] = INCBIN_U16("graphics/field_effects/fldeff_cut.gbapal"); const u16 gFieldEffectObjectPic_Ripple[] = INCBIN_U16("graphics/field_effects/pics/ripple.4bpp"); const u16 gFieldEffectObjectPic_Ash[] = INCBIN_U16("graphics/field_effects/pics/ash.4bpp"); @@ -201,9 +201,9 @@ const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/pale const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/general_1.gbapal"); const u16 filler_8398FE8[16] = {0}; const u16 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U16("graphics/field_effects/pics/ground_impact_dust.4bpp"); -UNUSED const u16 gFieldEffectObjectPic_UnusedGrass3[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_3.4bpp"); +const u16 gFieldEffectObjectPic_UnusedGrass3[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_3.4bpp"); // Unused const u16 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U16("graphics/field_effects/pics/jump_tall_grass.4bpp"); -UNUSED const u16 gFieldEffectObjectPic_UnusedGrass4[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_4.4bpp"); +const u16 gFieldEffectObjectPic_UnusedGrass4[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_4.4bpp"); // Unused const u16 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U16("graphics/field_effects/pics/jump_long_grass.4bpp"); const u16 gFieldEffectObjectPic_UnusedGrass[] = INCBIN_U16("graphics/field_effects/pics/unused_grass.4bpp"); const u16 gFieldEffectObjectPic_UnusedGrass2[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_2.4bpp"); diff --git a/src/field_weather.c b/src/field_weather.c index 6322306c6..e088f22df 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1045,38 +1045,39 @@ bool8 Weather_UpdateBlend(void) return FALSE; } -UNUSED static void Unused_SetWeather(u8 a) +// Unused. Uses the same numbering scheme as the coord events +static void SetFieldWeather(u8 weather) { - switch (a) + switch (weather) { - case 1: + case COORD_EVENT_WEATHER_SUNNY_CLOUDS: SetWeather(WEATHER_SUNNY_CLOUDS); break; - case 2: + case COORD_EVENT_WEATHER_SUNNY: SetWeather(WEATHER_SUNNY); break; - case 3: + case COORD_EVENT_WEATHER_RAIN: SetWeather(WEATHER_RAIN); break; - case 4: + case COORD_EVENT_WEATHER_SNOW: SetWeather(WEATHER_SNOW); break; - case 5: + case COORD_EVENT_WEATHER_RAIN_THUNDERSTORM: SetWeather(WEATHER_RAIN_THUNDERSTORM); break; - case 6: + case COORD_EVENT_WEATHER_FOG_HORIZONTAL: SetWeather(WEATHER_FOG_HORIZONTAL); break; - case 7: + case COORD_EVENT_WEATHER_FOG_DIAGONAL: SetWeather(WEATHER_FOG_DIAGONAL); break; - case 8: + case COORD_EVENT_WEATHER_VOLCANIC_ASH: SetWeather(WEATHER_VOLCANIC_ASH); break; - case 9: + case COORD_EVENT_WEATHER_SANDSTORM: SetWeather(WEATHER_SANDSTORM); break; - case 10: + case COORD_EVENT_WEATHER_SHADE: SetWeather(WEATHER_SHADE); break; } diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 9f642907b..69fbbd13f 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -42,8 +42,8 @@ static void rfu_CB_pollConnectParent(u8 reqCommand, u16 reqResult); static void rfu_CB_pollConnectParent(u8 reqCommand, u16 reqResult); static void rfu_CB_disconnect(u8 reqCommand, u16 reqResult); static void rfu_CB_CHILD_pollConnectRecovery(u8 reqCommand, u16 reqResult); -static void rfu_CB_sendData(UNUSED u8 reqCommand, u16 reqResult); -static void rfu_CB_sendData2(UNUSED u8 reqCommand, u16 reqResult); +static void rfu_CB_sendData(u8 reqCommand, u16 reqResult); +static void rfu_CB_sendData2(u8 reqCommand, u16 reqResult); static void rfu_CB_sendData3(u8 reqCommand, u16 reqResult); static void rfu_CB_recvData(u8 reqCommand, u16 reqResult); static void rfu_enableREQCallback(bool8 enable); @@ -64,7 +64,7 @@ static void rfu_STC_CHILD_analyzeRecvPacket(void); static u16 rfu_STC_analyzeLLSF(u8, const u8 *, u16); static void rfu_STC_UNI_receive(u8, const struct RfuLocalStruct *, const u8 *); static void rfu_STC_NI_receive_Receiver(u8, const struct RfuLocalStruct *, const u8 *); -static void rfu_STC_NI_receive_Sender(u8, u8, const struct RfuLocalStruct *, UNUSED const u8 *); +static void rfu_STC_NI_receive_Sender(u8, u8, const struct RfuLocalStruct *, const u8 *); static void rfu_STC_NI_initSlot_asRecvDataEntity(u8, struct NIComm *); static void rfu_STC_NI_initSlot_asRecvControllData(u8, struct NIComm *); @@ -1680,7 +1680,7 @@ void rfu_REQ_sendData(bool8 clockChangeFlag) } } -static void rfu_CB_sendData(UNUSED u8 reqCommand, u16 reqResult) +static void rfu_CB_sendData(u8 reqCommand, u16 reqResult) { u8 i; struct NIComm *NI_comm; @@ -1706,7 +1706,7 @@ static void rfu_CB_sendData(UNUSED u8 reqCommand, u16 reqResult) rfu_STC_REQ_callback(ID_DATA_TX_REQ, reqResult); } -static void rfu_CB_sendData2(UNUSED u8 reqCommand, u16 reqResult) +static void rfu_CB_sendData2(u8 reqCommand, u16 reqResult) { rfu_STC_REQ_callback(ID_DATA_TX_REQ, reqResult); } diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 8860deb4f..170b4080a 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -640,7 +640,7 @@ void sub_80F8FA0(void) Rfu.state = 14; } -UNUSED +// Unused static void sub_80F8FAC(u8 a0) { u8 i; diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index de0a63490..06f01ad80 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -558,7 +558,7 @@ static bool8 RfuUnusedQueue_Enqueue(struct RfuUnusedQueue *queue, u8 *dest) return TRUE; } -UNUSED +// Unused static void sub_80FC9B8(u8 *q1, u8 mode) { s32 i; diff --git a/src/party_menu.c b/src/party_menu.c index 49f51829d..8cc148d48 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -300,7 +300,7 @@ static void Task_DisplayHPRestoredMessage(u8 taskId); static void SetSelectedMoveForPPItem(u8 taskId); static void ReturnToUseOnWhichMon(u8 taskId); static void TryUsePPItem(u8 taskId); -static void ItemUseCB_LearnedMove(u8 taskId, UNUSED TaskFunc func); +static void ItemUseCB_LearnedMove(u8 taskId, TaskFunc func); static void Task_LearnedMove(u8 taskId); static void Task_ReplaceMoveYesNo(u8 taskId); static void Task_DoLearnedMoveFanfareAfterText(u8 taskId); @@ -317,7 +317,7 @@ static void Task_PartyMenuReplaceMove(u8 taskId); static void Task_StopLearningMoveYesNo(u8 taskId); static void Task_HandleStopLearningMoveYesNoInput(u8 taskId); static void Task_TryLearningNextMoveAfterText(u8 taskId); -static void ItemUseCB_RareCandyStep(u8 taskId, UNUSED TaskFunc func); +static void ItemUseCB_RareCandyStep(u8 taskId, TaskFunc func); static void Task_DisplayLevelUpStatsPg1(u8 taskId); static void Task_DisplayLevelUpStatsPg2(u8 taskId); static void UpdateMonDisplayInfoAfterRareCandy(u8 slot, struct Pokemon *mon); @@ -376,8 +376,8 @@ static void SetUsedFieldMoveQuestLogEvent(struct Pokemon *mon, u8 fieldMove); static void sub_8124DE0(void); static void sub_8124E48(void); static void sub_812580C(u8 taskId); -static void sub_8125898(u8 taskId, UNUSED TaskFunc func); -static void sub_8125F4C(u8 taskId, UNUSED TaskFunc func); +static void sub_8125898(u8 taskId, TaskFunc func); +static void sub_8125F4C(u8 taskId, TaskFunc func); static void sub_8125F5C(u8 taskId); static void sub_8126BD4(void); static bool8 MonCanEvolve(void); @@ -4623,7 +4623,7 @@ static void Task_HandleWhichMoveInput(u8 taskId) } } -void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func) +void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func) { const u8 *effect; u16 item = gSpecialVar_ItemId; @@ -4689,7 +4689,7 @@ static void sub_812580C(u8 taskId) } } -static void sub_8125898(u8 taskId, UNUSED TaskFunc func) +static void sub_8125898(u8 taskId, TaskFunc func) { u16 move; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; @@ -4739,7 +4739,7 @@ static void TryUsePPItem(u8 taskId) } } -void ItemUseCB_PPUp(u8 taskId, UNUSED TaskFunc func) +void ItemUseCB_PPUp(u8 taskId, TaskFunc func) { PlaySE(SE_SELECT); DisplayPartyMenuStdMessage(PARTY_MSG_BOOST_PP_WHICH_MOVE); @@ -4789,7 +4789,7 @@ static void DisplayLearnMoveMessageAndClose(u8 taskId, const u8 *str) gTasks[taskId].func = Task_ClosePartyMenuAfterText; } -void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func) +void ItemUseCB_TMHM(u8 taskId, TaskFunc func) { struct Pokemon *mon; s16 *move; @@ -4825,7 +4825,7 @@ void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func) } } -static void ItemUseCB_LearnedMove(u8 taskId, UNUSED TaskFunc func) +static void ItemUseCB_LearnedMove(u8 taskId, TaskFunc func) { Task_LearnedMove(taskId); } @@ -4944,7 +4944,7 @@ static void Task_ReturnToPartyMenuWhileLearningMove(u8 taskId) } } -static void sub_8125F4C(u8 taskId, UNUSED TaskFunc func) +static void sub_8125F4C(u8 taskId, TaskFunc func) { sub_8125F5C(taskId); } @@ -5072,7 +5072,7 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc func) } } -static void ItemUseCB_RareCandyStep(u8 taskId, UNUSED TaskFunc func) +static void ItemUseCB_RareCandyStep(u8 taskId, TaskFunc func) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; struct PartyMenuInternal *ptr = sPartyMenuInternal; @@ -5239,7 +5239,7 @@ static void DisplayMonLearnedMove(u8 taskId, u16 move) #define tHadEffect data[1] #define tLastSlotUsed data[2] -void ItemUseCB_SacredAsh(u8 taskId, UNUSED TaskFunc func) +void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func) { sPartyMenuInternal->tUsedOnSlot = FALSE; sPartyMenuInternal->tHadEffect = FALSE; diff --git a/src/pc_screen_effect.c b/src/pc_screen_effect.c index 99a73d427..e7303a030 100644 --- a/src/pc_screen_effect.c +++ b/src/pc_screen_effect.c @@ -16,7 +16,7 @@ #define tBldCntBak data[7] #define tBldYBak data[8] -static void BeginPCScreenEffect(TaskFunc func, u16 a2, UNUSED u16 a3, u8 priority); +static void BeginPCScreenEffect(TaskFunc func, u16 a2, u16 a3, u8 priority); static void Task_PCScreenEffect_TurnOn(u8 taskId); static void Task_PCScreenEffect_TurnOff(u8 taskId); @@ -40,7 +40,7 @@ bool8 IsPCScreenEffectRunning_TurnOff(void) return FuncIsActiveTask(Task_PCScreenEffect_TurnOff); } -static void BeginPCScreenEffect(TaskFunc func, u16 speed, UNUSED u16 unused, u8 priority) +static void BeginPCScreenEffect(TaskFunc func, u16 speed, u16 unused, u8 priority) { u8 taskId = CreateTask(func, priority); diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index 0b1277113..65d362e26 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -597,7 +597,8 @@ bool8 PSA_UseTM_RunMachineSetWobble(void) // anim in with using Rare Candy, but they were scrapped // at a later stage of development -UNUSED void PSA_CreateLevelUpVerticalSpritesTask(void) +// Unused +void PSA_CreateLevelUpVerticalSpritesTask(void) { CreateLevelUpVerticalSpritesTask(120, 56, 4, 4, 2, 0); } @@ -607,20 +608,24 @@ bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void) return LevelUpVerticalSpritesTaskIsRunning(); } -UNUSED void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter) +// Unused +void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter) { DrawTextBorderOuter(1, 0x001, 0xE); DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); PutWindowTilemap(1); CopyWindowToVram(1, COPYWIN_FULL); } -UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats) + +// Unused +void PSA_DrawLevelUpWindowPg2(u16 *currStats) { DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); CopyWindowToVram(1, COPYWIN_GFX); } -UNUSED bool8 PSA_IsCopyingLevelUpWindowToVram(void) +// Unused +bool8 PSA_IsCopyingLevelUpWindowToVram(void) { return IsDma3ManagerBusyWithBgCopy(); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 3c8967f72..6f7a06d9c 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -5218,8 +5218,8 @@ static bool32 MapSecIsInKantoOrSevii(u8 mapSec) return FALSE; } -UNUSED -static void Unused_ShowPokemonSummaryScreen_NullParty(void) +// Unused +static void ShowPokemonSummaryScreen_NullParty(void) { ShowPokemonSummaryScreen(NULL, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL); } From b6bc114ef1cbd9c704f014c78d9a1073ec339c5b Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 4 Sep 2022 20:56:14 -0300 Subject: [PATCH 056/105] Review suggestions --- src/battle_main.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index b727437f1..cb5de711b 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -76,7 +76,7 @@ static void CB2_EndLinkBattle(void); static void EndLinkBattleInSteps(void); static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite); static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite); -static void SpriteCB_8011E28_Step(struct Sprite *sprite); +static void SpriteCB_Flicker(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); static void SpriteCB_BlinkVisible(struct Sprite *sprite); static void oac_poke_ally_(struct Sprite *sprite); @@ -1917,24 +1917,26 @@ void SpriteCallbackDummy_2(struct Sprite *sprite) { } -// Unused -static void SpriteCB_8011E28(struct Sprite *sprite) -{ - sprite->data[3] = 6; - sprite->data[4] = 1; - sprite->callback = SpriteCB_8011E28_Step; -} +#define sNumFlickers data[3] +#define sDelay data[4] // Unused -static void SpriteCB_8011E28_Step(struct Sprite *sprite) +static void SpriteCB_InitFlicker(struct Sprite *sprite) { - --sprite->data[4]; - if (sprite->data[4] == 0) + sprite->sNumFlickers = 6; + sprite->sDelay = 1; + sprite->callback = SpriteCB_Flicker; +} + +static void SpriteCB_Flicker(struct Sprite *sprite) +{ + sprite->sDelay--; + if (sprite->sDelay == 0) { - sprite->data[4] = 8; + sprite->sDelay = 8; sprite->invisible ^= 1; - --sprite->data[3]; - if (sprite->data[3] == 0) + sprite->sNumFlickers--; + if (sprite->sNumFlickers == 0) { sprite->invisible = FALSE; sprite->callback = SpriteCallbackDummy_2; @@ -1943,6 +1945,9 @@ static void SpriteCB_8011E28_Step(struct Sprite *sprite) } } +#undef sNumFlickers +#undef sDelay + void SpriteCB_FaintOpponentMon(struct Sprite *sprite) { u8 battler = sprite->sBattler; From 7dcac240d44dafaf17a0850fbb27ec5ecd647c75 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 4 Sep 2022 21:23:24 -0300 Subject: [PATCH 057/105] Review changes --- src/battle_controller_link_opponent.c | 4 ---- src/battle_controllers.c | 13 +++---------- src/pokemon_jump.c | 2 +- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 0d2c5b213..6e9fb7c61 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -305,13 +305,9 @@ static void CompleteOnHealthbarDone(void) SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) - { UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); - } else - { LinkOpponentBufferExecCompleted(); - } } static void HideHealthboxAfterMonFaint(void) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index a641c3c4f..ba56b0db1 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -367,18 +367,12 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size) switch (bufferId) { case BUFFER_A: - for (i = 0; i < size; i++) - { + for (i = 0; i < size; data++, i++) gBattleBufferA[gActiveBattler][i] = *data; - data++; - } break; case BUFFER_B: - for (i = 0; i < size; i++) - { + for (i = 0; i < size; data++, i++) gBattleBufferB[gActiveBattler][i] = *data; - data++; - } break; } } @@ -508,8 +502,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) } break; case 5: - gTasks[taskId].data[13]--; - if (gTasks[taskId].data[13] == 0) + if (--gTasks[taskId].data[13] == 0) { gTasks[taskId].data[13] = 5; gTasks[taskId].data[11] = 3; diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 1c501bac6..4ea4e1d1b 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -709,7 +709,7 @@ static void Task_StaticCountdown_Run(u8 taskId) u16 packet[RFU_PACKET_SIZE]; s16 *data = gTasks[taskId].data; - if (gReceivedRemoteLinkPlayers != 0) + if (gReceivedRemoteLinkPlayers) { // Read link timer if (gRecvCmds[0][1] == LINKCMD_COUNTDOWN) From 8a7f1cf1ceece006a55fd2b3a4bda5742329dc1f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 5 Sep 2022 23:07:27 -0400 Subject: [PATCH 058/105] Sync static text in ur message --- src/union_room_message.c | 571 ++++++++++++++++++++------------------- 1 file changed, 296 insertions(+), 275 deletions(-) diff --git a/src/union_room_message.c b/src/union_room_message.c index 3aeb40524..ad0737962 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -7,76 +7,80 @@ ALIGNED(4) const u8 gUnknown_84571B0[] = _(":"); ALIGNED(4) const u8 gUnknown_84571B4[] = _("{ID}"); ALIGNED(4) const u8 gUnknown_84571B8[] = _("Please start over from the beginning."); ALIGNED(4) const u8 gUnknown_84571E0[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled."); -ALIGNED(4) const u8 gUnref_845721C[] = _("ã¨ã‚‚ã ã¡ã‹ã‚‰ã® れんらãã‚’\nã¾ã£ã¦ã„ã¾ã™"); +ALIGNED(4) static const u8 gUnref_845721C[] = _("ã¨ã‚‚ã ã¡ã‹ã‚‰ã® れんらãã‚’\nã¾ã£ã¦ã„ã¾ã™"); ALIGNED(4) const u8 gUnknown_8457234[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player."); ALIGNED(4) const u8 gUnknown_8457264[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready."); -ALIGNED(4) const u8 gJPText_SingleBattle[] = _("シングルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_DoubleBattle[] = _("ダブルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_MultiBattle[] = _("マルãƒãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_TradePokemon[] = _("ãƒã‚±ãƒ¢ãƒ³ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_Chat[] = _("ãƒãƒ£ãƒƒãƒˆã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_DistWonderCard[] = _("ãµã—ãŽãªã‚«ãƒ¼ãƒ‰ã‚’ãã°ã‚‹"); -ALIGNED(4) const u8 gJPText_DistWonderNews[] = _("ãµã—ãŽãªãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚’ãã°ã‚‹"); -ALIGNED(4) const u8 unref_text_union_room_1[] = _("ãµã—ãŽãªã§ãã”ã¨ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_HoldPokemonJump[] = _("ãªã‚ã¨ã³ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_HoldBerryCrush[] = _("ãã®ã¿ãƒžãƒƒã‚·ãƒ£ãƒ¼ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_HoldBerryPicking[] = _("ãã®ã¿ã©ã‚Šã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_HoldSpinTrade[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) const u8 gJPText_HoldSpinShop[] = _("ãã‚‹ãるショップを ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_SingleBattle[] = _("シングルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_DoubleBattle[] = _("ダブルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_MultiBattle[] = _("マルãƒãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_TradePokemon[] = _("ãƒã‚±ãƒ¢ãƒ³ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_Chat[] = _("ãƒãƒ£ãƒƒãƒˆã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_DistWonderCard[] = _("ãµã—ãŽãªã‚«ãƒ¼ãƒ‰ã‚’ãã°ã‚‹"); +ALIGNED(4) static const u8 sJPText_DistWonderNews[] = _("ãµã—ãŽãªãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚’ãã°ã‚‹"); +ALIGNED(4) static const u8 sJPText_DistMysteryEvent[] = _("ãµã—ãŽãªã§ãã”ã¨ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_HoldPokemonJump[] = _("ãªã‚ã¨ã³ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_HoldBerryCrush[] = _("ãã®ã¿ãƒžãƒƒã‚·ãƒ£ãƒ¼ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_HoldBerryPicking[] = _("ãã®ã¿ã©ã‚Šã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_HoldSpinTrade[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sJPText_HoldSpinShop[] = _("ãã‚‹ãるショップを ã‹ã„ã•ã„ã™ã‚‹"); -const u8 *const unref_text_ptrs_union_room_0[] = { - gJPText_SingleBattle, - gJPText_DoubleBattle, - gJPText_MultiBattle, - gJPText_TradePokemon, - gJPText_Chat, - gJPText_DistWonderCard, - gJPText_DistWonderNews, - gJPText_DistWonderCard, - gJPText_HoldPokemonJump, - gJPText_HoldBerryCrush, - gJPText_HoldBerryPicking, - gJPText_HoldBerryPicking, - gJPText_HoldSpinTrade, - gJPText_HoldSpinShop +// Unused +static const u8 *const sJPLinkGroupActionTexts[] = { + sJPText_SingleBattle, + sJPText_DoubleBattle, + sJPText_MultiBattle, + sJPText_TradePokemon, + sJPText_Chat, + sJPText_DistWonderCard, + sJPText_DistWonderNews, + sJPText_DistWonderCard, + sJPText_HoldPokemonJump, + sJPText_HoldBerryCrush, + sJPText_HoldBerryPicking, + sJPText_HoldBerryPicking, + sJPText_HoldSpinTrade, + sJPText_HoldSpinShop }; -const u8 gText_1PlayerNeeded[] = _("1 player\nneeded."); -const u8 gText_2PlayersNeeded[] = _("2 players\nneeded."); -const u8 gText_3PlayersNeeded[] = _("3 players\nneeded."); -const u8 gText_4PlayersNeeded[] = _("ã‚ã¨4ã«ã‚“\nã²ã¤ã‚ˆã†"); -const u8 gText_2PlayerMode[] = _("2-PLAYER\nMODE"); -const u8 gText_3PlayerMode[] = _("3-PLAYER\nMODE"); -const u8 gText_4PlayerMode[] = _("4-PLAYER\nMODE"); -const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE"); +static const u8 sText_1PlayerNeeded[] = _("1 player\nneeded."); +static const u8 sText_2PlayersNeeded[] = _("2 players\nneeded."); +static const u8 sText_3PlayersNeeded[] = _("3 players\nneeded."); +static const u8 sText_4PlayersNeeded[] = _("ã‚ã¨4ã«ã‚“\nã²ã¤ã‚ˆã†"); +static const u8 sText_2PlayerMode[] = _("2-PLAYER\nMODE"); +static const u8 sText_3PlayerMode[] = _("3-PLAYER\nMODE"); +static const u8 sText_4PlayerMode[] = _("4-PLAYER\nMODE"); +static const u8 sText_5PlayerMode[] = _("5-PLAYER\nMODE"); const u8 *const gUnknown_845742C[][5] = { - { - gText_1PlayerNeeded, - gText_2PlayerMode - }, { - gText_3PlayersNeeded, - gText_2PlayersNeeded, - gText_1PlayerNeeded, - gText_4PlayerMode - }, { - gText_1PlayerNeeded, - gText_2PlayerMode, - gText_3PlayerMode, - gText_4PlayerMode, - gText_5PlayerMode - }, { - gText_2PlayersNeeded, - gText_1PlayerNeeded, - gText_3PlayerMode, - gText_4PlayerMode, - gText_5PlayerMode + { // 2 players required + sText_1PlayerNeeded, + sText_2PlayerMode + }, + { // 4 players required + sText_3PlayersNeeded, + sText_2PlayersNeeded, + sText_1PlayerNeeded, + sText_4PlayerMode + }, + { // 2-5 players required + sText_1PlayerNeeded, + sText_2PlayerMode, + sText_3PlayerMode, + sText_4PlayerMode, + sText_5PlayerMode + }, + { // 3-5 players required + sText_2PlayersNeeded, + sText_1PlayerNeeded, + sText_3PlayerMode, + sText_4PlayerMode, + sText_5PlayerMode } }; ALIGNED(4) const u8 gUnknown_845747C[] = _("{B_BUTTON}CANCEL"); -ALIGNED(4) const u8 unref_text_union_room_2[] = _("ãŸã‚\nã•ã‚“ã‹ã—ゃ ã¼ã—ã‚…ã†ã¡ã‚…ㆠã§ã™ï¼"); +ALIGNED(4) static const u8 sJPText_SearchingForParticipants[] = _("ãŸã‚\nã•ã‚“ã‹ã—ゃ ã¼ã—ã‚…ã†ã¡ã‚…ㆠã§ã™ï¼"); ALIGNED(4) const u8 gUnknown_84574A0[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?"); ALIGNED(4) const u8 gUnknown_84574C4[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?"); ALIGNED(4) const u8 gUnknown_84574EC[] = _("{STR_VAR_2} contacted you.\nAdd to the members?"); @@ -84,49 +88,49 @@ ALIGNED(4) const u8 gUnknown_8457514[] = _("{STR_VAR_1}!\nAre these members OK?" ALIGNED(4) const u8 gUnknown_8457530[] = _("Cancel {STR_VAR_1} MODE\nwith these members?"); ALIGNED(4) const u8 gUnknown_8457554[] = _("An “OK†was sent\nto {STR_VAR_1}."); -ALIGNED(4) const u8 gUnknown_845756C[] = _("The other TRAINER doesn't appear\nto be available now…\p"); -ALIGNED(4) const u8 gUnknown_84575A4[] = _("You can't transmit with a TRAINER\nwho is too far away.\p"); -ALIGNED(4) const u8 gUnknown_84575DC[] = _("The other TRAINER(S) is/are not\nready yet.\p"); +ALIGNED(4) static const u8 sText_OtherTrainerUnavailableNow[] = _("The other TRAINER doesn't appear\nto be available now…\p"); +ALIGNED(4) static const u8 sText_CantTransmitTrainerTooFar[] = _("You can't transmit with a TRAINER\nwho is too far away.\p"); +ALIGNED(4) static const u8 sText_TrainersNotReadyYet[] = _("The other TRAINER(S) is/are not\nready yet.\p"); const u8 *const gUnknown_8457608[] = { - gUnknown_84575A4, - gUnknown_84575DC + sText_CantTransmitTrainerTooFar, + sText_TrainersNotReadyYet }; ALIGNED(4) const u8 gUnknown_8457610[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}"); -ALIGNED(4) const u8 gUnknown_8457644[] = _("There is a member who can no\nlonger remain available.\p"); +ALIGNED(4) static const u8 sText_MemberNoLongerAvailable[] = _("There is a member who can no\nlonger remain available.\p"); const u8 *const gUnknown_845767C[] = { - gUnknown_845756C, - gUnknown_8457644 + sText_OtherTrainerUnavailableNow, + sText_MemberNoLongerAvailable }; -ALIGNED(4) const u8 gUnknown_8457684[] = _("The other TRAINER appears\nunavailable…\p"); +ALIGNED(4) static const u8 sText_TrainerAppearsUnavailable[] = _("The other TRAINER appears\nunavailable…\p"); ALIGNED(4) const u8 gUnknown_84576AC[] = _("{STR_VAR_1} sent back an “OKâ€!"); ALIGNED(4) const u8 gUnknown_84576C4[] = _("{STR_VAR_1} OK'd your registration as\na member."); -ALIGNED(4) const u8 gUnknown_84576EC[] = _("{STR_VAR_1} replied, “No…â€\p"); +ALIGNED(4) static const u8 sText_PlayerRepliedNo[] = _("{STR_VAR_1} replied, “No…â€\p"); ALIGNED(4) const u8 gUnknown_8457700[] = _("{STR_VAR_1}!\nAwaiting other members!"); ALIGNED(4) const u8 gUnknown_845771C[] = _("Quit being a member?"); -ALIGNED(4) const u8 gUnknown_8457734[] = _("You stopped being a member.\p"); +ALIGNED(4) static const u8 sText_StoppedBeingMember[] = _("You stopped being a member.\p"); const u8 *const gUnknown_8457754[] = { NULL, - gUnknown_8457644, - gUnknown_8457684, + sText_MemberNoLongerAvailable, + sText_TrainerAppearsUnavailable, NULL, NULL, NULL, - gUnknown_84576EC, + sText_PlayerRepliedNo, NULL, NULL, - gUnknown_8457734 + sText_StoppedBeingMember }; ALIGNED(4) const u8 gUnknown_845777C[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established."); ALIGNED(4) const u8 gUnknown_84577BC[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…"); ALIGNED(4) const u8 gUnknown_84577F8[] = _("The link with your friend has been\ndropped…"); -ALIGNED(4) const u8 gUnknown_8457824[] = _("{STR_VAR_1} replied, “No…â€"); +ALIGNED(4) static const u8 sText_PlayerRepliedNo2[] = _("{STR_VAR_1} replied, “No…â€"); const u8 *const gUnknown_8457838[] = { NULL, @@ -135,77 +139,80 @@ const u8 *const gUnknown_8457838[] = { NULL, NULL, NULL, - gUnknown_8457824, + sText_PlayerRepliedNo2, NULL, NULL, NULL }; -ALIGNED(4) const u8 gUnknown_8457860[] = _("Do you want the {STR_VAR_2}\nMODE?"); -ALIGNED(4) const u8 gUnknown_845787C[] = _("Do you want the {STR_VAR_2}\nMODE?"); +ALIGNED(4) static const u8 sText_DoYouWantXMode[] = _("Do you want the {STR_VAR_2}\nMODE?"); +ALIGNED(4) static const u8 sText_DoYouWantXMode2[] = _("Do you want the {STR_VAR_2}\nMODE?"); -const u8 *const gUnknown_8457898[] = { - gUnknown_8457860, - gUnknown_845787C +// Unused +static const u8 *const sDoYouWantModeTexts[] = { + sText_DoYouWantXMode, + sText_DoYouWantXMode2 }; -ALIGNED(4) const u8 gUnknown_84578A0[] = _("ã¯ãªã—ã‹ã‘ã¦ã„ã¾ã™â€¦\nã—ょã†ã—ょㆠãŠã¾ã¡ãã ã•ã„"); +ALIGNED(4) static const u8 sText_CommunicatingPleaseWait[] = _("ã¯ãªã—ã‹ã‘ã¦ã„ã¾ã™â€¦\nã—ょã†ã—ょㆠãŠã¾ã¡ãã ã•ã„"); // Unused ALIGNED(4) const u8 gUnknown_84578BC[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…"); -ALIGNED(4) const u8 gUnknown_84578E4[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); -ALIGNED(4) const u8 gUnknown_8457950[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); -ALIGNED(4) const u8 gUnknown_84579BC[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) static const u8 sText_Communicating[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) static const u8 sText_CommunicatingWithPlayer[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); const u8 *const gURText_PleaseWaitMsgs[] = { - gUnknown_84578E4, - gUnknown_8457950, - gUnknown_84579BC + sText_Communicating, + sText_CommunicatingWithPlayer, + sText_PleaseWaitAWhile }; -ALIGNED(4) const u8 gUnknown_8457A40[] = _("Hiya! Is there something that you\nwanted to do?"); -ALIGNED(4) const u8 gUnknown_8457A70[] = _("Hello!\nWould you like to do something?"); -ALIGNED(4) const u8 gUnknown_8457A98[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); -ALIGNED(4) const u8 gUnknown_8457AD0[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); +ALIGNED(4) static const u8 sText_HiDoSomethingMale[] = _("Hiya! Is there something that you\nwanted to do?"); +ALIGNED(4) static const u8 sText_HiDoSomethingFemale[] = _("Hello!\nWould you like to do something?"); +ALIGNED(4) static const u8 sText_HiDoSomethingAgainMale[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); +ALIGNED(4) static const u8 sText_HiDoSomethingAgainFemale[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); const u8 *const gURText_FriendPromptsForActivity[][2] = { { - gUnknown_8457A40, - gUnknown_8457A70 + sText_HiDoSomethingMale, + sText_HiDoSomethingFemale }, { - gUnknown_8457A98, - gUnknown_8457AD0 + sText_HiDoSomethingAgainMale, + sText_HiDoSomethingAgainFemale } }; -ALIGNED(4) const u8 gUnknown_8457B14[] = _("Want to do something?"); -ALIGNED(4) const u8 gUnknown_8457B2C[] = _("Would you like to do something?"); -ALIGNED(4) const u8 gUnknown_8457B4C[] = _("{STR_VAR_1}: What would you like to\ndo now?"); -ALIGNED(4) const u8 gUnknown_8457B70[] = _("{STR_VAR_1}‘ã¾ãŸ ãªã«ã‹ã™ã‚‹ï¼Ÿ"); +ALIGNED(4) static const u8 sText_DoSomethingMale[] = _("Want to do something?"); +ALIGNED(4) static const u8 sText_DoSomethingFemale[] = _("Would you like to do something?"); +ALIGNED(4) static const u8 sText_DoSomethingAgainMale[] = _("{STR_VAR_1}: What would you like to\ndo now?"); +ALIGNED(4) static const u8 sText_DoSomethingAgainFemale[] = _("{STR_VAR_1}‘ã¾ãŸ ãªã«ã‹ã™ã‚‹ï¼Ÿ"); -const u8 *const gUnknown_8457B80[] = { - gUnknown_8457B14, - gUnknown_8457B2C, - gUnknown_8457B4C, - gUnknown_8457B4C +// Unused +static const u8 *const sDoSomethingTexts[] = { + sText_DoSomethingMale, + sText_DoSomethingFemale, + sText_DoSomethingAgainMale, + sText_DoSomethingAgainMale // was probably supposed to be sText_DoSomethingAgainFemale }; -ALIGNED(4) const u8 gUnknown_8457B90[] = _("Somebody has contacted you.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8457BA0[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_SomebodyHasContactedYou[] = _("Somebody has contacted you.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_PlayerHasContactedYou[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}"); const u8 *const gUnknown_8457BCC[] = { - gUnknown_8457B90, - gUnknown_8457BA0 + sText_SomebodyHasContactedYou, + sText_PlayerHasContactedYou }; -ALIGNED(4) const u8 gUnknown_8457BD4[] = _("Awaiting a response from\nthe other TRAINER…"); -ALIGNED(4) const u8 gUnknown_8457C00[] = _("Awaiting a response from\n{STR_VAR_1}…"); +ALIGNED(4) static const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); +ALIGNED(4) static const u8 sText_AwaitingResponseFromPlayer[] = _("Awaiting a response from\n{STR_VAR_1}…"); const u8 *const gUnknown_8457C20[] = { - gUnknown_8457BD4, - gUnknown_8457C00 + sText_AwaitingResponseFromTrainer, + sText_AwaitingResponseFromPlayer }; -ALIGNED(4) const u8 gUnknown_8457C28[] = _("ã‚ã„ã¦ã® ã¦ã„ã‚ã‚“ã‚’ ã¾ã£ã¦ã„ã¾ã™\nビーボタン㧠キャンセル"); +ALIGNED(4) static const u8 gUnknown_8457C28[] = _("ã‚ã„ã¦ã® ã¦ã„ã‚ã‚“ã‚’ ã¾ã£ã¦ã„ã¾ã™\nビーボタン㧠キャンセル"); + ALIGNED(4) const u8 gUnknown_8457C48[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); ALIGNED(4) const u8 gUnknown_8457CA4[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); ALIGNED(4) const u8 gUnknown_8457CF8[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); @@ -216,209 +223,221 @@ ALIGNED(4) const u8 gUnknown_8457E28[] = _("You declined the offer.\p"); ALIGNED(4) const u8 gUnknown_8457E44[] = _("You declined the offer.\p"); ALIGNED(4) const u8 gUnknown_8457E60[] = _("The chat was ended.\p"); -const u8 *const gUnknown_8457E78[] = { +// Unused +static const u8 *const sInvitationTexts[] = { gUnknown_8457C48, gUnknown_8457CA4, gUnknown_8457CF8, gUnknown_8457D44 }; -ALIGNED(4) const u8 gUnknown_8457E88[] = _("Oh, hey! We're in a chat right now.\nWant to join us?"); -ALIGNED(4) const u8 gUnknown_8457EC0[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?"); -ALIGNED(4) const u8 gUnknown_8457F00[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); -ALIGNED(4) const u8 gUnknown_8457F3C[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); +ALIGNED(4) static const u8 sText_JoinChatMale[] = _("Oh, hey! We're in a chat right now.\nWant to join us?"); +ALIGNED(4) static const u8 sText_PlayerJoinChatMale[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?"); +ALIGNED(4) static const u8 sText_JoinChatFemale[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); +ALIGNED(4) static const u8 sText_PlayerJoinChatFemale[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); const u8 *const gUnknown_8457F80[][2] = { { - gUnknown_8457E88, - gUnknown_8457F00 + sText_JoinChatMale, + sText_JoinChatFemale }, { - gUnknown_8457EC0, - gUnknown_8457F3C + sText_PlayerJoinChatMale, + sText_PlayerJoinChatFemale } }; ALIGNED(4) const u8 gUnknown_8457F90[] = _("……\nThe TRAINER appears to be busy…\p"); - -ALIGNED(4) const u8 gUnknown_8457FB4[] = _("A battle, huh?\nAll right, just give me some time."); -ALIGNED(4) const u8 gUnknown_8457FE8[] = _("You want to chat, huh?\nSure, just wait a little."); -ALIGNED(4) const u8 gUnknown_845801C[] = _("Sure thing! As my “Greetings,â€\nhere's my TRAINER CARD."); -ALIGNED(4) const u8 gUnknown_8458054[] = _("A battle? Of course, but I need\ntime to get ready."); -ALIGNED(4) const u8 gUnknown_8458088[] = _("Did you want to chat?\nOkay, but please wait a moment."); -ALIGNED(4) const u8 gUnknown_84580C0[] = _("As my introduction, I'll show you\nmy TRAINER CARD."); +ALIGNED(4) static const u8 sText_WaitForBattleMale[] = _("A battle, huh?\nAll right, just give me some time."); +ALIGNED(4) static const u8 sText_WaitForChatMale[] = _("You want to chat, huh?\nSure, just wait a little."); +ALIGNED(4) static const u8 sText_ShowTrainerCardMale[] = _("Sure thing! As my “Greetings,â€\nhere's my TRAINER CARD."); +ALIGNED(4) static const u8 sText_WaitForBattleFemale[] = _("A battle? Of course, but I need\ntime to get ready."); +ALIGNED(4) static const u8 sText_WaitForChatFemale[] = _("Did you want to chat?\nOkay, but please wait a moment."); +ALIGNED(4) static const u8 sText_ShowTrainerCardFemale[] = _("As my introduction, I'll show you\nmy TRAINER CARD."); const u8 *const gResponseToURoomActivityInviteStringPtrs[][4] = { { - gUnknown_8457FB4, - gUnknown_8457FE8, + sText_WaitForBattleMale, + sText_WaitForChatMale, NULL, - gUnknown_845801C + sText_ShowTrainerCardMale }, { - gUnknown_8458054, - gUnknown_8458088, + sText_WaitForBattleFemale, + sText_WaitForChatFemale, NULL, - gUnknown_84580C0 + sText_ShowTrainerCardFemale } }; -ALIGNED(4) const u8 gUnref_8458104[] = _("ãƒãƒ£ãƒƒãƒˆã ã­ï¼\nã‚ã‹ã£ãŸ ã¡ã‚‡ã£ã¨ ã¾ã£ã¦ã¦ï¼"); -ALIGNED(4) const u8 gUnknown_845812C[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8458164[] = _("All right!\nLet's chat!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8458180[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84581B0[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84581D8[] = _("The trade will be started.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84581F8[] = _("The battle will be started.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8458218[] = _("Entering the chat…{PAUSE 60}"); +ALIGNED(4) static const u8 sText_WaitForChatMale2[] = _("ãƒãƒ£ãƒƒãƒˆã ã­ï¼\nã‚ã‹ã£ãŸ ã¡ã‚‡ã£ã¨ ã¾ã£ã¦ã¦ï¼"); +ALIGNED(4) static const u8 sText_DoneWaitingBattleMale[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_DoneWaitingChatMale[] = _("All right!\nLet's chat!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_DoneWaitingBattleFemale[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_DoneWaitingChatFemale[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_TradeWillBeStarted[] = _("The trade will be started.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_BattleWillBeStarted[] = _("The battle will be started.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_EnteringChat[] = _("Entering the chat…{PAUSE 60}"); const u8 *const gUnknown_8458230[][2][3] = { { { - gUnknown_84581F8, - gUnknown_8458218, - gUnknown_84581D8 + sText_BattleWillBeStarted, + sText_EnteringChat, + sText_TradeWillBeStarted }, { - gUnknown_84581F8, - gUnknown_8458218, - gUnknown_84581D8 + sText_BattleWillBeStarted, + sText_EnteringChat, + sText_TradeWillBeStarted } }, { { - gUnknown_845812C, - gUnknown_8458164, - gUnknown_84581D8 + sText_DoneWaitingBattleMale, + sText_DoneWaitingChatMale, + sText_TradeWillBeStarted }, { - gUnknown_8458180, - gUnknown_84581B0, - gUnknown_84581D8 + sText_DoneWaitingBattleFemale, + sText_DoneWaitingChatFemale, + sText_TradeWillBeStarted } } }; -ALIGNED(4) const u8 gUnknown_8458260[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p"); -ALIGNED(4) const u8 gUnknown_84582C0[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p"); +ALIGNED(4) static const u8 sText_BattleDeclinedMale[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p"); +ALIGNED(4) static const u8 sText_BattleDeclinedFemale[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p"); const u8 *const gUnknown_8458314[] = { - gUnknown_8458260, - gUnknown_84582C0 + sText_BattleDeclinedMale, + sText_BattleDeclinedFemale }; -ALIGNED(4) const u8 gUnknown_845831C[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p"); -ALIGNED(4) const u8 gUnknown_845836C[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p"); +ALIGNED(4) static const u8 sText_ShowTrainerCardDeclinedMale[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p"); +ALIGNED(4) static const u8 sText_ShowTrainerCardDeclinedFemale[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p"); const u8 *const gUnknown_84583B4[] = { - gUnknown_845831C, - gUnknown_845836C + sText_ShowTrainerCardDeclinedMale, + sText_ShowTrainerCardDeclinedFemale }; -ALIGNED(4) const u8 gUnknown_84583BC[] = _("If you want to do something with\nme, just give me a shout!\p"); -ALIGNED(4) const u8 gUnknown_84583F8[] = _("If you want to do something with\nme, don't be shy.\p"); +ALIGNED(4) static const u8 sText_IfYouWantToDoSomethingMale[] = _("If you want to do something with\nme, just give me a shout!\p"); +ALIGNED(4) static const u8 sText_IfYouWantToDoSomethingFemale[] = _("If you want to do something with\nme, don't be shy.\p"); const u8 *const gUnknown_845842C[] = { - gUnknown_84583BC, - gUnknown_84583F8 + sText_IfYouWantToDoSomethingMale, + sText_IfYouWantToDoSomethingFemale }; ALIGNED(4) const u8 gUnknown_8458434[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p"); ALIGNED(4) const u8 gUnknown_845847C[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p"); ALIGNED(4) const u8 gUnknown_84584C0[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p"); -ALIGNED(4) const u8 gUnknown_84584FC[] = _("Oh, all right.\nCome see me anytime, okay?\p"); -ALIGNED(4) const u8 gUnknown_8458528[] = _("Oh…\nPlease come by anytime.\p"); +ALIGNED(4) static const u8 sText_DeclineChatMale[] = _("Oh, all right.\nCome see me anytime, okay?\p"); +ALIGNED(4) static const u8 stext_DeclineChatFemale[] = _("Oh…\nPlease come by anytime.\p"); + +// Response from partner when player declines chat const u8 *const gUnknown_8458548[] = { - gUnknown_84584FC, - gUnknown_8458528 + sText_DeclineChatMale, + stext_DeclineChatFemale }; -ALIGNED(4) const u8 gUnknown_8458550[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p"); -ALIGNED(4) const u8 gUnknown_8458598[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p"); +ALIGNED(4) static const u8 sText_ChatDeclinedMale[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p"); +ALIGNED(4) static const u8 sText_ChatDeclinedFemale[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p"); +// Response from partner when they decline chat const u8 *const gUnknown_84585E8[] = { - gUnknown_8458550, - gUnknown_8458598 + sText_ChatDeclinedMale, + sText_ChatDeclinedFemale }; -ALIGNED(4) const u8 gUnknown_84585F0[] = _("Whoa!\nI can tell you're pretty tough!\p"); -ALIGNED(4) const u8 gUnknown_8458618[] = _("You used that move?\nThat's good strategy!\p"); -ALIGNED(4) const u8 gUnknown_8458644[] = _("Way to go!\nThat was an eye-opener!\p"); -ALIGNED(4) const u8 gUnknown_8458668[] = _("Oh! How could you use that\nPOKéMON in that situation?\p"); -ALIGNED(4) const u8 gUnknown_84586A0[] = _("That POKéMON…\nIt's been raised really well!\p"); -ALIGNED(4) const u8 gUnknown_84586D0[] = _("That's it!\nThis is the right move now!\p"); -ALIGNED(4) const u8 gUnknown_84586F8[] = _("That's awesome!\nYou can battle that way?\p"); -ALIGNED(4) const u8 gUnknown_8458724[] = _("You have exquisite timing for\nswitching POKéMON!\p"); +ALIGNED(4) static const u8 sText_YoureToughMale[] = _("Whoa!\nI can tell you're pretty tough!\p"); +ALIGNED(4) static const u8 sText_UsedGoodMoveMale[] = _("You used that move?\nThat's good strategy!\p"); +ALIGNED(4) static const u8 sText_BattleSurpriseMale[] = _("Way to go!\nThat was an eye-opener!\p"); +ALIGNED(4) static const u8 sText_SwitchedMonsMale[] = _("Oh! How could you use that\nPOKéMON in that situation?\p"); +ALIGNED(4) static const u8 sText_YoureToughFemale[] = _("That POKéMON…\nIt's been raised really well!\p"); +ALIGNED(4) static const u8 sText_UsedGoodMoveFemale[] = _("That's it!\nThis is the right move now!\p"); +ALIGNED(4) static const u8 sText_BattleSurpriseFemale[] = _("That's awesome!\nYou can battle that way?\p"); +ALIGNED(4) static const u8 sText_SwitchedMonsFemale[] = _("You have exquisite timing for\nswitching POKéMON!\p"); const u8 *const gUnknown_8458758[][4] = { { - gUnknown_84585F0, - gUnknown_8458618, - gUnknown_8458644, - gUnknown_8458668 + sText_YoureToughMale, + sText_UsedGoodMoveMale, + sText_BattleSurpriseMale, + sText_SwitchedMonsMale }, { - gUnknown_84586A0, - gUnknown_84586D0, - gUnknown_84586F8, - gUnknown_8458724 + sText_YoureToughFemale, + sText_UsedGoodMoveFemale, + sText_BattleSurpriseFemale, + sText_SwitchedMonsFemale } }; -ALIGNED(4) const u8 gUnknown_8458778[] = _("Oh, I see!\nThis is educational!\p"); -ALIGNED(4) const u8 gUnknown_845879C[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p"); -ALIGNED(4) const u8 gUnknown_84587D8[] = _("Oh?\nSomething like that happened.\p"); -ALIGNED(4) const u8 gUnknown_84587FC[] = _("Hmhm… What?\nSo is this what you're saying?\p"); -ALIGNED(4) const u8 gUnknown_8458828[] = _("Is that right?\nI didn't know that.\p"); -ALIGNED(4) const u8 gUnknown_845884C[] = _("Ahaha!\nWhat is that about?\p"); -ALIGNED(4) const u8 gUnknown_8458868[] = _("Yes, that's exactly it!\nThat's what I meant.\p"); -ALIGNED(4) const u8 gUnknown_8458898[] = _("In other words…\nYes! That's right!\p"); +ALIGNED(4) static const u8 sText_LearnedSomethingMale[] = _("Oh, I see!\nThis is educational!\p"); +ALIGNED(4) static const u8 sText_ThatsFunnyMale[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p"); +ALIGNED(4) static const u8 sText_RandomChatMale1[] = _("Oh?\nSomething like that happened.\p"); +ALIGNED(4) static const u8 sText_RandomChatMale2[] = _("Hmhm… What?\nSo is this what you're saying?\p"); +ALIGNED(4) static const u8 sText_LearnedSomethingFemale[] = _("Is that right?\nI didn't know that.\p"); +ALIGNED(4) static const u8 sText_ThatsFunnyFemale[] = _("Ahaha!\nWhat is that about?\p"); +ALIGNED(4) static const u8 sText_RandomChatFemale1[] = _("Yes, that's exactly it!\nThat's what I meant.\p"); +ALIGNED(4) static const u8 sText_RandomChatFemale2[] = _("In other words…\nYes! That's right!\p"); const u8 *const gUnknown_84588BC[][4] = { { - gUnknown_8458778, - gUnknown_845879C, - gUnknown_84587D8, - gUnknown_84587FC + sText_LearnedSomethingMale, + sText_ThatsFunnyMale, + sText_RandomChatMale1, + sText_RandomChatMale2 }, { - gUnknown_8458828, - gUnknown_845884C, - gUnknown_8458868, - gUnknown_8458898 + sText_LearnedSomethingFemale, + sText_ThatsFunnyFemale, + sText_RandomChatFemale1, + sText_RandomChatFemale2 } }; -ALIGNED(4) const u8 gUnknown_84588DC[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p"); -ALIGNED(4) const u8 gUnknown_8458918[] = _("I hope I get to know you better!\p"); -ALIGNED(4) const u8 gUnknown_845893C[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p"); -ALIGNED(4) const u8 gUnknown_845897C[] = _("Glad to meet you.\nPlease don't be a stranger!\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardMale1[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardMale2[] = _("I hope I get to know you better!\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardFemale1[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardFemale2[] = _("Glad to meet you.\nPlease don't be a stranger!\p"); const u8 *const gUnknown_84589AC[][2] = { { - gUnknown_84588DC, - gUnknown_8458918 + sText_ShowedTrainerCardMale1, + sText_ShowedTrainerCardMale2 }, { - gUnknown_845893C, - gUnknown_845897C + sText_ShowedTrainerCardFemale1, + sText_ShowedTrainerCardFemale2 } }; -ALIGNED(4) const u8 gUnknown_84589BC[] = _("Yeahah!\nI really wanted this POKéMON!\p"); -ALIGNED(4) const u8 gUnknown_84589E4[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p"); -ALIGNED(4) const u8 gUnknown_8458A24[] = _("I'm trading POKéMON right now.\p"); -ALIGNED(4) const u8 gUnknown_8458A44[] = _("I finally got that POKéMON I\nwanted in a trade!\p"); +ALIGNED(4) static const u8 sText_MaleTraded1[] = _("Yeahah!\nI really wanted this POKéMON!\p"); +ALIGNED(4) static const u8 sText_MaleTraded2[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p"); +ALIGNED(4) static const u8 sText_FemaleTraded1[] = _("I'm trading POKéMON right now.\p"); +ALIGNED(4) static const u8 sText_FemaleTraded2[] = _("I finally got that POKéMON I\nwanted in a trade!\p"); const u8 *const gUnknown_8458A78[][4] = { { - gUnknown_84589BC, - gUnknown_84589E4 + sText_MaleTraded1, + sText_MaleTraded2 }, { - gUnknown_8458A24, - gUnknown_8458A44 + sText_FemaleTraded1, + sText_FemaleTraded2 } }; const u8 gUnknown_8458A98[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p"); ALIGNED(4) const u8 gUnknown_8458AB8[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?"); -ALIGNED(4) const u8 gUnknown_8458B44[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?"); -ALIGNED(4) const u8 gUnref_ThankYouForComing_JP[] = _("ã“ã†ã‹ã‚“ã‘ã„ã˜ã°ã‚“ ã® ã¨ã†ã‚ããŒ\nã‹ã‚“りょㆠã—ã¾ã—ãŸ\pã”りよㆠã‚りãŒã¨ã†\nã”ã–ã„ã¾ã—ãŸï¼\p"); -ALIGNED(4) const u8 gUnref_NoOneRegisteredMon[] = _("ã‘ã„ã˜ã°ã‚“ã« ã ã‚Œã‚‚ ãƒã‚±ãƒ¢ãƒ³ã‚’\nã¨ã†ã‚ã ã—ã¦ã„ã¾ã›ã‚“\p\n"); - +ALIGNED(4) const u8 gUnknown_8458B44[] = _("This TRADING BOARD is used for\n" + "offering a POKéMON for a trade.\p" + "All you need to do is register a\n" + "POKéMON for a trade.\p" + "Another TRAINER may offer a party\n" + "POKéMON in return for the trade.\p" + "We hope you will register POKéMON\n" + "and trade them with many, many\l" + "other TRAINERS.\p" + "Would you like to register one of\n" + "your POKéMON?"); +ALIGNED(4) static const u8 sText_ThankYouForRegistering[] = _("ã“ã†ã‹ã‚“ã‘ã„ã˜ã°ã‚“ ã® ã¨ã†ã‚ããŒ\nã‹ã‚“りょㆠã—ã¾ã—ãŸ\pã”りよㆠã‚りãŒã¨ã†\nã”ã–ã„ã¾ã—ãŸï¼\p"); +ALIGNED(4) static const u8 sText_NobodyHasRegistered[] = _("ã‘ã„ã˜ã°ã‚“ã« ã ã‚Œã‚‚ ãƒã‚±ãƒ¢ãƒ³ã‚’\nã¨ã†ã‚ã ã—ã¦ã„ã¾ã›ã‚“\p\n"); ALIGNED(4) const u8 gURText_PleaseChooseTypeOfMon[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n"); ALIGNED(4) const u8 gUnknown_8458D1C[] = _("Which of your party POKéMON will\nyou offer in trade?\p"); ALIGNED(4) const u8 gUnknown_8458D54[] = _("Registration has been canceled.\p"); @@ -427,19 +446,21 @@ ALIGNED(4) const u8 gUnknown_8458D9C[] = _("The trade has been canceled.\p"); ALIGNED(4) const u8 gUnknown_8458DBC[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?"); ALIGNED(4) const u8 gUnknown_8458DE8[] = _("Cancel the registration of your\nEGG?"); ALIGNED(4) const u8 gUnknown_8458E10[] = _("The registration has been canceled.\p"); -ALIGNED(4) const u8 gUnref_ShowPeopleWhoLikeYou_JP[] = _("ã“ã†ã‹ã‚“ã‚’ ãã¼ã†ã—ã¦ã„ã‚‹ã²ã¨ã‚’\nã²ã‚‡ã†ã˜ã—ã¾ã™"); -ALIGNED(4) const u8 gUnref_PleaseChooseTrainerYouWant[] = _("ã“ã†ã‹ã‚“ ã—ãŸã„ トレーナーを\nãˆã‚‰ã‚“ã§ ãã ã•ã„"); +ALIGNED(4) static const u8 sText_TradeTrainersWillBeListed[] = _("ã“ã†ã‹ã‚“ã‚’ ãã¼ã†ã—ã¦ã„ã‚‹ã²ã¨ã‚’\nã²ã‚‡ã†ã˜ã—ã¾ã™"); +ALIGNED(4) static const u8 sText_ChooseTrainerToTradeWith2[] = _("ã“ã†ã‹ã‚“ ã—ãŸã„ トレーナーを\nãˆã‚‰ã‚“ã§ ãã ã•ã„"); ALIGNED(4) const u8 gUnknown_8458E70[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); -ALIGNED(4) const u8 gUnref_ImWaitingForAnswer[] = _("……\nã‚ã„ã¦ã® ã¸ã‚“ã˜ã‚’ ã¾ã£ã¦ã„ã¾ã™"); -ALIGNED(4) const u8 gUnref_MonSentOutIsNotRegistered[] = _("ã‚ãªãŸãŒ ã“ã†ã‹ã‚“ã«ã ã™\nãƒã‚±ãƒ¢ãƒ³ãŒ ã¨ã†ã‚ãã•れã¦ã„ã¾ã›ã‚“\p"); +ALIGNED(4) static const u8 sText_AwaitingResponseFromTrainer2[] = _("……\nã‚ã„ã¦ã® ã¸ã‚“ã˜ã‚’ ã¾ã£ã¦ã„ã¾ã™"); +ALIGNED(4) static const u8 sText_NotRegisteredAMonForTrade[] = _("ã‚ãªãŸãŒ ã“ã†ã‹ã‚“ã«ã ã™\nãƒã‚±ãƒ¢ãƒ³ãŒ ã¨ã†ã‚ãã•れã¦ã„ã¾ã›ã‚“\p"); ALIGNED(4) const u8 gUnknown_8458ED0[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p"); ALIGNED(4) const u8 gUnknown_8458F04[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p"); -ALIGNED(4) const u8 gUnknown_8458F2C[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p"); -ALIGNED(4) const u8 gUnknown_8458F60[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p"); -const u8 *const gUnknown_8458F94[] = { - gUnknown_8458F2C, - gUnknown_8458F60 +ALIGNED(4) static const u8 sText_PlayerCantTradeForYourMon[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p"); +ALIGNED(4) static const u8 sText_CantTradeForPartnersMon[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p"); + +// Unused +static const u8 *const sCantTradeMonTexts[] = { + sText_PlayerCantTradeForYourMon, + sText_CantTradeForPartnersMon }; ALIGNED(4) const u8 gUnknown_8458F9C[] = _("Your trade offer was rejected.\p"); @@ -447,41 +468,41 @@ ALIGNED(4) const u8 gText_EggTrade[] = _("EGG TRADE"); ALIGNED(4) const u8 gUnknown_8458FC8[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); ALIGNED(4) const u8 gUnknown_8458FE4[] = _("Please choose a TRAINER."); -ALIGNED(4) const u8 gUnknown_8459000[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); -ALIGNED(4) const u8 gUnknown_8459030[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); -ALIGNED(4) const u8 gUnknown_8459060[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); -ALIGNED(4) const u8 gUnknown_8459090[] = _("Please choose the TRAINER to\ntrade with."); -ALIGNED(4) const u8 gUnknown_84590BC[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); -ALIGNED(4) const u8 gUnknown_84590F4[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); -ALIGNED(4) const u8 gUnknown_845912C[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_8459160[] = _("BERRY CRUSH!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_8459188[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); +ALIGNED(4) static const u8 sText_ChooseTrainerSingleBattle[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); +ALIGNED(4) static const u8 sText_ChooseTrainerDoubleBattle[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); +ALIGNED(4) static const u8 sText_ChooseLeaderMultiBattle[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); +ALIGNED(4) static const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER to\ntrade with."); +ALIGNED(4) static const u8 sText_ChooseTrainerToShareWonderCards[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); +ALIGNED(4) static const u8 sText_ChooseTrainerToShareWonderNews[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); +ALIGNED(4) static const u8 sText_ChooseLeaderPokemonJump[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); +ALIGNED(4) static const u8 sText_ChooseLeaderBerryCrush[] = _("BERRY CRUSH!\nPlease choose the LEADER."); +ALIGNED(4) static const u8 sText_ChooseLeaderBerryPicking[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); const u8 *const gUnknown_84591B8[] = { - [LINK_GROUP_SINGLE_BATTLE] = gUnknown_8459000, - [LINK_GROUP_DOUBLE_BATTLE] = gUnknown_8459030, - [LINK_GROUP_MULTI_BATTLE] = gUnknown_8459060, - [LINK_GROUP_TRADE] = gUnknown_8459090, - [LINK_GROUP_POKEMON_JUMP] = gUnknown_845912C, - [LINK_GROUP_BERRY_CRUSH] = gUnknown_8459160, - [LINK_GROUP_BERRY_PICKING] = gUnknown_8459188, - [LINK_GROUP_WONDER_CARD] = gUnknown_84590BC, - [LINK_GROUP_WONDER_NEWS] = gUnknown_84590F4 + [LINK_GROUP_SINGLE_BATTLE] = sText_ChooseTrainerSingleBattle, + [LINK_GROUP_DOUBLE_BATTLE] = sText_ChooseTrainerDoubleBattle, + [LINK_GROUP_MULTI_BATTLE] = sText_ChooseLeaderMultiBattle, + [LINK_GROUP_TRADE] = sText_ChooseTrainerToTradeWith, + [LINK_GROUP_POKEMON_JUMP] = sText_ChooseLeaderPokemonJump, + [LINK_GROUP_BERRY_CRUSH] = sText_ChooseLeaderBerryCrush, + [LINK_GROUP_BERRY_PICKING] = sText_ChooseLeaderBerryPicking, + [LINK_GROUP_WONDER_CARD] = sText_ChooseTrainerToShareWonderCards, + [LINK_GROUP_WONDER_NEWS] = sText_ChooseTrainerToShareWonderNews }; ALIGNED(4) const u8 gUnknown_84591DC[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); -ALIGNED(4) const u8 gUnref_NeedAtLeast2InDblBtl[] = _("ダブルãƒãƒˆãƒ«ã§ã¯ 2ã²ã ã„ã˜ã‚‡ã†ã®\nãƒã‚±ãƒ¢ãƒ³ãŒ ã²ã¤ã‚ˆã†ã§ã™\p"); +ALIGNED(4) static const u8 sText_MustHaveTwoMonsForDoubleBattle[] = _("ダブルãƒãƒˆãƒ«ã§ã¯ 2ã²ã ã„ã˜ã‚‡ã†ã®\nãƒã‚±ãƒ¢ãƒ³ãŒ ã²ã¤ã‚ˆã†ã§ã™\p"); ALIGNED(4) const u8 gUnknown_8459238[] = _("Awaiting {STR_VAR_1}'s response…"); ALIGNED(4) const u8 gUnknown_8459250[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait."); ALIGNED(4) const u8 gUnknown_845928C[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM."); -ALIGNED(4) const u8 gUnref_PlsWaitLittleWHile[] = _("ã»ã‹ã® ã•ã‚“ã‹ã—ゃ㌠ãã‚ã†ã¾ã§\nã—ょã†ã—ょㆠãŠã¾ã¡ãã ã•ã„"); +ALIGNED(4) static const u8 sText_PleaseWaitForOtherTrainersToGather[] = _("ã»ã‹ã® ã•ã‚“ã‹ã—ゃ㌠ãã‚ã†ã¾ã§\nã—ょã†ã—ょㆠãŠã¾ã¡ãã ã•ã„"); -ALIGNED(4) const u8 gUnknown_84592E8[] = _("No CARDS appear to be shared \nright now."); -ALIGNED(4) const u8 gUnknown_8459314[] = _("No NEWS appears to be shared\nright now."); +ALIGNED(4) static const u8 sText_NoCardsSharedRightNow[] = _("No CARDS appear to be shared \nright now."); +ALIGNED(4) static const u8 sText_NoNewsSharedRightNow[] = _("No NEWS appears to be shared\nright now."); const u8 *const gUnknown_845933C[] = { - gUnknown_84592E8, - gUnknown_8459314 + sText_NoCardsSharedRightNow, + sText_NoNewsSharedRightNow }; ALIGNED(4) const u8 gUnknown_8459344[] = _("BATTLE"); @@ -508,33 +529,33 @@ ALIGNED(4) const u8 gUnionRoomActivity_Search[] = _("SEARCH"); ALIGNED(4) const u8 gUnionRoomActivity_SpinTradeJP[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“"); ALIGNED(4) const u8 gUnionRoomActivity_ItemTradeJP[] = _("アイテムトレード"); -ALIGNED(4) const u8 gUnknown_845944C[] = _("It's a NORMAL CARD."); -ALIGNED(4) const u8 gUnknown_8459460[] = _("It's a BRONZE CARD!"); -ALIGNED(4) const u8 gUnknown_8459474[] = _("It's a COPPER CARD!"); -ALIGNED(4) const u8 gUnknown_8459488[] = _("It's a SILVER CARD!"); -ALIGNED(4) const u8 gUnknown_845949C[] = _("It's a GOLD CARD!"); +ALIGNED(4) static const u8 sText_ItsNormalCard[] = _("It's a NORMAL CARD."); +ALIGNED(4) static const u8 sText_ItsBronzeCard[] = _("It's a BRONZE CARD!"); +ALIGNED(4) static const u8 sText_ItsCopperCard[] = _("It's a COPPER CARD!"); +ALIGNED(4) static const u8 sText_ItsSilverCard[] = _("It's a SILVER CARD!"); +ALIGNED(4) static const u8 sText_ItsGoldCard[] = _("It's a GOLD CARD!"); const u8 *const gUnknown_84594B0[] = { - gUnknown_845944C, - gUnknown_8459460, - gUnknown_8459474, - gUnknown_8459488, - gUnknown_845949C + sText_ItsNormalCard, + sText_ItsBronzeCard, + sText_ItsCopperCard, + sText_ItsSilverCard, + sText_ItsGoldCard }; ALIGNED(4) const u8 gUnknown_84594C4[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); ALIGNED(4) const u8 gUnknown_8459504[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}â€\p"); -ALIGNED(4) const u8 gUnknown_8459544[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8459564[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_GladToMeetYouMale[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_GladToMeetYouFemale[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); const u8 *const gUnknown_8459580[] = { - gUnknown_8459544, - gUnknown_8459564 + sText_GladToMeetYouMale, + sText_GladToMeetYouFemale }; ALIGNED(4) const u8 gUnknown_8459588[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84595B0[] = _("Canceled reading the Card."); +ALIGNED(4) static const u8 gUnknown_84595B0[] = _("Canceled reading the Card."); const struct mevent_client_cmd gUnknown_84595CC[] = { CLI_RECEIVE(0x15), From 8fd8d2198096a7dcdd90d34c463f54d22a0540ea Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 6 Sep 2022 01:36:11 -0400 Subject: [PATCH 059/105] Document global ur text --- include/union_room_message.h | 214 +++++++++---------- src/union_room.c | 384 +++++++++++++++++------------------ src/union_room_message.c | 352 ++++++++++++++++---------------- 3 files changed, 470 insertions(+), 480 deletions(-) diff --git a/include/union_room_message.h b/include/union_room_message.h index db24aca15..ad0011452 100644 --- a/include/union_room_message.h +++ b/include/union_room_message.h @@ -3,112 +3,112 @@ #include "global.h" -extern const u8 gUnionRoomActivity_Blank[]; -extern const u8 gUnknown_84571B0[]; -extern const u8 gUnknown_84571B4[]; -extern const u8 gUnknown_84571B8[]; -extern const u8 gUnknown_84571E0[]; -extern const u8 gUnknown_8457234[]; -extern const u8 gUnknown_8457264[]; -extern const u8 *const gUnknown_845742C[][5]; -extern const u8 gUnknown_845747C[]; -extern const u8 gUnknown_84574A0[]; -extern const u8 gUnknown_84574C4[]; -extern const u8 gUnknown_84574EC[]; -extern const u8 gUnknown_8457514[]; -extern const u8 gUnknown_8457530[]; -extern const u8 gUnknown_8457554[]; -extern const u8 *const gUnknown_8457608[]; -extern const u8 gUnknown_8457610[]; -extern const u8 *const gUnknown_845767C[]; -extern const u8 gUnknown_84576AC[]; -extern const u8 gUnknown_84576C4[]; -extern const u8 gUnknown_8457700[]; -extern const u8 gUnknown_845771C[]; -extern const u8 *const gUnknown_8457754[]; -extern const u8 gUnknown_845777C[]; -extern const u8 gUnknown_84577BC[]; -extern const u8 gUnknown_84577F8[]; -extern const u8 *const gUnknown_8457838[]; -extern const u8 gUnknown_84578BC[]; -extern const u8 *const gURText_PleaseWaitMsgs[]; -extern const u8 *const gURText_FriendPromptsForActivity[][2]; -extern const u8 *const gUnknown_8457BCC[]; -extern const u8 *const gUnknown_8457C20[]; -extern const u8 gUnknown_8457C48[]; -extern const u8 gUnknown_8457CA4[]; -extern const u8 gUnknown_8457CF8[]; -extern const u8 gUnknown_8457D44[]; -extern const u8 gUnknown_8457DB8[]; -extern const u8 gUnknown_8457E0C[]; -extern const u8 gUnknown_8457E28[]; -extern const u8 gUnknown_8457E44[]; -extern const u8 gUnknown_8457E60[]; -extern const u8 *const gUnknown_8457F80[][2]; -extern const u8 gUnknown_8457F90[]; -extern const u8 *const gResponseToURoomActivityInviteStringPtrs[][4]; -extern const u8 *const gUnknown_8458230[][2][3]; -extern const u8 *const gUnknown_8458314[]; -extern const u8 *const gUnknown_84583B4[]; -extern const u8 *const gUnknown_845842C[]; -extern const u8 gUnknown_8458434[]; -extern const u8 gUnknown_845847C[]; -extern const u8 gUnknown_84584C0[]; -extern const u8 *const gUnknown_8458548[]; -extern const u8 *const gUnknown_84585E8[]; -extern const u8 *const gUnknown_8458758[2][4]; -extern const u8 *const gUnknown_84588BC[2][4]; -extern const u8 *const gUnknown_84589AC[2][2]; -extern const u8 *const gUnknown_8458A78[2][4]; -extern const u8 gUnknown_8458A98[]; -extern const u8 gUnknown_8458AB8[]; -extern const u8 gUnknown_8458B44[]; -extern const u8 gURText_PleaseChooseTypeOfMon[]; -extern const u8 gUnknown_8458D1C[]; -extern const u8 gUnknown_8458D54[]; -extern const u8 gUnknown_8458D78[]; -extern const u8 gUnknown_8458D9C[]; -extern const u8 gUnknown_8458DBC[]; -extern const u8 gUnknown_8458DE8[]; -extern const u8 gUnknown_8458E10[]; -extern const u8 gUnknown_8458E70[]; -extern const u8 gUnknown_8458ED0[]; -extern const u8 gUnknown_8458F04[]; -extern const u8 gUnknown_8458F9C[]; -extern const u8 gText_EggTrade[]; -extern const u8 gUnknown_8458FC8[]; -extern const u8 gUnknown_8458FE4[]; -extern const u8 gUnknown_84591DC[]; -extern const u8 *const gUnknown_84591B8[]; -extern const u8 gUnknown_8459238[]; -extern const u8 gUnknown_8459250[]; -extern const u8 gUnknown_845928C[]; -extern const u8 *const gUnknown_845933C[]; -extern const u8 gUnknown_8459344[]; -extern const u8 gUnknown_845934C[]; -extern const u8 gUnknown_8459354[]; -extern const u8 gUnknown_8459360[]; -extern const u8 gUnknown_8459368[]; -extern const u8 gUnknown_8459370[]; -extern const u8 gUnknown_8459378[]; -extern const u8 gUnionRoomActivity_SingleBattle[]; -extern const u8 gUnionRoomActivity_DoubleBattle[]; -extern const u8 gUnionRoomActivity_MultiBattle[]; -extern const u8 gUnionRoomActivity_PokemonTrades[]; -extern const u8 gUnionRoomActivity_Chat[]; -extern const u8 gUnionRoomActivity_WonderCards[]; -extern const u8 gunionRoomActivity_WonderNews[]; -extern const u8 gUnionRoomActivity_Cards[]; -extern const u8 gUnionRoomActivity_PokemonJump[]; -extern const u8 gUnionRoomActivity_BerryCrush[]; -extern const u8 gUnionRoomActivity_BerryPicking[]; -extern const u8 gUnionRoomActivity_Search[]; -extern const u8 gUnionRoomActivity_SpinTradeJP[]; -extern const u8 gUnionRoomActivity_ItemTradeJP[]; -extern const u8 *const gUnknown_84594B0[]; -extern const u8 gUnknown_84594C4[]; -extern const u8 gUnknown_8459504[]; -extern const u8 *const gUnknown_8459580[]; -extern const u8 gUnknown_8459588[]; +extern const u8 gText_UR_EmptyString[]; +extern const u8 gText_UR_Colon[]; +extern const u8 gText_UR_ID[]; +extern const u8 gText_UR_PleaseStartOver[]; +extern const u8 gText_UR_WirelessSearchCanceled[]; +extern const u8 gText_UR_AwaitingCommunication[]; +extern const u8 gText_UR_AwaitingLinkPressStart[]; +extern const u8 *const gTexts_UR_PlayersNeededOrMode[][5]; +extern const u8 gText_UR_BButtonCancel[]; +extern const u8 gText_UR_PlayerContactedYouForXAccept[]; +extern const u8 gText_UR_PlayerContactedYouShareX[]; +extern const u8 gText_UR_PlayerContactedYouAddToMembers[]; +extern const u8 gText_UR_AreTheseMembersOK[]; +extern const u8 gText_UR_CancelModeWithTheseMembers[]; +extern const u8 gText_UR_AnOKWasSentToPlayer[]; +extern const u8 *const gTexts_UR_CantTransmitToTrainer[]; +extern const u8 gText_UR_ModeWithTheseMembersWillBeCanceled[]; +extern const u8 *const gTexts_UR_PlayerUnavailable[]; +extern const u8 gText_UR_PlayerSentBackOK[]; +extern const u8 gText_UR_PlayerOKdRegistration[]; +extern const u8 gText_UR_AwaitingOtherMembers[]; +extern const u8 gText_UR_QuitBeingMember[]; +extern const u8 *const gTexts_UR_PlayerDisconnected[]; +extern const u8 gText_UR_WirelessLinkEstablished[]; +extern const u8 gText_UR_WirelessLinkDropped[]; +extern const u8 gText_UR_LinkWithFriendDropped[]; +extern const u8 *const gTexts_UR_LinkDropped[]; +extern const u8 gText_UR_AwaitingPlayersResponseAboutTrade[]; +extern const u8 *const gTexts_UR_CommunicatingWait[]; +extern const u8 *const gTexts_UR_HiDoSomething[][2]; +extern const u8 *const gTexts_UR_PlayerContactedYou[]; +extern const u8 *const gTexts_UR_AwaitingResponse[]; +extern const u8 gText_UR_ShowTrainerCard[]; +extern const u8 gText_UR_BattleChallenge[]; +extern const u8 gText_UR_ChatInvitation[]; +extern const u8 gText_UR_OfferToTradeMon[]; +extern const u8 gText_UR_OfferToTradeEgg[]; +extern const u8 gText_UR_ChatDropped[]; +extern const u8 gText_UR_OfferDeclined1[]; +extern const u8 gText_UR_OfferDeclined2[]; +extern const u8 gText_UR_ChatEnded[]; +extern const u8 *const gTexts_UR_JoinChat[GENDER_COUNT][2]; +extern const u8 gText_UR_TrainerAppearsBusy[]; +extern const u8 *const gTexts_UR_WaitOrShowCard[GENDER_COUNT][4]; +extern const u8 *const gTexts_UR_StartActivity[][GENDER_COUNT][3]; +extern const u8 *const gTexts_UR_BattleDeclined[GENDER_COUNT]; +extern const u8 *const gTexts_UR_ShowTrainerCardDeclined[GENDER_COUNT]; +extern const u8 *const gTexts_UR_IfYouWantToDoSomething[GENDER_COUNT]; +extern const u8 gText_UR_TrainerBattleBusy[]; +extern const u8 gText_UR_NeedTwoMonsOfLevel30OrLower1[]; +extern const u8 gText_UR_NeedTwoMonsOfLevel30OrLower2[]; +extern const u8 *const gTexts_UR_DeclineChat[GENDER_COUNT]; +extern const u8 *const gTexts_UR_ChatDeclined[GENDER_COUNT]; +extern const u8 *const gTexts_UR_BattleReaction[GENDER_COUNT][4]; +extern const u8 *const gTexts_UR_ChatReaction[GENDER_COUNT][4]; +extern const u8 *const gTexts_UR_TrainerCardReaction[GENDER_COUNT][2]; +extern const u8 *const gTexts_UR_TradeReaction[GENDER_COUNT][4]; +extern const u8 gText_UR_XCheckedTradingBoard[]; +extern const u8 gText_UR_RegisterMonAtTradingBoard[]; +extern const u8 gText_UR_TradingBoardInfo[]; +extern const u8 gText_UR_ChooseRequestedMonType[]; +extern const u8 gText_UR_WhichMonWillYouOffer[]; +extern const u8 gText_UR_RegistrationCanceled[]; +extern const u8 gText_UR_RegistraionCompleted[]; +extern const u8 gText_UR_TradeCanceled[]; +extern const u8 gText_UR_CancelRegistrationOfMon[]; +extern const u8 gText_UR_CancelRegistrationOfEgg[]; +extern const u8 gText_UR_RegistrationCanceled2[]; +extern const u8 gText_UR_AskTrainerToMakeTrade[]; +extern const u8 gText_UR_DontHaveTypeTrainerWants[]; +extern const u8 gText_UR_DontHaveEggTrainerWants[]; +extern const u8 gText_UR_TradeOfferRejected[]; +extern const u8 gText_UR_EggTrade[]; +extern const u8 gText_UR_ChooseJoinCancel[]; +extern const u8 gText_UR_ChooseTrainer[]; +extern const u8 gText_UR_SearchingForWirelessSystemWait[]; +extern const u8 *const gTexts_UR_ChooseTrainer[]; +extern const u8 gText_UR_AwaitingPlayersResponse[]; +extern const u8 gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait[]; +extern const u8 gText_UR_AwaitingResponseFromWirelessSystem[]; +extern const u8 *const gTexts_UR_NoWonderShared[]; +extern const u8 gText_UR_Battle[]; +extern const u8 gText_UR_Chat2[]; +extern const u8 gText_UR_Greetings[]; +extern const u8 gText_UR_Exit[]; +extern const u8 gText_UR_Exit2[]; +extern const u8 gText_UR_Info[]; +extern const u8 gText_UR_NameWantedOfferLv[]; +extern const u8 gText_UR_SingleBattle[]; +extern const u8 gText_UR_DoubleBattle[]; +extern const u8 gText_UR_MultiBattle[]; +extern const u8 gText_UR_PokemonTrades[]; +extern const u8 gText_UR_Chat[]; +extern const u8 gText_UR_WonderCards[]; +extern const u8 gText_UR_WonderNews[]; +extern const u8 gText_UR_Cards[]; +extern const u8 gText_UR_PokemonJump[]; +extern const u8 gText_UR_BerryCrush[]; +extern const u8 gText_UR_BerryPicking[]; +extern const u8 gText_UR_Search[]; +extern const u8 gText_UR_SpinTrade[]; +extern const u8 gText_UR_ItemTrade[]; +extern const u8 *const gTexts_UR_CardColor[]; +extern const u8 gText_UR_TrainerCardInfoPage1[]; +extern const u8 gText_UR_TrainerCardInfoPage2[]; +extern const u8 *const gTexts_UR_GladToMeetYou[GENDER_COUNT]; +extern const u8 gText_UR_FinishedCheckingPlayersTrainerCard[]; #endif //GUARD_UNION_ROOM_MESSAGE_H diff --git a/src/union_room.c b/src/union_room.c index 01c89b211..c93360fea 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -133,29 +133,29 @@ static void ViewURoomPartnerTrainerCard(u8 *dest, struct UnkStruct_URoom * uRoom #define _8456CD8(a, b) ((a) | ((b) << 8)) static const u8 *const sUnionRoomActivityStringPtrs[] = { - gUnionRoomActivity_Blank, - gUnionRoomActivity_SingleBattle, - gUnionRoomActivity_DoubleBattle, - gUnionRoomActivity_MultiBattle, - gUnionRoomActivity_PokemonTrades, - gUnionRoomActivity_Chat, - gUnionRoomActivity_WonderCards, - gunionRoomActivity_WonderNews, - gUnionRoomActivity_Cards, - gUnionRoomActivity_PokemonJump, - gUnionRoomActivity_BerryCrush, - gUnionRoomActivity_BerryPicking, - gUnionRoomActivity_Search, - gUnionRoomActivity_SpinTradeJP, - gUnionRoomActivity_ItemTradeJP, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_WonderCards, - gunionRoomActivity_WonderNews + gText_UR_EmptyString, + gText_UR_SingleBattle, + gText_UR_DoubleBattle, + gText_UR_MultiBattle, + gText_UR_PokemonTrades, + gText_UR_Chat, + gText_UR_WonderCards, + gText_UR_WonderNews, + gText_UR_Cards, + gText_UR_PokemonJump, + gText_UR_BerryCrush, + gText_UR_BerryPicking, + gText_UR_Search, + gText_UR_SpinTrade, + gText_UR_ItemTrade, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_WonderCards, + gText_UR_WonderNews }; static const struct WindowTemplate sWindowTemplate_BButtonCancel = { @@ -201,11 +201,11 @@ static const struct WindowTemplate sWindowTemplate_NumPlayerMode = { }; const struct ListMenuItem sListMenuItems_PossibleGroupMembers[] = { - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4} + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4} }; static const struct ListMenuTemplate sListMenuTemplate_PossibleGroupMembers = { @@ -250,22 +250,22 @@ static const struct WindowTemplate sWindowTemplate_MysteryGiftPlayerNameAndId = }; static const struct ListMenuItem sListMenuItems_UnionRoomGroups[] = { - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4}, - {gUnionRoomActivity_Blank, 5}, - {gUnionRoomActivity_Blank, 6}, - {gUnionRoomActivity_Blank, 7}, - {gUnionRoomActivity_Blank, 8}, - {gUnionRoomActivity_Blank, 9}, - {gUnionRoomActivity_Blank, 10}, - {gUnionRoomActivity_Blank, 11}, - {gUnionRoomActivity_Blank, 12}, - {gUnionRoomActivity_Blank, 13}, - {gUnionRoomActivity_Blank, 14}, - {gUnionRoomActivity_Blank, 15} + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4}, + {gText_UR_EmptyString, 5}, + {gText_UR_EmptyString, 6}, + {gText_UR_EmptyString, 7}, + {gText_UR_EmptyString, 8}, + {gText_UR_EmptyString, 9}, + {gText_UR_EmptyString, 10}, + {gText_UR_EmptyString, 11}, + {gText_UR_EmptyString, 12}, + {gText_UR_EmptyString, 13}, + {gText_UR_EmptyString, 14}, + {gText_UR_EmptyString, 15} }; static const struct ListMenuTemplate sListMenuTemplate_UnionRoomGroups = { @@ -300,10 +300,10 @@ static const struct WindowTemplate sWindowTemplate_InviteToActivity = { }; static const struct ListMenuItem sListMenuItems_InviteToActivity[] = { - {gUnknown_8459354, _8456CD8( ACTIVITY_CARD, 2)}, - {gUnknown_8459344, _8456CD8(ACTIVITY_BATTLE | IN_UNION_ROOM, 2)}, - {gUnknown_845934C, _8456CD8(ACTIVITY_CHAT | IN_UNION_ROOM, 2)}, - {gUnknown_8459360, _8456CD8(ACTIVITY_NONE | IN_UNION_ROOM, 0)} + {gText_UR_Greetings, _8456CD8( ACTIVITY_CARD, 2)}, + {gText_UR_Battle, _8456CD8(ACTIVITY_BATTLE | IN_UNION_ROOM, 2)}, + {gText_UR_Chat2, _8456CD8(ACTIVITY_CHAT | IN_UNION_ROOM, 2)}, + {gText_UR_Exit, _8456CD8(ACTIVITY_NONE | IN_UNION_ROOM, 0)} }; static const struct ListMenuTemplate sListMenuTemplate_InviteToActivity = { @@ -339,8 +339,8 @@ static const struct WindowTemplate sWindowTemplate_TradeBoardRegisterInfoExit = static const struct ListMenuItem gUnknown_8456E3C[] = { {gText_Register, 1}, - {gUnknown_8459370, 2}, - {gUnknown_8459360, 3} + {gText_UR_Info, 2}, + {gText_UR_Exit, 3} }; static const struct ListMenuTemplate sListMenuTemplate_TradeBoardRegisterInfoExit = { @@ -392,7 +392,7 @@ static const struct ListMenuItem sListMenuItems_TypeNames[] = { {gTypeNames[TYPE_DRAGON], TYPE_DRAGON}, {gTypeNames[TYPE_STEEL], TYPE_STEEL}, {gTypeNames[TYPE_DARK], TYPE_DARK}, - {gUnknown_8459360, NUMBER_OF_MON_TYPES} + {gText_UR_Exit, NUMBER_OF_MON_TYPES} }; static const struct ListMenuTemplate sListMenuTemplate_TypeNames = { @@ -437,16 +437,16 @@ static const struct WindowTemplate gUnknown_8456F24 = { }; static const struct ListMenuItem sTradeBoardListMenuItems[] = { - {gUnionRoomActivity_Blank, -3}, - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4}, - {gUnionRoomActivity_Blank, 5}, - {gUnionRoomActivity_Blank, 6}, - {gUnionRoomActivity_Blank, 7}, - {gUnknown_8459368, 8} + {gText_UR_EmptyString, -3}, + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4}, + {gText_UR_EmptyString, 5}, + {gText_UR_EmptyString, 6}, + {gText_UR_EmptyString, 7}, + {gText_UR_Exit2, 8} }; static const struct ListMenuTemplate sTradeBoardListMenuTemplate = { @@ -481,22 +481,22 @@ static const struct WindowTemplate gUnknown_8456F94 = { }; static const struct ListMenuItem gUnknown_8456F9C[] = { - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4}, - {gUnionRoomActivity_Blank, 5}, - {gUnionRoomActivity_Blank, 6}, - {gUnionRoomActivity_Blank, 7}, - {gUnionRoomActivity_Blank, 8}, - {gUnionRoomActivity_Blank, 9}, - {gUnionRoomActivity_Blank, 10}, - {gUnionRoomActivity_Blank, 11}, - {gUnionRoomActivity_Blank, 12}, - {gUnionRoomActivity_Blank, 13}, - {gUnionRoomActivity_Blank, 14}, - {gUnionRoomActivity_Blank, 15} + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4}, + {gText_UR_EmptyString, 5}, + {gText_UR_EmptyString, 6}, + {gText_UR_EmptyString, 7}, + {gText_UR_EmptyString, 8}, + {gText_UR_EmptyString, 9}, + {gText_UR_EmptyString, 10}, + {gText_UR_EmptyString, 11}, + {gText_UR_EmptyString, 12}, + {gText_UR_EmptyString, 13}, + {gText_UR_EmptyString, 14}, + {gText_UR_EmptyString, 15} }; static const struct ListMenuTemplate gUnknown_845701C = { @@ -673,16 +673,16 @@ static void PrintNumPlayersWaitingForMsg(u8 windowId, u8 capacityCode, u8 count) switch (capacityCode << 8) { case 0x200: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[0][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[0][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; case 0x400: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[1][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[1][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; case 0x2500: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[2][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[2][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; case 0x3500: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[3][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[3][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; } @@ -695,7 +695,7 @@ static void PrintPlayerNameAndIdOnWindow(u8 windowId) u8 text2[12]; UR_AddTextPrinterParameterized(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, UR_COLOR_DKE_WHT_LTE); - StringCopy(text2, gUnknown_84571B4); + StringCopy(text2, gText_UR_ID); ConvertIntToDecimalStringN(text, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); StringAppend(text2, text); UR_AddTextPrinterParameterized(windowId, 0, text2, 0, 0x10, UR_COLOR_DKE_WHT_LTE); @@ -715,7 +715,7 @@ static void StringExpandPlaceholders_AwaitingCommFromAnother(u8 *dst, u8 caseId) case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: // UB: argument *dst isn't used, instead it always prints to gStringVar4 - StringExpandPlaceholders(gStringVar4, gUnknown_8457234); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingCommunication); break; } } @@ -767,7 +767,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->nPlayerModeWindowId = AddWindow(&sWindowTemplate_NumPlayerMode); FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2)); - UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gUnknown_845747C, 8, 2, UR_COLOR_WHT_DKE_LTE); + UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gText_UR_BButtonCancel, 8, 2, UR_COLOR_WHT_DKE_LTE); PutWindowTilemap(data->bButtonCancelWindowId); CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX); @@ -789,9 +789,9 @@ static void Task_TryBecomeLinkLeader(u8 taskId) if ((sPlayerActivityGroupSize >> 4) != 0) { if (data->playerCount > (sPlayerActivityGroupSize >> 4) - 1 && (sPlayerActivityGroupSize & 0xF) != 0) - StringExpandPlaceholders(gStringVar4, gUnknown_8457264); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingLinkPressStart); else - StringExpandPlaceholders(gStringVar4, gUnknown_8457234); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingCommunication); } else { @@ -839,7 +839,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) break; case 10: id = ((sPlayerCurrActivity & 0xF) == 2) ? 1 : 0; - if (PrintOnTextbox(&data->textState, gUnknown_845767C[id])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerUnavailable[id])) { data->playerCount = UnionRoomLeaderField0CompactionAndCount(data->field_0); RedrawListMenu(data->listTaskId); @@ -849,7 +849,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) case 29: // Other player cancelled. id = ((sPlayerActivityGroupSize & 0xF) == 2) ? 0 : 1; - if (PrintOnTextbox(&data->textState, gUnknown_845767C[id])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerUnavailable[id])) { data->state = 21; } @@ -903,7 +903,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) else { IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->playerCount - 1]); - StringExpandPlaceholders(gStringVar4, gUnknown_8457554); + StringExpandPlaceholders(gStringVar4, gText_UR_AnOKWasSentToPlayer); data->state = 13; } @@ -943,8 +943,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state = 17; break; case 15: - // Are these members OK? - if (PrintOnTextbox(&data->textState, gUnknown_8457514)) + if (PrintOnTextbox(&data->textState, gText_UR_AreTheseMembersOK)) data->state = 16; break; case 16: @@ -965,7 +964,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) } break; case 19: - if (PrintOnTextbox(&data->textState, gUnknown_8457530)) + if (PrintOnTextbox(&data->textState, gText_UR_CancelModeWithTheseMembers)) data->state = 20; break; case 20: @@ -1006,8 +1005,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) } break; case 30: - // Mode with members will be canceled. - if (PrintOnTextbox(&data->textState, gUnknown_8457610)) + if (PrintOnTextbox(&data->textState, gText_UR_ModeWithTheseMembersWillBeCanceled)) data->state = 23; break; case 21: @@ -1072,17 +1070,17 @@ static void Leader_GetAcceptNewMemberPrompt(u8 *dst, u8 activity) case ACTIVITY_BATTLE: case ACTIVITY_DBLBATTLE: case ACTIVITY_TRADE: - StringExpandPlaceholders(dst, gUnknown_84574A0); + StringExpandPlaceholders(dst, gText_UR_PlayerContactedYouForXAccept); break; case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: - StringExpandPlaceholders(dst, gUnknown_84574C4); + StringExpandPlaceholders(dst, gText_UR_PlayerContactedYouShareX); break; case ACTIVITY_MLTBATTLE: case ACTIVITY_PJUMP: case ACTIVITY_BCRUSH: case ACTIVITY_BPICK: - StringExpandPlaceholders(dst, gUnknown_84574EC); + StringExpandPlaceholders(dst, gText_UR_PlayerContactedYouAddToMembers); break; } } @@ -1093,11 +1091,11 @@ static void GetYouDeclinedTheOfferMessage(u8 *dst, u8 activity) { case ACTIVITY_BATTLE | IN_UNION_ROOM: case ACTIVITY_TRADE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457E28); + StringExpandPlaceholders(dst, gText_UR_OfferDeclined1); break; case ACTIVITY_CHAT | IN_UNION_ROOM: case ACTIVITY_CARD | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457E44); + StringExpandPlaceholders(dst, gText_UR_OfferDeclined2); break; } } @@ -1111,13 +1109,13 @@ static void GetYouAskedToJoinGroupPleaseWaitMessage(u8 *dst, u8 activity) case ACTIVITY_TRADE: case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: - StringExpandPlaceholders(dst, gUnknown_8459238); + StringExpandPlaceholders(dst, gText_UR_AwaitingPlayersResponse); break; case ACTIVITY_MLTBATTLE: case ACTIVITY_PJUMP: case ACTIVITY_BCRUSH: case ACTIVITY_BPICK: - StringExpandPlaceholders(dst, gUnknown_8459250); + StringExpandPlaceholders(dst, gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait); break; } } @@ -1131,13 +1129,13 @@ static void GetGroupLeaderSentAnOKMessage(u8 *dst, u8 caseId) case ACTIVITY_TRADE: case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: - StringExpandPlaceholders(dst, gUnknown_84576AC); + StringExpandPlaceholders(dst, gText_UR_PlayerSentBackOK); break; case ACTIVITY_MLTBATTLE: case ACTIVITY_PJUMP: case ACTIVITY_BCRUSH: case ACTIVITY_BPICK: - StringExpandPlaceholders(dst, gUnknown_84576C4); + StringExpandPlaceholders(dst, gText_UR_PlayerOKdRegistration); break; } } @@ -1299,7 +1297,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) data->state = 1; break; case 1: - if (PrintOnTextbox(&data->textState, gUnknown_84591B8[gSpecialVar_0x8004])) + if (PrintOnTextbox(&data->textState, gTexts_UR_ChooseTrainer[gSpecialVar_0x8004])) data->state = 2; break; case 2: @@ -1311,7 +1309,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) data->playerNameAndIdWindowId = AddWindow(&sWindowTemplate_MysteryGiftPlayerNameAndId); FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2)); - UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gUnknown_8458FC8, 8, 2, UR_COLOR_WHT_DKE_LTE); + UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gText_UR_ChooseJoinCancel, 8, 2, UR_COLOR_WHT_DKE_LTE); PutWindowTilemap(data->bButtonCancelWindowId); CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX); @@ -1357,7 +1355,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) else { // Postgame flags not both set - StringCopy(gStringVar4, gUnknown_8457608[var - 1]); + StringCopy(gStringVar4, gTexts_UR_CantTransmitToTrainer[var - 1]); data->state = 18; PlaySE(SE_POKENAV_ON); } @@ -1425,7 +1423,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) { RfuSetStatus(RFU_STATUS_WAIT_ACK_JOIN_GROUP, 0); StringCopy(gStringVar1, sUnionRoomActivityStringPtrs[sPlayerCurrActivity]); - StringExpandPlaceholders(gStringVar4, gUnknown_8457700); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingOtherMembers); } break; case 7: @@ -1449,7 +1447,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) data->state = 7; break; case 7: - if (PrintOnTextbox(&data->textState, gUnknown_845771C)) + if (PrintOnTextbox(&data->textState, gText_UR_QuitBeingMember)) data->state = 8; break; case 8: @@ -1496,7 +1494,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) break; case 13: DestroyWirelessStatusIndicatorSprite(); - if (PrintOnTextbox(&data->textState, gUnknown_8457754[RfuGetStatus()])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerDisconnected[RfuGetStatus()])) { gSpecialVar_Result = 6; data->state = 23; @@ -1509,7 +1507,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) break; case 15: DestroyWirelessStatusIndicatorSprite(); - if (PrintOnTextbox(&data->textState, gUnknown_8457754[RfuGetStatus()])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerDisconnected[RfuGetStatus()])) { gSpecialVar_Result = 8; data->state = 23; @@ -2128,8 +2126,7 @@ static void Task_MEvent_Leader(u8 taskId) } break; case 6: - // The link with your friend has been dropped... - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577F8)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_LinkWithFriendDropped)) { data->playerCount = UnionRoomLeaderField0CompactionAndCount(data->field_0); RedrawListMenu(data->listTaskId); @@ -2169,7 +2166,7 @@ static void Task_MEvent_Leader(u8 taskId) RedrawListMenu(data->listTaskId); data->playerCount++; IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->playerCount - 1]); - StringExpandPlaceholders(gStringVar4, gUnknown_8457554); + StringExpandPlaceholders(gStringVar4, gText_UR_AnOKWasSentToPlayer); data->state = 9; LinkRfu_StopManagerAndFinalizeSlots(); } @@ -2227,7 +2224,7 @@ static void Task_MEvent_Leader(u8 taskId) break; case 14: // Please start over from the beginning. - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571B8)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_PleaseStartOver)) { DestroyTask(taskId); gSpecialVar_Result = 5; @@ -2295,7 +2292,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(gUnknown_8458FE4); + AddTextPrinterToWindow1(gText_UR_ChooseTrainer); data->state = 2; break; case 2: @@ -2365,7 +2362,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) } break; case 4: - AddTextPrinterToWindow1(gUnknown_8459238); + AddTextPrinterToWindow1(gText_UR_AwaitingPlayersResponse); IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->leaderId]); data->state = 5; break; @@ -2384,7 +2381,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state = 8; break; case 5: - AddTextPrinterToWindow1(gUnknown_84576AC); + AddTextPrinterToWindow1(gText_UR_PlayerSentBackOK); RfuSetStatus(RFU_STATUS_OK, 0); break; } @@ -2402,7 +2399,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state++; break; case 9: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_8457838[RfuGetStatus()])) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gTexts_UR_LinkDropped[RfuGetStatus()])) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2412,7 +2409,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) break; case 7: DestroyWirelessStatusIndicatorSprite(); - AddTextPrinterToWindow1(gUnknown_84571B8); + AddTextPrinterToWindow1(gText_UR_PleaseStartOver); DestroyTask(taskId); LinkRfu_Shutdown(); gSpecialVar_Result = 5; @@ -2461,7 +2458,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(gUnknown_84591DC); + AddTextPrinterToWindow1(gText_UR_SearchingForWirelessSystemWait); data->state = 2; break; case 2: @@ -2530,7 +2527,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 4: - AddTextPrinterToWindow1(gUnknown_845928C); + AddTextPrinterToWindow1(gText_UR_AwaitingResponseFromWirelessSystem); IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->leaderId]); data->state = 5; break; @@ -2549,7 +2546,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state = 8; break; case 5: - AddTextPrinterToWindow1(gUnknown_845777C); + AddTextPrinterToWindow1(gText_UR_WirelessLinkEstablished); RfuSetStatus(RFU_STATUS_OK, 0); break; } @@ -2570,7 +2567,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state++; break; case 9: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577BC)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_WirelessLinkDropped)) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2579,7 +2576,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 7: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571E0)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_WirelessSearchCanceled)) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2588,7 +2585,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 11: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_845933C[data->cardOrNews])) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gTexts_UR_NoWonderShared[data->cardOrNews])) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2717,11 +2714,11 @@ static void Task_RunUnionRoom(u8 taskId) { ResetUnionRoomTrade(&sUnionRoomTrade); RfuUpdatePlayerGnameStateAndSend(0, 0, 0); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D54); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_RegistrationCanceled); } else if (!RegisterTradeMonAndGetIsEgg(GetCursorSelectionMonId(), &sUnionRoomTrade)) { - UnionRoom_ScheduleFieldMessageWithFollowupState(52, gURText_PleaseChooseTypeOfMon); + UnionRoom_ScheduleFieldMessageWithFollowupState(52, gText_UR_ChooseRequestedMonType); } else { @@ -2733,7 +2730,7 @@ static void Task_RunUnionRoom(u8 taskId) taskData[1] = sUnionRoomTrade.field_8; if (id >= PARTY_SIZE) { - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D9C); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_TradeCanceled); } else { @@ -2852,9 +2849,9 @@ static void Task_RunUnionRoom(u8 taskId) case 1: case 2: if (IsUnionRoomListenTaskActive() == TRUE) - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8457F90); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_TrainerAppearsBusy); else - UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_8457F90); + UnionRoom_ScheduleFieldMessageWithFollowupState(30, gText_UR_TrainerAppearsBusy); sPlayerCurrActivity = IN_UNION_ROOM; break; @@ -2871,7 +2868,7 @@ static void Task_RunUnionRoom(u8 taskId) if (!FuncIsActiveTask(Task_ExchangeCards)) { if (sPlayerCurrActivity == (ACTIVITY_TRADE | IN_UNION_ROOM)) - UnionRoom_ScheduleFieldMessageWithFollowupState(31, gUnknown_84578BC); + UnionRoom_ScheduleFieldMessageWithFollowupState(31, gText_UR_AwaitingPlayersResponseAboutTrade); else data->state = 5; } @@ -2887,7 +2884,7 @@ static void Task_RunUnionRoom(u8 taskId) case 5: id = ConvPartnerUnameAndGetWhetherMetAlready(&data->field_0->arr[taskData[1]]); playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); - UnionRoom_ScheduleFieldMessageWithFollowupState(6, gURText_FriendPromptsForActivity[id][playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(6, gTexts_UR_HiDoSomething[id][playerGender]); break; case 6: var5 = ListMenuHandler_AllItemsAvailable(&data->textState, &data->topListMenuWindowId, &data->topListMenuListMenuId, &sWindowTemplate_InviteToActivity, &sListMenuTemplate_InviteToActivity); @@ -2905,7 +2902,7 @@ static void Task_RunUnionRoom(u8 taskId) { data->playerSendBuffer[0] = IN_UNION_ROOM; Rfu_SendPacket(data->playerSendBuffer); - StringCopy(gStringVar4, gUnknown_845842C[gLinkPlayers[0].gender]); + StringCopy(gStringVar4, gTexts_UR_IfYouWantToDoSomething[gLinkPlayers[0].gender]); data->state = 32; } else @@ -2914,7 +2911,7 @@ static void Task_RunUnionRoom(u8 taskId) sPlayerActivityGroupSize = (u32)(var5) >> 8; if (sPlayerCurrActivity == (ACTIVITY_BATTLE | IN_UNION_ROOM) && !HasAtLeastTwoMonsOfLevel30OrLower()) { - UnionRoom_ScheduleFieldMessageWithFollowupState(5, gUnknown_845847C); + UnionRoom_ScheduleFieldMessageWithFollowupState(5, gText_UR_NeedTwoMonsOfLevel30OrLower1); } else { @@ -2927,14 +2924,14 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 28: - StringCopy(gStringVar4, gUnknown_8458434); + StringCopy(gStringVar4, gText_UR_TrainerBattleBusy); data->state = 36; break; case 27: PollPartnerYesNoResponse(data); playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); id = GetResponseIdx_InviteToURoomActivity(data->playerSendBuffer[0] & 0x3F); - if (PrintOnTextbox(&data->textState, gResponseToURoomActivityInviteStringPtrs[playerGender][id])) + if (PrintOnTextbox(&data->textState, gTexts_UR_WaitOrShowCard[playerGender][id])) { taskData[3] = 0; data->state = 29; @@ -2954,7 +2951,7 @@ static void Task_RunUnionRoom(u8 taskId) case 29: if (!gReceivedRemoteLinkPlayers) { - StringCopy(gStringVar4, gUnknown_8458434); + StringCopy(gStringVar4, gText_UR_TrainerBattleBusy); data->state = 28; } else @@ -2984,7 +2981,7 @@ static void Task_RunUnionRoom(u8 taskId) case 7: id = ConvPartnerUnameAndGetWhetherMetAlready(&data->field_0->arr[taskData[1]]); playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); - UnionRoom_ScheduleFieldMessageWithFollowupState(6, gURText_FriendPromptsForActivity[id][playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(6, gTexts_UR_HiDoSomething[id][playerGender]); break; case 40: if (PrintOnTextbox(&data->textState, gStringVar4)) @@ -3002,7 +2999,7 @@ static void Task_RunUnionRoom(u8 taskId) { StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name); id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); - StringExpandPlaceholders(gStringVar4, gUnknown_8457C20[id]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_AwaitingResponse[id]); data->state = 33; } else @@ -3026,7 +3023,7 @@ static void Task_RunUnionRoom(u8 taskId) case 1: case -1: playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458548[playerGender]); + UnionRoom_ScheduleFieldMessageAndExit(gTexts_UR_DeclineChat[playerGender]); break; } break; @@ -3049,9 +3046,9 @@ static void Task_RunUnionRoom(u8 taskId) playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); UpdateGameDataWithActivitySpriteGendersFlag(ACTIVITY_PLYRTALK | IN_UNION_ROOM, 0, TRUE); if (IsUnionRoomListenTaskActive() == TRUE) - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageAndExit(gTexts_UR_ChatDeclined[playerGender]); else - UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(30, gTexts_UR_ChatDeclined[playerGender]); break; case 3: data->state = 22; @@ -3065,9 +3062,9 @@ static void Task_RunUnionRoom(u8 taskId) playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); UpdateGameDataWithActivitySpriteGendersFlag(ACTIVITY_PLYRTALK | IN_UNION_ROOM, 0, TRUE); if (IsUnionRoomListenTaskActive() == TRUE) - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageAndExit(gTexts_UR_ChatDeclined[playerGender]); else - UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(30, gTexts_UR_ChatDeclined[playerGender]); } if (gReceivedRemoteLinkPlayers) data->state = 16; @@ -3098,7 +3095,7 @@ static void Task_RunUnionRoom(u8 taskId) data->state = 33; StringCopy(gStringVar1, gLinkPlayers[1].name); id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); - StringExpandPlaceholders(gStringVar4, gUnknown_8457BCC[id]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_PlayerContactedYou[id]); } break; case 33: @@ -3111,7 +3108,7 @@ static void Task_RunUnionRoom(u8 taskId) if (UnionRoom_HandleContactFromOtherPlayer(data) && JOY_NEW(B_BUTTON)) { sub_80FBD6C(1); - StringCopy(gStringVar4, gUnknown_8457E60); + StringCopy(gStringVar4, gText_UR_ChatEnded); data->state = 36; } break; @@ -3138,7 +3135,7 @@ static void Task_RunUnionRoom(u8 taskId) data->playerSendBuffer[0] = ACTIVITY_DECLINE | IN_UNION_ROOM; Rfu_SendPacket(data->playerSendBuffer); data->state = 10; - StringCopy(gStringVar4, gUnknown_84584C0); + StringCopy(gStringVar4, gText_UR_NeedTwoMonsOfLevel30OrLower2); } else { @@ -3229,19 +3226,19 @@ static void Task_RunUnionRoom(u8 taskId) { if (GetHostRFUtgtGname()->species == SPECIES_EGG) { - StringCopy(gStringVar4, gUnknown_8458DE8); + StringCopy(gStringVar4, gText_UR_CancelRegistrationOfEgg); } else { StringCopy(gStringVar1, gSpeciesNames[GetHostRFUtgtGname()->species]); ConvertIntToDecimalStringN(gStringVar2, GetHostRFUtgtGname()->level, STR_CONV_MODE_LEFT_ALIGN, 3); - StringExpandPlaceholders(gStringVar4, gUnknown_8458DBC); + StringExpandPlaceholders(gStringVar4, gText_UR_CancelRegistrationOfMon); } UnionRoom_ScheduleFieldMessageWithFollowupState(44, gStringVar4); } break; case 43: - if (PrintOnTextbox(&data->textState, gUnknown_8458AB8)) + if (PrintOnTextbox(&data->textState, gText_UR_RegisterMonAtTradingBoard)) data->state = 47; break; case 47: @@ -3258,10 +3255,10 @@ static void Task_RunUnionRoom(u8 taskId) switch (var5) { case 1: // REGISTER - UnionRoom_ScheduleFieldMessageWithFollowupState(53, gUnknown_8458D1C); + UnionRoom_ScheduleFieldMessageWithFollowupState(53, gText_UR_WhichMonWillYouOffer); break; case 2: // INFO - UnionRoom_ScheduleFieldMessageWithFollowupState(47, gUnknown_8458B44); + UnionRoom_ScheduleFieldMessageWithFollowupState(47, gText_UR_TradingBoardInfo); break; } } @@ -3290,7 +3287,7 @@ static void Task_RunUnionRoom(u8 taskId) case 18: ResetUnionRoomTrade(&sUnionRoomTrade); RfuUpdatePlayerGnameStateAndSend(0, 0, 0); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D54); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_RegistrationCanceled); break; default: sUnionRoomTrade.type = var5; @@ -3301,7 +3298,7 @@ static void Task_RunUnionRoom(u8 taskId) break; case 55: RfuUpdatePlayerGnameStateAndSend(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D78); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_RegistraionCompleted); break; case 44: switch (UnionRoomHandleYesNo(&data->textState, FALSE)) @@ -3317,7 +3314,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 56: - if (PrintOnTextbox(&data->textState, gUnknown_8458E10)) + if (PrintOnTextbox(&data->textState, gText_UR_RegistrationCanceled2)) { RfuUpdatePlayerGnameStateAndSend(0, 0, 0); ResetUnionRoomTrade(&sUnionRoomTrade); @@ -3326,7 +3323,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 45: - if (PrintOnTextbox(&data->textState, gUnknown_8458A98)) + if (PrintOnTextbox(&data->textState, gText_UR_XCheckedTradingBoard)) data->state = 46; break; case 46: @@ -3350,18 +3347,18 @@ static void Task_RunUnionRoom(u8 taskId) { case UR_TRADE_MATCH: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); - UnionRoom_ScheduleFieldMessageWithFollowupState(49, gUnknown_8458E70); + UnionRoom_ScheduleFieldMessageWithFollowupState(49, gText_UR_AskTrainerToMakeTrade); taskData[1] = var5; break; case UR_TRADE_NOTYPE: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].gname_uname.gname.type]); - UnionRoom_ScheduleFieldMessageWithFollowupState(46, gUnknown_8458ED0); + UnionRoom_ScheduleFieldMessageWithFollowupState(46, gText_UR_DontHaveTypeTrainerWants); break; case UR_TRADE_NOEGG: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].gname_uname.gname.type]); - UnionRoom_ScheduleFieldMessageWithFollowupState(46, gUnknown_8458F04); + UnionRoom_ScheduleFieldMessageWithFollowupState(46, gText_UR_DontHaveEggTrainerWants); break; } break; @@ -3382,7 +3379,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 50: - if (PrintOnTextbox(&data->textState, gUnknown_8458D1C)) + if (PrintOnTextbox(&data->textState, gText_UR_WhichMonWillYouOffer)) { sUnionRoomTrade.field_0 = 2; memcpy(&gPartnerTgtGnameSub, &data->field_0->arr[taskData[1]].gname_uname.gname.unk_00, sizeof(gPartnerTgtGnameSub)); @@ -3398,7 +3395,7 @@ static void Task_RunUnionRoom(u8 taskId) sPlayerCurrActivity = ACTIVITY_TRADE | IN_UNION_ROOM; sub_80FC114(data->field_0->arr[taskData[1]].gname_uname.uname, &data->field_0->arr[taskData[1]].gname_uname.gname, ACTIVITY_TRADE | IN_UNION_ROOM); IntlConvPartnerUname(gStringVar1, data->field_0->arr[taskData[1]]); - UR_PrintFieldMessage(gURText_PleaseWaitMsgs[2]); + UR_PrintFieldMessage(gTexts_UR_CommunicatingWait[2]); data->state = 25; break; case 26: @@ -3862,7 +3859,7 @@ static u8 CreateTradeBoardWindow(const struct WindowTemplate * template) u8 windowId = AddWindow(template); DrawStdWindowFrame(windowId, FALSE); FillWindowPixelBuffer(windowId, PIXEL_FILL(15)); - UR_AddTextPrinterParameterized(windowId, 0, gUnknown_8459378, 8, 1, UR_COLOR_DN5_DN6_LTB); + UR_AddTextPrinterParameterized(windowId, 0, gText_UR_NameWantedOfferLv, 8, 1, UR_COLOR_DN5_DN6_LTB); PutWindowTilemap(windowId); CopyWindowToVram(windowId, COPYWIN_GFX); return windowId; @@ -4180,7 +4177,7 @@ static void PrintUnionRoomGroupOnWindow(u8 windowId, u8 x, u8 y, struct UnkStruc u8 uname[30]; ConvertIntToDecimalStringN(gStringVar4, id + 1, STR_CONV_MODE_LEADING_ZEROS, 2); - StringAppend(gStringVar4, gUnknown_84571B0); + StringAppend(gStringVar4, gText_UR_Colon); UR_AddTextPrinterParameterized(windowId, 0, gStringVar4, x, y, UR_COLOR_DKE_WHT_LTE); x += 18; activity = group->gname_uname.gname.activity; @@ -4189,7 +4186,7 @@ static void PrintUnionRoomGroupOnWindow(u8 windowId, u8 x, u8 y, struct UnkStruc IntlConvPartnerUname(uname, *group); UR_AddTextPrinterParameterized(windowId, 2, uname, x, y, colorIdx); ConvertIntToDecimalStringN(id_str, group->gname_uname.gname.unk_00.playerTrainerId[0] | (group->gname_uname.gname.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); - StringCopy(gStringVar4, gUnknown_84571B4); + StringCopy(gStringVar4, gText_UR_ID); StringAppend(gStringVar4, id_str); x += 77; UR_AddTextPrinterParameterized(windowId, 0, gStringVar4, x, y, colorIdx); @@ -4206,7 +4203,7 @@ static void PrintGroupMemberCandidateOnWindowWithColor(u8 windowId, u8 x, u8 y, IntlConvPartnerUname(uname, *group); UR_AddTextPrinterParameterized(windowId, 2, uname, x, y, colorIdx); ConvertIntToDecimalStringN(id_str, group->gname_uname.gname.unk_00.playerTrainerId[0] | (group->gname_uname.gname.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); - StringCopy(gStringVar4, gUnknown_84571B4); + StringCopy(gStringVar4, gText_UR_ID); StringAppend(gStringVar4, id_str); x += 71; UR_AddTextPrinterParameterized(windowId, 0, gStringVar4, x, y, colorIdx); @@ -4268,12 +4265,12 @@ static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * main0, metBefore = PlayerHasMetTrainerBefore(ReadAsU16(x20->gname_uname.gname.unk_00.playerTrainerId), gStringVar1); if (x20->gname_uname.gname.activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) { - StringExpandPlaceholders(gStringVar4, gUnknown_8457F80[metBefore][playerGender]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_JoinChat[metBefore][playerGender]); return 2; } else { - UR_PrintFieldMessage(gURText_PleaseWaitMsgs[metBefore]); + UR_PrintFieldMessage(gTexts_UR_CommunicatingWait[metBefore]); return 1; } } @@ -4287,24 +4284,19 @@ static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * main0, switch (x20->gname_uname.gname.activity & 0x3F) { case ACTIVITY_BATTLE: - // Battling - StringExpandPlaceholders(gStringVar4, gUnknown_8458758[playerGender][Random() % 4]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_BattleReaction[playerGender][Random() % 4]); break; case ACTIVITY_TRADE: - // Trading - StringExpandPlaceholders(gStringVar4, gUnknown_8458A78[playerGender][Random() % 2]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_TradeReaction[playerGender][Random() % 2]); break; case ACTIVITY_CHAT: - // Chatting - StringExpandPlaceholders(gStringVar4, gUnknown_84588BC[playerGender][Random() % 4]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_ChatReaction[playerGender][Random() % 4]); break; case ACTIVITY_CARD: - // Sharing cards - StringExpandPlaceholders(gStringVar4, gUnknown_84589AC[playerGender][Random() % 2]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_TrainerCardReaction[playerGender][Random() % 2]); break; default: - // Unknown - StringExpandPlaceholders(gStringVar4, gUnknown_8457F90); + StringExpandPlaceholders(gStringVar4, gText_UR_TrainerAppearsBusy); break; } return 0; @@ -4325,7 +4317,7 @@ static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct GFtgtGname * gname UR_AddTextPrinterParameterized(windowId, 2, uname, 8, y, colorIdx); if (species == SPECIES_EGG) { - UR_AddTextPrinterParameterized(windowId, 2, gText_EggTrade, 0x44, y, colorIdx); + UR_AddTextPrinterParameterized(windowId, 2, gText_UR_EggTrade, 0x44, y, colorIdx); } else { @@ -4430,16 +4422,16 @@ static void GetURoomActivityRejectMsg(u8 *dst, s32 activity, u32 playerGender) switch (activity) { case ACTIVITY_BATTLE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8458314[playerGender]); + StringExpandPlaceholders(dst, gTexts_UR_BattleDeclined[playerGender]); break; case ACTIVITY_CHAT | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_84585E8[playerGender]); + StringExpandPlaceholders(dst, gTexts_UR_ChatDeclined[playerGender]); break; case ACTIVITY_TRADE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8458F9C); + StringExpandPlaceholders(dst, gText_UR_TradeOfferRejected); break; case ACTIVITY_CARD | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_84583B4[playerGender]); + StringExpandPlaceholders(dst, gTexts_UR_ShowTrainerCardDeclined[playerGender]); break; } } @@ -4452,13 +4444,13 @@ static void GetURoomActivityStartMsg(u8 *dst, u8 activity) switch (activity) { case ACTIVITY_BATTLE | IN_UNION_ROOM: - StringCopy(dst, gUnknown_8458230[mpId][gender][0]); + StringCopy(dst, gTexts_UR_StartActivity[mpId][gender][0]); break; case ACTIVITY_TRADE | IN_UNION_ROOM: - StringCopy(dst, gUnknown_8458230[mpId][gender][2]); + StringCopy(dst, gTexts_UR_StartActivity[mpId][gender][2]); break; case ACTIVITY_CHAT | IN_UNION_ROOM: - StringCopy(dst, gUnknown_8458230[mpId][gender][1]); + StringCopy(dst, gTexts_UR_StartActivity[mpId][gender][1]); break; } } @@ -4472,11 +4464,11 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ switch (activity_p[0]) { case ACTIVITY_BATTLE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457CA4); + StringExpandPlaceholders(dst, gText_UR_BattleChallenge); result = 1; break; case ACTIVITY_CHAT | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457CF8); + StringExpandPlaceholders(dst, gText_UR_ChatInvitation); result = 1; break; case ACTIVITY_TRADE | IN_UNION_ROOM: @@ -4494,7 +4486,7 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ } if (species == SPECIES_EGG) { - StringCopy(dst, gUnknown_8457DB8); + StringCopy(dst, gText_UR_OfferToTradeEgg); } else { @@ -4502,17 +4494,17 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ { DynamicPlaceholderTextUtil_SetPlaceholderPtr(i, arg3->activityRequestStrbufs[i]); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gUnknown_8457D44); + DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gText_UR_OfferToTradeMon); } result = 1; break; case ACTIVITY_CARD | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457C48); + StringExpandPlaceholders(dst, gText_UR_ShowTrainerCard); result = 1; break; case IN_UNION_ROOM: // Chat dropped - StringExpandPlaceholders(dst, gUnknown_8457E0C); + StringExpandPlaceholders(dst, gText_UR_ChatDropped); result = 2; break; } @@ -4699,7 +4691,7 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->rse.playerName); - StringCopy(uroom->field_174, gUnknown_84594B0[trainerCard->rse.stars]); + StringCopy(uroom->field_174, gTexts_UR_CardColor[trainerCard->rse.stars]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->field_174); ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->rse.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -4710,7 +4702,7 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, uroom->trainerCardStrbufs[3]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, uroom->trainerCardStrbufs[4]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_84594C4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gText_UR_TrainerCardInfoPage1); StringCopy(gStringVar4, uroom->field_1A4); n = trainerCard->rse.linkBattleWins; @@ -4738,17 +4730,17 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, uroom->trainerCardStrbufs[i + 3]); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459504); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gText_UR_TrainerCardInfoPage2); StringAppend(gStringVar4, uroom->field_1A4); if (parent_child == MODE_PARENT) { - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459588); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gText_UR_FinishedCheckingPlayersTrainerCard); StringAppend(gStringVar4, uroom->field_1A4); } else if (parent_child == MODE_CHILD) { - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459580[trainerCard->rse.gender]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gTexts_UR_GladToMeetYou[trainerCard->rse.gender]); StringAppend(gStringVar4, uroom->field_1A4); } } diff --git a/src/union_room_message.c b/src/union_room_message.c index ad0737962..16b0fc632 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -1,46 +1,47 @@ #include "global.h" +#include "link_rfu.h" #include "mevent_server.h" #include "constants/union_room.h" -ALIGNED(4) const u8 gUnionRoomActivity_Blank[] = _(""); -ALIGNED(4) const u8 gUnknown_84571B0[] = _(":"); -ALIGNED(4) const u8 gUnknown_84571B4[] = _("{ID}"); -ALIGNED(4) const u8 gUnknown_84571B8[] = _("Please start over from the beginning."); -ALIGNED(4) const u8 gUnknown_84571E0[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled."); -ALIGNED(4) static const u8 gUnref_845721C[] = _("ã¨ã‚‚ã ã¡ã‹ã‚‰ã® れんらãã‚’\nã¾ã£ã¦ã„ã¾ã™"); -ALIGNED(4) const u8 gUnknown_8457234[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player."); -ALIGNED(4) const u8 gUnknown_8457264[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready."); +ALIGNED(4) const u8 gText_UR_EmptyString[] = _(""); +ALIGNED(4) const u8 gText_UR_Colon[] = _(":"); +ALIGNED(4) const u8 gText_UR_ID[] = _("{ID}"); +ALIGNED(4) const u8 gText_UR_PleaseStartOver[] = _("Please start over from the beginning."); +ALIGNED(4) const u8 gText_UR_WirelessSearchCanceled[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled."); +ALIGNED(4) static const u8 sText_AwaitingCommunucation2[] = _("ã¨ã‚‚ã ã¡ã‹ã‚‰ã® れんらãã‚’\nã¾ã£ã¦ã„ã¾ã™"); +ALIGNED(4) const u8 gText_UR_AwaitingCommunication[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player."); +ALIGNED(4) const u8 gText_UR_AwaitingLinkPressStart[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready."); -ALIGNED(4) static const u8 sJPText_SingleBattle[] = _("シングルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_DoubleBattle[] = _("ダブルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_MultiBattle[] = _("マルãƒãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_TradePokemon[] = _("ãƒã‚±ãƒ¢ãƒ³ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_Chat[] = _("ãƒãƒ£ãƒƒãƒˆã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_DistWonderCard[] = _("ãµã—ãŽãªã‚«ãƒ¼ãƒ‰ã‚’ãã°ã‚‹"); -ALIGNED(4) static const u8 sJPText_DistWonderNews[] = _("ãµã—ãŽãªãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚’ãã°ã‚‹"); -ALIGNED(4) static const u8 sJPText_DistMysteryEvent[] = _("ãµã—ãŽãªã§ãã”ã¨ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_HoldPokemonJump[] = _("ãªã‚ã¨ã³ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_HoldBerryCrush[] = _("ãã®ã¿ãƒžãƒƒã‚·ãƒ£ãƒ¼ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_HoldBerryPicking[] = _("ãã®ã¿ã©ã‚Šã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_HoldSpinTrade[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); -ALIGNED(4) static const u8 sJPText_HoldSpinShop[] = _("ãã‚‹ãるショップを ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_SingleBattle[] = _("シングルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_DoubleBattle[] = _("ダブルãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_MultiBattle[] = _("マルãƒãƒãƒˆãƒ«ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_TradePokemon[] = _("ãƒã‚±ãƒ¢ãƒ³ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_Chat[] = _("ãƒãƒ£ãƒƒãƒˆã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_DistWonderCard[] = _("ãµã—ãŽãªã‚«ãƒ¼ãƒ‰ã‚’ãã°ã‚‹"); +ALIGNED(4) static const u8 sText_DistWonderNews[] = _("ãµã—ãŽãªãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚’ãã°ã‚‹"); +ALIGNED(4) static const u8 sText_DistMysteryEvent[] = _("ãµã—ãŽãªã§ãã”ã¨ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_HoldPokemonJump[] = _("ãªã‚ã¨ã³ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_HoldBerryCrush[] = _("ãã®ã¿ãƒžãƒƒã‚·ãƒ£ãƒ¼ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_HoldBerryPicking[] = _("ãã®ã¿ã©ã‚Šã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_HoldSpinTrade[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“ã‚’ ã‹ã„ã•ã„ã™ã‚‹"); +ALIGNED(4) static const u8 sText_HoldSpinShop[] = _("ãã‚‹ãるショップを ã‹ã„ã•ã„ã™ã‚‹"); // Unused -static const u8 *const sJPLinkGroupActionTexts[] = { - sJPText_SingleBattle, - sJPText_DoubleBattle, - sJPText_MultiBattle, - sJPText_TradePokemon, - sJPText_Chat, - sJPText_DistWonderCard, - sJPText_DistWonderNews, - sJPText_DistWonderCard, - sJPText_HoldPokemonJump, - sJPText_HoldBerryCrush, - sJPText_HoldBerryPicking, - sJPText_HoldBerryPicking, - sJPText_HoldSpinTrade, - sJPText_HoldSpinShop +static const u8 *const sLinkGroupActionTexts[] = { + sText_SingleBattle, + sText_DoubleBattle, + sText_MultiBattle, + sText_TradePokemon, + sText_Chat, + sText_DistWonderCard, + sText_DistWonderNews, + sText_DistWonderCard, + sText_HoldPokemonJump, + sText_HoldBerryCrush, + sText_HoldBerryPicking, + sText_HoldBerryPicking, + sText_HoldSpinTrade, + sText_HoldSpinShop }; static const u8 sText_1PlayerNeeded[] = _("1 player\nneeded."); @@ -52,7 +53,7 @@ static const u8 sText_3PlayerMode[] = _("3-PLAYER\nMODE"); static const u8 sText_4PlayerMode[] = _("4-PLAYER\nMODE"); static const u8 sText_5PlayerMode[] = _("5-PLAYER\nMODE"); -const u8 *const gUnknown_845742C[][5] = { +const u8 *const gTexts_UR_PlayersNeededOrMode[][5] = { { // 2 players required sText_1PlayerNeeded, sText_2PlayerMode @@ -79,70 +80,69 @@ const u8 *const gUnknown_845742C[][5] = { } }; -ALIGNED(4) const u8 gUnknown_845747C[] = _("{B_BUTTON}CANCEL"); -ALIGNED(4) static const u8 sJPText_SearchingForParticipants[] = _("ãŸã‚\nã•ã‚“ã‹ã—ゃ ã¼ã—ã‚…ã†ã¡ã‚…ㆠã§ã™ï¼"); -ALIGNED(4) const u8 gUnknown_84574A0[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?"); -ALIGNED(4) const u8 gUnknown_84574C4[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?"); -ALIGNED(4) const u8 gUnknown_84574EC[] = _("{STR_VAR_2} contacted you.\nAdd to the members?"); -ALIGNED(4) const u8 gUnknown_8457514[] = _("{STR_VAR_1}!\nAre these members OK?"); -ALIGNED(4) const u8 gUnknown_8457530[] = _("Cancel {STR_VAR_1} MODE\nwith these members?"); -ALIGNED(4) const u8 gUnknown_8457554[] = _("An “OK†was sent\nto {STR_VAR_1}."); +ALIGNED(4) const u8 gText_UR_BButtonCancel[] = _("{B_BUTTON}CANCEL"); +ALIGNED(4) static const u8 sText_SearchingForParticipants[] = _("ãŸã‚\nã•ã‚“ã‹ã—ゃ ã¼ã—ã‚…ã†ã¡ã‚…ㆠã§ã™ï¼"); +ALIGNED(4) const u8 gText_UR_PlayerContactedYouForXAccept[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?"); +ALIGNED(4) const u8 gText_UR_PlayerContactedYouShareX[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?"); +ALIGNED(4) const u8 gText_UR_PlayerContactedYouAddToMembers[] = _("{STR_VAR_2} contacted you.\nAdd to the members?"); +ALIGNED(4) const u8 gText_UR_AreTheseMembersOK[] = _("{STR_VAR_1}!\nAre these members OK?"); +ALIGNED(4) const u8 gText_UR_CancelModeWithTheseMembers[] = _("Cancel {STR_VAR_1} MODE\nwith these members?"); +ALIGNED(4) const u8 gText_UR_AnOKWasSentToPlayer[] = _("An “OK†was sent\nto {STR_VAR_1}."); ALIGNED(4) static const u8 sText_OtherTrainerUnavailableNow[] = _("The other TRAINER doesn't appear\nto be available now…\p"); ALIGNED(4) static const u8 sText_CantTransmitTrainerTooFar[] = _("You can't transmit with a TRAINER\nwho is too far away.\p"); ALIGNED(4) static const u8 sText_TrainersNotReadyYet[] = _("The other TRAINER(S) is/are not\nready yet.\p"); -const u8 *const gUnknown_8457608[] = { +const u8 *const gTexts_UR_CantTransmitToTrainer[] = { sText_CantTransmitTrainerTooFar, sText_TrainersNotReadyYet }; -ALIGNED(4) const u8 gUnknown_8457610[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}"); +ALIGNED(4) const u8 gText_UR_ModeWithTheseMembersWillBeCanceled[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}"); ALIGNED(4) static const u8 sText_MemberNoLongerAvailable[] = _("There is a member who can no\nlonger remain available.\p"); -const u8 *const gUnknown_845767C[] = { +const u8 *const gTexts_UR_PlayerUnavailable[] = { sText_OtherTrainerUnavailableNow, sText_MemberNoLongerAvailable }; ALIGNED(4) static const u8 sText_TrainerAppearsUnavailable[] = _("The other TRAINER appears\nunavailable…\p"); -ALIGNED(4) const u8 gUnknown_84576AC[] = _("{STR_VAR_1} sent back an “OKâ€!"); -ALIGNED(4) const u8 gUnknown_84576C4[] = _("{STR_VAR_1} OK'd your registration as\na member."); +ALIGNED(4) const u8 gText_UR_PlayerSentBackOK[] = _("{STR_VAR_1} sent back an “OKâ€!"); +ALIGNED(4) const u8 gText_UR_PlayerOKdRegistration[] = _("{STR_VAR_1} OK'd your registration as\na member."); ALIGNED(4) static const u8 sText_PlayerRepliedNo[] = _("{STR_VAR_1} replied, “No…â€\p"); -ALIGNED(4) const u8 gUnknown_8457700[] = _("{STR_VAR_1}!\nAwaiting other members!"); -ALIGNED(4) const u8 gUnknown_845771C[] = _("Quit being a member?"); +ALIGNED(4) const u8 gText_UR_AwaitingOtherMembers[] = _("{STR_VAR_1}!\nAwaiting other members!"); +ALIGNED(4) const u8 gText_UR_QuitBeingMember[] = _("Quit being a member?"); ALIGNED(4) static const u8 sText_StoppedBeingMember[] = _("You stopped being a member.\p"); -const u8 *const gUnknown_8457754[] = { - NULL, - sText_MemberNoLongerAvailable, - sText_TrainerAppearsUnavailable, - NULL, - NULL, - NULL, - sText_PlayerRepliedNo, - NULL, - NULL, - sText_StoppedBeingMember +const u8 *const gTexts_UR_PlayerDisconnected[] = { + [RFU_STATUS_OK] = NULL, + [RFU_STATUS_FATAL_ERROR] = sText_MemberNoLongerAvailable, + [RFU_STATUS_CONNECTION_ERROR] = sText_TrainerAppearsUnavailable, + [RFU_STATUS_CHILD_SEND_COMPLETE] = NULL, + [RFU_STATUS_NEW_CHILD_DETECTED] = NULL, + [RFU_STATUS_JOIN_GROUP_OK] = NULL, + [RFU_STATUS_JOIN_GROUP_NO] = sText_PlayerRepliedNo, + [RFU_STATUS_WAIT_ACK_JOIN_GROUP] = NULL, + [RFU_STATUS_LEAVE_GROUP_NOTICE] = NULL, + [RFU_STATUS_LEAVE_GROUP] = sText_StoppedBeingMember }; -ALIGNED(4) const u8 gUnknown_845777C[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established."); -ALIGNED(4) const u8 gUnknown_84577BC[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…"); - -ALIGNED(4) const u8 gUnknown_84577F8[] = _("The link with your friend has been\ndropped…"); +ALIGNED(4) const u8 gText_UR_WirelessLinkEstablished[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established."); +ALIGNED(4) const u8 gText_UR_WirelessLinkDropped[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…"); +ALIGNED(4) const u8 gText_UR_LinkWithFriendDropped[] = _("The link with your friend has been\ndropped…"); ALIGNED(4) static const u8 sText_PlayerRepliedNo2[] = _("{STR_VAR_1} replied, “No…â€"); -const u8 *const gUnknown_8457838[] = { - NULL, - gUnknown_84577F8, - gUnknown_84577F8, - NULL, - NULL, - NULL, - sText_PlayerRepliedNo2, - NULL, - NULL, - NULL +const u8 *const gTexts_UR_LinkDropped[] = { + [RFU_STATUS_OK] = NULL, + [RFU_STATUS_FATAL_ERROR] = gText_UR_LinkWithFriendDropped, + [RFU_STATUS_CONNECTION_ERROR] = gText_UR_LinkWithFriendDropped, + [RFU_STATUS_CHILD_SEND_COMPLETE] = NULL, + [RFU_STATUS_NEW_CHILD_DETECTED] = NULL, + [RFU_STATUS_JOIN_GROUP_OK] = NULL, + [RFU_STATUS_JOIN_GROUP_NO] = sText_PlayerRepliedNo2, + [RFU_STATUS_WAIT_ACK_JOIN_GROUP] = NULL, + [RFU_STATUS_LEAVE_GROUP_NOTICE] = NULL, + [RFU_STATUS_LEAVE_GROUP] = NULL }; ALIGNED(4) static const u8 sText_DoYouWantXMode[] = _("Do you want the {STR_VAR_2}\nMODE?"); @@ -155,13 +155,13 @@ static const u8 *const sDoYouWantModeTexts[] = { }; ALIGNED(4) static const u8 sText_CommunicatingPleaseWait[] = _("ã¯ãªã—ã‹ã‘ã¦ã„ã¾ã™â€¦\nã—ょã†ã—ょㆠãŠã¾ã¡ãã ã•ã„"); // Unused -ALIGNED(4) const u8 gUnknown_84578BC[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…"); +ALIGNED(4) const u8 gText_UR_AwaitingPlayersResponseAboutTrade[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…"); ALIGNED(4) static const u8 sText_Communicating[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); ALIGNED(4) static const u8 sText_CommunicatingWithPlayer[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); ALIGNED(4) static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); -const u8 *const gURText_PleaseWaitMsgs[] = { +const u8 *const gTexts_UR_CommunicatingWait[] = { sText_Communicating, sText_CommunicatingWithPlayer, sText_PleaseWaitAWhile @@ -172,7 +172,7 @@ ALIGNED(4) static const u8 sText_HiDoSomethingFemale[] = _("Hello!\nWould you li ALIGNED(4) static const u8 sText_HiDoSomethingAgainMale[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); ALIGNED(4) static const u8 sText_HiDoSomethingAgainFemale[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); -const u8 *const gURText_FriendPromptsForActivity[][2] = { +const u8 *const gTexts_UR_HiDoSomething[][2] = { { sText_HiDoSomethingMale, sText_HiDoSomethingFemale @@ -198,7 +198,7 @@ static const u8 *const sDoSomethingTexts[] = { ALIGNED(4) static const u8 sText_SomebodyHasContactedYou[] = _("Somebody has contacted you.{PAUSE 60}"); ALIGNED(4) static const u8 sText_PlayerHasContactedYou[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}"); -const u8 *const gUnknown_8457BCC[] = { +const u8 *const gTexts_UR_PlayerContactedYou[] = { sText_SomebodyHasContactedYou, sText_PlayerHasContactedYou }; @@ -206,29 +206,29 @@ const u8 *const gUnknown_8457BCC[] = { ALIGNED(4) static const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); ALIGNED(4) static const u8 sText_AwaitingResponseFromPlayer[] = _("Awaiting a response from\n{STR_VAR_1}…"); -const u8 *const gUnknown_8457C20[] = { +const u8 *const gTexts_UR_AwaitingResponse[] = { sText_AwaitingResponseFromTrainer, sText_AwaitingResponseFromPlayer }; -ALIGNED(4) static const u8 gUnknown_8457C28[] = _("ã‚ã„ã¦ã® ã¦ã„ã‚ã‚“ã‚’ ã¾ã£ã¦ã„ã¾ã™\nビーボタン㧠キャンセル"); +ALIGNED(4) static const u8 sText_AwaitingResponseCancelBButton[] = _("ã‚ã„ã¦ã® ã¦ã„ã‚ã‚“ã‚’ ã¾ã£ã¦ã„ã¾ã™\nビーボタン㧠キャンセル"); -ALIGNED(4) const u8 gUnknown_8457C48[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); -ALIGNED(4) const u8 gUnknown_8457CA4[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); -ALIGNED(4) const u8 gUnknown_8457CF8[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); -ALIGNED(4) const u8 gUnknown_8457D44[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?"); -ALIGNED(4) const u8 gUnknown_8457DB8[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); -ALIGNED(4) const u8 gUnknown_8457E0C[] = _("The chat has been dropped.\p"); -ALIGNED(4) const u8 gUnknown_8457E28[] = _("You declined the offer.\p"); -ALIGNED(4) const u8 gUnknown_8457E44[] = _("You declined the offer.\p"); -ALIGNED(4) const u8 gUnknown_8457E60[] = _("The chat was ended.\p"); +ALIGNED(4) const u8 gText_UR_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); +ALIGNED(4) const u8 gText_UR_BattleChallenge[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); +ALIGNED(4) const u8 gText_UR_ChatInvitation[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); +ALIGNED(4) const u8 gText_UR_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?"); +ALIGNED(4) const u8 gText_UR_OfferToTradeEgg[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); +ALIGNED(4) const u8 gText_UR_ChatDropped[] = _("The chat has been dropped.\p"); +ALIGNED(4) const u8 gText_UR_OfferDeclined1[] = _("You declined the offer.\p"); +ALIGNED(4) const u8 gText_UR_OfferDeclined2[] = _("You declined the offer.\p"); +ALIGNED(4) const u8 gText_UR_ChatEnded[] = _("The chat was ended.\p"); // Unused static const u8 *const sInvitationTexts[] = { - gUnknown_8457C48, - gUnknown_8457CA4, - gUnknown_8457CF8, - gUnknown_8457D44 + gText_UR_ShowTrainerCard, + gText_UR_BattleChallenge, + gText_UR_ChatInvitation, + gText_UR_OfferToTradeMon }; ALIGNED(4) static const u8 sText_JoinChatMale[] = _("Oh, hey! We're in a chat right now.\nWant to join us?"); @@ -236,7 +236,7 @@ ALIGNED(4) static const u8 sText_PlayerJoinChatMale[] = _("{STR_VAR_1}: Hey, {PL ALIGNED(4) static const u8 sText_JoinChatFemale[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); ALIGNED(4) static const u8 sText_PlayerJoinChatFemale[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); -const u8 *const gUnknown_8457F80[][2] = { +const u8 *const gTexts_UR_JoinChat[GENDER_COUNT][2] = { { sText_JoinChatMale, sText_JoinChatFemale @@ -246,7 +246,7 @@ const u8 *const gUnknown_8457F80[][2] = { } }; -ALIGNED(4) const u8 gUnknown_8457F90[] = _("……\nThe TRAINER appears to be busy…\p"); +ALIGNED(4) const u8 gText_UR_TrainerAppearsBusy[] = _("……\nThe TRAINER appears to be busy…\p"); ALIGNED(4) static const u8 sText_WaitForBattleMale[] = _("A battle, huh?\nAll right, just give me some time."); ALIGNED(4) static const u8 sText_WaitForChatMale[] = _("You want to chat, huh?\nSure, just wait a little."); ALIGNED(4) static const u8 sText_ShowTrainerCardMale[] = _("Sure thing! As my “Greetings,â€\nhere's my TRAINER CARD."); @@ -254,7 +254,7 @@ ALIGNED(4) static const u8 sText_WaitForBattleFemale[] = _("A battle? Of course, ALIGNED(4) static const u8 sText_WaitForChatFemale[] = _("Did you want to chat?\nOkay, but please wait a moment."); ALIGNED(4) static const u8 sText_ShowTrainerCardFemale[] = _("As my introduction, I'll show you\nmy TRAINER CARD."); -const u8 *const gResponseToURoomActivityInviteStringPtrs[][4] = { +const u8 *const gTexts_UR_WaitOrShowCard[GENDER_COUNT][4] = { { sText_WaitForBattleMale, sText_WaitForChatMale, @@ -277,7 +277,7 @@ ALIGNED(4) static const u8 sText_TradeWillBeStarted[] = _("The trade will be sta ALIGNED(4) static const u8 sText_BattleWillBeStarted[] = _("The battle will be started.{PAUSE 60}"); ALIGNED(4) static const u8 sText_EnteringChat[] = _("Entering the chat…{PAUSE 60}"); -const u8 *const gUnknown_8458230[][2][3] = { +const u8 *const gTexts_UR_StartActivity[][GENDER_COUNT][3] = { { { sText_BattleWillBeStarted, @@ -304,7 +304,7 @@ const u8 *const gUnknown_8458230[][2][3] = { ALIGNED(4) static const u8 sText_BattleDeclinedMale[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p"); ALIGNED(4) static const u8 sText_BattleDeclinedFemale[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p"); -const u8 *const gUnknown_8458314[] = { +const u8 *const gTexts_UR_BattleDeclined[GENDER_COUNT] = { sText_BattleDeclinedMale, sText_BattleDeclinedFemale }; @@ -312,7 +312,7 @@ const u8 *const gUnknown_8458314[] = { ALIGNED(4) static const u8 sText_ShowTrainerCardDeclinedMale[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p"); ALIGNED(4) static const u8 sText_ShowTrainerCardDeclinedFemale[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p"); -const u8 *const gUnknown_84583B4[] = { +const u8 *const gTexts_UR_ShowTrainerCardDeclined[GENDER_COUNT] = { sText_ShowTrainerCardDeclinedMale, sText_ShowTrainerCardDeclinedFemale }; @@ -320,20 +320,20 @@ const u8 *const gUnknown_84583B4[] = { ALIGNED(4) static const u8 sText_IfYouWantToDoSomethingMale[] = _("If you want to do something with\nme, just give me a shout!\p"); ALIGNED(4) static const u8 sText_IfYouWantToDoSomethingFemale[] = _("If you want to do something with\nme, don't be shy.\p"); -const u8 *const gUnknown_845842C[] = { +const u8 *const gTexts_UR_IfYouWantToDoSomething[GENDER_COUNT] = { sText_IfYouWantToDoSomethingMale, sText_IfYouWantToDoSomethingFemale }; -ALIGNED(4) const u8 gUnknown_8458434[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p"); -ALIGNED(4) const u8 gUnknown_845847C[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p"); -ALIGNED(4) const u8 gUnknown_84584C0[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p"); +ALIGNED(4) const u8 gText_UR_TrainerBattleBusy[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p"); +ALIGNED(4) const u8 gText_UR_NeedTwoMonsOfLevel30OrLower1[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p"); +ALIGNED(4) const u8 gText_UR_NeedTwoMonsOfLevel30OrLower2[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p"); ALIGNED(4) static const u8 sText_DeclineChatMale[] = _("Oh, all right.\nCome see me anytime, okay?\p"); ALIGNED(4) static const u8 stext_DeclineChatFemale[] = _("Oh…\nPlease come by anytime.\p"); // Response from partner when player declines chat -const u8 *const gUnknown_8458548[] = { +const u8 *const gTexts_UR_DeclineChat[GENDER_COUNT] = { sText_DeclineChatMale, stext_DeclineChatFemale }; @@ -342,7 +342,7 @@ ALIGNED(4) static const u8 sText_ChatDeclinedMale[] = _("Oh, sorry!\nI just can' ALIGNED(4) static const u8 sText_ChatDeclinedFemale[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p"); // Response from partner when they decline chat -const u8 *const gUnknown_84585E8[] = { +const u8 *const gTexts_UR_ChatDeclined[GENDER_COUNT] = { sText_ChatDeclinedMale, sText_ChatDeclinedFemale }; @@ -356,7 +356,7 @@ ALIGNED(4) static const u8 sText_UsedGoodMoveFemale[] = _("That's it!\nThis is t ALIGNED(4) static const u8 sText_BattleSurpriseFemale[] = _("That's awesome!\nYou can battle that way?\p"); ALIGNED(4) static const u8 sText_SwitchedMonsFemale[] = _("You have exquisite timing for\nswitching POKéMON!\p"); -const u8 *const gUnknown_8458758[][4] = { +const u8 *const gTexts_UR_BattleReaction[GENDER_COUNT][4] = { { sText_YoureToughMale, sText_UsedGoodMoveMale, @@ -379,7 +379,7 @@ ALIGNED(4) static const u8 sText_ThatsFunnyFemale[] = _("Ahaha!\nWhat is that ab ALIGNED(4) static const u8 sText_RandomChatFemale1[] = _("Yes, that's exactly it!\nThat's what I meant.\p"); ALIGNED(4) static const u8 sText_RandomChatFemale2[] = _("In other words…\nYes! That's right!\p"); -const u8 *const gUnknown_84588BC[][4] = { +const u8 *const gTexts_UR_ChatReaction[GENDER_COUNT][4] = { { sText_LearnedSomethingMale, sText_ThatsFunnyMale, @@ -398,7 +398,7 @@ ALIGNED(4) static const u8 sText_ShowedTrainerCardMale2[] = _("I hope I get to k ALIGNED(4) static const u8 sText_ShowedTrainerCardFemale1[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p"); ALIGNED(4) static const u8 sText_ShowedTrainerCardFemale2[] = _("Glad to meet you.\nPlease don't be a stranger!\p"); -const u8 *const gUnknown_84589AC[][2] = { +const u8 *const gTexts_UR_TrainerCardReaction[GENDER_COUNT][2] = { { sText_ShowedTrainerCardMale1, sText_ShowedTrainerCardMale2 @@ -413,7 +413,7 @@ ALIGNED(4) static const u8 sText_MaleTraded2[] = _("Finally, a trade got me that ALIGNED(4) static const u8 sText_FemaleTraded1[] = _("I'm trading POKéMON right now.\p"); ALIGNED(4) static const u8 sText_FemaleTraded2[] = _("I finally got that POKéMON I\nwanted in a trade!\p"); -const u8 *const gUnknown_8458A78[][4] = { +const u8 *const gTexts_UR_TradeReaction[GENDER_COUNT][4] = { { sText_MaleTraded1, sText_MaleTraded2 @@ -423,36 +423,36 @@ const u8 *const gUnknown_8458A78[][4] = { } }; -const u8 gUnknown_8458A98[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p"); -ALIGNED(4) const u8 gUnknown_8458AB8[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?"); -ALIGNED(4) const u8 gUnknown_8458B44[] = _("This TRADING BOARD is used for\n" - "offering a POKéMON for a trade.\p" - "All you need to do is register a\n" - "POKéMON for a trade.\p" - "Another TRAINER may offer a party\n" - "POKéMON in return for the trade.\p" - "We hope you will register POKéMON\n" - "and trade them with many, many\l" - "other TRAINERS.\p" - "Would you like to register one of\n" - "your POKéMON?"); +const u8 gText_UR_XCheckedTradingBoard[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p"); +ALIGNED(4) const u8 gText_UR_RegisterMonAtTradingBoard[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?"); +ALIGNED(4) const u8 gText_UR_TradingBoardInfo[] = _("This TRADING BOARD is used for\n" + "offering a POKéMON for a trade.\p" + "All you need to do is register a\n" + "POKéMON for a trade.\p" + "Another TRAINER may offer a party\n" + "POKéMON in return for the trade.\p" + "We hope you will register POKéMON\n" + "and trade them with many, many\l" + "other TRAINERS.\p" + "Would you like to register one of\n" + "your POKéMON?"); ALIGNED(4) static const u8 sText_ThankYouForRegistering[] = _("ã“ã†ã‹ã‚“ã‘ã„ã˜ã°ã‚“ ã® ã¨ã†ã‚ããŒ\nã‹ã‚“りょㆠã—ã¾ã—ãŸ\pã”りよㆠã‚りãŒã¨ã†\nã”ã–ã„ã¾ã—ãŸï¼\p"); ALIGNED(4) static const u8 sText_NobodyHasRegistered[] = _("ã‘ã„ã˜ã°ã‚“ã« ã ã‚Œã‚‚ ãƒã‚±ãƒ¢ãƒ³ã‚’\nã¨ã†ã‚ã ã—ã¦ã„ã¾ã›ã‚“\p\n"); -ALIGNED(4) const u8 gURText_PleaseChooseTypeOfMon[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n"); -ALIGNED(4) const u8 gUnknown_8458D1C[] = _("Which of your party POKéMON will\nyou offer in trade?\p"); -ALIGNED(4) const u8 gUnknown_8458D54[] = _("Registration has been canceled.\p"); -ALIGNED(4) const u8 gUnknown_8458D78[] = _("Registration has been completed.\p"); -ALIGNED(4) const u8 gUnknown_8458D9C[] = _("The trade has been canceled.\p"); -ALIGNED(4) const u8 gUnknown_8458DBC[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?"); -ALIGNED(4) const u8 gUnknown_8458DE8[] = _("Cancel the registration of your\nEGG?"); -ALIGNED(4) const u8 gUnknown_8458E10[] = _("The registration has been canceled.\p"); +ALIGNED(4) const u8 gText_UR_ChooseRequestedMonType[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n"); +ALIGNED(4) const u8 gText_UR_WhichMonWillYouOffer[] = _("Which of your party POKéMON will\nyou offer in trade?\p"); +ALIGNED(4) const u8 gText_UR_RegistrationCanceled[] = _("Registration has been canceled.\p"); +ALIGNED(4) const u8 gText_UR_RegistraionCompleted[] = _("Registration has been completed.\p"); +ALIGNED(4) const u8 gText_UR_TradeCanceled[] = _("The trade has been canceled.\p"); +ALIGNED(4) const u8 gText_UR_CancelRegistrationOfMon[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?"); +ALIGNED(4) const u8 gText_UR_CancelRegistrationOfEgg[] = _("Cancel the registration of your\nEGG?"); +ALIGNED(4) const u8 gText_UR_RegistrationCanceled2[] = _("The registration has been canceled.\p"); ALIGNED(4) static const u8 sText_TradeTrainersWillBeListed[] = _("ã“ã†ã‹ã‚“ã‚’ ãã¼ã†ã—ã¦ã„ã‚‹ã²ã¨ã‚’\nã²ã‚‡ã†ã˜ã—ã¾ã™"); ALIGNED(4) static const u8 sText_ChooseTrainerToTradeWith2[] = _("ã“ã†ã‹ã‚“ ã—ãŸã„ トレーナーを\nãˆã‚‰ã‚“ã§ ãã ã•ã„"); -ALIGNED(4) const u8 gUnknown_8458E70[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); +ALIGNED(4) const u8 gText_UR_AskTrainerToMakeTrade[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); ALIGNED(4) static const u8 sText_AwaitingResponseFromTrainer2[] = _("……\nã‚ã„ã¦ã® ã¸ã‚“ã˜ã‚’ ã¾ã£ã¦ã„ã¾ã™"); ALIGNED(4) static const u8 sText_NotRegisteredAMonForTrade[] = _("ã‚ãªãŸãŒ ã“ã†ã‹ã‚“ã«ã ã™\nãƒã‚±ãƒ¢ãƒ³ãŒ ã¨ã†ã‚ãã•れã¦ã„ã¾ã›ã‚“\p"); -ALIGNED(4) const u8 gUnknown_8458ED0[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p"); -ALIGNED(4) const u8 gUnknown_8458F04[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p"); +ALIGNED(4) const u8 gText_UR_DontHaveTypeTrainerWants[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p"); +ALIGNED(4) const u8 gText_UR_DontHaveEggTrainerWants[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p"); ALIGNED(4) static const u8 sText_PlayerCantTradeForYourMon[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p"); ALIGNED(4) static const u8 sText_CantTradeForPartnersMon[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p"); @@ -463,11 +463,10 @@ static const u8 *const sCantTradeMonTexts[] = { sText_CantTradeForPartnersMon }; -ALIGNED(4) const u8 gUnknown_8458F9C[] = _("Your trade offer was rejected.\p"); -ALIGNED(4) const u8 gText_EggTrade[] = _("EGG TRADE"); -ALIGNED(4) const u8 gUnknown_8458FC8[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); -ALIGNED(4) const u8 gUnknown_8458FE4[] = _("Please choose a TRAINER."); - +ALIGNED(4) const u8 gText_UR_TradeOfferRejected[] = _("Your trade offer was rejected.\p"); +ALIGNED(4) const u8 gText_UR_EggTrade[] = _("EGG TRADE"); +ALIGNED(4) const u8 gText_UR_ChooseJoinCancel[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); +ALIGNED(4) const u8 gText_UR_ChooseTrainer[] = _("Please choose a TRAINER."); ALIGNED(4) static const u8 sText_ChooseTrainerSingleBattle[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); ALIGNED(4) static const u8 sText_ChooseTrainerDoubleBattle[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); ALIGNED(4) static const u8 sText_ChooseLeaderMultiBattle[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); @@ -478,7 +477,7 @@ ALIGNED(4) static const u8 sText_ChooseLeaderPokemonJump[] = _("Jump with mini P ALIGNED(4) static const u8 sText_ChooseLeaderBerryCrush[] = _("BERRY CRUSH!\nPlease choose the LEADER."); ALIGNED(4) static const u8 sText_ChooseLeaderBerryPicking[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); -const u8 *const gUnknown_84591B8[] = { +const u8 *const gTexts_UR_ChooseTrainer[] = { [LINK_GROUP_SINGLE_BATTLE] = sText_ChooseTrainerSingleBattle, [LINK_GROUP_DOUBLE_BATTLE] = sText_ChooseTrainerDoubleBattle, [LINK_GROUP_MULTI_BATTLE] = sText_ChooseLeaderMultiBattle, @@ -490,44 +489,44 @@ const u8 *const gUnknown_84591B8[] = { [LINK_GROUP_WONDER_NEWS] = sText_ChooseTrainerToShareWonderNews }; -ALIGNED(4) const u8 gUnknown_84591DC[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); +ALIGNED(4) const u8 gText_UR_SearchingForWirelessSystemWait[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); ALIGNED(4) static const u8 sText_MustHaveTwoMonsForDoubleBattle[] = _("ダブルãƒãƒˆãƒ«ã§ã¯ 2ã²ã ã„ã˜ã‚‡ã†ã®\nãƒã‚±ãƒ¢ãƒ³ãŒ ã²ã¤ã‚ˆã†ã§ã™\p"); -ALIGNED(4) const u8 gUnknown_8459238[] = _("Awaiting {STR_VAR_1}'s response…"); -ALIGNED(4) const u8 gUnknown_8459250[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait."); -ALIGNED(4) const u8 gUnknown_845928C[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM."); +ALIGNED(4) const u8 gText_UR_AwaitingPlayersResponse[] = _("Awaiting {STR_VAR_1}'s response…"); +ALIGNED(4) const u8 gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait."); +ALIGNED(4) const u8 gText_UR_AwaitingResponseFromWirelessSystem[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM."); ALIGNED(4) static const u8 sText_PleaseWaitForOtherTrainersToGather[] = _("ã»ã‹ã® ã•ã‚“ã‹ã—ゃ㌠ãã‚ã†ã¾ã§\nã—ょã†ã—ょㆠãŠã¾ã¡ãã ã•ã„"); ALIGNED(4) static const u8 sText_NoCardsSharedRightNow[] = _("No CARDS appear to be shared \nright now."); ALIGNED(4) static const u8 sText_NoNewsSharedRightNow[] = _("No NEWS appears to be shared\nright now."); -const u8 *const gUnknown_845933C[] = { +const u8 *const gTexts_UR_NoWonderShared[] = { sText_NoCardsSharedRightNow, sText_NoNewsSharedRightNow }; -ALIGNED(4) const u8 gUnknown_8459344[] = _("BATTLE"); -ALIGNED(4) const u8 gUnknown_845934C[] = _("CHAT"); -ALIGNED(4) const u8 gUnknown_8459354[] = _("GREETINGS"); -ALIGNED(4) const u8 gUnknown_8459360[] = _("EXIT"); +ALIGNED(4) const u8 gText_UR_Battle[] = _("BATTLE"); +ALIGNED(4) const u8 gText_UR_Chat2[] = _("CHAT"); +ALIGNED(4) const u8 gText_UR_Greetings[] = _("GREETINGS"); +ALIGNED(4) const u8 gText_UR_Exit[] = _("EXIT"); -ALIGNED(4) const u8 gUnknown_8459368[] = _("EXIT"); -ALIGNED(4) const u8 gUnknown_8459370[] = _("INFO"); -ALIGNED(4) const u8 gUnknown_8459378[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV."); +ALIGNED(4) const u8 gText_UR_Exit2[] = _("EXIT"); +ALIGNED(4) const u8 gText_UR_Info[] = _("INFO"); +ALIGNED(4) const u8 gText_UR_NameWantedOfferLv[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV."); -ALIGNED(4) const u8 gUnionRoomActivity_SingleBattle[] = _("SINGLE BATTLE"); -ALIGNED(4) const u8 gUnionRoomActivity_DoubleBattle[] = _("DOUBLE BATTLE"); -ALIGNED(4) const u8 gUnionRoomActivity_MultiBattle[] = _("MULTI BATTLE"); -ALIGNED(4) const u8 gUnionRoomActivity_PokemonTrades[] = _("POKéMON TRADES"); -ALIGNED(4) const u8 gUnionRoomActivity_Chat[] = _("CHAT"); -ALIGNED(4) const u8 gUnionRoomActivity_Cards[] = _("CARDS"); -ALIGNED(4) const u8 gUnionRoomActivity_WonderCards[] = _("WONDER CARDS"); -ALIGNED(4) const u8 gunionRoomActivity_WonderNews[] = _("WONDER NEWS"); -ALIGNED(4) const u8 gUnionRoomActivity_PokemonJump[] = _("POKéMON JUMP"); -ALIGNED(4) const u8 gUnionRoomActivity_BerryCrush[] = _("BERRY CRUSH"); -ALIGNED(4) const u8 gUnionRoomActivity_BerryPicking[] = _("BERRY-PICKING"); -ALIGNED(4) const u8 gUnionRoomActivity_Search[] = _("SEARCH"); -ALIGNED(4) const u8 gUnionRoomActivity_SpinTradeJP[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“"); -ALIGNED(4) const u8 gUnionRoomActivity_ItemTradeJP[] = _("アイテムトレード"); +ALIGNED(4) const u8 gText_UR_SingleBattle[] = _("SINGLE BATTLE"); +ALIGNED(4) const u8 gText_UR_DoubleBattle[] = _("DOUBLE BATTLE"); +ALIGNED(4) const u8 gText_UR_MultiBattle[] = _("MULTI BATTLE"); +ALIGNED(4) const u8 gText_UR_PokemonTrades[] = _("POKéMON TRADES"); +ALIGNED(4) const u8 gText_UR_Chat[] = _("CHAT"); +ALIGNED(4) const u8 gText_UR_Cards[] = _("CARDS"); +ALIGNED(4) const u8 gText_UR_WonderCards[] = _("WONDER CARDS"); +ALIGNED(4) const u8 gText_UR_WonderNews[] = _("WONDER NEWS"); +ALIGNED(4) const u8 gText_UR_PokemonJump[] = _("POKéMON JUMP"); +ALIGNED(4) const u8 gText_UR_BerryCrush[] = _("BERRY CRUSH"); +ALIGNED(4) const u8 gText_UR_BerryPicking[] = _("BERRY-PICKING"); +ALIGNED(4) const u8 gText_UR_Search[] = _("SEARCH"); +ALIGNED(4) const u8 gText_UR_SpinTrade[] = _("ãã‚‹ãã‚‹ã“ã†ã‹ã‚“"); +ALIGNED(4) const u8 gText_UR_ItemTrade[] = _("アイテムトレード"); ALIGNED(4) static const u8 sText_ItsNormalCard[] = _("It's a NORMAL CARD."); ALIGNED(4) static const u8 sText_ItsBronzeCard[] = _("It's a BRONZE CARD!"); @@ -535,7 +534,7 @@ ALIGNED(4) static const u8 sText_ItsCopperCard[] = _("It's a COPPER CARD!"); ALIGNED(4) static const u8 sText_ItsSilverCard[] = _("It's a SILVER CARD!"); ALIGNED(4) static const u8 sText_ItsGoldCard[] = _("It's a GOLD CARD!"); -const u8 *const gUnknown_84594B0[] = { +const u8 *const gTexts_UR_CardColor[] = { sText_ItsNormalCard, sText_ItsBronzeCard, sText_ItsCopperCard, @@ -543,19 +542,18 @@ const u8 *const gUnknown_84594B0[] = { sText_ItsGoldCard }; -ALIGNED(4) const u8 gUnknown_84594C4[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); -ALIGNED(4) const u8 gUnknown_8459504[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}â€\p"); - +ALIGNED(4) const u8 gText_UR_TrainerCardInfoPage1[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); +ALIGNED(4) const u8 gText_UR_TrainerCardInfoPage2[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}â€\p"); ALIGNED(4) static const u8 sText_GladToMeetYouMale[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); ALIGNED(4) static const u8 sText_GladToMeetYouFemale[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); -const u8 *const gUnknown_8459580[] = { +const u8 *const gTexts_UR_GladToMeetYou[GENDER_COUNT] = { sText_GladToMeetYouMale, sText_GladToMeetYouFemale }; -ALIGNED(4) const u8 gUnknown_8459588[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); -ALIGNED(4) static const u8 gUnknown_84595B0[] = _("Canceled reading the Card."); +ALIGNED(4) const u8 gText_UR_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_CanceledReadingCard[] = _("Canceled reading the Card."); const struct mevent_client_cmd gUnknown_84595CC[] = { CLI_RECEIVE(0x15), @@ -567,7 +565,7 @@ const struct mevent_client_cmd gUnknown_84595CC[] = { const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[] = { SRV_SEND(0x20, gUnknown_84595CC), SRV_WAITSND, - SRV_SENDSTR(0x1b, gUnknown_84595B0), + SRV_SENDSTR(0x1b, sText_CanceledReadingCard), SRV_WAITSND, SRV_RECV(0x14), SRV_RETURN(0x09) From fc7da1aa5eb769898f93c8c209ba934e34a83263 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 6 Sep 2022 14:10:43 -0400 Subject: [PATCH 060/105] Sync keyboard text --- include/keyboard_text.h | 8 +++---- src/easy_chat_3.c | 8 +++---- src/keyboard_text.c | 53 ++++++++++++++++++++++------------------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/include/keyboard_text.h b/include/keyboard_text.h index cc436c2d3..2a6a7e572 100644 --- a/include/keyboard_text.h +++ b/include/keyboard_text.h @@ -32,10 +32,10 @@ extern const u8 gText_UnionRoomChatKeyboard_Emoji8[]; extern const u8 gText_UnionRoomChatKeyboard_Emoji9[]; extern const u8 gText_UnionRoomChatKeyboard_Emoji10[]; -extern const u8 gUnknown_847A8D8[]; -extern const u8 gUnknown_847A8FA[]; -extern const u8 gUnknown_847A913[]; -extern const u8 gUnknown_847A934[]; +extern const u8 gText_EasyChatKeyboard_ABCDEFothers[]; +extern const u8 gText_EasyChatKeyboard_GHIJKL[]; +extern const u8 gText_EasyChatKeyboard_MNOPQRS[]; +extern const u8 gText_EasyChatKeyboard_TUVWXYZ[]; extern const u8 gText_NamingScreenKeyboard_abcdef[]; extern const u8 gText_NamingScreenKeyboard_ghijkl[]; diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c index 1660b0cb7..bf3cb29b0 100644 --- a/src/easy_chat_3.c +++ b/src/easy_chat_3.c @@ -275,10 +275,10 @@ static const u8 gUnknown_843F8D8[] = _("{UNDERSCORE}"); static const u8 sText_Clear17[] = _("{CLEAR 17}"); static const u8 *const sEasyChatKeyboardText[] = { - gUnknown_847A8D8, - gUnknown_847A8FA, - gUnknown_847A913, - gUnknown_847A934 + gText_EasyChatKeyboard_ABCDEFothers, + gText_EasyChatKeyboard_GHIJKL, + gText_EasyChatKeyboard_MNOPQRS, + gText_EasyChatKeyboard_TUVWXYZ }; static const struct SpriteSheet sEasyChatSpriteSheets[] = { diff --git a/src/keyboard_text.c b/src/keyboard_text.c index 5db1a6aaa..d949240e4 100644 --- a/src/keyboard_text.c +++ b/src/keyboard_text.c @@ -1,12 +1,12 @@ #include "global.h" -// easy_chat_3 -const u8 gUnknown_847A8D8[] = _("{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others"); -const u8 gUnknown_847A8FA[] = _("{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L"); -const u8 gUnknown_847A913[] = _("{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} "); -const u8 gUnknown_847A934[] = _("{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} "); +// Easy Chat keyboard +const u8 gText_EasyChatKeyboard_ABCDEFothers[] = _("{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others"); +const u8 gText_EasyChatKeyboard_GHIJKL[] = _("{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L"); +const u8 gText_EasyChatKeyboard_MNOPQRS[] = _("{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} "); +const u8 gText_EasyChatKeyboard_TUVWXYZ[] = _("{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} "); -// naming_screen +// Naming Screen keyboard const u8 gText_NamingScreenKeyboard_abcdef[] = _("{CLEAR 11}a{CLEAR 6}b{CLEAR 6}c{CLEAR 26}d{CLEAR 6}e{CLEAR 6}f{CLEAR 6} {CLEAR 26}."); const u8 gText_NamingScreenKeyboard_ghijkl[] = _("{CLEAR 11}g{CLEAR 6}h{CLEAR 7}i{CLEAR 27}j{CLEAR 6}k{CLEAR 6}l{CLEAR 7} {CLEAR 26},"); const u8 gText_NamingScreenKeyboard_mnopqrs[] = _("{CLEAR 11}m{CLEAR 6}n{CLEAR 7}o{CLEAR 26}p{CLEAR 6}q{CLEAR 7}r{CLEAR 6}s{CLEAR 27} "); @@ -20,7 +20,7 @@ const u8 gText_NamingScreenKeyboard_56789[] = _("{CLEAR 11}5{CLEAR 16}6{CLEAR 16 const u8 gText_NamingScreenKeyboard_Symbols1[] = _("{CLEAR 11}!{CLEAR 16}?{CLEAR 16}♂{CLEAR 16}♀{CLEAR 16}/{CLEAR 16}-"); const u8 gText_NamingScreenKeyboard_Symbols2[] = _("{CLEAR 11}…{CLEAR 16}“{CLEAR 16}â€{CLEAR 18}‘{CLEAR 18}'{CLEAR 18} "); -// union_room_chat +// Union Room Chat keyboard const u8 gText_UnionRoomChatKeyboard_ABCDE[] = _("ABCDE"); const u8 gText_UnionRoomChatKeyboard_FGHIJ[] = _("FGHIJ"); const u8 gText_UnionRoomChatKeyboard_KLMNO[] = _("KLMNO"); @@ -41,21 +41,24 @@ const u8 gText_UnionRoomChatKeyboard_01234Lower[] = _("01234"); const u8 gText_UnionRoomChatKeyboard_56789Lower[] = _("56789"); const u8 gText_UnionRoomChatKeyboard_PunctuationLower[] = _(".,!? "); const u8 gText_UnionRoomChatKeyboard_SymbolsLower[] = _("-/&… "); -const u8 gText_BlankString_847AB39[] = _(""); -const u8 gText_BlankString_847AB3A[] = _(""); -const u8 gText_BlankString_847AB3B[] = _(""); -const u8 gText_BlankString_847AB3C[] = _(""); -const u8 gText_BlankString_847AB3D[] = _(""); -const u8 gText_BlankString_847AB3E[] = _(""); -const u8 gText_BlankString_847AB3F[] = _(""); -const u8 gText_BlankString_847AB40[] = _(""); -const u8 gText_UnionRoomChatKeyboard_Emoji1[] = _("{EXTRA 245}{EXTRA 246}{EXTRA 247}{EXTRA 248}{EXTRA 254}"); -const u8 gText_UnionRoomChatKeyboard_Emoji2[] = _("{EXTRA 249}{EXTRA 250}{EXTRA 252}{EXTRA 251}{EXTRA 253}"); -const u8 gText_UnionRoomChatKeyboard_Emoji3[] = _("{EXTRA 236}{EXTRA 237}{EXTRA 238}{EXTRA 235}{EXTRA 234}"); -const u8 gText_UnionRoomChatKeyboard_Emoji4[] = _("♂♀{EXTRA 212}{EXTRA 213}{EXTRA 211}"); -const u8 gText_UnionRoomChatKeyboard_Emoji5[] = _("{EXTRA 216}{EXTRA 217}{EXTRA 242}{EXTRA 243}{EXTRA 244}"); -const u8 gText_UnionRoomChatKeyboard_Emoji6[] = _("{EXTRA 218}{EXTRA 241}{EXTRA 224}{EXTRA 226}{EXTRA 227}"); -const u8 gText_UnionRoomChatKeyboard_Emoji7[] = _("{EXTRA 240}{EXTRA 239}{EXTRA 225}{EXTRA 214}{EXTRA 215}"); -const u8 gText_UnionRoomChatKeyboard_Emoji8[] = _("{EXTRA 228}{EXTRA 229}{EXTRA 230}{EXTRA 231}{EXTRA 232}"); -const u8 gText_UnionRoomChatKeyboard_Emoji9[] = _("{EXTRA 233}{EXTRA 220}{EXTRA 221}{EXTRA 222}{EXTRA 209}"); -const u8 gText_UnionRoomChatKeyboard_Emoji10[] = _("{EXTRA 210}{EXTRA 208}ょ: "); + +const u8 gText_EmptyTextInput1[] = _(""); +const u8 gText_EmptyTextInput2[] = _(""); +const u8 gText_EmptyTextInput3[] = _(""); +const u8 gText_EmptyTextInput4[] = _(""); +const u8 gText_EmptyTextInput5[] = _(""); +const u8 gText_EmptyTextInput6[] = _(""); +const u8 gText_EmptyTextInput7[] = _(""); +const u8 gText_EmptyTextInput8[] = _(""); + +// Union Room Chat keyboard emojis +const u8 gText_UnionRoomChatKeyboard_Emoji1[] = _("{EMOJI_MISCHIEVOUS}{EMOJI_HAPPY}{EMOJI_ANGRY}{EMOJI_SURPRISED}{EMOJI_BIGANGER}"); +const u8 gText_UnionRoomChatKeyboard_Emoji2[] = _("{EMOJI_BIGSMILE}{EMOJI_EVIL}{EMOJI_NEUTRAL}{EMOJI_TIRED}{EMOJI_SHOCKED}"); +const u8 gText_UnionRoomChatKeyboard_Emoji3[] = _("{EMOJI_LEAF}{EMOJI_FIRE}{EMOJI_WATER}{EMOJI_BOLT}{EMOJI_BALL}"); +const u8 gText_UnionRoomChatKeyboard_Emoji4[] = _("♂♀{EMOJI_LEFT_PAREN}{EMOJI_RIGHT_PAREN}{EMOJI_TILDE}"); +const u8 gText_UnionRoomChatKeyboard_Emoji5[] = _("{EMOJI_LEFT_EYE}{EMOJI_RIGHT_EYE}{EMOJI_SMALLWHEEL}{EMOJI_SPHERE}{EMOJI_IRRITATED}"); +const u8 gText_UnionRoomChatKeyboard_Emoji6[] = _("{EMOJI_AT}{EMOJI_BIGWHEEL}{EMOJI_TONGUE}{EMOJI_ACUTE}{EMOJI_GRAVE}"); +const u8 gText_UnionRoomChatKeyboard_Emoji7[] = _("{EMOJI_RIGHT_FIST}{EMOJI_LEFT_FIST}{EMOJI_TRIANGLE_OUTLINE}{EMOJI_UNION}{EMOJI_GREATER_THAN}"); +const u8 gText_UnionRoomChatKeyboard_Emoji8[] = _("{EMOJI_CIRCLE}{EMOJI_TRIANGLE}{EMOJI_SQUARE}{EMOJI_HEART}{EMOJI_MOON}"); +const u8 gText_UnionRoomChatKeyboard_Emoji9[] = _("{EMOJI_NOTE}{EMOJI_PLUS}{EMOJI_MINUS}{EMOJI_EQUALS}{EMOJI_PIPE}"); +const u8 gText_UnionRoomChatKeyboard_Emoji10[] = _("{EMOJI_HIGHBAR}{EMOJI_UNDERSCORE};: "); From d08aa80a70f301dfada17c2ea1260dd70bd106a5 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 6 Sep 2022 14:34:52 -0400 Subject: [PATCH 061/105] Sync palette util --- include/palette_util.h | 83 +++++++++ include/roulette_util.h | 84 --------- ld_script.txt | 2 +- src/{roulette_util.c => palette_util.c} | 215 +++++++++++++----------- 4 files changed, 197 insertions(+), 187 deletions(-) create mode 100644 include/palette_util.h delete mode 100644 include/roulette_util.h rename src/{roulette_util.c => palette_util.c} (64%) diff --git a/include/palette_util.h b/include/palette_util.h new file mode 100644 index 000000000..b33d60f79 --- /dev/null +++ b/include/palette_util.h @@ -0,0 +1,83 @@ +#ifndef GUARD_PALETTE_UTIL_H +#define GUARD_PALETTE_UTIL_H + +struct PulseBlendSettings +{ + u16 blendColor; + u16 paletteOffset; + u8 numColors; + u8 delay; + u8 numFadeCycles; + s8 maxBlendCoeff:4; + s8 fadeType:2; + s8 restorePaletteOnUnload:1; + s8 unk7_7:1; +}; + +struct PulseBlendPalette +{ + u8 paletteSelector; + u8 blendCoeff:4; + u8 fadeDirection:1; + s8 unk1_5:1; + s8 available:1; + u32 inUse:1; + u8 delayCounter; + u8 fadeCycleCounter; + struct PulseBlendSettings pulseBlendSettings; +}; + +struct PulseBlend +{ + u16 usedPulseBlendPalettes; + struct PulseBlendPalette pulseBlendPalettes[16]; +}; + +#define FLASHUTIL_USE_EXISTING_COLOR (1 << 15) + +struct RouletteFlashSettings +{ + u16 color; + u16 paletteOffset; + u8 numColors; + u8 delay; + u8 unk6; // Set but never used + s8 numFadeCycles:5; + s8 unk7_5:2; // Set but never used + s8 colorDeltaDir:1; +}; + +struct RouletteFlashPalette +{ + u8 state:7; + u8 available:1; + u8 delayCounter; + s8 fadeCycleCounter; + s8 colorDelta; + struct RouletteFlashSettings settings; +}; + +struct RouletteFlashUtil +{ + u8 enabled; + u8 unused; + u16 flags; + struct RouletteFlashPalette palettes[16]; +}; + +void RouletteFlash_Reset(struct RouletteFlashUtil *); +u8 RouletteFlash_Add(struct RouletteFlashUtil *, u8, const struct RouletteFlashSettings *); +void RouletteFlash_Run(struct RouletteFlashUtil *); +void RouletteFlash_Enable(struct RouletteFlashUtil *, u16); +void RouletteFlash_Stop(struct RouletteFlashUtil *, u16); +void InitPulseBlend(struct PulseBlend *); +int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); +static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *); +void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UpdatePulseBlend(struct PulseBlend *); +void FillTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); + +#endif // GUARD_PALETTE_UTIL_H diff --git a/include/roulette_util.h b/include/roulette_util.h deleted file mode 100644 index 764a3df10..000000000 --- a/include/roulette_util.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef GUARD_ROULETTE_H -#define GUARD_ROULETTE_H - -struct UnkStruct1 -{ - u16 var00; - u16 var02; - u8 var04; - u8 var05; - u8 var06; - s8 var07_0:5; - s8 var07_5:2; - s8 var07_7:1; -}; - -struct UnkStruct3 -{ - u8 var00_0:7; - u8 var00_7:1; - u8 var01; - s8 var02; - s8 var03; - struct UnkStruct1 var04; -}; - -struct UnkStruct0 -{ - u8 var00; - u8 var01; - u16 var02; //flag for each UnkStruct3 - struct UnkStruct3 var04[0x10]; -}; - -struct PulseBlendSettings -{ - u16 blendColor; - u16 paletteOffset; - u8 numColors; - u8 delay; - u8 numFadeCycles; - s8 maxBlendCoeff:4; - s8 fadeType:2; - s8 restorePaletteOnUnload:1; - s8 unk7_7:1; -}; - -struct PulseBlendPalette -{ - u8 paletteSelector; - u8 blendCoeff:4; - u8 fadeDirection:1; - s8 unk1_5:1; - s8 available:1; - u32 inUse:1; - u8 delayCounter; - u8 fadeCycleCounter; - struct PulseBlendSettings pulseBlendSettings; -}; - -struct PulseBlend -{ - u16 usedPulseBlendPalettes; - struct PulseBlendPalette pulseBlendPalettes[16]; -}; - -void sub_80D8BE4(struct UnkStruct0 *); -u8 sub_80D8BF8(struct UnkStruct0 *, u8, const struct UnkStruct1 *); -u8 sub_80D8C7C(struct UnkStruct0 *, u8); -u8 sub_80D8CB0(struct UnkStruct3 *); -u8 sub_80D8EB8(struct UnkStruct3 *); -void task_tutorial_controls_fadein(struct UnkStruct0 *); -void sub_80D8FB4(struct UnkStruct0 *, u16); -void sub_80D9008(struct UnkStruct0 *, u16); -void InitPulseBlend(struct PulseBlend *); -int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); -static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *); -void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UpdatePulseBlend(struct PulseBlend *); -void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); -void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); - -#endif // GUARD_ROULETTE_H diff --git a/ld_script.txt b/ld_script.txt index a97a5ac2a..69dae4b5b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -202,7 +202,7 @@ SECTIONS { src/battle_controller_link_partner.o(.text); src/battle_message.o(.text); src/math_util.o(.text); - src/roulette_util.o(.text); + src/palette_util.o(.text); src/cable_car_util.o(.text); src/save.o(.text); src/mystery_event_script.o(.text); diff --git a/src/roulette_util.c b/src/palette_util.c similarity index 64% rename from src/roulette_util.c rename to src/palette_util.c index 9dab23342..2da4b2388 100644 --- a/src/roulette_util.c +++ b/src/palette_util.c @@ -1,207 +1,217 @@ #include "global.h" #include "gflib.h" -#include "roulette_util.h" +#include "palette_util.h" #include "util.h" -void sub_80D8BE4(struct UnkStruct0 *r0) +// "RouletteFlash" is more accurately a general flashing/fading util. +// This file handles fading the palettes for the color/icon selections on the Roulette wheel +// but it also handles the "pulse blend" effect of Mirage Tower. +// Neither exist in FRLG, so everything in this file goes unused. + +void RouletteFlash_Reset(struct RouletteFlashUtil *flash) { - r0->var00 = 0; - r0->var02 = 0; - memset(&r0->var04, 0, sizeof(r0->var04)); + flash->enabled = 0; + flash->flags = 0; + memset(&flash->palettes, 0, sizeof(flash->palettes)); } -u8 sub_80D8BF8(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) +u8 RouletteFlash_Add(struct RouletteFlashUtil *flash, u8 id, const struct RouletteFlashSettings *settings) { - if (!(r1 < 16) || (r0->var04[r1].var00_7)) + if (id >= ARRAY_COUNT(flash->palettes) || flash->palettes[id].available) return 0xFF; - r0->var04[r1].var04.var00 = r2->var00; - r0->var04[r1].var04.var02 = r2->var02; - r0->var04[r1].var04.var04 = r2->var04; - r0->var04[r1].var04.var05 = r2->var05; - r0->var04[r1].var04.var06 = r2->var06; - r0->var04[r1].var04.var07_0 = r2->var07_0; - r0->var04[r1].var04.var07_5 = r2->var07_5; - r0->var04[r1].var04.var07_7 = r2->var07_7; - r0->var04[r1].var00_0 = 0; - r0->var04[r1].var00_7 = 1; - r0->var04[r1].var02 = 0; - r0->var04[r1].var01 = 0; - if (r0->var04[r1].var04.var07_7 < 0) - r0->var04[r1].var03 = 0xFF; + flash->palettes[id].settings.color = settings->color; + flash->palettes[id].settings.paletteOffset = settings->paletteOffset; + flash->palettes[id].settings.numColors = settings->numColors; + flash->palettes[id].settings.delay = settings->delay; + flash->palettes[id].settings.unk6 = settings->unk6; + flash->palettes[id].settings.numFadeCycles = settings->numFadeCycles; + flash->palettes[id].settings.unk7_5 = settings->unk7_5; + flash->palettes[id].settings.colorDeltaDir = settings->colorDeltaDir; + flash->palettes[id].state = 0; + flash->palettes[id].available = TRUE; + flash->palettes[id].fadeCycleCounter = 0; + flash->palettes[id].delayCounter = 0; + if (flash->palettes[id].settings.colorDeltaDir < 0) + flash->palettes[id].colorDelta = -1; else - r0->var04[r1].var03 = 1; + flash->palettes[id].colorDelta = 1; - return r1; + return id; } -u8 sub_80D8C7C(struct UnkStruct0 *r0, u8 r1) +static u8 RouletteFlash_Remove(struct RouletteFlashUtil *flash, u8 id) { - if (r1 >= 16) + if (id >= ARRAY_COUNT(flash->palettes)) return 0xFF; - if (!r0->var04[r1].var00_7) + if (!flash->palettes[id].available) return 0xFF; - memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); - return r1; + memset(&flash->palettes[id], 0, sizeof(flash->palettes[id])); + return id; } -u8 sub_80D8CB0(struct UnkStruct3 *r0) +static u8 RouletteFlash_FadePalette(struct RouletteFlashPalette *pal) { u8 i; u8 returnval; - for (i = 0; i < r0->var04.var04; i++) + for (i = 0; i < pal->settings.numColors; i++) { - struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i]; - struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i]; + struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[pal->settings.paletteOffset + i]; + struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[pal->settings.paletteOffset + i]; - switch (r0->var00_0) + switch (pal->state) { case 1: - if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32) - faded->r += r0->var03; - if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32) - faded->g += r0->var03; - if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32) - faded->b += r0->var03; + // Fade color + if (faded->r + pal->colorDelta >= 0 && faded->r + pal->colorDelta < 32) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= 0 && faded->g + pal->colorDelta < 32) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= 0 && faded->b + pal->colorDelta < 32) + faded->b += pal->colorDelta; break; case 2: - if (r0->var03 < 0) + // Fade back to original color + if (pal->colorDelta < 0) { - if (faded->r + r0->var03 >= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 >= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 >= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta >= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= unfaded->b) + faded->b += pal->colorDelta; } else { - if (faded->r + r0->var03 <= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 <= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 <= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta <= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta <= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta <= unfaded->b) + faded->b += pal->colorDelta; } break; } } - if ((u32)r0->var02++ != r0->var04.var07_0) + if ((u32)pal->fadeCycleCounter++ != pal->settings.numFadeCycles) { returnval = 0; } else { - r0->var02 = 0; - r0->var03 *= -1; - if (r0->var00_0 == 1) - r0->var00_0++; + pal->fadeCycleCounter = 0; + pal->colorDelta *= -1; + if (pal->state == 1) + pal->state++; else - r0->var00_0--; + pal->state--; returnval = 1; } return returnval; } -u8 sub_80D8EB8(struct UnkStruct3 *r0) +static u8 RouletteFlash_FlashPalette(struct RouletteFlashPalette *pal) { - u8 rg2 = 0; + u8 i = 0; - switch (r0->var00_0) + switch (pal->state) { case 1: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00; - r0->var00_0++; + // Flash to color + for (i = 0; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = pal->settings.color; + pal->state++; break; case 2: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2]; - r0->var00_0--; + // Restore to original color + for (i = 0; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = gPlttBufferUnfaded[pal->settings.paletteOffset + i]; + pal->state--; break; } return 1; } -void task_tutorial_controls_fadein(struct UnkStruct0 *r0) +void RouletteFlash_Run(struct RouletteFlashUtil *flash) { u8 i = 0; - if (r0->var00) + if (flash->enabled) { - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (--r0->var04[i].var01 == 0xFF) // if underflow ? + if (--flash->palettes[i].delayCounter == (u8)-1) { - if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ? - sub_80D8CB0(&r0->var04[i]); + if (flash->palettes[i].settings.color & FLASHUTIL_USE_EXISTING_COLOR) + RouletteFlash_FadePalette(&flash->palettes[i]); else - sub_80D8EB8(&r0->var04[i]); + RouletteFlash_FlashPalette(&flash->palettes[i]); - r0->var04[i].var01 = r0->var04[i].var04.var05; + flash->palettes[i].delayCounter = flash->palettes[i].settings.delay; } } } } } -void sub_80D8FB4(struct UnkStruct0 *r0, u16 r1) +void RouletteFlash_Enable(struct RouletteFlashUtil *flash, u16 flags) { u8 i = 0; - r0->var00++; - for (i = 0; i < 16; i++) + flash->enabled++; + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (flash->palettes[i].available) { - r0->var02 |= 1 << i; - r0->var04[i].var00_0 = 1; + flash->flags |= 1 << i; + flash->palettes[i].state = 1; } } } } -void sub_80D9008(struct UnkStruct0 *r0, u16 r1) +void RouletteFlash_Stop(struct RouletteFlashUtil *flash, u16 flags) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (flash->palettes[i].available) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - u32 offset = r0->var04[i].var04.var02; + u32 offset = flash->palettes[i].settings.paletteOffset; u16 *faded = &gPlttBufferFaded[offset]; u16 *unfaded = &gPlttBufferUnfaded[offset]; - memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2); - r0->var04[i].var00_0 = 0; - r0->var04[i].var02 = 0; - r0->var04[i].var01 = 0; - if (r0->var04[i].var04.var07_7 < 0) - r0->var04[i].var03 = 0xFF; + memcpy(faded, unfaded, flash->palettes[i].settings.numColors * 2); + flash->palettes[i].state = 0; + flash->palettes[i].fadeCycleCounter = 0; + flash->palettes[i].delayCounter = 0; + if (flash->palettes[i].settings.colorDeltaDir < 0) + flash->palettes[i].colorDelta = -1; else - r0->var04[i].var03 = 0x1; + flash->palettes[i].colorDelta = 1; } } } } - if (r1 == 0xFFFF) + if (flags == 0xFFFF) { - r0->var00 = 0; - r0->var02 = 0; + // Stopped all + flash->enabled = 0; + flash->flags = 0; } else { - r0->var02 = r0->var02 & ~r1; + flash->flags &= ~flags; } } @@ -427,7 +437,8 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend) } } -void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +// Below used for the Roulette grid +void FillTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u8 i; @@ -444,7 +455,7 @@ void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) } } -void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u16 *_src = src; From 212e455aaece0d31f05ab93554ed1ce14f806e40 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 6 Sep 2022 15:14:27 -0400 Subject: [PATCH 062/105] Sync field weather effects --- include/field_weather.h | 26 +++- src/field_weather_effects.c | 267 ++++++++++++++++++++---------------- 2 files changed, 167 insertions(+), 126 deletions(-) diff --git a/include/field_weather.h b/include/field_weather.h index 77308d135..c3c07d10d 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -4,6 +4,20 @@ #include "global.h" #include "constants/field_weather.h" +#define TAG_WEATHER_START 0x1200 +enum { + GFXTAG_CLOUD = TAG_WEATHER_START, + GFXTAG_FOG_H, + GFXTAG_ASH, + GFXTAG_FOG_D, + GFXTAG_SANDSTORM, + GFXTAG_BUBBLE, + GFXTAG_RAIN, +}; +enum { + PALTAG_WEATHER = TAG_WEATHER_START, +}; + struct Weather { union @@ -54,14 +68,14 @@ struct Weather u8 rainStrength; bool8 cloudSpritesCreated; u16 snowflakeVisibleCounter; - u16 unknown_6E2; + u16 snowflakeTimer; u8 snowflakeSpriteCount; u8 targetSnowflakeSpriteCount; - u16 unknown_6E6; + u16 thunderDelay; u16 thunderCounter; - u8 unknown_6EA; - u8 unknown_6EB; - u8 unknown_6EC; + bool8 thunderAllowEnd; + bool8 thunderSkipShort; + u8 thunderShortRetries; bool8 thunderTriggered; u16 fogHScrollPosX; u16 fogHScrollCounter; @@ -70,7 +84,7 @@ struct Weather u8 lightenedFogSpritePalsCount; bool8 fogHSpritesCreated; u16 ashBaseSpritesX; - u16 unknown_6FE; + u16 ashUnused; bool8 ashSpritesCreated; u32 sandstormXOffset; u32 sandstormYOffset; diff --git a/src/field_weather_effects.c b/src/field_weather_effects.c index ce8fe231c..6d69e3552 100644 --- a/src/field_weather_effects.c +++ b/src/field_weather_effects.c @@ -30,7 +30,7 @@ static const struct Coords16 sCloudSpriteMapCoords[] = { static const struct SpriteSheet sCloudSpriteSheet = { .data = gWeatherCloudTiles, .size = 0x0800, - .tag = 0x1200 + .tag = GFXTAG_CLOUD }; static const struct OamData sCloudSpriteOamData = { @@ -59,8 +59,8 @@ static const union AnimCmd *const sCloudSpriteAnimCmds[] = { }; static const struct SpriteTemplate sCloudSpriteTemplate = { - .tileTag = 0x1200, - .paletteTag = 0x1200, + .tileTag = GFXTAG_CLOUD, + .paletteTag = PALTAG_WEATHER, .oam = &sCloudSpriteOamData, .anims = sCloudSpriteAnimCmds, .images = NULL, @@ -189,7 +189,7 @@ static void DestroyCloudSprites(void) DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); } - FreeSpriteTilesByTag(0x1200); + FreeSpriteTilesByTag(GFXTAG_CLOUD); gWeatherPtr->cloudSpritesCreated = FALSE; } @@ -405,8 +405,8 @@ static const union AnimCmd *const sRainSpriteAnimCmds[] = { }; static const struct SpriteTemplate sRainSpriteTemplate = { - .tileTag = 0x1206, - .paletteTag = 0x1200, + .tileTag = GFXTAG_RAIN, + .paletteTag = PALTAG_WEATHER, .oam = &sRainSpriteOamData, .anims = sRainSpriteAnimCmds, .images = NULL, @@ -431,7 +431,7 @@ static const u16 sRainSpriteFallingDurations[][2] = { static const struct SpriteSheet sRainSpriteSheet = { .data = gWeatherRainTiles, .size = 0x0600, - .tag = 0x1206, + .tag = GFXTAG_RAIN, }; void Rain_InitVars(void) @@ -482,8 +482,8 @@ bool8 Rain_Finish(void) { case 0: if (gWeatherPtr->nextWeather == WEATHER_RAIN - || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM - || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) + || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM + || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) { gWeatherPtr->finishStep = 0xFF; return FALSE; @@ -524,8 +524,7 @@ static void StartRainSpriteFall(struct Sprite *sprite) if (sprite->tRandom == 0) sprite->tRandom = 361; - // Standard RNG sequence. - rand = sprite->tRandom * 1103515245 + 12345; + rand = ISO_RANDOMIZE2(sprite->tRandom); sprite->tRandom = ((rand & 0x7FFF0000) >> 16) % 600; numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isDownpour][0]; @@ -563,8 +562,8 @@ static void UpdateRainSprite(struct Sprite *sprite) sprite->y = sprite->tPosY >> 4; if (sprite->tActive - && (sprite->x >= -8 && sprite->x <= 248) - && sprite->y >= -16 && sprite->y <= 176) + && (sprite->x >= -8 && sprite->x <= DISPLAY_WIDTH + 8) + && sprite->y >= -16 && sprite->y <= DISPLAY_HEIGHT + 16) sprite->invisible = FALSE; else sprite->invisible = TRUE; @@ -643,7 +642,7 @@ static bool8 CreateRainSprite(void) if (spriteId != MAX_SPRITES) { - gSprites[spriteId].tActive = 0; + gSprites[spriteId].tActive = FALSE; gSprites[spriteId].tRandom = spriteIndex * 145; while (gSprites[spriteId].tRandom >= 600) gSprites[spriteId].tRandom -= 600; @@ -710,7 +709,7 @@ static void DestroyRainSprites(void) DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]); } gWeatherPtr->rainSpriteCount = 0; - FreeSpriteTilesByTag(0x1206); + FreeSpriteTilesByTag(GFXTAG_RAIN); } #undef tCounter @@ -838,8 +837,8 @@ static const union AnimCmd *const sSnowflakeAnimCmds[] = { }; static const struct SpriteTemplate sSnowflakeSpriteTemplate = { - .tileTag = 0xFFFF, - .paletteTag = 0x1200, + .tileTag = TAG_NONE, + .paletteTag = PALTAG_WEATHER, .oam = &sSnowflakeSpriteOamData, .anims = sSnowflakeAnimCmds, .images = sSnowflakeSpriteImages, @@ -901,13 +900,14 @@ static void InitSnowflakeSpriteMovement(struct Sprite *sprite) static void WaitSnowflakeSprite(struct Sprite *sprite) { - if (gWeatherPtr->unknown_6E2 > 18) + // Timer is never incremented + if (gWeatherPtr->snowflakeTimer > 18) { sprite->invisible = FALSE; sprite->callback = UpdateSnowflakeSprite; sprite->y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); sprite->tPosY = sprite->y * 128; - gWeatherPtr->unknown_6E2 = 0; + gWeatherPtr->snowflakeTimer = 0; } } @@ -971,9 +971,32 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite) // WEATHER_RAIN_THUNDERSTORM //------------------------------------------------------------------------------ +enum { + // This block of states is run only once + // when first setting up the thunderstorm + TSTORM_STATE_LOAD_RAIN, + TSTORM_STATE_CREATE_RAIN, + TSTORM_STATE_INIT_RAIN, + TSTORM_STATE_WAIT_CHANGE, + + // The thunderstorm loops through these states, + // not necessarily in order. + TSTORM_STATE_LOOP_START, + TSTORM_STATE_LOOP_WAIT, + TSTORM_STATE_INIT_THUNDER_SHORT_1, + TSTORM_STATE_INIT_THUNDER_SHORT_2, + TSTORM_STATE_TRY_THUNDER_SHORT, + TSTORM_STATE_TRY_NEW_THUNDER, + TSTORM_STATE_WAIT_THUNDER_SHORT, + TSTORM_STATE_INIT_THUNDER_LONG, + TSTORM_STATE_WAIT_THUNDER_LONG, + TSTORM_STATE_FADE_THUNDER_LONG, + TSTORM_STATE_END_THUNDER_LONG, +}; + void Thunderstorm_InitVars(void) { - gWeatherPtr->initStep = 0; + gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1002,7 +1025,7 @@ static void SetThunderCounter(u16); void Downpour_InitVars(void) { - gWeatherPtr->initStep = 0; + gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1026,100 +1049,105 @@ void Thunderstorm_Main(void) UpdateThunderSound(); switch (gWeatherPtr->initStep) { - case 0: + case TSTORM_STATE_LOAD_RAIN: LoadRainSpriteSheet(); gWeatherPtr->initStep++; break; - case 1: + case TSTORM_STATE_CREATE_RAIN: if (!CreateRainSprite()) gWeatherPtr->initStep++; break; - case 2: + case TSTORM_STATE_INIT_RAIN: if (!UpdateVisibleRainSprites()) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; } break; - case 3: + case TSTORM_STATE_WAIT_CHANGE: if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) - gWeatherPtr->initStep = 6; + gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_SHORT_1; break; - case 4: - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->unknown_6E6 = (Random() % 360) + 360; + case TSTORM_STATE_LOOP_START: + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->thunderDelay = (Random() % 360) + 360; gWeatherPtr->initStep++; // fall through - case 5: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_LOOP_WAIT: + // Wait between 360-720 frames before trying thunder again + if (--gWeatherPtr->thunderDelay == 0) gWeatherPtr->initStep++; break; - case 6: - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->unknown_6EB = Random() % 2; + case TSTORM_STATE_INIT_THUNDER_SHORT_1: + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->thunderSkipShort = Random() % 2; gWeatherPtr->initStep++; break; - case 7: - gWeatherPtr->unknown_6EC = (Random() & 1) + 1; + case TSTORM_STATE_INIT_THUNDER_SHORT_2: + gWeatherPtr->thunderShortRetries = (Random() & 1) + 1; gWeatherPtr->initStep++; // fall through - case 8: + case TSTORM_STATE_TRY_THUNDER_SHORT: WeatherShiftGammaIfPalStateIdle(19); - if (gWeatherPtr->unknown_6EB == 0 && gWeatherPtr->unknown_6EC == 1) - SetThunderCounter(20); + if (!gWeatherPtr->thunderSkipShort && gWeatherPtr->thunderShortRetries == 1) + SetThunderCounter(20); // Do short thunder - gWeatherPtr->unknown_6E6 = (Random() % 3) + 6; + gWeatherPtr->thunderDelay = (Random() % 3) + 6; gWeatherPtr->initStep++; break; - case 9: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_TRY_NEW_THUNDER: + if (--gWeatherPtr->thunderDelay == 0) { WeatherShiftGammaIfPalStateIdle(3); - gWeatherPtr->unknown_6EA = 1; - if (--gWeatherPtr->unknown_6EC != 0) + gWeatherPtr->thunderAllowEnd = TRUE; + if (--gWeatherPtr->thunderShortRetries != 0) { - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; - gWeatherPtr->initStep = 10; + // Try a short thunder again + gWeatherPtr->thunderDelay = (Random() % 16) + 60; + gWeatherPtr->initStep = TSTORM_STATE_WAIT_THUNDER_SHORT; } - else if (gWeatherPtr->unknown_6EB == 0) + else if (!gWeatherPtr->thunderSkipShort) { - gWeatherPtr->initStep = 4; + // No more thunder, restart loop + gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; } else { - gWeatherPtr->initStep = 11; + // Set up long thunder + gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_LONG; } } break; - case 10: - if (--gWeatherPtr->unknown_6E6 == 0) - gWeatherPtr->initStep = 8; + case TSTORM_STATE_WAIT_THUNDER_SHORT: + if (--gWeatherPtr->thunderDelay == 0) + gWeatherPtr->initStep = TSTORM_STATE_TRY_THUNDER_SHORT; break; - case 11: - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; + case TSTORM_STATE_INIT_THUNDER_LONG: + gWeatherPtr->thunderDelay = (Random() % 16) + 60; gWeatherPtr->initStep++; break; - case 12: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_WAIT_THUNDER_LONG: + if (--gWeatherPtr->thunderDelay == 0) { + // Do long thunder SetThunderCounter(100); WeatherShiftGammaIfPalStateIdle(19); - gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30; + gWeatherPtr->thunderDelay = (Random() & 0xF) + 30; gWeatherPtr->initStep++; } break; - case 13: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_FADE_THUNDER_LONG: + if (--gWeatherPtr->thunderDelay == 0) { WeatherBeginGammaFade(19, 3, 5); gWeatherPtr->initStep++; } break; - case 14: + case TSTORM_STATE_END_THUNDER_LONG: if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) { - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->initStep = 4; + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; } break; } @@ -1130,16 +1158,16 @@ bool8 Thunderstorm_Finish(void) switch (gWeatherPtr->finishStep) { case 0: - gWeatherPtr->unknown_6EA = 0; + gWeatherPtr->thunderAllowEnd = FALSE; gWeatherPtr->finishStep++; // fall through case 1: Thunderstorm_Main(); - if (gWeatherPtr->unknown_6EA) + if (gWeatherPtr->thunderAllowEnd) { if (gWeatherPtr->nextWeather == WEATHER_RAIN - || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM - || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) + || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM + || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) return FALSE; gWeatherPtr->targetRainSpriteCount = 0; @@ -1197,10 +1225,9 @@ static void UpdateThunderSound(void) // WEATHER_FOG_HORIZONTAL and WEATHER_UNDERWATER //------------------------------------------------------------------------------ -// unused data -static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300}; +static const u16 sUnusedData[] = {0, 6, 6, 12, 18, 42, 300, 300}; -static const struct OamData gOamData_839AB2C = { +static const struct OamData sOamData_FogH = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, @@ -1216,62 +1243,62 @@ static const struct OamData gOamData_839AB2C = { .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_839AB34[] = { +static const union AnimCmd sAnim_FogH_0[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB3C[] = { +static const union AnimCmd sAnim_FogH_1[] = { ANIMCMD_FRAME(32, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB44[] = { +static const union AnimCmd sAnim_FogH_2[] = { ANIMCMD_FRAME(64, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB4C[] = { +static const union AnimCmd sAnim_FogH_3[] = { ANIMCMD_FRAME(96, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB54[] = { +static const union AnimCmd sAnim_FogH_4[] = { ANIMCMD_FRAME(128, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB5C[] = { +static const union AnimCmd sAnim_FogH_5[] = { ANIMCMD_FRAME(160, 16), ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_839AB64[] = { - gSpriteAnim_839AB34, - gSpriteAnim_839AB3C, - gSpriteAnim_839AB44, - gSpriteAnim_839AB4C, - gSpriteAnim_839AB54, - gSpriteAnim_839AB5C, +static const union AnimCmd *const sAnims_FogH[] = { + sAnim_FogH_0, + sAnim_FogH_1, + sAnim_FogH_2, + sAnim_FogH_3, + sAnim_FogH_4, + sAnim_FogH_5, }; -static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] = { +static const union AffineAnimCmd sAffineAnim_FogH[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] = { - gSpriteAffineAnim_839AB7C, +static const union AffineAnimCmd *const sAffineAnims_FogH[] = { + sAffineAnim_FogH, }; static void FogHorizontalSpriteCallback(struct Sprite *); static const struct SpriteTemplate sFogHorizontalSpriteTemplate = { - .tileTag = 0x1201, - .paletteTag = 0x1200, - .oam = &gOamData_839AB2C, - .anims = gSpriteAnimTable_839AB64, + .tileTag = GFXTAG_FOG_H, + .paletteTag = PALTAG_WEATHER, + .oam = &sOamData_FogH, + .anims = sAnims_FogH, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_839AB8C, + .affineAnims = sAffineAnims_FogH, .callback = FogHorizontalSpriteCallback, }; @@ -1363,9 +1390,9 @@ static void FogHorizontalSpriteCallback(struct Sprite *sprite) { sprite->y2 = (u8)gSpriteCoordOffsetY; sprite->x = gWeatherPtr->fogHScrollPosX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = 480 + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64; + sprite->x = (DISPLAY_WIDTH * 2) + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -1381,7 +1408,7 @@ static void CreateFogHorizontalSprites(void) struct SpriteSheet fogHorizontalSpriteSheet = { .data = gWeatherFogHorizontalTiles, .size = 0x0800, - .tag = 0x1201, + .tag = GFXTAG_FOG_H, }; LoadSpriteSheet(&fogHorizontalSpriteSheet); for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++) @@ -1417,7 +1444,7 @@ static void DestroyFogHorizontalSprites(void) DestroySprite(gWeatherPtr->sprites.s2.fogHSprites[i]); } - FreeSpriteTilesByTag(0x1201); + FreeSpriteTilesByTag(GFXTAG_FOG_H); gWeatherPtr->fogHSpritesCreated = FALSE; } } @@ -1439,7 +1466,7 @@ void Ash_InitVars(void) gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaStepDelay = 20; - gWeatherPtr->unknown_6FE = 20; + gWeatherPtr->ashUnused = 20; // Never read if (!gWeatherPtr->ashSpritesCreated) { Weather_SetBlendCoeffs(0, 16); @@ -1457,8 +1484,8 @@ void Ash_InitAll(void) void Ash_Main(void) { gWeatherPtr->ashBaseSpritesX = gSpriteCoordOffsetX & 0x1FF; - while (gWeatherPtr->ashBaseSpritesX >= 240) - gWeatherPtr->ashBaseSpritesX -= 240; + while (gWeatherPtr->ashBaseSpritesX >= DISPLAY_WIDTH) + gWeatherPtr->ashBaseSpritesX -= DISPLAY_WIDTH; switch (gWeatherPtr->initStep) { @@ -1514,7 +1541,7 @@ bool8 Ash_Finish(void) static const struct SpriteSheet sAshSpriteSheet = { .data = gWeatherAshTiles, .size = 0x1000, - .tag = 0x1202, + .tag = GFXTAG_ASH, }; static void LoadAshSpriteSheet(void) @@ -1546,8 +1573,8 @@ static const union AnimCmd *const sAshSpriteAnimCmds[] = { }; static const struct SpriteTemplate sAshSpriteTemplate = { - .tileTag = 0x1202, - .paletteTag = 0x1200, + .tileTag = GFXTAG_ASH, + .paletteTag = PALTAG_WEATHER, .oam = &sAshSpriteOamData, .anims = sAshSpriteAnimCmds, .images = NULL, @@ -1602,7 +1629,7 @@ static void DestroyAshSprites(void) DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]); } - FreeSpriteTilesByTag(0x1202); + FreeSpriteTilesByTag(GFXTAG_ASH); gWeatherPtr->ashSpritesCreated = FALSE; } } @@ -1617,9 +1644,9 @@ static void UpdateAshSprite(struct Sprite *sprite) sprite->y = gSpriteCoordOffsetY + sprite->tOffsetY; sprite->x = gWeatherPtr->ashBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = gWeatherPtr->ashBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x = gWeatherPtr->ashBaseSpritesX + (DISPLAY_WIDTH * 2) - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -1732,7 +1759,7 @@ static void UpdateFogDiagonalMovement(void) static const struct SpriteSheet gFogDiagonalSpriteSheet = { .data = gWeatherFogDiagonalTiles, .size = 0x0800, - .tag = 0x1203, + .tag = GFXTAG_FOG_D, }; static const struct OamData sFogDiagonalSpriteOamData = { @@ -1758,8 +1785,8 @@ static const union AnimCmd *const sFogDiagonalSpriteAnimCmds[] = { }; static const struct SpriteTemplate sFogDiagonalSpriteTemplate = { - .tileTag = 0x1203, - .paletteTag = 0x1200, + .tileTag = GFXTAG_FOG_D, + .paletteTag = PALTAG_WEATHER, .oam = &sFogDiagonalSpriteOamData, .anims = sFogDiagonalSpriteAnimCmds, .images = NULL, @@ -1813,7 +1840,7 @@ static void DestroyFogDiagonalSprites(void) DestroySprite(gWeatherPtr->sprites.s2.fogDSprites[i]); } - FreeSpriteTilesByTag(0x1203); + FreeSpriteTilesByTag(GFXTAG_FOG_D); gWeatherPtr->fogDSpritesCreated = FALSE; } } @@ -1822,9 +1849,9 @@ static void UpdateFogDiagonalSprite(struct Sprite *sprite) { sprite->y2 = gWeatherPtr->fogDPosY; sprite->x = gWeatherPtr->fogDBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = gWeatherPtr->fogDBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x = gWeatherPtr->fogDBaseSpritesX + (DISPLAY_WIDTH * 2) - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -1956,7 +1983,7 @@ static void DestroySandstormSprites(void) } gWeatherPtr->sandstormSpritesCreated = FALSE; - FreeSpriteTilesByTag(0x1204); + FreeSpriteTilesByTag(GFXTAG_SANDSTORM); } if (gWeatherPtr->sandstormSwirlSpritesCreated) @@ -2000,8 +2027,8 @@ static const union AnimCmd *const sSandstormSpriteAnimCmds[] = { }; static const struct SpriteTemplate sSandstormSpriteTemplate = { - .tileTag = 0x1204, - .paletteTag = 0x1200, + .tileTag = GFXTAG_SANDSTORM, + .paletteTag = PALTAG_WEATHER, .oam = &sSandstormSpriteOamData, .anims = sSandstormSpriteAnimCmds, .images = NULL, @@ -2012,7 +2039,7 @@ static const struct SpriteTemplate sSandstormSpriteTemplate = { static const struct SpriteSheet sSandstormSpriteSheet = { .data = gWeatherSandstormTiles, .size = 0x0a00, - .tag = 0x1204, + .tag = GFXTAG_SANDSTORM, }; // Regular sandstorm sprites @@ -2092,9 +2119,9 @@ static void UpdateSandstormSprite(struct Sprite *sprite) { sprite->y2 = gWeatherPtr->sandstormPosY; sprite->x = gWeatherPtr->sandstormBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = gWeatherPtr->sandstormBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x = gWeatherPtr->sandstormBaseSpritesX + (DISPLAY_WIDTH * 2) - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -2111,7 +2138,7 @@ static void UpdateSandstormSwirlSprite(struct Sprite *sprite) if (--sprite->y < -48) { - sprite->y = 208; + sprite->y = DISPLAY_HEIGHT + 48; sprite->tRadius = 4; } @@ -2173,7 +2200,7 @@ static const u8 sBubbleStartDelays[] = {40, 90, 60, 90, 2, 60, 40, 30}; static const struct SpriteSheet sWeatherBubbleSpriteSheet = { .data = gWeatherBubbleTiles, .size = 0x0040, - .tag = 0x1205, + .tag = GFXTAG_BUBBLE, }; static const s16 sBubbleStartCoords[][2] = { @@ -2249,8 +2276,8 @@ static const union AnimCmd *const sBubbleSpriteAnimCmds[] = { }; static const struct SpriteTemplate sBubbleSpriteTemplate = { - .tileTag = 0x1205, - .paletteTag = 0x1200, + .tileTag = GFXTAG_BUBBLE, + .paletteTag = PALTAG_WEATHER, .oam = &gOamData_AffineOff_ObjNormal_8x8, .anims = sBubbleSpriteAnimCmds, .images = NULL, @@ -2288,7 +2315,7 @@ static void DestroyBubbleSprites(void) DestroySprite(&gSprites[i]); } - FreeSpriteTilesByTag(0x1205); + FreeSpriteTilesByTag(GFXTAG_BUBBLE); } static void UpdateBubbleSprite(struct Sprite *sprite) From c9281e5a577cf2856b24539b885350046e052512 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 12 Sep 2022 14:54:05 -0400 Subject: [PATCH 063/105] Add more usage of GENDER_COUNT --- include/union_room_message.h | 4 ++-- src/union_room_message.c | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/union_room_message.h b/include/union_room_message.h index ad0011452..961b25bc1 100644 --- a/include/union_room_message.h +++ b/include/union_room_message.h @@ -32,7 +32,7 @@ extern const u8 gText_UR_LinkWithFriendDropped[]; extern const u8 *const gTexts_UR_LinkDropped[]; extern const u8 gText_UR_AwaitingPlayersResponseAboutTrade[]; extern const u8 *const gTexts_UR_CommunicatingWait[]; -extern const u8 *const gTexts_UR_HiDoSomething[][2]; +extern const u8 *const gTexts_UR_HiDoSomething[][GENDER_COUNT]; extern const u8 *const gTexts_UR_PlayerContactedYou[]; extern const u8 *const gTexts_UR_AwaitingResponse[]; extern const u8 gText_UR_ShowTrainerCard[]; @@ -44,7 +44,7 @@ extern const u8 gText_UR_ChatDropped[]; extern const u8 gText_UR_OfferDeclined1[]; extern const u8 gText_UR_OfferDeclined2[]; extern const u8 gText_UR_ChatEnded[]; -extern const u8 *const gTexts_UR_JoinChat[GENDER_COUNT][2]; +extern const u8 *const gTexts_UR_JoinChat[][GENDER_COUNT]; extern const u8 gText_UR_TrainerAppearsBusy[]; extern const u8 *const gTexts_UR_WaitOrShowCard[GENDER_COUNT][4]; extern const u8 *const gTexts_UR_StartActivity[][GENDER_COUNT][3]; diff --git a/src/union_room_message.c b/src/union_room_message.c index 16b0fc632..e84e666e1 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -172,7 +172,7 @@ ALIGNED(4) static const u8 sText_HiDoSomethingFemale[] = _("Hello!\nWould you li ALIGNED(4) static const u8 sText_HiDoSomethingAgainMale[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); ALIGNED(4) static const u8 sText_HiDoSomethingAgainFemale[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); -const u8 *const gTexts_UR_HiDoSomething[][2] = { +const u8 *const gTexts_UR_HiDoSomething[][GENDER_COUNT] = { { sText_HiDoSomethingMale, sText_HiDoSomethingFemale @@ -188,11 +188,14 @@ ALIGNED(4) static const u8 sText_DoSomethingAgainMale[] = _("{STR_VAR_1}: What w ALIGNED(4) static const u8 sText_DoSomethingAgainFemale[] = _("{STR_VAR_1}‘ã¾ãŸ ãªã«ã‹ã™ã‚‹ï¼Ÿ"); // Unused -static const u8 *const sDoSomethingTexts[] = { - sText_DoSomethingMale, - sText_DoSomethingFemale, - sText_DoSomethingAgainMale, - sText_DoSomethingAgainMale // was probably supposed to be sText_DoSomethingAgainFemale +static const u8 *const sDoSomethingTexts[][GENDER_COUNT] = { + { + sText_DoSomethingMale, + sText_DoSomethingFemale + }, { + sText_DoSomethingAgainMale, + sText_DoSomethingAgainMale // was probably supposed to be sText_DoSomethingAgainFemale + } }; ALIGNED(4) static const u8 sText_SomebodyHasContactedYou[] = _("Somebody has contacted you.{PAUSE 60}"); @@ -236,7 +239,7 @@ ALIGNED(4) static const u8 sText_PlayerJoinChatMale[] = _("{STR_VAR_1}: Hey, {PL ALIGNED(4) static const u8 sText_JoinChatFemale[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); ALIGNED(4) static const u8 sText_PlayerJoinChatFemale[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); -const u8 *const gTexts_UR_JoinChat[GENDER_COUNT][2] = { +const u8 *const gTexts_UR_JoinChat[][GENDER_COUNT] = { { sText_JoinChatMale, sText_JoinChatFemale From c4cf82f439d9084ade94364dff1a7bdfd9d3c0ed Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 12 Sep 2022 18:27:34 -0400 Subject: [PATCH 064/105] Sync easy chat strings --- include/strings.h | 76 ++++++++--------- src/easy_chat_2.c | 100 +++++++++++------------ src/easy_chat_3.c | 2 +- src/save_failed_screen.c | 6 +- src/strings.c | 170 +++++++++++++++++++-------------------- 5 files changed, 177 insertions(+), 177 deletions(-) diff --git a/include/strings.h b/include/strings.h index d904442f1..3c527b58a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1073,9 +1073,9 @@ extern const u8 gText_PlayerScurriedToCenter[]; extern const u8 gText_PlayerScurriedBackHome[]; // save_failed_screen -extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[]; -extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; -extern const u8 gText_SaveFailedScreen_SaveCompleted[]; +extern const u8 gText_SaveFailedCheckingBackup[]; +extern const u8 gText_BackupMemoryDamaged[]; +extern const u8 gText_SaveCompletePressA[]; // bag extern const u8 gText_DepositItem[]; @@ -1346,41 +1346,41 @@ extern const u8 gUnknown_841B69E[]; extern const u8 gUnknown_841B6B9[]; // easy_chat_2 -extern const u8 gUnknown_84186D1[]; -extern const u8 gUnknown_84186EF[]; -extern const u8 gUnknown_8418706[]; -extern const u8 gUnknown_8418725[]; -extern const u8 gUnknown_8418745[]; -extern const u8 gUnknown_8418763[]; -extern const u8 gUnknown_8418780[]; -extern const u8 gUnknown_841879E[]; -extern const u8 gUnknown_84187B2[]; -extern const u8 gUnknown_84187D1[]; -extern const u8 gUnknown_84187EE[]; -extern const u8 gUnknown_841880E[]; -extern const u8 gUnknown_841881B[]; -extern const u8 gUnknown_841883E[]; -extern const u8 gUnknown_841885F[]; -extern const u8 gUnknown_8418881[]; -extern const u8 gUnknown_841888C[]; -extern const u8 gUnknown_84188AC[]; -extern const u8 gUnknown_84188B9[]; -extern const u8 gUnknown_84188D6[]; -extern const u8 gUnknown_84188F0[]; -extern const u8 gUnknown_8418902[]; -extern const u8 gUnknown_8418937[]; -extern const u8 gUnknown_8418956[]; -extern const u8 gUnknown_84189E0[]; -extern const u8 gUnknown_84189EE[]; -extern const u8 gUnknown_8418A2B[]; -extern const u8 gUnknown_8418A33[]; -extern const u8 gUnknown_8418A4A[]; -extern const u8 gUnknown_8418A61[]; -extern const u8 gUnknown_8418A77[]; -extern const u8 gUnknown_8418A87[]; -extern const u8 gUnknown_8418AA1[]; -extern const u8 gUnknown_8418AB2[]; -extern const u8 gUnknown_841EE2B[]; +extern const u8 gText_CombineFourWordsOrPhrases[]; +extern const u8 gText_AndMakeYourProfile[]; +extern const u8 gText_MakeMessageSixPhrases[]; +extern const u8 gText_MaxTwoTwelveLetterPhrases[]; +extern const u8 gText_FindWordsThatDescribeYour[]; +extern const u8 gText_FeelingsRightNow[]; +extern const u8 gText_CombineNineWordsOrPhrases[]; +extern const u8 gText_AndMakeAMessage[]; +extern const u8 gText_ChangeJustOneWordOrPhrase[]; +extern const u8 gText_AndImproveTheBardsSong[]; +extern const u8 gText_AndFillOutTheQuestionnaire[]; +extern const u8 gText_YourProfile[]; +extern const u8 gText_YourFeelingAtTheBattlesStart[]; +extern const u8 gText_WhatYouSayIfYouWin[]; +extern const u8 gText_WhatYouSayIfYouLose[]; +extern const u8 gText_TheAnswer[]; +extern const u8 gText_TheMailMessage[]; +extern const u8 gText_TheNewSong[]; +extern const u8 gText_CombineTwoWordsOrPhrases[]; +extern const u8 gText_AndMakeATrendySaying[]; +extern const u8 gText_TheTrendySaying[]; +extern const u8 gText_IsAsShownOkay[]; +extern const u8 gText_AllTextBeingEditedWill[]; +extern const u8 gText_BeDeletedThatOkay[]; +extern const u8 gText_QuitEditing[]; +extern const u8 gText_StopGivingPkmnMail[]; +extern const u8 gText_Profile[]; +extern const u8 gText_AtTheBattlesStart[]; +extern const u8 gText_UponWinningABattle[]; +extern const u8 gText_UponLosingABattle[]; +extern const u8 gText_TheBardsSong[]; +extern const u8 gText_WhatsHipAndHappening[]; +extern const u8 gText_Interview[]; +extern const u8 gText_Questionnaire[]; +extern const u8 gText_DelAllCancelOk[]; // naming_screen extern const u8 gText_MoveOkBack[]; diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c index 90d066674..20aac1312 100644 --- a/src/easy_chat_2.c +++ b/src/easy_chat_2.c @@ -312,98 +312,98 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .numColumns = 2, .numRows = 2, .frameId = 0, - .titleText = gUnknown_8418A2B, - .instructionsText1 = gUnknown_84186D1, - .instructionsText2 = gUnknown_84186EF, - .confirmText1 = gUnknown_841880E, - .confirmText2 = gUnknown_8418902 + .titleText = gText_Profile, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndMakeYourProfile, + .confirmText1 = gText_YourProfile, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_BATTLE_START, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A33, - .instructionsText1 = gUnknown_8418706, - .instructionsText2 = gUnknown_8418725, - .confirmText1 = gUnknown_841881B, - .confirmText2 = gUnknown_8418902 + .titleText = gText_AtTheBattlesStart, + .instructionsText1 = gText_MakeMessageSixPhrases, + .instructionsText2 = gText_MaxTwoTwelveLetterPhrases, + .confirmText1 = gText_YourFeelingAtTheBattlesStart, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_BATTLE_WON, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A4A, - .instructionsText1 = gUnknown_8418706, - .instructionsText2 = gUnknown_8418725, - .confirmText1 = gUnknown_841883E, - .confirmText2 = gUnknown_8418902 + .titleText = gText_UponWinningABattle, + .instructionsText1 = gText_MakeMessageSixPhrases, + .instructionsText2 = gText_MaxTwoTwelveLetterPhrases, + .confirmText1 = gText_WhatYouSayIfYouWin, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_BATTLE_LOST, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A61, - .instructionsText1 = gUnknown_8418706, - .instructionsText2 = gUnknown_8418725, - .confirmText1 = gUnknown_841885F, - .confirmText2 = gUnknown_8418902 + .titleText = gText_UponLosingABattle, + .instructionsText1 = gText_MakeMessageSixPhrases, + .instructionsText2 = gText_MaxTwoTwelveLetterPhrases, + .confirmText1 = gText_WhatYouSayIfYouLose, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_MAIL, .numColumns = 2, .numRows = 5, .frameId = 2, .titleText = NULL, - .instructionsText1 = gUnknown_8418780, - .instructionsText2 = gUnknown_841879E, - .confirmText1 = gUnknown_841888C, - .confirmText2 = gUnknown_8418902 + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_TheMailMessage, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_MAIL_NO_CONFIRM, .numColumns = 2, .numRows = 2, .frameId = 0, - .instructionsText1 = gUnknown_8418780, - .instructionsText2 = gUnknown_841879E, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, }, { .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A77, - .instructionsText1 = gUnknown_84187B2, - .instructionsText2 = gUnknown_84187D1, - .confirmText1 = gUnknown_84188AC, - .confirmText2 = gUnknown_8418902 + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheNewSong, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_INTERVIEW, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418AA1, - .instructionsText1 = gUnknown_8418745, - .instructionsText2 = gUnknown_8418763, - .confirmText1 = gUnknown_8418881, - .confirmText2 = gUnknown_8418902 + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_TRENDY_PHRASE, .numColumns = 2, .numRows = 1, .frameId = 3, - .titleText = gUnknown_8418A87, - .instructionsText1 = gUnknown_84188B9, - .instructionsText2 = gUnknown_84188D6, - .confirmText1 = gUnknown_84188F0, - .confirmText2 = gUnknown_8418902 + .titleText = gText_WhatsHipAndHappening, + .instructionsText1 = gText_CombineTwoWordsOrPhrases, + .instructionsText2 = gText_AndMakeATrendySaying, + .confirmText1 = gText_TheTrendySaying, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_QUESTIONNAIRE, .numColumns = 2, .numRows = 2, .frameId = 0, - .titleText = gUnknown_8418AB2, - .instructionsText1 = gUnknown_84186D1, - .instructionsText2 = gUnknown_84187EE, - .confirmText1 = gUnknown_8418881, - .confirmText2 = gUnknown_8418902 + .titleText = gText_Questionnaire, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndFillOutTheQuestionnaire, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay } }; @@ -1235,11 +1235,11 @@ void GetEasyChatConfirmCancelText(const u8 **str1, const u8 **str2) switch (sEasyChatScreen->type) { case EASY_CHAT_TYPE_MAIL: - *str1 = gUnknown_84189EE; + *str1 = gText_StopGivingPkmnMail; *str2 = NULL; break; default: - *str1 = gUnknown_84189E0; + *str1 = gText_QuitEditing; *str2 = NULL; break; } @@ -1248,8 +1248,8 @@ void GetEasyChatConfirmCancelText(const u8 **str1, const u8 **str2) void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) { - *str1 = gUnknown_8418937; - *str2 = gUnknown_8418956; + *str1 = gText_AllTextBeingEditedWill; + *str2 = gText_BeDeletedThatOkay; } void GetECSelectGroupCursorCoords(u8 *Xp, u8 *Yp) diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c index bf3cb29b0..5cb4b741b 100644 --- a/src/easy_chat_3.c +++ b/src/easy_chat_3.c @@ -2295,6 +2295,6 @@ static void CreateFooterWindow(void) template.baseBlock = 0x030; windowId = AddWindow(&template); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - EC_AddTextPrinterParameterized(windowId, FONT_1, gUnknown_841EE2B, 0, 0, 0, NULL); + EC_AddTextPrinterParameterized(windowId, FONT_1, gText_DelAllCancelOk, 0, 0, 0, NULL); PutWindowTilemap(windowId); } diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index c6e078078..1133f7e04 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -59,7 +59,7 @@ bool32 RunSaveFailedScreen(void) break; case 3: ClearMapBuffer(); - PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_CheckingBackupMemory); + PrintTextOnSaveFailedScreen(gText_SaveFailedCheckingBackup); UpdateMapBufferWithText(); sSaveFailedScreenState = 4; break; @@ -75,12 +75,12 @@ bool32 RunSaveFailedScreen(void) if (TryWipeDamagedSectors() == TRUE) { gSaveAttemptStatus = SAVE_STATUS_OK; - PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_SaveCompleted); + PrintTextOnSaveFailedScreen(gText_SaveCompletePressA); } else { gSaveAttemptStatus = SAVE_STATUS_ERROR; - PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_BackupMemoryDamaged); + PrintTextOnSaveFailedScreen(gText_BackupMemoryDamaged); } sSaveFailedScreenState = 6; break; diff --git a/src/strings.c b/src/strings.c index 996cf1ac3..a9651340a 100644 --- a/src/strings.c +++ b/src/strings.c @@ -682,91 +682,91 @@ const u8 gText_SeeYaDescription[] = _("See you later!"); const u8 gText_JustOnePkmn[] = _("Can't deposit the last POKéMON!"); const u8 gText_PartyFull[] = _("Can't take any more POKéMON."); const u8 gText_Box[] = _("BOX"); -const u8 gUnknown_84186D1[] = _("Combine four words or phrases"); -const u8 gUnknown_84186EF[] = _("and make your profile."); -const u8 gUnknown_8418706[] = _("Make a message of six phrases."); -const u8 gUnknown_8418725[] = _("Max two 12-letter phrases/line."); -const u8 gUnknown_8418745[] = _("Find words that describe your"); -const u8 gUnknown_8418763[] = _("feelings right now."); -const u8 gUnknown_8418777[] = _("4ã¤ã® ã“ã¨ã°ã§"); -const u8 gUnknown_8418780[] = _("Combine nine words or phrases"); -const u8 gUnknown_841879E[] = _("and make a message."); -const u8 gUnknown_84187B2[] = _("Change just one word or phrase"); -const u8 gUnknown_84187D1[] = _("and improve the BARD's song."); -const u8 gUnknown_84187EE[] = _("and fill out the questionnaire."); -const u8 gUnknown_841880E[] = _("Your profile"); -const u8 gUnknown_841881B[] = _("Your feeling at the battle's start"); -const u8 gUnknown_841883E[] = _("What you say if you win a battle"); -const u8 gUnknown_841885F[] = _("What you say if you lose a battle"); -const u8 gUnknown_8418881[] = _("The answer"); -const u8 gUnknown_841888C[] = _("The MAIL message"); -const u8 gUnknown_841889D[] = _("ã¯ãŒãã« ã®ã›ã‚‹ ã‚ã„ã•ã¤ã¯"); -const u8 gUnknown_84188AC[] = _("The new song"); -const u8 gUnknown_84188B9[] = _("Combine two words or phrases"); -const u8 gUnknown_84188D6[] = _("and make a trendy saying."); -const u8 gUnknown_84188F0[] = _("The trendy saying"); -const u8 gUnknown_8418902[] = _("is as shown. Okay?"); -const u8 gUnknown_8418915[] = _("2ã¤ã® ã“ã¨ã°ã‚’ ãã¿ã‚ã‚ã›ã¦"); -const u8 gUnknown_8418925[] = _("ã„ã„ ã“ã¨ã°ã‚’ ãŠã—ãˆã¦ã‚ã’よã†!"); -const u8 gUnknown_8418937[] = _("All the text being edited will"); -const u8 gUnknown_8418956[] = _("be deleted. Is that okay?"); -const u8 gUnknown_8418970[] = _("ãªã«ã‹ ã“ã¨ã°ã‚’ ã„れã¦ãã ã•ã„!"); -const u8 gUnknown_8418982[] = _("ã“ã¨ã°ã‚’ ãœã‚“ã¶ ã‘ã™ã“ã¨ã¯ ã§ãã¾ã›ã‚“!"); -const u8 gUnknown_8418998[] = _("ã‹ãˆã‚‰ã‚Œã‚‹ ã“ã¨ã°ã¯ 1㤠ã¾ã§ã§ã™!"); -const u8 gUnknown_84189AC[] = _("ã†ãŸã‚’ ã‚‚ã¨ã« ã‚‚ã©ã—ã¾ã™!"); -const u8 gUnknown_84189BB[] = _("ãれ㯠もㆠã¯ã‚„ã£ã¦ã„ã¾ã™!"); -const u8 gUnknown_84189CB[] = _("2ã¤ã® ã“ã¨ã°ã‚’ ãã¿ã‚ã‚ã›ã¦ãã ã•ã„!"); -const u8 gUnknown_84189E0[] = _("Quit editing?"); -const u8 gUnknown_84189EE[] = _("Stop giving the POKéMON MAIL?"); -const u8 gUnknown_8418A0C[] = _("ã¸ã‚“ã—ã‚…ã†ã—㟠ã“ã¨ã°ã¯ ã»ãžã‚“"); -const u8 gUnknown_8418A1D[] = _("ã•れã¾ã›ã‚“㌠ã„ã„ã§ã™ã‹?"); -const u8 gUnknown_8418A2B[] = _("PROFILE"); -const u8 gUnknown_8418A33[] = _("At the battle's start:"); -const u8 gUnknown_8418A4A[] = _("Upon winning a battle:"); -const u8 gUnknown_8418A61[] = _("Upon losing a battle:"); -const u8 gUnknown_8418A77[] = _("The BARD's Song"); -const u8 gUnknown_8418A87[] = _("What's hip and happening?"); -const u8 gUnknown_8418AA1[] = _("Interview"); -const u8 gUnknown_8418AAB[] = _("ã„ã„ ã“ã¨ã°"); -const u8 gUnknown_8418AB2[] = _("QUESTIONNAIRE"); -const u8 gUnknown_8418AC0[] = _(" ãれㄠã ã‚ˆã­-"); -const u8 gUnknown_8418ACA[] = _(" ã‹ã‚ã„ㄠよã­-"); -const u8 gUnknown_8418AD4[] = _(" ã®ã‚“ã³ã‚Š ã ã‚ˆã­-"); -const u8 gUnknown_8418ADF[] = _(" ã½ã£ã‹ã½ã‹ ã ã‚ˆã­-"); -const u8 gUnknown_8418AEB[] = _(" ã‚ã“ãŒã‚Œã‚‹ よã­-"); -const u8 gUnknown_8418AF6[] = _(" ドキドキ ã™ã‚‹ã‚ˆã­-"); -const u8 gUnknown_8418B02[] = _(" ãŠã‚‚ã—ã‚ㄠよã­-"); -const u8 gUnknown_8418B0D[] = _(" ãµã—㎠ã ã‚ˆã­-"); -const u8 gUnknown_8418B17[] = _("ã£ã¦"); -const u8 gUnknown_8418B1A[] = _("\nãㆠãŠã‚‚ã‚ãªã„?"); -const u8 gUnknown_8418B25[] = _("ãŸã³ã« ã§ãŸã„ãª-\nã©ã“ã‹ ã„ã„ ã¨ã“ã‚ ã—らãªã„?"); -const u8 gUnknown_8418B40[] = _("120ã—ょã㮠クレヨン ã‹ã£ãŸã‚“ã -\nã„ã„ã§ã—ょã†?"); -const u8 gUnknown_8418B5C[] = _("ã—ゃã¼ã‚“ã ã¾ã« ã®ã£ã¦ ã¨ã¹ã‚‹ã‚ˆã†ã«\nãªã‚‰ãªã„ã‹ãª-"); -const u8 gUnknown_8418B77[] = _("ã™ãªã¯ã¾ã« ã‹ã„㟠もã˜ã¯\nã™ãã« ããˆã¡ã‚ƒã†ã®ãŒ ã‹ãªã—ã„よã­-"); -const u8 gUnknown_8418B99[] = _("ã†ã¿ã® ãã“ã£ã¦ ã©ã†ãªã£ã¦ã‚‹ã®ã‹ãª-\nã„ã¡ã©ã§ ã„ã„ã‹ã‚‰ ã¿ã¦ ã¿ãŸã„ãª-"); -const u8 gUnknown_8418BC0[] = _("ゆã†ã‚„ã‘ã‚’ ã¿ã‚‹ã¨\nウãƒã« ã‹ãˆã‚ŠãŸã ãªã‚‰ãªã„?"); -const u8 gUnknown_8418BDA[] = _("ã¿ã©ã‚Šã® ã—ã°ã§ ã­ã“ã‚ãŒã‚‹ã¨\nãã‚‚ã¡ã„ã„よã­-"); -const u8 gUnknown_8418BF3[] = _("ã²ã¿ã¤ãã¡ ã£ã¦ ã„ã„よã­!\nãªã‚“ã‹ ã‚ãã‚ã ã—ã¦ã“ãªã„?"); -const u8 gUnknown_8418C12[] = _("ãƒã‚±ãƒ¢ãƒ³ リ-ã‚°"); +const u8 gText_CombineFourWordsOrPhrases[] = _("Combine four words or phrases"); +const u8 gText_AndMakeYourProfile[] = _("and make your profile."); +const u8 gText_MakeMessageSixPhrases[] = _("Make a message of six phrases."); +const u8 gText_MaxTwoTwelveLetterPhrases[] = _("Max two 12-letter phrases/line."); +const u8 gText_FindWordsThatDescribeYour[] = _("Find words that describe your"); +const u8 gText_FeelingsRightNow[] = _("feelings right now."); +const u8 gText_WithFourPhrases[] = _("4ã¤ã® ã“ã¨ã°ã§"); +const u8 gText_CombineNineWordsOrPhrases[] = _("Combine nine words or phrases"); +const u8 gText_AndMakeAMessage[] = _("and make a message."); +const u8 gText_ChangeJustOneWordOrPhrase[] = _("Change just one word or phrase"); +const u8 gText_AndImproveTheBardsSong[] = _("and improve the BARD's song."); +const u8 gText_AndFillOutTheQuestionnaire[] = _("and fill out the questionnaire."); +const u8 gText_YourProfile[] = _("Your profile"); +const u8 gText_YourFeelingAtTheBattlesStart[] = _("Your feeling at the battle's start"); +const u8 gText_WhatYouSayIfYouWin[] = _("What you say if you win a battle"); +const u8 gText_WhatYouSayIfYouLose[] = _("What you say if you lose a battle"); +const u8 gText_TheAnswer[] = _("The answer"); +const u8 gText_TheMailMessage[] = _("The MAIL message"); +const u8 gText_TheMailSalutation[] = _("ã¯ãŒãã« ã®ã›ã‚‹ ã‚ã„ã•ã¤ã¯"); +const u8 gText_TheNewSong[] = _("The new song"); +const u8 gText_CombineTwoWordsOrPhrases[] = _("Combine two words or phrases"); +const u8 gText_AndMakeATrendySaying[] = _("and make a trendy saying."); +const u8 gText_TheTrendySaying[] = _("The trendy saying"); +const u8 gText_IsAsShownOkay[] = _("is as shown. Okay?"); +const u8 gText_CombineTwoWordsOrPhrases2[] = _("2ã¤ã® ã“ã¨ã°ã‚’ ãã¿ã‚ã‚ã›ã¦"); +const u8 gText_ToTeachHerAGoodSaying[] = _("ã„ã„ ã“ã¨ã°ã‚’ ãŠã—ãˆã¦ã‚ã’よã†!"); +const u8 gText_AllTextBeingEditedWill[] = _("All the text being edited will"); +const u8 gText_BeDeletedThatOkay[] = _("be deleted. Is that okay?"); +const u8 gText_PleaseEnterPhraseOrWord[] = _("ãªã«ã‹ ã“ã¨ã°ã‚’ ã„れã¦ãã ã•ã„!"); +const u8 gText_EntireTextCantBeDeleted[] = _("ã“ã¨ã°ã‚’ ãœã‚“ã¶ ã‘ã™ã“ã¨ã¯ ã§ãã¾ã›ã‚“!"); +const u8 gText_OnlyOnePhrase[] = _("ã‹ãˆã‚‰ã‚Œã‚‹ ã“ã¨ã°ã¯ 1㤠ã¾ã§ã§ã™!"); +const u8 gText_OriginalSongWillBeUsed[] = _("ã†ãŸã‚’ ã‚‚ã¨ã« ã‚‚ã©ã—ã¾ã™!"); +const u8 gText_ThatsTrendyAlready[] = _("ãれ㯠もㆠã¯ã‚„ã£ã¦ã„ã¾ã™!"); +const u8 gText_CombineTwoWordsOrPhrases3[] = _("2ã¤ã® ã“ã¨ã°ã‚’ ãã¿ã‚ã‚ã›ã¦ãã ã•ã„!"); +const u8 gText_QuitEditing[] = _("Quit editing?"); +const u8 gText_StopGivingPkmnMail[] = _("Stop giving the POKéMON MAIL?"); +const u8 gText_TheEditedWords[] = _("ã¸ã‚“ã—ã‚…ã†ã—㟠ã“ã¨ã°ã¯ ã»ãžã‚“"); +const u8 gText_WillNotBeSaved[] = _("ã•れã¾ã›ã‚“㌠ã„ã„ã§ã™ã‹?"); +const u8 gText_Profile[] = _("PROFILE"); +const u8 gText_AtTheBattlesStart[] = _("At the battle's start:"); +const u8 gText_UponWinningABattle[] = _("Upon winning a battle:"); +const u8 gText_UponLosingABattle[] = _("Upon losing a battle:"); +const u8 gText_TheBardsSong[] = _("The BARD's Song"); +const u8 gText_WhatsHipAndHappening[] = _("What's hip and happening?"); +const u8 gText_Interview[] = _("Interview"); +const u8 gText_GoodSaying[] = _("ã„ã„ ã“ã¨ã°"); +const u8 gText_Questionnaire[] = _("QUESTIONNAIRE"); +const u8 GiddyText_SoPretty[] = _(" ãれㄠã ã‚ˆã­-"); +const u8 GiddyText_SoDarling[] = _(" ã‹ã‚ã„ㄠよã­-"); +const u8 GiddyText_SoRelaxed[] = _(" ã®ã‚“ã³ã‚Š ã ã‚ˆã­-"); +const u8 GiddyText_SoSunny[] = _(" ã½ã£ã‹ã½ã‹ ã ã‚ˆã­-"); +const u8 GiddyText_SoDesirable[] = _(" ã‚ã“ãŒã‚Œã‚‹ よã­-"); +const u8 GiddyText_SoExciting[] = _(" ドキドキ ã™ã‚‹ã‚ˆã­-"); +const u8 GiddyText_SoAmusing[] = _(" ãŠã‚‚ã—ã‚ㄠよã­-"); +const u8 GiddyText_SoMagical[] = _(" ãµã—㎠ã ã‚ˆã­-"); +const u8 GiddyText_Is[] = _("ã£ã¦"); +const u8 GiddyText_DontYouAgree[] = _("\nãㆠãŠã‚‚ã‚ãªã„?"); +const u8 GiddyText_ISoWantToGoOnAVacation[] = _("ãŸã³ã« ã§ãŸã„ãª-\nã©ã“ã‹ ã„ã„ ã¨ã“ã‚ ã—らãªã„?"); +const u8 GiddyText_IBoughtCrayonsWith120Colors[] = _("120ã—ょã㮠クレヨン ã‹ã£ãŸã‚“ã -\nã„ã„ã§ã—ょã†?"); +const u8 GiddyText_WouldntItBeNiceIfWeCouldFloat[] = _("ã—ゃã¼ã‚“ã ã¾ã« ã®ã£ã¦ ã¨ã¹ã‚‹ã‚ˆã†ã«\nãªã‚‰ãªã„ã‹ãª-"); +const u8 GiddyText_WhenYouWriteOnASandyBeach[] = _("ã™ãªã¯ã¾ã« ã‹ã„㟠もã˜ã¯\nã™ãã« ããˆã¡ã‚ƒã†ã®ãŒ ã‹ãªã—ã„よã­-"); +const u8 GiddyText_WhatsTheBottomOfTheSeaLike[] = _("ã†ã¿ã® ãã“ã£ã¦ ã©ã†ãªã£ã¦ã‚‹ã®ã‹ãª-\nã„ã¡ã©ã§ ã„ã„ã‹ã‚‰ ã¿ã¦ ã¿ãŸã„ãª-"); +const u8 GiddyText_WhenYouSeeTheSettingSunDoesIt[] = _("ゆã†ã‚„ã‘ã‚’ ã¿ã‚‹ã¨\nウãƒã« ã‹ãˆã‚ŠãŸã ãªã‚‰ãªã„?"); +const u8 GiddyText_LyingBackInTheGreenGrass[] = _("ã¿ã©ã‚Šã® ã—ã°ã§ ã­ã“ã‚ãŒã‚‹ã¨\nãã‚‚ã¡ã„ã„よã­-"); +const u8 GiddyText_SecretBasesAreSoWonderful[] = _("ã²ã¿ã¤ãã¡ ã£ã¦ ã„ã„よã­!\nãªã‚“ã‹ ã‚ãã‚ã ã—ã¦ã“ãªã„?"); +const u8 gText_PokemonLeague[] = _("ãƒã‚±ãƒ¢ãƒ³ リ-ã‚°"); const u8 gText_PokemonCenter[] = _("POKéMON CENTER"); -const u8 gUnknown_8418C2A[] = _("ã« ãƒãƒ­ãƒƒã‚¯ã‚’ ã‚ã’ã¾ã™ã‹?"); -const u8 gUnknown_8418C39[] = _("ã‹ã£ã“よã•"); -const u8 gUnknown_8418C3F[] = _("ã†ã¤ãã—ã•"); -const u8 gUnknown_8418C45[] = _("ã‹ã‚ã„ã•"); -const u8 gUnknown_8418C4A[] = _("ã‹ã—ã“ã•"); -const u8 gUnknown_8418C4F[] = _("ãŸãã¾ã—ã•"); -const u8 gUnknown_8418C55[] = _("ã« ã¿ãŒã㌠ã‹ã‹ã£ãŸ!"); -const u8 gUnknown_8418C62[] = _("ãªã«ã‚‚ ã‹ã‚らãªã‹ã£ãŸ!"); -const u8 gUnknown_8418C6F[] = _("もㆠã“れã„ã˜ã‚‡ã† ãŸã¹ãªã„ ã¿ãŸã„‥"); -const u8 gText_SaveFailedScreen_CheckingBackupMemory[] = _("Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minuteâ€"); -const u8 gText_SaveFailedScreen_BackupMemoryDamaged[] = _("The backup memory is damaged or\nthe game's battery has run dry.\nThe game can be played, but its\nprogress cannot be saved.\n“Please press the A Button.â€"); -const u8 gUnknown_8418D70[] = _("{COLOR DARK_GRAY}“ã“ã®ã¾ã¾ ã¼ã†ã‘ã‚“ã‚’ã¤ã¥ã‘ã‚‹ã“ã¨ã¯ ã§ãã¾ã›ã‚“\nタイトル㫠もã©ã‚Šã¾ã™â€"); -const u8 gUnknown_8418D99[] = _("ã‘ã‚“ã•㌠ã—ã‚…ã†ã‚Šã‚‡ã†ã—ã¾ã—ãŸ!\nã‚‚ã†ã„ã¡ã© レãƒ-トを ã‹ãã“ã¿ã¾ã™\nã—ã°ã‚‰ããŠã¾ã¡ãã ã•ã„"); -const u8 gUnknown_8418DC9[] = _("レãƒ-ト㮠ã‹ãã“ã¿ã¯ ã—ã‚…ã†ã‚Šã‚‡ã†ã—ã¾ã—ãŸ\n{COLOR DARK_GRAY}“ã“ã®ã¾ã¾ ã¼ã†ã‘ã‚“ã‚’ã¤ã¥ã‘ã‚‹ã“ã¨ã¯ ã§ãã¾ã›ã‚“\nタイトル㫠もã©ã‚Šã¾ã™â€"); -const u8 gText_SaveFailedScreen_SaveCompleted[] = _("Save completed.\n“Please press the A Button.â€"); -const u8 gUnknown_8418E36[] = _("れんらãã›ã‚“"); -const u8 gUnknown_8418E3D[] = _("ã²ã¿ã¤ãã¡"); -const u8 gUnknown_8418E43[] = _("アジト"); +const u8 gText_GetsAPokeBlockQuestion[] = _("ã« ãƒãƒ­ãƒƒã‚¯ã‚’ ã‚ã’ã¾ã™ã‹?"); +const u8 gText_Coolness[] = _("ã‹ã£ã“よã•"); +const u8 gText_Beauty3[] = _("ã†ã¤ãã—ã•"); +const u8 gText_Cuteness[] = _("ã‹ã‚ã„ã•"); +const u8 gText_Smartness[] = _("ã‹ã—ã“ã•"); +const u8 gText_Toughness[] = _("ãŸãã¾ã—ã•"); +const u8 gText_WasEnhanced[] = _("ã« ã¿ãŒã㌠ã‹ã‹ã£ãŸ!"); +const u8 gText_NothingChanged[] = _("ãªã«ã‚‚ ã‹ã‚らãªã‹ã£ãŸ!"); +const u8 gText_WontEatAnymore[] = _("もㆠã“れã„ã˜ã‚‡ã† ãŸã¹ãªã„ ã¿ãŸã„‥"); +const u8 gText_SaveFailedCheckingBackup[] = _("Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minuteâ€"); +const u8 gText_BackupMemoryDamaged[] = _("The backup memory is damaged or\nthe game's battery has run dry.\nThe game can be played, but its\nprogress cannot be saved.\n“Please press the A Button.â€"); +const u8 gText_GamePlayCannotBeContinued[] = _("{COLOR DARK_GRAY}“ã“ã®ã¾ã¾ ã¼ã†ã‘ã‚“ã‚’ã¤ã¥ã‘ã‚‹ã“ã¨ã¯ ã§ãã¾ã›ã‚“\nタイトル㫠もã©ã‚Šã¾ã™â€"); +const u8 gText_CheckCompleted[] = _("ã‘ã‚“ã•㌠ã—ã‚…ã†ã‚Šã‚‡ã†ã—ã¾ã—ãŸ!\nã‚‚ã†ã„ã¡ã© レãƒ-トを ã‹ãã“ã¿ã¾ã™\nã—ã°ã‚‰ããŠã¾ã¡ãã ã•ã„"); +const u8 gText_SaveCompleteGameCannotContinue[] = _("レãƒ-ト㮠ã‹ãã“ã¿ã¯ ã—ã‚…ã†ã‚Šã‚‡ã†ã—ã¾ã—ãŸ\n{COLOR DARK_GRAY}“ã“ã®ã¾ã¾ ã¼ã†ã‘ã‚“ã‚’ã¤ã¥ã‘ã‚‹ã“ã¨ã¯ ã§ãã¾ã›ã‚“\nタイトル㫠もã©ã‚Šã¾ã™â€"); +const u8 gText_SaveCompletePressA[] = _("Save completed.\n“Please press the A Button.â€"); +const u8 gText_Ferry[] = _("れんらãã›ã‚“"); +const u8 gText_SecretBase[] = _("ã²ã¿ã¤ãã¡"); +const u8 gText_Hideout[] = _("アジト"); const u8 gText_YourName[] = _("YOUR NAME?"); const u8 gText_BoxName[] = _("BOX NAME?"); const u8 gText_PkmnsNickname[] = _("'s nickname?"); @@ -1332,4 +1332,4 @@ const u8 gText_Exit3[] = _("EXIT"); const u8 gText_Receive[] = _("RECEIVE"); const u8 gText_Send[] = _("SEND"); const u8 gText_Toss[] = _("TOSS"); -const u8 gUnknown_841EE2B[] = _("DEL. ALL{CLEAR_TO 0x57}CANCEL{CLEAR_TO 0xA4}OK"); +const u8 gText_DelAllCancelOk[] = _("DEL. ALL{CLEAR_TO 0x57}CANCEL{CLEAR_TO 0xA4}OK"); From 7b2da8e4025354320b4cd80c5c6c4724431d28ce Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 13 Sep 2022 14:14:36 -0400 Subject: [PATCH 065/105] Sync/document the rest of strings.c --- data/text/save.inc | 2 +- include/strings.h | 170 +++++----- src/berry_crush.c | 2 +- src/berry_pouch.c | 2 +- src/clear_save_data_screen.c | 4 +- src/diploma.c | 10 +- src/item.c | 2 +- src/item_use.c | 29 +- src/main_menu.c | 6 +- src/menu.c | 2 +- src/mystery_event_script.c | 2 +- src/option_menu.c | 2 +- src/party_menu.c | 22 +- src/pokemon_special_anim_scene.c | 54 +-- src/script_menu.c | 12 +- src/shop.c | 4 +- src/start_menu.c | 20 +- src/strings.c | 362 ++++++++++----------- src/tm_case.c | 4 +- src/trade.c | 24 +- src/wireless_communication_status_screen.c | 11 +- 21 files changed, 372 insertions(+), 374 deletions(-) diff --git a/data/text/save.inc b/data/text/save.inc index d71e03f1e..bbaebf72c 100644 --- a/data/text/save.inc +++ b/data/text/save.inc @@ -12,7 +12,7 @@ gText_SavingDontTurnOffThePower:: gText_PlayerSavedTheGame:: .string "{PLAYER} saved the game.$" -gText_SaveFailed:: +gText_SaveFailed2:: .string "セーブã«ã€€ã—ã£ã±ã„ ã—ã¾ã—ãŸâ€¥$" gText_DifferentGameFile:: diff --git a/include/strings.h b/include/strings.h index 3c527b58a..222ed935d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -76,8 +76,6 @@ extern const u8 gText_Ferry[]; extern const u8 gText_SecretBase[]; extern const u8 gText_Hideout[]; extern const u8 gText_FlyToWhere[]; -extern const u8 gStartMenuText_PokemonLeague[]; -extern const u8 gStartMenuText_PokemonCenter[]; extern const u8 gText_ApostropheSBase[]; extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; @@ -89,7 +87,7 @@ extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_PkmnFainted3[]; extern const u8 gText_Coins[]; extern const u8 gText_EggNickname[]; -extern const u8 gStartMenuText_Pokemon[]; +extern const u8 gText_MenuPokemon[]; extern const u8 gOtherText_Use[]; extern const u8 gOtherText_Toss[]; @@ -97,7 +95,7 @@ extern const u8 gOtherText_Give[]; extern const u8 gOtherText_Exit[]; extern const u8 gText_ThreeHyphens[]; extern const u8 gText_SevenHyphens[]; -extern const u8 gOtherText_UnkF9_08_Clear_01[]; +extern const u8 gText_NumberClear01[]; extern const u8 gText_TimesStrVar1[]; extern const u8 gText_IsSelected[]; extern const u8 gText_ThereIsNoPokemon[]; @@ -170,20 +168,20 @@ extern const u8 gText_Withdraw[]; extern const u8 gText_ReturnToPC[]; extern const u8 gText_OakForbidsUseOfItemHere[]; -extern const u8 gUnknown_8416451[]; -extern const u8 gUnknown_8416537[]; -extern const u8 gUnknown_841658C[]; -extern const u8 gUnknown_841659E[]; -extern const u8 gUnknown_84165D2[]; -extern const u8 gUnknown_8416600[]; -extern const u8 gUnknown_8416631[]; -extern const u8 gUnknown_8416644[]; -extern const u8 gUnknown_841665C[]; -extern const u8 gUnknown_8416690[]; -extern const u8 gUnknown_84166A7[]; +extern const u8 gText_CantDismountBike[]; +extern const u8 gText_CoinCase[]; +extern const u8 gText_PlayerUsedVar2[]; +extern const u8 gText_RepelEffectsLingered[]; +extern const u8 gText_UsedVar2WildLured[]; +extern const u8 gText_UsedVar2WildRepelled[]; +extern const u8 gText_BoxFull[]; +extern const u8 gText_PowderQty[]; +extern const u8 gText_PlayedPokeFluteCatchy[]; +extern const u8 gText_PlayedPokeFlute[]; +extern const u8 gText_PokeFluteAwakenedMon[]; extern const u8 gText_WontHaveEffect[]; -extern const u8 gUnknown_841623D[]; -extern const u8 gUnknown_84162BD[]; +extern const u8 gText_YesNo[]; +extern const u8 gText_Berry[]; extern const u8 gText_Ghost[]; // pokemon @@ -196,11 +194,11 @@ extern const u8 gText_PkmnsXPreventsSwitching[]; extern const u8 *const gStatNamesTable[]; // diploma -extern const u8 gUnknown_841B60E[]; -extern const u8 gUnknown_841B619[]; -extern const u8 gUnknown_841B684[]; -extern const u8 gUnknown_841B68F[]; -extern const u8 gUnknown_841B698[]; +extern const u8 gText_Diploma_Player[]; +extern const u8 gText_Diploma_ThisDocument[]; +extern const u8 gText_Diploma_GameFreak[]; +extern const u8 gText_Diploma_National[]; +extern const u8 gText_Diploma_Kanto[]; // battle_records extern const u8 gString_BattleRecords_PlayersBattleResults[]; @@ -330,7 +328,7 @@ extern const u8 gText_NotPkmnOtherTrainerWants[]; extern const u8 gText_ThatIsntAnEgg[]; extern const u8 gText_OtherTrainerCantAcceptPkmn[]; extern const u8 gText_CantTradeWithTrainer[]; -extern const u8 gUnknown_84176CF[]; +extern const u8 gText_CancelBattle[]; extern const u8 gText_PkmnWasGivenItem[]; extern const u8 gText_ReceivedItemFromPkmn[]; extern const u8 gText_PkmnAlreadyHoldingItemSwitch[]; @@ -339,7 +337,7 @@ extern const u8 gText_BagFullCouldNotRemoveItem[]; extern const u8 gText_PkmnCantParticipate[]; extern const u8 gText_CancelParticipation[]; extern const u8 gText_OakThisIsListOfPokemon[]; -extern const u8 gMenuText_Confirm[]; +extern const u8 gText_PartyMenu_OK[]; extern const u8 gText_MaleSymbol[]; extern const u8 gText_FemaleSymbol[]; extern const u8 gText_Slash[]; @@ -350,8 +348,8 @@ extern const u8 gText_MailSentToPC[]; extern const u8 gText_MailMessageWillBeLost[]; extern const u8 gText_SendMailToPC[]; extern const u8 gText_MailTakenFromPkmn[]; -extern const u8 gUnknown_8416B3E[]; -extern const u8 gUnknown_8416B16[]; +extern const u8 gText_NoMoreThanTwoMayEnter[]; +extern const u8 gText_NoMoreThanThreeMayEnter[]; extern const u8 gText_PauseUntilPress[]; extern const u8 gText_CantUseUntilNewBadge[]; extern const u8 gText_ReturnToHealingSpot[]; @@ -364,12 +362,12 @@ extern const u8 gText_PkmnCuredOfParalysis[]; extern const u8 gText_PkmnSnappedOutOfConfusion[]; extern const u8 gText_PkmnGotOverInfatuation[]; extern const u8 gText_PkmnBecameHealthy[]; -extern const u8 gText_HP3[]; -extern const u8 gText_Attack3[]; -extern const u8 gText_Defense3[]; -extern const u8 gText_Speed2[]; -extern const u8 gText_SpAtk3[]; -extern const u8 gText_SpDef3[]; +extern const u8 gText_ItemEffect_HP[]; +extern const u8 gText_ItemEffect_Attack[]; +extern const u8 gText_ItemEffect_Defense[]; +extern const u8 gText_ItemEffect_Speed[]; +extern const u8 gText_ItemEffect_SpAtk[]; +extern const u8 gText_ItemEffect_SpDef[]; extern const u8 gText_PkmnBaseVar2StatIncreased[]; extern const u8 gText_MovesPPIncreased[]; extern const u8 gText_PPWasRestored[]; @@ -503,14 +501,14 @@ extern const u8 gText_ABtnTitleScreen[]; extern const u8 gText_ABtnRegistrationCounter[]; // main_menu -extern const u8 gText_SaveFileCorruptedPrevWillBeLoaded[]; +extern const u8 gText_SaveFileCorrupted[]; extern const u8 gText_SaveFileHasBeenDeleted[]; extern const u8 gText_1MSubCircuitBoardNotInstalled[]; extern const u8 gText_NewGame[]; extern const u8 gText_Continue[]; extern const u8 gText_MysteryGift[]; -extern const u8 gText_WirelessAdapterIsNotConnected[]; -extern const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[]; +extern const u8 gText_WirelessNotConnected[]; +extern const u8 gText_MysteryGiftCantUse[]; extern const u8 gText_Player[]; extern const u8 gText_Time[]; extern const u8 gText_Colon[]; @@ -626,14 +624,14 @@ extern const u8 gText_BagIsFull[]; extern const u8 gText_MailReturnedToBagMessageErased[]; // start_menu -extern const u8 gStartMenuText_Pokedex[]; -extern const u8 gStartMenuText_Bag[]; -extern const u8 gStartMenuText_Player[]; -extern const u8 gStartMenuText_Save[]; -extern const u8 gStartMenuText_Option[]; -extern const u8 gStartMenuText_Exit[]; -extern const u8 gStartMenuText_Retire[]; -extern const u8 gUnknown_84162A9[]; +extern const u8 gText_MenuPokedex[]; +extern const u8 gText_MenuBag[]; +extern const u8 gText_MenuPlayer[]; +extern const u8 gText_MenuSave[]; +extern const u8 gText_MenuOption[]; +extern const u8 gText_MenuExit[]; +extern const u8 gText_MenuRetire[]; +extern const u8 gText_MenuSafariStats[]; extern const u8 gStartMenuDesc_Pokedex[]; extern const u8 gStartMenuDesc_Pokemon[]; extern const u8 gStartMenuDesc_Bag[]; @@ -789,9 +787,9 @@ extern const u8 gText_ThreeIsland[]; extern const u8 gText_Vermilion[]; extern const u8 gText_Colosseum_2[]; extern const u8 gText_BerryCrush[]; -extern const u8 gText_Dummy_8417E66[]; -extern const u8 gText_Dummy_8417E67[]; -extern const u8 gText_Dummy_8417E71[]; +extern const u8 gText_EmptyLinkService1[]; +extern const u8 gText_EmptyLinkService2[]; +extern const u8 gText_RecordCorner[]; extern const u8 gText_PokemonJump[]; extern const u8 gText_DodrioBerryPicking[]; extern const u8 gText_2Tinymushrooms[]; @@ -804,8 +802,8 @@ extern const u8 gText_Charcoal_1000Coins[]; extern const u8 gText_MysticWater_1000Coins[]; extern const u8 gText_YellowFlute_1600Coins[]; extern const u8 gText_SmokeBall_800Coins[]; -extern const u8 gText_Dummy_8417F67[]; -extern const u8 gText_Dummy_8417F68[]; +extern const u8 gText_Multichoice_Empty1[]; +extern const u8 gText_Multichoice_Empty2[]; extern const u8 gText_BecomeLeader[]; extern const u8 gText_JoinGroup[]; extern const u8 gText_Cool_2[]; @@ -848,16 +846,16 @@ extern const u8 gTradeText_Cancel[]; extern const u8 gTradeText_ChooseAPokemon[]; extern const u8 gTradeText_Summary[]; extern const u8 gTradeText_Trade[]; -extern const u8 gTradeText_CancelTrade[]; +extern const u8 gText_CancelTrade[]; extern const u8 gTradeText_PressBButtonToExit[]; -extern const u8 gUnknown_841E10A[]; -extern const u8 gUnknown_841E112[]; -extern const u8 gUnknown_841E118[]; -extern const u8 gUnknown_841E145[]; -extern const u8 gUnknown_841E16B[]; -extern const u8 gUnknown_8417094[]; -extern const u8 gUnknown_841E199[]; -extern const u8 gUnknown_841E1C5[]; +extern const u8 gText_TradeAction_Summary[]; +extern const u8 gText_TradeAction_Trade[]; +extern const u8 gText_Trade_CommunicationStandby[]; +extern const u8 gText_TradeHasBeenCanceled[]; +extern const u8 gText_Trade_OnlyPkmnForBattle[]; +extern const u8 gText_OnlyPkmnForBattle[]; +extern const u8 gText_WaitingForFriendToFinish[]; +extern const u8 gText_FriendWantsToTrade[]; extern const u8 gText_PkmnCantBeTradedNow[]; extern const u8 gText_EggCantBeTradedNow[]; extern const u8 gText_OtherTrainersPkmnCantBeTraded[]; @@ -938,7 +936,7 @@ extern const u8 gText_SoundStereo[]; extern const u8 gText_ButtonTypeHelp[]; extern const u8 gText_ButtonTypeLR[]; extern const u8 gText_ButtonTypeLEqualsA[]; -extern const u8 gText_MenuOption[]; +extern const u8 gText_Option[]; extern const u8 gText_FrameType[]; extern const u8 gTextJP_Type[]; extern const u8 gText_PickSwitchCancel[]; @@ -953,7 +951,7 @@ extern const u8 gText_PkmnStoppedEvolving[]; extern const u8 gText_ShopBuy[]; extern const u8 gText_ShopSell[]; extern const u8 gText_ShopQuit[]; -extern const u8 gText_CanIHelpWithAnythingElse[]; +extern const u8 gText_AnythingElseICanHelp[]; extern const u8 gText_QuitShopping[]; extern const u8 gText_PokedollarVar1[]; extern const u8 gText_YouDontHaveMoney[]; @@ -1133,10 +1131,10 @@ extern const u8 gText_Register2[]; extern const u8 gText_Exit[]; // wireless_communication_status_screen -extern const u8 gUnknown_841E2B4[]; -extern const u8 gUnknown_841E2BF[]; -extern const u8 gUnknown_841E2C9[]; -extern const u8 gUnknown_841E2D4[]; +extern const u8 gText_Dynamic0Players[]; +extern const u8 gText_Dynamic1Players[]; +extern const u8 gText_Dynamic2Players[]; +extern const u8 gText_Dynamic3Players[]; extern const u8 gText_WirelessCommunicationStatus[]; extern const u8 gText_PeopleTrading[]; extern const u8 gText_PeopleBattling[]; @@ -1192,7 +1190,7 @@ extern const u8 gText_BerryCrush_TimeUp[]; extern const u8 gText_BerryCrush_CommunicationStandby[]; extern const u8 gText_1_ClrBluShdwLtBlu_Dynamic0[]; extern const u8 gText_1_Dynamic0[]; -extern const u8 gText_SpaceTimes[]; +extern const u8 gText_SpaceTimes2[]; extern const u8 gText_XDotY[]; extern const u8 gText_StrVar1Berry[]; extern const u8 gText_TimeColon[]; @@ -1342,8 +1340,8 @@ extern const u8 gText_QuestLog_PokemonLeague[]; extern const u8 gText_QuestLog_CeruleanCave[]; // clear_save_data_screen -extern const u8 gUnknown_841B69E[]; -extern const u8 gUnknown_841B6B9[]; +extern const u8 gText_ClearAllSaveData[]; +extern const u8 gText_ClearingData[]; // easy_chat_2 extern const u8 gText_CombineFourWordsOrPhrases[]; @@ -1474,26 +1472,26 @@ extern const u8 gPCText_Machine[]; extern const u8 gPCText_Simple[]; // pokemon_special_anim -extern const u8 gUnknown_841B2ED[]; -extern const u8 gUnknown_841B2F1[]; -extern const u8 gUnknown_841B2FF[]; -extern const u8 gUnknown_841B285[]; -extern const u8 gUnknown_841B293[]; -extern const u8 gUnknown_841B295[]; -extern const u8 gUnknown_841B2A7[]; -extern const u8 gUnknown_841B32E[]; -extern const u8 gUnknown_841B306[]; -extern const u8 gUnknown_841B315[]; -extern const u8 gUnknown_841B31B[]; -extern const u8 gUnknown_841B329[]; -extern const u8 gUnknown_841B2A9[]; -extern const u8 gUnknown_841B2B7[]; -extern const u8 gUnknown_841B2BE[]; -extern const u8 gUnknown_841B2CC[]; -extern const u8 gUnknown_841B2D4[]; -extern const u8 gUnknown_841B2C6[]; -extern const u8 gUnknown_841B2E5[]; -extern const u8 gUnknown_841B2DC[]; +extern const u8 gText_Counting_1[]; +extern const u8 gText_Counting_2And[]; +extern const u8 gText_Poof[]; +extern const u8 gText_WasUsedOn[]; +extern const u8 gText_Period[]; +extern const u8 gText_LevelRoseTo[]; +extern const u8 gText_Period2[]; +extern const u8 gText_MonLearnedTMHM[]; +extern const u8 gText_MonForgotMove[]; +extern const u8 gText_And[]; +extern const u8 gText_MachineSet[]; +extern const u8 gText_Huh[]; +extern const u8 gText_LevelUp_MaxHP[]; +extern const u8 gText_LevelUp_Attack[]; +extern const u8 gText_LevelUp_Defense[]; +extern const u8 gText_LevelUp_SpAtk[]; +extern const u8 gText_LevelUp_SpDef[]; +extern const u8 gText_LevelUp_Speed[]; +extern const u8 gText_LevelUp_Minus[]; +extern const u8 gText_LevelUp_Plus[]; // field_player_avatar extern const u8 gText_PokemonOnHook[]; diff --git a/src/berry_crush.c b/src/berry_crush.c index 464e629c5..9c470146a 100644 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -932,7 +932,7 @@ static const struct DigitObjUtilTemplate sDigitObjTemplates[] = { }; static const u8 *const sBCRankingHeaders[] = { - [RESULTS_PAGE_PRESSES] = gText_SpaceTimes, + [RESULTS_PAGE_PRESSES] = gText_SpaceTimes2, [RESULTS_PAGE_RANDOM] = gText_XDotY, [RESULTS_PAGE_CRUSHING] = gText_StrVar1Berry, diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 576bc8d4f..5e5c95067 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -685,7 +685,7 @@ static void SetUpListMenuTemplate(void) static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId) { StringCopy(gStringVar4, gText_FontSize0); - StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringAppend(gStringVar4, gText_NumberClear01); ConvertIntToDecimalStringN(gStringVar1, itemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringAppend(gStringVar4, gStringVar1); CopyItemName(itemId, gStringVar1); diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 6a09328ce..460f9c4d6 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -106,7 +106,7 @@ static void Task_DrawClearSaveDataScreen(u8 taskId) break; case 4: DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF); - AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B69E); + AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gText_ClearAllSaveData); CopyWindowToVram(1, COPYWIN_GFX); break; case 5: @@ -138,7 +138,7 @@ static void Task_HandleYesNoMenu(u8 taskId) case 0: PlaySE(SE_SELECT); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9); + AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gText_ClearingData); CopyWindowToVram(1, COPYWIN_FULL); ClearSaveData(); break; diff --git a/src/diploma.c b/src/diploma.c index 21125d257..160540ccd 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -256,19 +256,19 @@ static void DiplomaPrintText(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); if (HasAllMons()) { - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841B68F); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gText_Diploma_National); } else { - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841B698); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gText_Diploma_Kanto); } FillWindowPixelBuffer(0, 0); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gUnknown_841B60E); + DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gText_Diploma_Player); width = GetStringWidth(FONT_2, arr, -1); AddTextPrinterParameterized3(0, FONT_2, 120 - (width / 2), 4, gUnknown_8415A04, -1, arr); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gUnknown_841B619); + DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gText_Diploma_ThisDocument); width = GetStringWidth(FONT_2, arr, -1); AddTextPrinterParameterized3(0, FONT_2, 120 - (width / 2), 0x1E, gUnknown_8415A04, -1, arr); - AddTextPrinterParameterized3(0, FONT_2, 120, 105, gUnknown_8415A04, 0, gUnknown_841B684); + AddTextPrinterParameterized3(0, FONT_2, 120, 105, gUnknown_8415A04, 0, gText_Diploma_GameFreak); PutWindowTilemap(0); } diff --git a/src/item.c b/src/item.c index 0df45cbd3..037993e1b 100644 --- a/src/item.c +++ b/src/item.c @@ -75,7 +75,7 @@ void CopyItemName(u16 itemId, u8 * dest) if (itemId == ITEM_ENIGMA_BERRY) { StringCopy(dest, GetBerryInfo(ITEM_TO_BERRY(ITEM_ENIGMA_BERRY))->name); - StringAppend(dest, gUnknown_84162BD); + StringAppend(dest, gText_Berry); } else { diff --git a/src/item_use.c b/src/item_use.c index 2ce7de755..1b9d0146a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -262,7 +262,7 @@ void FieldUseFunc_MachBike(u8 taskId) || MetatileBehavior_IsHorizontalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE) - DisplayItemMessageInCurrentContext(taskId, gTasks[taskId].data[3], FONT_2, gUnknown_8416451); + DisplayItemMessageInCurrentContext(taskId, gTasks[taskId].data[3], FONT_2, gText_CantDismountBike); else if (Overworld_IsBikingAllowed() == TRUE && !IsBikingDisallowedByPlayer()) { sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle; @@ -336,7 +336,7 @@ void ItemUseOutOfBattle_Itemfinder(u8 taskId) void FieldUseFunc_CoinCase(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetCoins(), STR_CONV_MODE_LEFT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gUnknown_8416537); + StringExpandPlaceholders(gStringVar4, gText_CoinCase); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, Task_ReturnToBagFromContextMenu); @@ -347,7 +347,7 @@ void FieldUseFunc_CoinCase(u8 taskId) void FieldUseFunc_PowderJar(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 5); - StringExpandPlaceholders(gStringVar4, gUnknown_8416644); + StringExpandPlaceholders(gStringVar4, gText_PowderQty); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, Task_ReturnToBagFromContextMenu); @@ -370,17 +370,16 @@ void FieldUseFunc_PokeFlute(u8 taskId) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_8416690, sub_80A1648); + DisplayItemMessageInBag(taskId, FONT_2, gText_PlayedPokeFlute, sub_80A1648); else - DisplayItemMessageOnField(taskId, FONT_2, gUnknown_8416690, sub_80A1648); + DisplayItemMessageOnField(taskId, FONT_2, gText_PlayedPokeFlute, sub_80A1648); } else { - // Now that's a catchy tune! if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_841665C, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_PlayedPokeFluteCatchy, Task_ReturnToBagFromContextMenu); else - DisplayItemMessageOnField(taskId, FONT_2, gUnknown_841665C, Task_ItemUse_CloseMessageBoxAndReturnToField); + DisplayItemMessageOnField(taskId, FONT_2, gText_PlayedPokeFluteCatchy, Task_ItemUse_CloseMessageBoxAndReturnToField); } } @@ -395,9 +394,9 @@ static void sub_80A1674(u8 taskId) if (WaitFanfare(FALSE)) { if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_PokeFluteAwakenedMon, Task_ReturnToBagFromContextMenu); else - DisplayItemMessageOnField(taskId, FONT_2, gUnknown_84166A7, Task_ItemUse_CloseMessageBoxAndReturnToField); + DisplayItemMessageOnField(taskId, FONT_2, gText_PokeFluteAwakenedMon, Task_ItemUse_CloseMessageBoxAndReturnToField); } } @@ -556,7 +555,7 @@ void FieldUseFunc_SuperRepel(u8 taskId) } else // An earlier repel is still in effect - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_841659E, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_RepelEffectsLingered, Task_ReturnToBagFromContextMenu); } static void sub_80A19E8(u8 taskId) @@ -576,7 +575,7 @@ static void sub_80A1A44(void) Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId)); PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId)); CopyItemName(gSpecialVar_ItemId, gStringVar2); - StringExpandPlaceholders(gStringVar4, gUnknown_841658C); + StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2); } void FieldUseFunc_BlackFlute(u8 taskId) @@ -587,7 +586,7 @@ void FieldUseFunc_BlackFlute(u8 taskId) FlagSet(FLAG_SYS_WHITE_FLUTE_ACTIVE); FlagClear(FLAG_SYS_BLACK_FLUTE_ACTIVE); CopyItemName(gSpecialVar_ItemId, gStringVar2); - StringExpandPlaceholders(gStringVar4, gUnknown_84165D2); + StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildLured); gTasks[taskId].func = sub_80A1B48; gTasks[taskId].data[8] = 0; } @@ -596,7 +595,7 @@ void FieldUseFunc_BlackFlute(u8 taskId) FlagSet(FLAG_SYS_BLACK_FLUTE_ACTIVE); FlagClear(FLAG_SYS_WHITE_FLUTE_ACTIVE); CopyItemName(gSpecialVar_ItemId, gStringVar2); - StringExpandPlaceholders(gStringVar4, gUnknown_8416600); + StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled); gTasks[taskId].func = sub_80A1B48; gTasks[taskId].data[8] = 0; } @@ -744,7 +743,7 @@ void BattleUseFunc_PokeBallEtc(u8 taskId) } else { - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_8416631, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_BoxFull, Task_ReturnToBagFromContextMenu); } } diff --git a/src/main_menu.c b/src/main_menu.c index 67ad7546e..bfec4a7ad 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -251,7 +251,7 @@ static void Task_SetWin0BldRegsAndCheckSaveFile(u8 taskId) case SAVE_STATUS_ERROR: SetStdFrame0OnBg(0); gTasks[taskId].tMenuType = MAIN_MENU_CONTINUE; - PrintSaveErrorStatus(taskId, gText_SaveFileCorruptedPrevWillBeLoaded); + PrintSaveErrorStatus(taskId, gText_SaveFileCorrupted); if (IsMysteryGiftEnabled() == TRUE) { gTasks[taskId].tMenuType = MAIN_MENU_MYSTERYGIFT; @@ -497,9 +497,9 @@ static void Task_MysteryGiftError(u8 taskId) case 0: FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); if (gTasks[taskId].tMGErrorType == 1) - PrintMessageOnWindow4(gText_WirelessAdapterIsNotConnected); + PrintMessageOnWindow4(gText_WirelessNotConnected); else - PrintMessageOnWindow4(gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached); + PrintMessageOnWindow4(gText_MysteryGiftCantUse); gTasks[taskId].tMGErrorMsgState++; break; case 1: diff --git a/src/menu.c b/src/menu.c index 3aedd0574..23f047ea1 100644 --- a/src/menu.c +++ b/src/menu.c @@ -534,7 +534,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 sYesNoWindowId = AddWindow(window); DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, 1, baseTileNum, paletteNum); - textSubPrinter.currentChar = gUnknown_841623D; + textSubPrinter.currentChar = gText_YesNo; textSubPrinter.windowId = sYesNoWindowId; textSubPrinter.fontId = fontId; textSubPrinter.x = GetMenuCursorDimensionByFont(fontId, 0) + left; diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index ab2e4fa9e..edcbdb722 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -247,7 +247,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) if (species == SPECIES_EGG) StringCopyN(gStringVar1, gText_EggNickname, POKEMON_NAME_LENGTH + 1); else - StringCopyN(gStringVar1, gStartMenuText_Pokemon, POKEMON_NAME_LENGTH + 1); + StringCopyN(gStringVar1, gText_MenuPokemon, POKEMON_NAME_LENGTH + 1); if (gPlayerPartyCount == PARTY_SIZE) { diff --git a/src/option_menu.c b/src/option_menu.c index 477178ada..6cbf9e18a 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -524,7 +524,7 @@ static void CloseAndSaveOptionMenu(u8 taskId) static void PrintOptionMenuHeader(void) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_2, gText_MenuOption, 8, 1, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_2, gText_Option, 8, 1, TEXT_SKIP_DRAW, NULL); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } diff --git a/src/party_menu.c b/src/party_menu.c index 8cc148d48..912c5184e 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1256,7 +1256,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) static void DisplayCancelChooseMonYesNo(u8 taskId) { PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); - StringExpandPlaceholders(gStringVar4, gUnknown_84176CF); + StringExpandPlaceholders(gStringVar4, gText_CancelBattle); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_CancelChooseMonYesNo; } @@ -1670,7 +1670,7 @@ static void BufferBagFullCantTakeItemMessage(u16 itemId) switch (ItemId_GetPocket(itemId)) { default: - string = gStartMenuText_Bag; + string = gText_MenuBag; break; case POCKET_TM_CASE: string = ItemId_GetName(ITEM_TM_CASE); @@ -2160,7 +2160,7 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf) { confirmWindowId = AddWindow(&sConfirmButtonWindowTemplate); FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0)); - AddTextPrinterParameterized4(confirmWindowId, FONT_0, (48 - GetStringWidth(FONT_0, gMenuText_Confirm, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gMenuText_Confirm); + AddTextPrinterParameterized4(confirmWindowId, FONT_0, (48 - GetStringWidth(FONT_0, gText_PartyMenu_OK, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gText_PartyMenu_OK); PutWindowTilemap(confirmWindowId); CopyWindowToVram(confirmWindowId, COPYWIN_GFX); cancelWindowId = AddWindow(&sMultiCancelButtonWindowTemplate); @@ -3789,12 +3789,12 @@ static void CursorCB_Enter(u8 taskId) if (gPartyMenu.unk_8_6 == 2) { maxBattlers = 2; - str = gUnknown_8416B3E; + str = gText_NoMoreThanTwoMayEnter; } else { maxBattlers = 3; - str = gUnknown_8416B16; + str = gText_NoMoreThanThreeMayEnter; } PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); @@ -4402,27 +4402,27 @@ static void GetMedicineItemEffectMessage(u16 item) StringExpandPlaceholders(gStringVar4, gText_PkmnBecameHealthy); break; case ITEM_EFFECT_HP_EV: - StringCopy(gStringVar2, gText_HP3); + StringCopy(gStringVar2, gText_ItemEffect_HP); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_ATK_EV: - StringCopy(gStringVar2, gText_Attack3); + StringCopy(gStringVar2, gText_ItemEffect_Attack); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_DEF_EV: - StringCopy(gStringVar2, gText_Defense3); + StringCopy(gStringVar2, gText_ItemEffect_Defense); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_SPEED_EV: - StringCopy(gStringVar2, gText_Speed2); + StringCopy(gStringVar2, gText_ItemEffect_Speed); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_SPATK_EV: - StringCopy(gStringVar2, gText_SpAtk3); + StringCopy(gStringVar2, gText_ItemEffect_SpAtk); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_SPDEF_EV: - StringCopy(gStringVar2, gText_SpDef3); + StringCopy(gStringVar2, gText_ItemEffect_SpDef); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_PP_UP: diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index 65d362e26..536f79bc9 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -92,9 +92,9 @@ static const struct WindowTemplate sWindowTemplates[] = { }; static const u8 *const s1_2_and_Poof_textPtrs[] = { - gUnknown_841B2ED, // 1, - gUnknown_841B2F1, // 2, and ‥ ‥ ‥ - gUnknown_841B2FF, // Poof! + gText_Counting_1, + gText_Counting_2And, + gText_Poof, }; static const u16 sUnref_84599A4[] = { @@ -394,49 +394,49 @@ void PSA_PrintMessage(u8 messageId) { case 0: // Item was used on Mon str = StringCopy(scene->textBuf, ItemId_GetName(itemId)); - str = StringCopy(str, gUnknown_841B285); + str = StringCopy(str, gText_WasUsedOn); GetMonData(pokemon, MON_DATA_NICKNAME, str); - StringAppend(scene->textBuf, gUnknown_841B293); + StringAppend(scene->textBuf, gText_Period); break; case 1: // Mon's level was elevated to level level = GetMonData(pokemon, MON_DATA_LEVEL); GetMonData(pokemon, MON_DATA_NICKNAME, scene->textBuf); - str = StringAppend(scene->textBuf, gUnknown_841B295); + str = StringAppend(scene->textBuf, gText_LevelRoseTo); if (level < MAX_LEVEL) level++; str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, level < MAX_LEVEL ? 2 : 3); - StringAppend(str, gUnknown_841B2A7); + StringAppend(str, gText_Period2); break; case 9: // Mon learned move DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PSA_GetMonNickname()); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, PSA_GetNameOfMoveToTeach()); - DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gUnknown_841B32E); + DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gText_MonLearnedTMHM); break; - case 4: // poof! - strWidth += GetStringWidth(FONT_2, gUnknown_841B2F1, -1); + case 4: + strWidth += GetStringWidth(FONT_2, gText_Counting_2And, -1); // fallthrough - case 3: // 2 and... - strWidth += GetStringWidth(FONT_2, gUnknown_841B2ED, -1); + case 3: + strWidth += GetStringWidth(FONT_2, gText_Counting_1, -1); // fallthrough case 2: // 1 StringCopy(scene->textBuf, s1_2_and_Poof_textPtrs[messageId - 2]); textSpeed = 1; break; - case 5: // Mon forgot move + case 5: DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PSA_GetMonNickname()); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, PSA_GetNameOfMoveForgotten()); - DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gUnknown_841B306); + DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gText_MonForgotMove); break; - case 6: // And... - StringCopy(scene->textBuf, gUnknown_841B315); + case 6: + StringCopy(scene->textBuf, gText_And); break; - case 7: // Machine set! - StringCopy(scene->textBuf, gUnknown_841B31B); + case 7: + StringCopy(scene->textBuf, gText_MachineSet); break; - case 8: // Huh? - StringCopy(scene->textBuf, gUnknown_841B329); + case 8: + StringCopy(scene->textBuf, gText_Huh); break; default: return; @@ -1482,12 +1482,12 @@ static void SpriteCB_LevelUpVertical(struct Sprite *sprite) // ======================================================== static const u8 *const sLevelUpWindowStatNames[] = { - gUnknown_841B2A9, - gUnknown_841B2B7, - gUnknown_841B2BE, - gUnknown_841B2CC, - gUnknown_841B2D4, - gUnknown_841B2C6 + gText_LevelUp_MaxHP, + gText_LevelUp_Attack, + gText_LevelUp_Defense, + gText_LevelUp_SpAtk, + gText_LevelUp_SpDef, + gText_LevelUp_Speed }; void DrawLevelUpWindowPg1(u16 windowId, u16 *beforeStats, u16 *afterStats, u8 bgColor, u8 fgColor, u8 shadowColor) @@ -1514,7 +1514,7 @@ void DrawLevelUpWindowPg1(u16 windowId, u16 *beforeStats, u16 *afterStats, u8 bg for (i = 0; i < 6; i++) { AddTextPrinterParameterized3(windowId, FONT_2, 0, i * 15, textColor, TEXT_SKIP_DRAW, sLevelUpWindowStatNames[i]); - StringCopy(textbuf, diffStats[i] >= 0 ? gUnknown_841B2DC : gUnknown_841B2E5); + StringCopy(textbuf, diffStats[i] >= 0 ? gText_LevelUp_Plus : gText_LevelUp_Minus); AddTextPrinterParameterized3(windowId, FONT_2, 56, i * 15, textColor, TEXT_SKIP_DRAW, textbuf); textbuf[0] = CHAR_SPACE; x = abs(diffStats[i]) < 10 ? 12 : 6; diff --git a/src/script_menu.c b/src/script_menu.c index f7f466f5b..2739ffc91 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -379,8 +379,8 @@ static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumCrush[] = { }; static const struct MenuAction sScriptMultiChoiceMenu_48[] = { - { gText_Dummy_8417E66 }, - { gText_Dummy_8417E67 }, + { gText_EmptyLinkService1 }, + { gText_EmptyLinkService2 }, { gOtherText_Exit } }; @@ -404,7 +404,7 @@ static const struct MenuAction sScriptMultiChoiceMenu_Mushrooms[] = { static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlankCrush[] = { { gText_TradeCenter }, { gText_Colosseum_2 }, - { gText_Dummy_8417E71 }, + { gText_RecordCorner }, { gText_BerryCrush }, { gOtherText_Exit } }; @@ -412,7 +412,7 @@ static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlankCrush[] static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlank[] = { { gText_TradeCenter }, { gText_Colosseum_2 }, - { gText_Dummy_8417E71 }, + { gText_RecordCorner }, { gOtherText_Exit } }; @@ -469,8 +469,8 @@ static const struct MenuAction sScriptMultiChoiceMenu_SeagallopVermilion[] = { }; static const struct MenuAction sScriptMultiChoiceMenu_62[] = { - { gText_Dummy_8417F68 }, - { gText_Dummy_8417F67 }, + { gText_Multichoice_Empty1 }, + { gText_Multichoice_Empty2 }, { gOtherText_Exit } }; diff --git a/src/shop.c b/src/shop.c index 1517080d3..51ee68ebe 100644 --- a/src/shop.c +++ b/src/shop.c @@ -338,7 +338,7 @@ static void Task_ReturnToShopMenu(u8 taskId) if (IsWeatherNotFadingIn() != TRUE) return; - DisplayItemMessageOnField(taskId, GetMartFontId(), gText_CanIHelpWithAnythingElse, ShowShopMenuAfterExitingBuyOrSellMenu); + DisplayItemMessageOnField(taskId, GetMartFontId(), gText_AnythingElseICanHelp, ShowShopMenuAfterExitingBuyOrSellMenu); } static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId) @@ -629,7 +629,7 @@ static void LoadTmHmNameInMart(s32 item) if (item != INDEX_CANCEL) { ConvertIntToDecimalStringN(gStringVar1, item - ITEM_DEVON_SCOPE, 2, 2); - StringCopy(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringCopy(gStringVar4, gText_NumberClear01); StringAppend(gStringVar4, gStringVar1); BuyMenuPrint(6, FONT_0, gStringVar4, 0, 0, 0, 0, TEXT_SKIP_DRAW, 1); StringCopy(gStringVar4, gMoveNames[ItemIdToBattleMoveId(item)]); diff --git a/src/start_menu.c b/src/start_menu.c index f81399cb3..0dc1fce93 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -113,15 +113,15 @@ static void CloseSaveStatsWindow(void); static void CloseStartMenu(void); static const struct MenuAction sStartMenuActionTable[] = { - { gStartMenuText_Pokedex, {.u8_void = StartMenuPokedexCallback} }, - { gStartMenuText_Pokemon, {.u8_void = StartMenuPokemonCallback} }, - { gStartMenuText_Bag, {.u8_void = StartMenuBagCallback} }, - { gStartMenuText_Player, {.u8_void = StartMenuPlayerCallback} }, - { gStartMenuText_Save, {.u8_void = StartMenuSaveCallback} }, - { gStartMenuText_Option, {.u8_void = StartMenuOptionCallback} }, - { gStartMenuText_Exit, {.u8_void = StartMenuExitCallback} }, - { gStartMenuText_Retire, {.u8_void = StartMenuSafariZoneRetireCallback} }, - { gStartMenuText_Player, {.u8_void = StartMenuLinkPlayerCallback} } + { gText_MenuPokedex, {.u8_void = StartMenuPokedexCallback} }, + { gText_MenuPokemon, {.u8_void = StartMenuPokemonCallback} }, + { gText_MenuBag, {.u8_void = StartMenuBagCallback} }, + { gText_MenuPlayer, {.u8_void = StartMenuPlayerCallback} }, + { gText_MenuSave, {.u8_void = StartMenuSaveCallback} }, + { gText_MenuOption, {.u8_void = StartMenuOptionCallback} }, + { gText_MenuExit, {.u8_void = StartMenuExitCallback} }, + { gText_MenuRetire, {.u8_void = StartMenuSafariZoneRetireCallback} }, + { gText_MenuPlayer, {.u8_void = StartMenuLinkPlayerCallback} } }; static const struct WindowTemplate sSafariZoneStatsWindowTemplate = { @@ -252,7 +252,7 @@ static void DrawSafariZoneStatsWindow(void) ConvertIntToDecimalStringN(gStringVar1, gSafariZoneStepCounter, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar2, 600, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar3, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); - StringExpandPlaceholders(gStringVar4, gUnknown_84162A9); + StringExpandPlaceholders(gStringVar4, gText_MenuSafariStats); AddTextPrinterParameterized(sSafariZoneStatsWindowId, FONT_2, gStringVar4, 4, 3, 0xFF, NULL); CopyWindowToVram(sSafariZoneStatsWindowId, COPYWIN_GFX); } diff --git a/src/strings.c b/src/strings.c index a9651340a..9ce0e031c 100644 --- a/src/strings.c +++ b/src/strings.c @@ -15,36 +15,36 @@ const u8 gExpandedPlaceholder_Groudon[] = _("GROUDON"); const u8 gExpandedPlaceholder_Red[] = _("RED"); const u8 gExpandedPlaceholder_Green[] = _("GREEN"); const u8 gText_EggNickname[] = _("EGG"); -const u8 gStartMenuText_Pokemon[] = _("POKéMON"); +const u8 gText_MenuPokemon[] = _("POKéMON"); const u8 gText_NewGame[] = _("NEW GAME"); const u8 gText_Continue[] = _("CONTINUE"); const u8 gTextJP_Options[] = _("ã›ã£ã¦ã„ã‚’ ã‹ãˆã‚‹"); const u8 gUnusedText_MysteryGift[] = _("MYSTERY GIFT"); const u8 gText_MysteryGift[] = _("MYSTERY GIFT"); -const u8 gText_WirelessAdapterIsNotConnected[] = _("The Wireless Adapter is not\nconnected."); -const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[] = _("MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached."); -const u8 gUnknown_8415B0E[] = _("ãŒã„ã¶ãƒ‡-ã‚¿ã«ã‚ˆã‚Š ãƒ¬ãƒ-トを ã“ã†ã—ã‚“ã—ã¾ã™\nã—ã°ã‚‰ã ãŠã¾ã¡ãã ã•ã„"); -const u8 gUnknown_8415B33[] = _("レãƒ-ト㌠ã“ã†ã—ã‚“ã•れã¾ã—ãŸ!"); -const u8 gUnknown_8415B44[] = _("レãƒ-ト㌠ã“ã†ã—ã‚“ã•れã¾ã—ãŸ!\pã“れã„ã˜ã‚‡ã†\nレãƒ-ト㌠ã‹ããれãªã„ã®ã§\lãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚«-トリッジを\lã“ã†ã‹ã‚“ã—ã¦ãã ã•ã„!\pãã‚ã—ãã¯\nã«ã‚“ã¦ã‚“ã©ã† サ-ビスセンタ- ã¾ã§\lãŠã¨ã„ã‚ã‚ã› ãã ã•ã„"); -const u8 gUnknown_8415BAA[] = _("レãƒ-ト㮠ã“ã†ã—ã‚“ã¯\nã—ã£ã±ã„ã—ã¾ã—ãŸ!\pãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚«-トリッジを\nã“ã†ã‹ã‚“ã—ã¦ãã ã•ã„!\pãã‚ã—ãã¯\nã«ã‚“ã¦ã‚“ã©ã† サ-ビスセンタ- ã¾ã§\lãŠã¨ã„ã‚ã‚ã› ãã ã•ã„"); -const u8 gText_SaveFileCorruptedPrevWillBeLoaded[] = _("The save file is corrupted.\pThe previous save file will be\nloaded."); +const u8 gText_WirelessNotConnected[] = _("The Wireless Adapter is not\nconnected."); +const u8 gText_MysteryGiftCantUse[] = _("MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached."); +const u8 gText_UpdatingSaveExternalData[] = _("ãŒã„ã¶ãƒ‡-ã‚¿ã«ã‚ˆã‚Š ãƒ¬ãƒ-トを ã“ã†ã—ã‚“ã—ã¾ã™\nã—ã°ã‚‰ã ãŠã¾ã¡ãã ã•ã„"); +const u8 gText_SaveFileUpdated[] = _("レãƒ-ト㌠ã“ã†ã—ã‚“ã•れã¾ã—ãŸ!"); +const u8 gText_SaveFileUpdatedSwapBackup[] = _("レãƒ-ト㌠ã“ã†ã—ã‚“ã•れã¾ã—ãŸ!\pã“れã„ã˜ã‚‡ã†\nレãƒ-ト㌠ã‹ããれãªã„ã®ã§\lãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚«-トリッジを\lã“ã†ã‹ã‚“ã—ã¦ãã ã•ã„!\pãã‚ã—ãã¯\nã«ã‚“ã¦ã‚“ã©ã† サ-ビスセンタ- ã¾ã§\lãŠã¨ã„ã‚ã‚ã› ãã ã•ã„"); +const u8 gText_FailedUpdateSwapBackup[] = _("レãƒ-ト㮠ã“ã†ã—ã‚“ã¯\nã—ã£ã±ã„ã—ã¾ã—ãŸ!\pãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚«-トリッジを\nã“ã†ã‹ã‚“ã—ã¦ãã ã•ã„!\pãã‚ã—ãã¯\nã«ã‚“ã¦ã‚“ã©ã† サ-ビスセンタ- ã¾ã§\lãŠã¨ã„ã‚ã‚ã› ãã ã•ã„"); +const u8 gText_SaveFileCorrupted[] = _("The save file is corrupted.\pThe previous save file will be\nloaded."); const u8 gText_SaveFileHasBeenDeleted[] = _("The save file has been\ndeleted..."); const u8 gText_1MSubCircuitBoardNotInstalled[] = _("The 1M sub-circuit board is\nnot installed."); const u8 gTextJP_InternalBatteryHasRunDry[] = _("ã§ã‚“ã¡ãŽã‚Œã® ãŸã‚ã«\nã¨ã‘ã„㌠ã†ã”ã‹ãªããªã‚Šã¾ã—ãŸ\pã¨ã‘ã„ã« ã‹ã‚“ã‘ã„ã™ã‚‹ ã§ãã”ã¨ã¯ ãŠãã¾ã›ã‚“ãŒ\nゲ-ムを ã¤ã¥ã‘㦠ã‚ãã¶ã“ã¨ã¯ ã§ãã¾ã™"); -const u8 gUnknown_8415CD9[] = _("ã—ã‚…ã˜ã‚“ã“ã†"); -const u8 gUnknown_8415CE0[] = _("ãƒã‚±ãƒ¢ãƒ³ãšã‹ã‚“"); +const u8 gText_PlayerUnused[] = _("ã—ã‚…ã˜ã‚“ã“ã†"); +const u8 gText_PokedexUnused[] = _("ãƒã‚±ãƒ¢ãƒ³ãšã‹ã‚“"); const u8 gText_MainMenuTime[] = _("TIME"); -const u8 gUnknown_8415CED[] = _("ã‚‚ã£ã¦ã„ã‚‹ãƒãƒƒã‚¸"); -const u8 gUnknown_8415CF6[] = _("Aボタン"); -const u8 gUnknown_8415CFB[] = _("Bボタン"); -const u8 gUnknown_8415D00[] = _("Rボタン"); -const u8 gUnknown_8415D05[] = _("Lボタン"); -const u8 gUnknown_8415D0A[] = _("スタ-トボタン"); -const u8 gUnknown_8415D12[] = _("セレクトボタン"); -const u8 gUnknown_8415D1A[] = _("ã˜ã‚…ã†ã˜ãƒœã‚¿ãƒ³"); -const u8 gUnknown_8415D22[] = _("Lボタン Rボタン"); +const u8 gText_BadgesUnused[] = _("ã‚‚ã£ã¦ã„ã‚‹ãƒãƒƒã‚¸"); +const u8 gText_AButton[] = _("Aボタン"); +const u8 gText_BButton[] = _("Bボタン"); +const u8 gText_RButton[] = _("Rボタン"); +const u8 gText_LButton[] = _("Lボタン"); +const u8 gText_Start[] = _("スタ-トボタン"); +const u8 gText_Select[] = _("セレクトボタン"); +const u8 gText_ControlPad[] = _("ã˜ã‚…ã†ã˜ãƒœã‚¿ãƒ³"); +const u8 gText_LButtonRButton[] = _("Lボタン Rボタン"); const u8 gText_Controls[] = _("CONTROLS"); -ALIGNED(4) const u8 gUnknown_8415D38[] = _("{DPAD_UPDOWN}ãˆã‚‰ã¶ {A_BUTTON}ã‘ã£ã¦ã„"); +ALIGNED(4) const u8 gText_PickOk[] = _("{DPAD_UPDOWN}ãˆã‚‰ã¶ {A_BUTTON}ã‘ã£ã¦ã„"); ALIGNED(4) const u8 gText_ABUTTONNext[] = _("{A_BUTTON}NEXT"); ALIGNED(4) const u8 gText_ABUTTONNext_BBUTTONBack[] = _("{A_BUTTON}NEXT {B_BUTTON}BACK"); ALIGNED(4) const u8 gText_UPDOWNPick_ABUTTONNext_BBUTTONBack[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}NEXT {B_BUTTON}CANCEL"); @@ -101,8 +101,8 @@ const u8 gText_AreaUnknown[] = _("AREA UNKNOWN"); const u8 gText_PokedexNo[] = _("{NO}"); const u8 gText_Page[] = _("PAGE"); ALIGNED(4) const u8 gText_WelcomeToHOF[] = _("Welcome to the HALL OF FAME!"); -ALIGNED(4) const u8 gUnknown_8416028[] = _("ã¿ã¤ã‘㟠ãƒã‚±ãƒ¢ãƒ³ {STR_VAR_1}!\nã¤ã‹ã¾ãˆãŸ ãƒã‚±ãƒ¢ãƒ³ {STR_VAR_2}!\pオダマキã¯ã‹ã›ã®\nãƒã‚±ãƒ¢ãƒ³ãšã‹ã‚“ ã²ã‚‡ã†ã‹!\pオダマキ“ã©ã‚Œã©ã‚Œ\p"); -ALIGNED(4) const u8 gUnknown_8416068[] = _("ã“ã“ã¾ã§ã® レãƒ-トを ã‹ãã—ã‚‹ã—ã¦ã„ã¾ã™!\nã§ã‚“ã’ã‚“ã‚’ ãらãªã„ã§ãã ã•ã„"); +ALIGNED(4) const u8 gText_HOFDexRating[] = _("ã¿ã¤ã‘㟠ãƒã‚±ãƒ¢ãƒ³ {STR_VAR_1}!\nã¤ã‹ã¾ãˆãŸ ãƒã‚±ãƒ¢ãƒ³ {STR_VAR_2}!\pオダマキã¯ã‹ã›ã®\nãƒã‚±ãƒ¢ãƒ³ãšã‹ã‚“ ã²ã‚‡ã†ã‹!\pオダマキ“ã©ã‚Œã©ã‚Œ\p"); +ALIGNED(4) const u8 gText_HOFDexSaving[] = _("ã“ã“ã¾ã§ã® レãƒ-トを ã‹ãã—ã‚‹ã—ã¦ã„ã¾ã™!\nã§ã‚“ã’ã‚“ã‚’ ãらãªã„ã§ãã ã•ã„"); ALIGNED(4) const u8 gText_HOFCorrupted[] = _("The HALL OF FAME data is\ncorrupted."); const u8 gText_HOFNumber[] = _("HALL OF FAME No. {STR_VAR_1}"); const u8 gText_LeagueChamp[] = _("LEAGUE CHAMPION!\nCONGRATULATIONS!"); @@ -110,25 +110,25 @@ ALIGNED(4) const u8 gText_Number[] = _("No. "); ALIGNED(4) const u8 gText_Level[] = _("Lv. "); ALIGNED(4) const u8 gText_Name[] = _("NAME"); ALIGNED(4) const u8 gText_IDNumber[] = _("IDNo."); -const u8 gUnknown_841610A[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}オダマキã¯ã‹ã›ãŒ ピンãƒã !\nãƒã‚±ãƒ¢ãƒ³ã‚’ ã ã—㦠ãŸã™ã‘ã¦ã‚ã’よã†!"); -const u8 gUnknown_8416133[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}ã“ã®ãƒã‚±ãƒ¢ãƒ³ã«ã—ã¾ã™ã‹?"); -const u8 gUnknown_8416146[] = _("ãƒã‚±ãƒ¢ãƒ³"); +const u8 gText_BirchInTrouble[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}オダマキã¯ã‹ã›ãŒ ピンãƒã !\nãƒã‚±ãƒ¢ãƒ³ã‚’ ã ã—㦠ãŸã™ã‘ã¦ã‚ã’よã†!"); +const u8 gText_ConfirmStarterChoice[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}ã“ã®ãƒã‚±ãƒ¢ãƒ³ã«ã—ã¾ã™ã‹?"); +const u8 gText_Pokemon4[] = _("ãƒã‚±ãƒ¢ãƒ³"); const u8 gText_SaveError_PleaseExchangeBackupMemory[] = _("Save error.\pPlease exchange the\nbackup memory."); const u8 gSaveStatName_Player[] = _("PLAYER"); const u8 gSaveStatName_Badges[] = _("BADGES"); const u8 gSaveStatName_Pokedex[] = _("POKéDEX"); const u8 gSaveStatName_Time[] = _("TIME"); -const u8 gUnknown_8416195[] = _("ã©ã“㸠ã¨ã³ã¾ã™ã‹?"); +const u8 gText_FlyToWhere[] = _("ã©ã“㸠ã¨ã³ã¾ã™ã‹?"); const u8 gOtherText_Use[] = _("USE"); const u8 gOtherText_Toss[] = _("TOSS"); const u8 gOtherText_Register[] = _("REGISTER"); const u8 gOtherText_Give[] = _("GIVE"); -const u8 gUnknown_84161B7[] = _("ã‘ã£ã¦ã„"); +const u8 gMenuText_Confirm[] = _("ã‘ã£ã¦ã„"); const u8 gOtherText_Walk[] = _("WALK"); const u8 gFameCheckerText_Cancel[] = _("CANCEL"); const u8 gOtherText_Exit[] = _("EXIT"); const u8 gString_Dummy[] = _(""); -const u8 gUnknown_84161CE[] = _("キャンセル"); +const u8 gText_Cancel7[] = _("キャンセル"); const u8 gText_Item[] = _("ITEM"); const u8 gText_Mail[] = _("MAIL"); const u8 gText_Take[] = _("TAKE"); @@ -138,7 +138,7 @@ const u8 gText_PokeSum_Item_None[] = _("NONE"); const u8 gOtherText_Open[] = _("OPEN"); const u8 gOtherText_Deselect[] = _("DESELECT"); const u8 gText_PokeSum_DexNoUnknown[] = _("???"); -const u8 gUnknown_8416206[] = _("?????"); +const u8 gText_FiveMarks[] = _("?????"); const u8 gText_Slash[] = _("/"); const u8 gText_PokeSum_OneHyphen[] = _("-"); const u8 gText_PokeSum_TwoHyphens[] = _("--"); @@ -147,26 +147,26 @@ const u8 gText_SevenHyphens[] = _("-------"); const u8 gText_MaleSymbol[] = _("♂"); const u8 gText_FemaleSymbol[] = _("♀"); const u8 gText_Lv[] = _("{LV_2}"); -const u8 gOtherText_UnkF9_08_Clear_01[] = _("{NO}{CLEAR 0x01}"); -const u8 gUnknown_841622C[] = _("{PLUS}"); -const u8 gUnknown_841622F[] = _("{ESCAPE 0x03}"); -const u8 gUnknown_8416233[] = _("{ID}{NO}"); +const u8 gText_NumberClear01[] = _("{NO}{CLEAR 0x01}"); +const u8 gText_Plus[] = _("{PLUS}"); +const u8 gText_Escape3[] = _("{ESCAPE 0x03}"); // Unused, RIGHT_ARROW in pokeemerald +const u8 gText_IDNumber2[] = _("{ID}{NO}"); const u8 gText_PokeSum_PP[] = _("{PP}"); const u8 gText_SelectorArrow2[] = _("â–¶"); -const u8 gUnknown_841623D[] = _("YES\nNO"); +const u8 gText_YesNo[] = _("YES\nNO"); const u8 gText_GoBackToThePreviousMenu[] = _("Go back to the\nprevious menu."); const u8 gText_WhatWouldYouLikeToDo[] = _("What would you like to do?"); -const u8 gStartMenuText_Pokedex[] = _("POKéDEX"); -const u8 gStartMenuText_Bag[] = _("BAG"); -const u8 gUnknown_8416289[] = _("ãƒã‚±ãƒŠãƒ“"); -const u8 gStartMenuText_Player[] = _("{PLAYER}"); -const u8 gStartMenuText_Save[] = _("SAVE"); -const u8 gStartMenuText_Option[] = _("OPTION"); -const u8 gStartMenuText_Exit[] = _("EXIT"); -const u8 gStartMenuText_Retire[] = _("RETIRE"); -const u8 gUnknown_84162A9[] = _("{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}"); +const u8 gText_MenuPokedex[] = _("POKéDEX"); +const u8 gText_MenuBag[] = _("BAG"); +const u8 gText_MenuPokenav[] = _("ãƒã‚±ãƒŠãƒ“"); +const u8 gText_MenuPlayer[] = _("{PLAYER}"); +const u8 gText_MenuSave[] = _("SAVE"); +const u8 gText_MenuOption[] = _("OPTION"); +const u8 gText_MenuExit[] = _("EXIT"); +const u8 gText_MenuRetire[] = _("RETIRE"); +const u8 gText_MenuSafariStats[] = _("{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}"); const u8 gText_TimesStrVar1[] = _("×{STR_VAR_1}"); -const u8 gUnknown_84162BD[] = _(" BERRY"); +const u8 gText_Berry[] = _(" BERRY"); const u8 gText_Coins[] = _("{STR_VAR_1} COINS"); const u8 gText_Items2[] = _("ITEMS"); const u8 gText_PokeBalls2[] = _("POKé BALLS"); @@ -186,30 +186,30 @@ const u8 gText_TossOutHowManyStrVar1s[] = _("Toss out how many\n{STR_VAR_1}(s)?" const u8 gText_ThrewAwayStrVar2StrVar1s[] = _("Threw away {STR_VAR_2}\n{STR_VAR_1}(s)."); const u8 gText_ThrowAwayStrVar2OfThisItemQM[] = _("Throw away {STR_VAR_2} of\nthis item?"); const u8 gText_OakForbidsUseOfItemHere[] = _("OAK: {PLAYER}!\nThis isn't the time to use that!{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416451[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantDismountBike[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); const u8 gText_ItemfinderResponding[] = _("Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}"); const u8 gText_ItemfinderShakingWildly[] = _("Oh!\nThe ITEMFINDER's shaking wildly!\pThere's an item buried underfoot!\p‥ ‥ ‥ ‥ ‥ ‥{PAUSE_UNTIL_PRESS}"); const u8 gText_NopeTheresNoResponse[] = _("‥ ‥ ‥ ‥Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416537[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416548[] = _("ã‚ã–マシンを ãã©ã†ã—ãŸ!"); -const u8 gUnknown_8416556[] = _("ã²ã§ã‚“マシンを ãã©ã†ã—ãŸ!"); -const u8 gUnknown_8416565[] = _("ãªã‹ã«ã¯ {STR_VAR_1}ãŒ\nãã‚ãã•れã¦ã„ãŸ!\p{STR_VAR_1}ã‚’\nãƒã‚±ãƒ¢ãƒ³ã« ãŠã¼ãˆã•ã›ã¾ã™ã‹?"); -const u8 gUnknown_841658C[] = _("{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_841659E[] = _("But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_84165D2[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416600[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416631[] = _("The BOX is full.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416644[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}"); +const u8 gText_CoinCase[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); +const u8 gText_BootedUpTM[] = _("ã‚ã–マシンを ãã©ã†ã—ãŸ!"); +const u8 gText_BootedUpHM[] = _("ã²ã§ã‚“マシンを ãã©ã†ã—ãŸ!"); +const u8 gText_TMHMContainedVar1[] = _("ãªã‹ã«ã¯ {STR_VAR_1}ãŒ\nãã‚ãã•れã¦ã„ãŸ!\p{STR_VAR_1}ã‚’\nãƒã‚±ãƒ¢ãƒ³ã« ãŠã¼ãˆã•ã›ã¾ã™ã‹?"); +const u8 gText_PlayerUsedVar2[] = _("{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); +const u8 gText_RepelEffectsLingered[] = _("But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}"); +const u8 gText_UsedVar2WildLured[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}"); +const u8 gText_UsedVar2WildRepelled[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}"); +const u8 gText_BoxFull[] = _("The BOX is full.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PowderQty[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_Powder[] = _("POWDER"); -const u8 gUnknown_841665C[] = _("Played the POKé FLUTE.\pNow, that's a catchy tune!{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416690[] = _("Played the POKé FLUTE."); -const u8 gUnknown_84166A7[] = _("The POKé FLUTE awakened sleeping\nPOKéMON.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PlayedPokeFluteCatchy[] = _("Played the POKé FLUTE.\pNow, that's a catchy tune!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PlayedPokeFlute[] = _("Played the POKé FLUTE."); +const u8 gText_PokeFluteAwakenedMon[] = _("The POKé FLUTE awakened sleeping\nPOKéMON.{PAUSE_UNTIL_PRESS}"); const u8 gText_TMCase[] = _("TM CASE"); const u8 gText_Close[] = _("CLOSE"); const u8 gText_TMCaseWillBePutAway[] = _("The TM CASE will be\nput away."); const u8 gText_FontSize0[] = _("{FONT_0}"); const u8 gText_FontSize2[] = _("{FONT_2}"); -const u8 gUnknown_8416707[] = _(" "); +const u8 gText_EmptySpace[] = _(" "); const u8 gText_BerryPouch[] = _("BERRY POUCH"); const u8 gText_TheBerryPouchWillBePutAway[] = _("The BERRY POUCH will be\nput away."); const u8 gText_ShopBuy[] = _("BUY"); @@ -219,17 +219,17 @@ const u8 gText_InBagVar1[] = _("IN BAG:{FONT_0} {STR_VAR_1}"); const u8 gText_QuitShopping[] = _("Quit shopping."); const u8 gText_Var1CertainlyHowMany[] = _("{STR_VAR_1}? Certainly.\nHow many would you like?"); const u8 gText_Var1AndYouWantedVar2[] = _("{STR_VAR_1}, and you want {STR_VAR_2}.\nThat will be Â¥{STR_VAR_3}. Okay?"); -const u8 gUnknown_84167BB[] = _("{STR_VAR_1} ã ã­!\n{STR_VAR_2}Â¥ ã ã‘ã© ã‹ã†ã‹ã„?"); -const u8 gUnknown_84167D0[] = _("{STR_VAR_1} ã§ã™ã­!\n{STR_VAR_2}Â¥ ã ã‘ã© ã‹ã„ã¾ã™ã‹?"); +const u8 gText_Var1IsItThatllBeVar2[] = _("{STR_VAR_1} ã ã­!\n{STR_VAR_2}Â¥ ã ã‘ã© ã‹ã†ã‹ã„?"); +const u8 gText_YouWantedVar1ThatllBeVar2[] = _("{STR_VAR_1} ã§ã™ã­!\n{STR_VAR_2}Â¥ ã ã‘ã© ã‹ã„ã¾ã™ã‹?"); const u8 gText_HereYouGoThankYou[] = _("Here you are!\nThank you!"); -const u8 gUnknown_8416800[] = _("ã©ã†ã‚‚ ã‚りãŒã¨ã†!\nã˜ãŸã㮠パソコン㫠ãŠãã£ã¦ ãŠãã¾ã™ã­!"); -const u8 gUnknown_8416822[] = _("ã©ã†ã‚‚ ã‚りãŒã¨ã†!\nã˜ãŸã㮠パソコン㫠ãŠãã£ã¦ ãŠãã­!"); +const u8 gText_ThankYouIllSendItHome[] = _("ã©ã†ã‚‚ ã‚りãŒã¨ã†!\nã˜ãŸã㮠パソコン㫠ãŠãã£ã¦ ãŠãã¾ã™ã­!"); +const u8 gText_ThanksIllSendItHome[] = _("ã©ã†ã‚‚ ã‚りãŒã¨ã†!\nã˜ãŸã㮠パソコン㫠ãŠãã£ã¦ ãŠãã­!"); const u8 gText_YouDontHaveMoney[] = _("You don't have enough money.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoMoreRoomForThis[] = _("You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416888[] = _("{STR_VAR_1}ã‚’\nã„れる ã°ã—ょ㌠ã„ã£ã±ã„ã§ã™{PAUSE_UNTIL_PRESS}"); -const u8 gText_CanIHelpWithAnythingElse[] = _("Is there anything else I can do?"); -const u8 gUnknown_84168BF[] = _("ãã® ã»ã‹ã«\nãªã«ã‹ ã¡ã‹ã‚‰ã« ãªã‚Œã‚‹ã“ã¨ã¯?"); -const u8 gUnknown_84168D7[] = _("プレミアボ-ル 1コ\nãŠã¾ã‘ ã—ã¦ãŠãã¾ã™ã­!{PAUSE_UNTIL_PRESS}"); +const u8 gText_SpaceForVar1Full[] = _("{STR_VAR_1}ã‚’\nã„れる ã°ã—ょ㌠ã„ã£ã±ã„ã§ã™{PAUSE_UNTIL_PRESS}"); +const u8 gText_AnythingElseICanHelp[] = _("Is there anything else I can do?"); +const u8 gText_CanIHelpWithAnythingElse[] = _("ãã® ã»ã‹ã«\nãªã«ã‹ ã¡ã‹ã‚‰ã« ãªã‚Œã‚‹ã“ã¨ã¯?"); +const u8 gText_ThrowInPremierBall[] = _("プレミアボ-ル 1コ\nãŠã¾ã‘ ã—ã¦ãŠãã¾ã™ã­!{PAUSE_UNTIL_PRESS}"); const u8 gText_OhNoICantBuyThat[] = _("{STR_VAR_1}? Oh, no.\nI can't buy that.{PAUSE_UNTIL_PRESS}"); const u8 gText_HowManyWouldYouLikeToSell[] = _("{STR_VAR_1}?\nHow many would you like to sell?"); const u8 gText_ICanPayThisMuch_WouldThatBeOkay[] = _("I can pay Â¥{STR_VAR_3}.\nWould that be okay?"); @@ -239,17 +239,17 @@ const u8 gText_Shift[] = _("SHIFT"); const u8 gText_SendOut[] = _("SEND OUT"); const u8 gText_Switch2[] = _("SWITCH"); const u8 gText_Summary5[] = _("SUMMARY"); -const u8 gUnknown_841699C[] = _("ã¤ã‹ãˆã‚‹ã‚ã–"); +const u8 gText_Moves[] = _("ã¤ã‹ãˆã‚‹ã‚ã–"); const u8 gText_Enter[] = _("ENTER"); const u8 gText_NoEntry[] = _("NO ENTRY"); const u8 gText_Take2[] = _("TAKE"); const u8 gText_Read2[] = _("READ"); const u8 gText_Trade4[] = _("TRADE"); -const u8 gText_HP3[] = _("HP"); -const u8 gText_SpAtk3[] = _("SP. ATK"); -const u8 gText_SpDef3[] = _("SP. DEF"); -const u8 gMenuText_Confirm[] = _("OK"); -const u8 gUnknown_84169D8[] = _(""); +const u8 gText_ItemEffect_HP[] = _("HP"); +const u8 gText_ItemEffect_SpAtk[] = _("SP. ATK"); +const u8 gText_ItemEffect_SpDef[] = _("SP. DEF"); +const u8 gText_PartyMenu_OK[] = _("OK"); +const u8 gText_Empty[] = _(""); const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}"); const u8 gText_WontHaveEffect[] = _("It won't have any effect.{PAUSE_UNTIL_PRESS}"); const u8 gText_CantBeUsedOnPkmn[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); @@ -260,8 +260,8 @@ const u8 gText_PkmnHasNoEnergy[] = _("{STR_VAR_1} has no energy\nleft to battle! const u8 gText_CantSwitchWithAlly[] = _("You can't switch {STR_VAR_1}'s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}"); const u8 gText_EggCantBattle[] = _("An EGG can't battle!{PAUSE_UNTIL_PRESS}"); const u8 gText_CantUseUntilNewBadge[] = _("This can't be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416B16[] = _("No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416B3E[] = _("No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NoMoreThanThreeMayEnter[] = _("No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NoMoreThanTwoMayEnter[] = _("No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); const u8 gText_SendMailToPC[] = _("Send the removed MAIL to\nyour PC?"); const u8 gText_MailSentToPC[] = _("The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}"); const u8 gText_PCMailboxFull[] = _("Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS}"); @@ -291,14 +291,14 @@ const u8 gText_PkmnWokeUp2[] = _("{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnBurnHealed[] = _("{STR_VAR_1}'s burn was healed.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnThawedOut[] = _("{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}"); const u8 gText_PPWasRestored[] = _("PP was restored.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416FDA[] = _("{STR_VAR_1}ã¯\nã’ã‚“ãã‚’ ã¨ã‚Šã‚‚ã©ã—ãŸ!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnRegainhedHealth[] = _("{STR_VAR_1}ã¯\nã’ã‚“ãã‚’ ã¨ã‚Šã‚‚ã©ã—ãŸ!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnBecameHealthy[] = _("{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}"); const u8 gText_MovesPPIncreased[] = _("{STR_VAR_1}'s PP increased.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnElevatedToLvVar2[] = _("{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}."); const u8 gText_PkmnBaseVar2StatIncreased[] = _("{STR_VAR_1}'s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnSnappedOutOfConfusion[] = _("{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnGotOverInfatuation[] = _("{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8417094[] = _("That's your only\nPOKéMON for battle."); +const u8 gText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle."); ALIGNED(4) const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can't be traded\nnow."); ALIGNED(4) const u8 gText_EggCantBeTradedNow[] = _("An EGG can't be traded now."); ALIGNED(4) const u8 gText_OtherTrainersPkmnCantBeTraded[] = _("The other TRAINER's POKéMON\ncan't be traded now."); @@ -351,33 +351,33 @@ const u8 gText_MoveHeavyBoulders[] = _("Move heavy boulders."); const u8 gText_LightUpDarkness[] = _("Light up darkness."); const u8 gText_ShatterACrackedRock[] = _("Shatter a cracked rock."); const u8 gText_ClimbAWaterfall[] = _("Climb a waterfall."); -const u8 gUnknown_84175C1[] = _("ã™ã„ã¡ã‚…ã†ã« ã‚‚ãã‚‹"); +const u8 gText_DiveUnderwater[] = _("ã™ã„ã¡ã‚…ã†ã« ã‚‚ãã‚‹"); const u8 gText_EscapeFromHere[] = _("Escape from here."); const u8 gText_LureWildPokemon[] = _("Lure wild POKéMON."); const u8 gText_ShareHp[] = _("Share HP."); const u8 gText_ReturnToAHealingSpot[] = _("Return to a healing spot."); const u8 gText_EscapeFromHereAndReturnTo[] = _("Want to escape from here and return\nto {STR_VAR_1}?"); const u8 gText_ReturnToHealingSpot[] = _("Want to return to the healing spot\nused last in {STR_VAR_1}?"); -const u8 gText_Attack3[] = _("ATTACK"); -const u8 gText_Defense3[] = _("DEFENSE"); -const u8 gUnknown_8417683[] = _("ã¨ãã“ã†"); -const u8 gUnknown_8417688[] = _("ã¨ãã¼ã†"); -const u8 gText_Speed2[] = _("SPEED"); -const u8 gUnknown_8417693[] = _("HP"); +const u8 gText_ItemEffect_Attack[] = _("ATTACK"); +const u8 gText_ItemEffect_Defense[] = _("DEFENSE"); +const u8 gText_ItemEffect_SpAtk_Unused[] = _("ã¨ãã“ã†"); // A different SpAtk is used instead +const u8 gText_ItemEffect_SpDef_Unused[] = _("ã¨ãã¼ã†"); // A different SpDef is used instead +const u8 gText_ItemEffect_Speed[] = _("SPEED"); +const u8 gText_ItemEffect_HP_Unused[] = _("HP"); // A different HP is used instead const u8 gText_PkmnCantParticipate[] = _("That POKéMON can't participate.{PAUSE_UNTIL_PRESS}"); const u8 gText_CancelParticipation[] = _("Cancel participation?"); -const u8 gUnknown_84176CE[] = _(""); -const u8 gUnknown_84176CF[] = _("Cancel the battle?"); +const u8 gText_Empty12[] = _(""); +const u8 gText_CancelBattle[] = _("Cancel the battle?"); const u8 gText_TurnOff[] = _("TURN OFF"); -const u8 gUnknown_84176EB[] = _("もよã†ãŒãˆ"); +const u8 gText_Decoration[] = _("もよã†ãŒãˆ"); const u8 gText_ItemStorage[] = _("ITEM STORAGE"); const u8 gText_Mailbox[] = _("MAILBOX"); const u8 gText_DepositItem2[] = _("DEPOSIT ITEM"); const u8 gText_WithdrawItem2[] = _("WITHDRAW ITEM"); -const u8 gUnknown_8417721[] = _("ã©ã†ãã‚’ ã™ã¦ã‚‹"); +const u8 gText_TossItem[] = _("ã©ã†ãã‚’ ã™ã¦ã‚‹"); const u8 gText_StoreItemsInThePC[] = _("Store items in the PC."); const u8 gText_TakeOutItemsFromThePC[] = _("Take out items from the PC."); -const u8 gUnknown_841775D[] = _("パソコン㫠ã‚ãšã‘ã¦ã„ã‚‹\nã©ã†ãã‚’ ã™ã¦ã¾ã™"); +const u8 gText_ThrowAwayItemsInPC[] = _("パソコン㫠ã‚ãšã‘ã¦ã„ã‚‹\nã©ã†ãã‚’ ã™ã¦ã¾ã™"); const u8 gText_ThereAreNoItems[] = _("There are no items.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoMoreRoomInBag[] = _("There is no more\nroom in the BAG."); const u8 gText_WithdrawHowMany[] = _("Withdraw how many\n{STR_VAR_1}(s)?"); @@ -395,7 +395,7 @@ const u8 gText_Withdraw[] = _("WITHDRAW"); const u8 gText_ReturnToPC[] = _("Return to the PC."); const u8 gText_LtSurge[] = _("LT. SURGE"); const u8 gText_Koga[] = _("KOGA"); -const u8 gUnknown_84178DF[] = _("ã•ã‚“ã‹ ã™ã‚‹"); +const u8 gText_Participate[] = _("ã•ã‚“ã‹ ã™ã‚‹"); const u8 gText_Info[] = _("INFO"); const u8 gText_Eggs[] = _("EGGS"); const u8 gText_HallOfFame[] = _("HALL OF FAME"); @@ -406,14 +406,14 @@ const u8 gText_Par[] = _("PAR"); const u8 gText_Slp[] = _("SLP"); const u8 gText_Brn[] = _("BRN"); const u8 gText_Frz[] = _("FRZ"); -const u8 gUnknown_8417920[] = _("TOXIC"); -const u8 gUnknown_8417926[] = _("OK"); +const u8 gText_Toxic[] = _("TOXIC"); +const u8 gText_OK[] = _("OK"); const u8 gOtherText_Quit[] = _("QUIT"); -const u8 gUnknown_841792E[] = _("ã¿ã¾ã—ãŸ"); -const u8 gUnknown_8417933[] = _("ã“れã‹ã‚‰"); +const u8 gText_SawIt[] = _("ã¿ã¾ã—ãŸ"); +const u8 gText_NotYet[] = _("ã“れã‹ã‚‰"); const u8 gText_Yes[] = _("YES"); const u8 gText_No[] = _("NO"); -const u8 gUnknown_841793F[] = _("ã›ã¤ã‚ã„"); +const u8 gText_Info4[] = _("ã›ã¤ã‚ã„"); const u8 gText_SingleBattle[] = _("SINGLE BATTLE"); const u8 gText_DoubleBattle[] = _("DOUBLE BATTLE"); const u8 gText_MultiBattle[] = _("MULTI BATTLE"); @@ -430,7 +430,7 @@ const u8 gText_RedShard[] = _("RED SHARD"); const u8 gText_YellowShard[] = _("YELLOW SHARD"); const u8 gText_BlueShard[] = _("BLUE SHARD"); const u8 gText_GreenShard[] = _("GREEN SHARD"); -const u8 gUnknown_8417A30[] = _("ãƒãƒˆãƒ«ã‚¿ãƒ¯-"); +const u8 gText_BattleTower[] = _("ãƒãƒˆãƒ«ã‚¿ãƒ¯-"); const u8 gText_Right[] = _("Right"); const u8 gText_Left[] = _("Left"); const u8 gText_Tm13_4000Coins[] = _("TM13{CLEAR_TO 0x48}{FONT_0}4,000 COINS"); @@ -521,10 +521,10 @@ const u8 gText_SevenIsland[] = _("SEVEN ISLAND"); const u8 gText_Vermilion[] = _("VERMILION"); const u8 gText_Colosseum_2[] = _("COLOSSEUM"); const u8 gText_BerryCrush[] = _("BERRY CRUSH"); -const u8 gText_Dummy_8417E66[] = _(""); -const u8 gText_Dummy_8417E67[] = _(""); -const u8 gUnknown_8417E68[] = _("ã›ã¤ã‚ã„ã‚’ ãã"); -const u8 gText_Dummy_8417E71[] = _(""); +const u8 gText_EmptyLinkService1[] = _(""); +const u8 gText_EmptyLinkService2[] = _(""); +const u8 gText_ListenToExplanation[] = _("ã›ã¤ã‚ã„ã‚’ ãã"); +const u8 gText_RecordCorner[] = _(""); // Dummied const u8 gText_PokemonJump[] = _("POKéMON JUMP"); const u8 gText_DodrioBerryPicking[] = _("DODRIO BERRY-PICKING"); const u8 gText_2Tinymushrooms[] = _("2 TINYMUSHROOMS"); @@ -537,18 +537,18 @@ const u8 gText_Charcoal_1000Coins[] = _("CHARCOAL{CLEAR_TO 0x50}{FONT_0}1,000 CO const u8 gText_MysticWater_1000Coins[] = _("MYSTIC WATER{CLEAR_TO 0x50}{FONT_0}1,000 COINS"); const u8 gText_YellowFlute_1600Coins[] = _("YELLOW FLUTE{CLEAR_TO 0x50}{FONT_0}1,600 COINS"); const u8 gText_SmokeBall_800Coins[] = _("SMOKE BALL{CLEAR_TO 0x5A}{FONT_0}800 COINS"); -const u8 gText_Dummy_8417F67[] = _(""); -const u8 gText_Dummy_8417F68[] = _(""); +const u8 gText_Multichoice_Empty2[] = _(""); +const u8 gText_Multichoice_Empty1[] = _(""); const u8 gText_BecomeLeader[] = _("BECOME LEADER"); const u8 gText_JoinGroup[] = _("JOIN GROUP"); const u8 gOtherText_Single[] = _("SINGLE"); const u8 gOtherText_Double[] = _("DOUBLE"); const u8 gOtherText_Knockout[] = _("KNOCKOUT"); const u8 gOtherText_Mixed[] = _("MIXED"); -const u8 gUnknown_8417F9F[] = _("99ã‹ã„ ã„ã˜ã‚‡ã†"); -const u8 gUnknown_8417FA9[] = _("1ã·ã‚“ ã„ã˜ã‚‡ã†"); -const u8 gUnknown_8417FB2[] = _("ã³ã‚‡ã†"); -const u8 gUnknown_8417FB6[] = _("ã‹ã„"); +const u8 gText_99TimesPlus[] = _("99ã‹ã„ ã„ã˜ã‚‡ã†"); +const u8 gText_1MinutePlus[] = _("1ã·ã‚“ ã„ã˜ã‚‡ã†"); +const u8 gText_SpaceSeconds[] = _("ã³ã‚‡ã†"); +const u8 gText_SpaceTimes[] = _("ã‹ã„"); const u8 gText_DecimalPoint[] = _("."); const u8 gText_BigGuy[] = _("Big guy"); const u8 gText_BigGirl[] = _("Big girl"); @@ -600,7 +600,7 @@ const u8 gString_BattleRecords_7Dashes[] = _("-------"); const u8 gString_BattleRecords_4Dashes[] = _("----"); const u8 gFameCheckerText_FameCheckerWillBeClosed[] = _("The FAME CHECKER will be closed."); const u8 gFameCheckerText_ClearTextbox[] = _("\n "); -const u8 gUnknown_8418204[] = _("ã‚„ã‚ã‚‹"); +const u8 gText_ExitUnused[] = _("ã‚„ã‚ã‚‹"); const u8 gText_ExitFromBox[] = _("Exit from the BOX."); const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?"); const u8 gText_PleasePickATheme[] = _("Please pick a theme."); @@ -668,7 +668,7 @@ const u8 gPCText_PolkaDot[] = _("STARS"); const u8 gPCText_Pokecenter[] = _("POKéCENTER"); const u8 gPCText_Machine[] = _("TILES"); const u8 gPCText_Simple[] = _("SIMPLE"); -const u8 gUnknown_8418562[] = _("ãªã«ã‚’ ã—ã¾ã™ã‹?"); +const u8 gText_PC_WhatWouldYouLikeToDo[] = _("ãªã«ã‚’ ã—ã¾ã™ã‹?"); const u8 gText_WithdrawPokemon[] = _("WITHDRAW POKéMON"); const u8 gText_DepositPokemon[] = _("DEPOSIT POKéMON"); const u8 gText_MovePokemon[] = _("MOVE POKéMON"); @@ -849,9 +849,9 @@ const u8 gText_TrainerCardYen[] = _("Â¥"); const u8 gText_TrainerCardPokedex[] = _("POKéDEX"); const u8 gText_TrainerCardNull[] = _(""); const u8 gText_Colon2[] = _(":"); -const u8 gUnknown_8419CFA[] = _("ã¦ã‚“"); +const u8 gText_Points[] = _("ã¦ã‚“"); const u8 gText_TrainerCardTime[] = _("TIME"); -const u8 gUnknown_8419D02[] = _("ゲ-ムãƒã‚¤ãƒ³ãƒˆ"); +const u8 gText_BattlePoints[] = _("ゲ-ムãƒã‚¤ãƒ³ãƒˆ"); // Unused. Name presumed, translation is Game Points const u8 gText_Var1sTrainerCard[] = _("'s TRAINER CARD"); const u8 gText_HallOfFameDebut[] = _("HALL OF FAME DEBUT "); const u8 gText_LinkBattles[] = _("LINK BATTLES"); @@ -861,7 +861,7 @@ const u8 gText_PokemonTrades[] = _("POKéMON TRADES"); const u8 gText_UnionRoomTradesBattles[] = _("UNION TRADES & BATTLES"); const u8 gText_BerryCrushes[] = _("BERRY CRUSH"); const u8 gText_WaitingTrainerFinishReading[] = _("Waiting for the other TRAINER to\nfinish reading your TRAINER CARD."); -const u8 gText_MenuOption[] = _("OPTION"); +const u8 gText_Option[] = _("OPTION"); const u8 gText_TextSpeed[] = _("TEXT SPEED"); const u8 gText_BattleScene[] = _("BATTLE SCENE"); const u8 gText_BattleStyle[] = _("BATTLE STYLE"); @@ -884,15 +884,15 @@ const u8 gText_ButtonTypeLEqualsA[] = _("L=A"); const u8 gText_ButtonTypeLR[] = _("LR"); const u8 gText_FrameType[] = _("TYPE"); const u8 gText_PickSwitchCancel[] = _("{DPAD_UPDOWN}PICK {DPAD_LEFTRIGHT}SWITCH {A_BUTTON}{B_BUTTON}CANCEL"); -const u8 gUnknown_8419E72[] = _("RTCã‚’ リセットã—ã¾ã™\nAã§ ã‘ã£ã¦ã„ B㧠キャンセル"); -const u8 gUnknown_8419E90[] = _("ã’ã‚“ã–ã„㮠ゲ-ムãªã„ ã˜ã‹ã‚“"); -const u8 gUnknown_8419EA0[] = _("ãœã‚“ã‹ã„㮠ゲ-ムãªã„ ã˜ã‹ã‚“"); -const u8 gUnknown_8419EB0[] = _("ã˜ã‹ã‚“ã‚’ ã•ã„ã›ã£ã¦ã„ ã—ã¦ãã ã•ã„"); -const u8 gUnknown_8419EC3[] = _("ã˜ã‹ã‚“ã‚’ ã•ã„ã›ã£ã¦ã„ ã—ã¾ã—ãŸ!\nレãƒ-トを ã‹ã„ã¦ã„ã¾ã™ ãŠã¾ã¡ãã ã•ã„"); -const u8 gUnknown_8419EEA[] = _("レãƒ-トを ã‹ãã“ã¿ã¾ã—ãŸ!"); -const u8 gUnknown_8419EF9[] = _("レãƒ-ト㮠ã‹ãã“ã¿ã«\nã—ã£ã±ã„ ã—ã¾ã—ãŸâ€¥"); -const u8 gUnknown_8419F10[] = _("レãƒ-ト㌠ãªã„ã®ã§\nã˜ã‹ã‚“ã® ã›ã£ã¦ã„㯠ã§ãã¾ã›ã‚“!"); -const u8 gUnknown_8419F2D[] = _("ゲ-ムãªã„ ã˜ã‹ã‚“ã® ã—ã‚…ã†ã›ã„ システムãŒ\nã¤ã‹ãˆã‚‹ よã†ã« ãªã‚Šã¾ã—ãŸ!"); +const u8 gText_ResetRTCConfirmCancel[] = _("RTCã‚’ リセットã—ã¾ã™\nAã§ ã‘ã£ã¦ã„ B㧠キャンセル"); +const u8 gText_PresentTime[] = _("ã’ã‚“ã–ã„㮠ゲ-ムãªã„ ã˜ã‹ã‚“"); +const u8 gText_PreviousTime[] = _("ãœã‚“ã‹ã„㮠ゲ-ムãªã„ ã˜ã‹ã‚“"); +const u8 gText_PleaseResetTime[] = _("ã˜ã‹ã‚“ã‚’ ã•ã„ã›ã£ã¦ã„ ã—ã¦ãã ã•ã„"); +const u8 gText_ClockHasBeenReset[] = _("ã˜ã‹ã‚“ã‚’ ã•ã„ã›ã£ã¦ã„ ã—ã¾ã—ãŸ!\nレãƒ-トを ã‹ã„ã¦ã„ã¾ã™ ãŠã¾ã¡ãã ã•ã„"); +const u8 gText_SaveCompleted[] = _("レãƒ-トを ã‹ãã“ã¿ã¾ã—ãŸ!"); +const u8 gText_SaveFailed[] = _("レãƒ-ト㮠ã‹ãã“ã¿ã«\nã—ã£ã±ã„ ã—ã¾ã—ãŸâ€¥"); +const u8 gText_NoSaveFileCantSetTime[] = _("レãƒ-ト㌠ãªã„ã®ã§\nã˜ã‹ã‚“ã® ã›ã£ã¦ã„㯠ã§ãã¾ã›ã‚“!"); +const u8 gText_InGameClockUsable[] = _("ゲ-ムãªã„ ã˜ã‹ã‚“ã® ã—ã‚…ã†ã›ã„ システムãŒ\nã¤ã‹ãˆã‚‹ よã†ã« ãªã‚Šã¾ã—ãŸ!"); const u8 gText_SavingDontTurnOffThePower2[] = _("SAVING…\nDON'T TURN OFF THE POWER."); // Start menu option descriptions @@ -907,26 +907,26 @@ const u8 gStartMenuDesc_Retire[] = _("Retire from the SAFARI GAME and return to\ #include "data/text/quest_log.h" -const u8 gUnknown_841B285[] = _(" was used on\n"); -const u8 gUnknown_841B293[] = _("."); -const u8 gUnknown_841B295[] = _("'s level rose to\n"); -const u8 gUnknown_841B2A7[] = _("."); -const u8 gUnknown_841B2A9[] = _("{FONT_0}MAX.{FONT_2} HP"); -const u8 gUnknown_841B2B7[] = _("ATTACK"); -const u8 gUnknown_841B2BE[] = _("DEFENSE"); -const u8 gUnknown_841B2C6[] = _("SPEED"); -const u8 gUnknown_841B2CC[] = _("SP. ATK"); -const u8 gUnknown_841B2D4[] = _("SP. DEF"); -const u8 gUnknown_841B2DC[] = _("{FONT_0}{PLUS}{FONT_2}"); -const u8 gUnknown_841B2E5[] = _("{FONT_0}-{FONT_2}"); -const u8 gUnknown_841B2ED[] = _("1, "); -const u8 gUnknown_841B2F1[] = _("2, and ‥ ‥ ‥ "); -const u8 gUnknown_841B2FF[] = _("Poof!\p"); -const u8 gUnknown_841B306[] = _("{DYNAMIC 0x00} forgot\n{DYNAMIC 0x01}.\p"); -const u8 gUnknown_841B315[] = _("And‥\p"); -const u8 gUnknown_841B31B[] = _("Machine set!\p"); -const u8 gUnknown_841B329[] = _("Huh?"); -const u8 gUnknown_841B32E[] = _("{DYNAMIC 0x00} learned\n{DYNAMIC 0x01}!"); +const u8 gText_WasUsedOn[] = _(" was used on\n"); +const u8 gText_Period[] = _("."); +const u8 gText_LevelRoseTo[] = _("'s level rose to\n"); +const u8 gText_Period2[] = _("."); +const u8 gText_LevelUp_MaxHP[] = _("{FONT_0}MAX.{FONT_2} HP"); +const u8 gText_LevelUp_Attack[] = _("ATTACK"); +const u8 gText_LevelUp_Defense[] = _("DEFENSE"); +const u8 gText_LevelUp_Speed[] = _("SPEED"); +const u8 gText_LevelUp_SpAtk[] = _("SP. ATK"); +const u8 gText_LevelUp_SpDef[] = _("SP. DEF"); +const u8 gText_LevelUp_Plus[] = _("{FONT_0}{PLUS}{FONT_2}"); +const u8 gText_LevelUp_Minus[] = _("{FONT_0}-{FONT_2}"); +const u8 gText_Counting_1[] = _("1, "); +const u8 gText_Counting_2And[] = _("2, and ‥ ‥ ‥ "); +const u8 gText_Poof[] = _("Poof!\p"); +const u8 gText_MonForgotMove[] = _("{DYNAMIC 0x00} forgot\n{DYNAMIC 0x01}.\p"); +const u8 gText_And[] = _("And‥\p"); +const u8 gText_MachineSet[] = _("Machine set!\p"); +const u8 gText_Huh[] = _("Huh?"); +const u8 gText_MonLearnedTMHM[] = _("{DYNAMIC 0x00} learned\n{DYNAMIC 0x01}!"); const u8 gText_Upper[] = _("UPPER"); const u8 gText_Lower[] = _("lower"); const u8 gText_Others[] = _("OTHERS"); @@ -939,8 +939,8 @@ const u8 gText_RegisterTextHere[] = _("Register text here?"); const u8 gText_InputText[] = _("Input text."); const u8 gText_F700JoinedChat[] = _("{DYNAMIC 0x00} joined the chat!"); const u8 gText_F700LeftChat[] = _("{DYNAMIC 0x00} left the chat."); -const u8 gUnknown_841B3D0[] = _("{DYNAMIC 0x00}ã®{DYNAMIC 0x01}ã²ãã‚:"); -const u8 gUnknown_841B3DA[] = _("{DYNAMIC 0x00}ã®{DYNAMIC 0x01}ã²ãã‚㯠ã„ã¾ã›ã‚“"); +const u8 gText_PlayersXPokemon[] = _("{DYNAMIC 0x00}ã®{DYNAMIC 0x01}ã²ãã‚:"); +const u8 gText_PlayersXPokmonDoesNotExist[] = _("{DYNAMIC 0x00}ã®{DYNAMIC 0x01}ã²ãã‚㯠ã„ã¾ã›ã‚“"); const u8 gText_ExitingTheChat[] = _("Exiting the chat‥"); const u8 gText_LeaderHasLeftEndingChat[] = _("The LEADER, {DYNAMIC 0x00}, has\nleft, ending the chat."); const u8 gText_RegisteredTextChanged_OKtoSave[] = _("The registered text has been changed.\nIs it okay to save the game?"); @@ -960,13 +960,13 @@ const u8 gText_ThankYou[] = _("THANK YOU"); const u8 gText_ByeBye[] = _("BYE-BYE!"); const u8 gText_PlayerScurriedToCenter[] = _("{PLAYER} scurried to a POKéMON CENTER,\nprotecting the exhausted and fainted\nPOKéMON from further harm‥\p"); const u8 gText_PlayerScurriedBackHome[] = _("{PLAYER} scurried back home, protecting\nthe exhausted and fainted POKéMON from\nfurther harm‥\p"); -const u8 gUnknown_841B60E[] = _("PLAYER: {DYNAMIC 0x00}"); -const u8 gUnknown_841B619[] = _("This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {DYNAMIC 0x01} POKéDEX."); -const u8 gUnknown_841B684[] = _("GAME FREAK"); -const u8 gUnknown_841B68F[] = _("NATIONAL"); -const u8 gUnknown_841B698[] = _("KANTO"); -const u8 gUnknown_841B69E[] = _("Clear all save data areas?"); -const u8 gUnknown_841B6B9[] = _("Clearing data‥\nPlease wait."); +const u8 gText_Diploma_Player[] = _("PLAYER: {DYNAMIC 0x00}"); +const u8 gText_Diploma_ThisDocument[] = _("This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {DYNAMIC 0x01} POKéDEX."); +const u8 gText_Diploma_GameFreak[] = _("GAME FREAK"); +const u8 gText_Diploma_National[] = _("NATIONAL"); +const u8 gText_Diploma_Kanto[] = _("KANTO"); +const u8 gText_ClearAllSaveData[] = _("Clear all save data areas?"); +const u8 gText_ClearingData[] = _("Clearing data‥\nPlease wait."); const u8 gText_Player[] = _("PLAYER"); const u8 gText_Time[] = _("TIME"); const u8 gText_Colon[] = _(":"); @@ -980,8 +980,8 @@ const u8 gText_NickHatchPrompt[] = _("Would you like to nickname the newly\nhatc const u8 gString_OutOfCoins[] = _("You've run out of COINS.\nGame over!"); const u8 gString_QuitPlaying[] = _("Quit playing?"); const u8 gString_SlotMachineControls[] = _("{DPAD_LEFTRIGHT}COMBOS {DPAD_DOWN}WAGER {A_BUTTON}STOP {B_BUTTON}EXIT"); -const u8 gUnknown_841B798[] = _("ãŠã—ãˆãƒ†ãƒ¬ãƒ“"); -const u8 gUnknown_841B79F[] = _("ãŠã—ã¾ã„"); +const u8 gText_TeachyTV[] = _("ãŠã—ãˆãƒ†ãƒ¬ãƒ“"); +const u8 gText_End[] = _("ãŠã—ã¾ã„"); #include "data/text/teachy_tv.h" @@ -1034,7 +1034,7 @@ ALIGNED(4) const u8 gText_BerryCrush_TimeUp[] = _("Time's up.\pGood BERRY POWDER ALIGNED(4) const u8 gText_BerryCrush_CommunicationStandby[] = _("Communication standby…"); ALIGNED(4) const u8 gText_1_ClrBluShdwLtBlu_Dynamic0[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{DYNAMIC 0x00}"); const u8 gText_1_Dynamic0[] = _("1. {DYNAMIC 0x00}"); -ALIGNED(4) const u8 gText_SpaceTimes[] = _(" times"); +ALIGNED(4) const u8 gText_SpaceTimes2[] = _(" times"); ALIGNED(4) const u8 gText_XDotY[] = _("{STR_VAR_1}.{STR_VAR_2}"); ALIGNED(4) const u8 gText_StrVar1Berry[] = _("{STR_VAR_1} BERRY"); ALIGNED(4) const u8 gText_TimeColon[] = _("Time:"); @@ -1210,44 +1210,44 @@ const u8 gTradeText_Cancel[] = _("CANCEL"); const u8 gTradeText_ChooseAPokemon[] = _("Choose a POKéMON."); const u8 gTradeText_Summary[] = _("SUMMARY"); const u8 gTradeText_Trade[] = _("TRADE"); -const u8 gTradeText_CancelTrade[] = _("Cancel trade?"); +const u8 gText_CancelTrade[] = _("Cancel trade?"); const u8 gTradeText_PressBButtonToExit[] = _("Press the B Button to exit."); -const u8 gUnknown_841E10A[] = _("SUMMARY"); -const u8 gUnknown_841E112[] = _("TRADE"); -const u8 gUnknown_841E118[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait."); -const u8 gUnknown_841E145[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has been canceled."); -const u8 gUnknown_841E16B[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}That's your only POKéMON\nfor battle."); -const u8 gUnknown_841E199[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…"); -const u8 gUnknown_841E1C5[] = _("Your friend wants\nto trade POKéMON."); +const u8 gText_TradeAction_Summary[] = _("SUMMARY"); +const u8 gText_TradeAction_Trade[] = _("TRADE"); +const u8 gText_Trade_CommunicationStandby[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait."); +const u8 gText_TradeHasBeenCanceled[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has been canceled."); +const u8 gText_Trade_OnlyPkmnForBattle[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}That's your only POKéMON\nfor battle."); +const u8 gText_WaitingForFriendToFinish[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…"); +const u8 gText_FriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); const u8 gText_XWillBeSentToY[] = _("{STR_VAR_2} will be\nsent to {STR_VAR_1}."); const u8 gText_ByeByeVar1[] = _("Bye-bye, {STR_VAR_2}!"); const u8 gText_XSentOverY[] = _("{STR_VAR_1} sent over {STR_VAR_3}."); const u8 gText_TakeGoodCareOfX[] = _("Take good care of {STR_VAR_3}!"); const u8 gText_From[] = _("From "); -const u8 gUnknown_841E23A[] = _(""); -const u8 gUnknown_841E23B[] = _(""); -const u8 gUnknown_841E23C[] = _(""); -const u8 gUnknown_841E23D[] = _(""); -const u8 gUnknown_841E23E[] = _(""); -const u8 gUnknown_841E23F[] = _(""); -const u8 gUnknown_841E240[] = _(""); -const u8 gUnknown_841E241[] = _(""); -const u8 gUnknown_841E242[] = _(""); -const u8 gUnknown_841E243[] = _(""); -const u8 gUnknown_841E244[] = _(""); +const u8 gText_Empty1[] = _(""); +const u8 gText_Empty2[] = _(""); +const u8 gText_Empty3[] = _(""); +const u8 gText_Empty4[] = _(""); +const u8 gText_Empty5[] = _(""); +const u8 gText_Empty6[] = _(""); +const u8 gText_Empty7[] = _(""); +const u8 gText_Empty8[] = _(""); +const u8 gText_Empty9[] = _(""); +const u8 gText_Empty10[] = _(""); +const u8 gText_Empty11[] = _(""); const u8 gText_WirelessCommunicationStatus[] = _("Wireless Communication Status"); const u8 gText_PeopleTrading[] = _("People trading:"); const u8 gText_PeopleBattling[] = _("People battling:"); const u8 gText_PeopleInUnionRoom[] = _("People in the UNION ROOM:"); const u8 gText_PeopleCommunicating[] = _("People communicating:"); -const u8 gUnknown_841E2B4[] = _("{DYNAMIC 0x00} players"); -const u8 gUnknown_841E2BF[] = _("{DYNAMIC 0x01} player"); -const u8 gUnknown_841E2C9[] = _("{DYNAMIC 0x02} players"); -const u8 gUnknown_841E2D4[] = _("{DYNAMIC 0x03} players"); -const u8 gUnknown_841E2DF[] = _("{DPAD_ANY}ãˆã‚‰ã¶:{A_BUTTON}ã‘ã£ã¦ã„"); -const u8 gUnknown_841E2EC[] = _("{B_BUTTON}CANCEL"); -const u8 gUnknown_841E2F5[] = _("{COLOR RED}{SHADOW LIGHT_RED} ãŸã„ã›ã‚“ã® ãã¿ã‚ã‚ã›\n{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}ã˜ã¶ã‚“ã® ã°ã—ょをãã‚㦠ãã ã•ã„"); -const u8 gUnknown_841E322[] = _("{ID}"); +const u8 gText_Dynamic0Players[] = _("{DYNAMIC 0x00} players"); +const u8 gText_Dynamic1Players[] = _("{DYNAMIC 0x01} player"); // Typo? This is "players" in Emerald +const u8 gText_Dynamic2Players[] = _("{DYNAMIC 0x02} players"); +const u8 gText_Dynamic3Players[] = _("{DYNAMIC 0x03} players"); +const u8 gText_DPadChooseAButtonConfirm[] = _("{DPAD_ANY}ãˆã‚‰ã¶:{A_BUTTON}ã‘ã£ã¦ã„"); +const u8 gText_BButtonCancel[] = _("{B_BUTTON}CANCEL"); +const u8 gText_ChooseBattleLineup[] = _("{COLOR RED}{SHADOW LIGHT_RED} ãŸã„ã›ã‚“ã® ãã¿ã‚ã‚ã›\n{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}ã˜ã¶ã‚“ã® ã°ã—ょをãã‚㦠ãã ã•ã„"); +const u8 gText_UnusedId[] = _("{ID}"); const u8 gText_CommunicationStandby5[] = _("Communication standby…"); const u8 gDaycareText_GetAlongVeryWell[] = _("The two seem to get along\nvery well."); const u8 gDaycareText_GetAlong[] = _("The two seem to get along."); @@ -1262,7 +1262,7 @@ const u8 gText_1_2_and_Poof[] = _("{PAUSE 0x20}1, {PAUSE 0x0F}2, and {PAUSE 0x0F const u8 gText_MonForgotOldMoveAndMonLearnedNewMove[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd‥\p{STR_VAR_1}\nlearned {STR_VAR_2}."); const u8 gText_GiveUpTryingToTeachNewMove[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); const u8 gText_WhichMoveShouldBeForgotten[] = _("Which move should be forgotten?\p"); -const u8 gUnknown_841E52D[] = _("----------"); +const u8 gText_TenDashes[] = _("----------"); const u8 gText_CommStandbyAwaitingOtherPlayer[] = _("Communication standby‥\nAwaiting another player to choose."); const u8 gText_BattleWasRefused[] = _("The battle was refused.{PAUSE 0x3C}"); const u8 gText_RefusedBattle[] = _("Refused the battle.{PAUSE 0x3C}"); @@ -1281,7 +1281,7 @@ const u8 gText_DontHaveCardNewOneInput[] = _("You don't have a WONDER CARD,\nso const u8 gText_DontHaveNewsNewOneInput[] = _("You don't have any WONDER NEWS,\nso new NEWS will be input."); const u8 gText_WhereShouldCardBeAccessed[] = _("Where should the WONDER CARD\nbe accessed?"); const u8 gText_WhereShouldNewsBeAccessed[] = _("Where should the WONDER NEWS\nbe accessed?"); -const u8 gUnknown_841E76B[] = _("Link standby...\n... ... B Button: Cancel"); +const u8 gText_LinkStandyBButtonCancel[] = _("Link standby...\n... ... B Button: Cancel"); const u8 gText_Communicating[] = _("Communicating…"); const u8 gText_CommunicationCompleted[] = _("Communication completed."); const u8 gText_CommunicationError[] = _("Communication error."); diff --git a/src/tm_case.c b/src/tm_case.c index 8b77972ab..73807c670 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -520,13 +520,13 @@ static void GetTMNumberAndMoveString(u8 * dest, u16 itemId) if (itemId >= ITEM_HM01) { StringAppend(gStringVar4, sText_ClearTo18); - StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringAppend(gStringVar4, gText_NumberClear01); ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1); StringAppend(gStringVar4, gStringVar1); } else { - StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringAppend(gStringVar4, gText_NumberClear01); ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringAppend(gStringVar4, gStringVar1); } diff --git a/src/trade.c b/src/trade.c index 014b447e3..c974ca9fc 100644 --- a/src/trade.c +++ b/src/trade.c @@ -434,25 +434,25 @@ static const u8 *const sTradeUITextPtrs[] = { gTradeText_ChooseAPokemon, gTradeText_Summary, gTradeText_Trade, - gTradeText_CancelTrade, + gText_CancelTrade, gTradeText_PressBButtonToExit }; static const struct MenuAction sMenuAction_SummaryTrade[] = { - {gUnknown_841E10A, { .void_u8 = TradeMenuAction_Summary }}, - {gUnknown_841E112, { .void_u8 = TradeMenuAction_Trade }} + {gText_TradeAction_Summary, { .void_u8 = TradeMenuAction_Summary }}, + {gText_TradeAction_Trade, { .void_u8 = TradeMenuAction_Trade }} }; static const u8 *const sTradeErrorOrStatusMessagePtrs[] = { - gUnknown_841E118, // Communication standby - gUnknown_841E145, // The trade has been canceled. - gUnknown_841E16B, // That's your only POKéMON for battle - gUnknown_8417094, // That's your only POKéMON for battle - gUnknown_841E199, // Waiting for your friend to finish - gUnknown_841E1C5, // Your friend wants to trade POKéMON - gText_PkmnCantBeTradedNow, // That POKéMON can't be traded now - gText_EggCantBeTradedNow, // An EGG can't be traded now - gText_OtherTrainersPkmnCantBeTraded // The other TRAINER's POKéMON can't be traded now + gText_Trade_CommunicationStandby, + gText_TradeHasBeenCanceled, + gText_Trade_OnlyPkmnForBattle, + gText_OnlyPkmnForBattle, // Same as above but without color formatting + gText_WaitingForFriendToFinish, + gText_FriendWantsToTrade, + gText_PkmnCantBeTradedNow, + gText_EggCantBeTradedNow, + gText_OtherTrainersPkmnCantBeTraded }; static const u8 sTextColor_PartyMonNickname[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index ec70c5dfe..c9ebe676d 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -101,11 +101,12 @@ static const struct WindowTemplate sWindowTemplates[] = { }, DUMMY_WIN_TEMPLATE }; -static const u8 *const gUnknown_846FA9C[] = { - gUnknown_841E2B4, - gUnknown_841E2BF, - gUnknown_841E2C9, - gUnknown_841E2D4 +// Unused +static const u8 *const sPlayersTextPtrs[] = { + gText_Dynamic0Players, + gText_Dynamic1Players, + gText_Dynamic2Players, + gText_Dynamic3Players }; static const u8 *const sHeaderTextPtrs[] = { From 27b2b0b24a91c4cf6f7c30d7d7e219e36b6017af Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 6 Sep 2022 19:13:57 -0400 Subject: [PATCH 066/105] Document intro graphics/data --- .../intro/{unk_84024E4.bin => copyright.bin} | Bin .../intro/{unk_8402260.pal => copyright.pal} | 0 graphics/intro/copyright.png | Bin 0 -> 546 bytes .../{unk_8402668.bin => game_freak/bg.bin} | Bin .../{unk_8402630.pal => game_freak/bg.pal} | 0 .../{unk_8402650.png => game_freak/bg.png} | Bin .../game_freak.png} | Bin .../{unk_84028F8.png => game_freak/logo.png} | Bin .../presents.png} | Bin graphics/intro/game_freak/sparkles.pal | 19 + .../sparkles_big.png} | Bin .../sparkles_small.png} | Bin .../{unk_8402A64.png => game_freak/star.png} | Bin .../intro/{unk_8405DA4.pal => gengar.pal} | 0 .../intro/{unk_84096AC.pal => nidorino.pal} | 0 .../intro/{unk_8404F7C.bin => scene_1/bg.bin} | Bin .../intro/{unk_84048EC.png => scene_1/bg.png} | Bin .../{unk_8403FE8.bin => scene_1/grass.bin} | Bin .../{unk_8402D54.png => scene_1/grass.png} | Bin .../intro/{unk_8405890.bin => scene_2/bg.bin} | Bin .../intro/{unk_84053B4.pal => scene_2/bg.pal} | 0 .../intro/{unk_8405414.png => scene_2/bg.png} | Bin .../{unk_840926C.png => scene_2/gengar.png} | Bin .../gengar_close.bin} | Bin graphics/intro/scene_2/gengar_close.png | Bin 0 -> 1346 bytes .../{unk_84096CC.png => scene_2/nidorino.png} | Bin .../nidorino_close.bin} | Bin .../nidorino_close.pal} | 0 .../nidorino_close.png} | Bin .../{unk_8405CDC.bin => scene_2/plants.bin} | Bin .../{unk_8405B28.png => scene_2/plants.png} | Bin .../intro/{unk_8407A50.bin => scene_3/bg.bin} | Bin .../intro/{unk_8407430.pal => scene_3/bg.pal} | 0 .../intro/{unk_8407470.png => scene_3/bg.png} | Bin .../gengar_anim.bin} | Bin graphics/intro/scene_3/gengar_anim.png | Bin 0 -> 3394 bytes .../gengar_static.png} | Bin .../{unk_8409A3C.png => scene_3/grass.png} | Bin .../{unk_840A3E4.png => scene_3/nidorino.png} | Bin .../recoil_dust.png} | Bin .../{unk_840B874.png => scene_3/swipe.png} | Bin graphics/intro/unk_8402280.png | Bin 554 -> 0 bytes graphics/intro/unk_840270C.pal | 19 - graphics/intro/unk_8402D34.pal | 19 - graphics/intro/unk_84048CC.pal | 19 - graphics/intro/unk_8405B08.pal | 19 - graphics/intro/unk_8405DC4.png | Bin 1408 -> 0 bytes graphics/intro/unk_8407B9C.png | Bin 3631 -> 0 bytes graphics/intro/unk_8409A1C.pal | 19 - graphics/intro/unk_840B834.pal | 19 - graphics/intro/unk_840B854.pal | 19 - graphics_file_rules.mk | 14 +- include/intro.h | 4 +- include/random.h | 5 +- src/intro.c | 874 +++++++++--------- src/main.c | 2 +- src/pokemon_special_anim_scene.c | 6 +- src/title_screen.c | 5 +- src/wild_encounter.c | 4 +- 59 files changed, 498 insertions(+), 568 deletions(-) rename graphics/intro/{unk_84024E4.bin => copyright.bin} (100%) rename graphics/intro/{unk_8402260.pal => copyright.pal} (100%) create mode 100644 graphics/intro/copyright.png rename graphics/intro/{unk_8402668.bin => game_freak/bg.bin} (100%) rename graphics/intro/{unk_8402630.pal => game_freak/bg.pal} (100%) rename graphics/intro/{unk_8402650.png => game_freak/bg.png} (100%) rename graphics/intro/{unk_840272C.png => game_freak/game_freak.png} (100%) rename graphics/intro/{unk_84028F8.png => game_freak/logo.png} (100%) rename graphics/intro/{unk_8402CD4.png => game_freak/presents.png} (100%) create mode 100644 graphics/intro/game_freak/sparkles.pal rename graphics/intro/{unk_8402B2C.png => game_freak/sparkles_big.png} (100%) rename graphics/intro/{unk_8402ADC.png => game_freak/sparkles_small.png} (100%) rename graphics/intro/{unk_8402A64.png => game_freak/star.png} (100%) rename graphics/intro/{unk_8405DA4.pal => gengar.pal} (100%) rename graphics/intro/{unk_84096AC.pal => nidorino.pal} (100%) rename graphics/intro/{unk_8404F7C.bin => scene_1/bg.bin} (100%) rename graphics/intro/{unk_84048EC.png => scene_1/bg.png} (100%) rename graphics/intro/{unk_8403FE8.bin => scene_1/grass.bin} (100%) rename graphics/intro/{unk_8402D54.png => scene_1/grass.png} (100%) rename graphics/intro/{unk_8405890.bin => scene_2/bg.bin} (100%) rename graphics/intro/{unk_84053B4.pal => scene_2/bg.pal} (100%) rename graphics/intro/{unk_8405414.png => scene_2/bg.png} (100%) rename graphics/intro/{unk_840926C.png => scene_2/gengar.png} (100%) rename graphics/intro/{unk_840644C.bin => scene_2/gengar_close.bin} (100%) create mode 100644 graphics/intro/scene_2/gengar_close.png rename graphics/intro/{unk_84096CC.png => scene_2/nidorino.png} (100%) rename graphics/intro/{unk_84071D0.bin => scene_2/nidorino_close.bin} (100%) rename graphics/intro/{unk_8406634.pal => scene_2/nidorino_close.pal} (100%) rename graphics/intro/{unk_8406654.png => scene_2/nidorino_close.png} (100%) rename graphics/intro/{unk_8405CDC.bin => scene_2/plants.bin} (100%) rename graphics/intro/{unk_8405B28.png => scene_2/plants.png} (100%) rename graphics/intro/{unk_8407A50.bin => scene_3/bg.bin} (100%) rename graphics/intro/{unk_8407430.pal => scene_3/bg.pal} (100%) rename graphics/intro/{unk_8407470.png => scene_3/bg.png} (100%) rename graphics/intro/{unk_8408D98.bin => scene_3/gengar_anim.bin} (100%) create mode 100644 graphics/intro/scene_3/gengar_anim.png rename graphics/intro/{unk_8409D20.png => scene_3/gengar_static.png} (100%) rename graphics/intro/{unk_8409A3C.png => scene_3/grass.png} (100%) rename graphics/intro/{unk_840A3E4.png => scene_3/nidorino.png} (100%) rename graphics/intro/{unk_840BAE0.png => scene_3/recoil_dust.png} (100%) rename graphics/intro/{unk_840B874.png => scene_3/swipe.png} (100%) delete mode 100644 graphics/intro/unk_8402280.png delete mode 100644 graphics/intro/unk_840270C.pal delete mode 100644 graphics/intro/unk_8402D34.pal delete mode 100644 graphics/intro/unk_84048CC.pal delete mode 100644 graphics/intro/unk_8405B08.pal delete mode 100644 graphics/intro/unk_8405DC4.png delete mode 100644 graphics/intro/unk_8407B9C.png delete mode 100644 graphics/intro/unk_8409A1C.pal delete mode 100644 graphics/intro/unk_840B834.pal delete mode 100644 graphics/intro/unk_840B854.pal diff --git a/graphics/intro/unk_84024E4.bin b/graphics/intro/copyright.bin similarity index 100% rename from graphics/intro/unk_84024E4.bin rename to graphics/intro/copyright.bin diff --git a/graphics/intro/unk_8402260.pal b/graphics/intro/copyright.pal similarity index 100% rename from graphics/intro/unk_8402260.pal rename to graphics/intro/copyright.pal diff --git a/graphics/intro/copyright.png b/graphics/intro/copyright.png new file mode 100644 index 0000000000000000000000000000000000000000..ff320806ecad3497121415e70a08d7b52f3d641a GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^89*$-!VDyz2rLZ-QU(D&A+A6g9VjSBSXvqe1qEeg zWi>Z<&zZAi%a)^O&)$3X?EnA&8ozsm7#JAWdb&7X-NX=YN|vZ;c@9!%fRJ7%?)izf_)NXX+%+c`#d~*kuxThi?1rH}lfi>#jYi?(DKU zwbY`%N9pCAmGjHgKBR5rw*Kk8cG1nJ2CZGzPxdRUE!v@7)D&RW?OwQBlf3Xtb zyjplkY0~GQM3TV_Il-##HIA_ww2mJhl^lo>BUIW8vbM2Rn{Tp0L-ki_g$k zMN1?3khpl?^%|E$^~Y>N3lo2>JKmnN?}!(Z(A>1t>`N;orlyt`m^|`2p!t2D-^-6_ z+bShgS*m2XRiABkZRnV?J^S*>wm^qTo+(SZMASCxv<4hrRD7>3aO26fRc=|aE8Cwv iO|J?J{`}=)+ePyo6~~ul_^z}C#k8lZpUXO@geCwDknK?b literal 0 HcmV?d00001 diff --git a/graphics/intro/unk_8402668.bin b/graphics/intro/game_freak/bg.bin similarity index 100% rename from graphics/intro/unk_8402668.bin rename to graphics/intro/game_freak/bg.bin diff --git a/graphics/intro/unk_8402630.pal b/graphics/intro/game_freak/bg.pal similarity index 100% rename from graphics/intro/unk_8402630.pal rename to graphics/intro/game_freak/bg.pal diff --git a/graphics/intro/unk_8402650.png b/graphics/intro/game_freak/bg.png similarity index 100% rename from graphics/intro/unk_8402650.png rename to graphics/intro/game_freak/bg.png diff --git a/graphics/intro/unk_840272C.png b/graphics/intro/game_freak/game_freak.png similarity index 100% rename from graphics/intro/unk_840272C.png rename to graphics/intro/game_freak/game_freak.png diff --git a/graphics/intro/unk_84028F8.png b/graphics/intro/game_freak/logo.png similarity index 100% rename from graphics/intro/unk_84028F8.png rename to graphics/intro/game_freak/logo.png diff --git a/graphics/intro/unk_8402CD4.png b/graphics/intro/game_freak/presents.png similarity index 100% rename from graphics/intro/unk_8402CD4.png rename to graphics/intro/game_freak/presents.png diff --git a/graphics/intro/game_freak/sparkles.pal b/graphics/intro/game_freak/sparkles.pal new file mode 100644 index 000000000..ace266f9b --- /dev/null +++ b/graphics/intro/game_freak/sparkles.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 32 +0 0 74 +0 0 115 +24 24 123 +49 49 139 +82 82 156 +106 106 172 +139 139 189 +164 164 205 +197 197 222 +222 222 238 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/intro/unk_8402B2C.png b/graphics/intro/game_freak/sparkles_big.png similarity index 100% rename from graphics/intro/unk_8402B2C.png rename to graphics/intro/game_freak/sparkles_big.png diff --git a/graphics/intro/unk_8402ADC.png b/graphics/intro/game_freak/sparkles_small.png similarity index 100% rename from graphics/intro/unk_8402ADC.png rename to graphics/intro/game_freak/sparkles_small.png diff --git a/graphics/intro/unk_8402A64.png b/graphics/intro/game_freak/star.png similarity index 100% rename from graphics/intro/unk_8402A64.png rename to graphics/intro/game_freak/star.png diff --git a/graphics/intro/unk_8405DA4.pal b/graphics/intro/gengar.pal similarity index 100% rename from graphics/intro/unk_8405DA4.pal rename to graphics/intro/gengar.pal diff --git a/graphics/intro/unk_84096AC.pal b/graphics/intro/nidorino.pal similarity index 100% rename from graphics/intro/unk_84096AC.pal rename to graphics/intro/nidorino.pal diff --git a/graphics/intro/unk_8404F7C.bin b/graphics/intro/scene_1/bg.bin similarity index 100% rename from graphics/intro/unk_8404F7C.bin rename to graphics/intro/scene_1/bg.bin diff --git a/graphics/intro/unk_84048EC.png b/graphics/intro/scene_1/bg.png similarity index 100% rename from graphics/intro/unk_84048EC.png rename to graphics/intro/scene_1/bg.png diff --git a/graphics/intro/unk_8403FE8.bin b/graphics/intro/scene_1/grass.bin similarity index 100% rename from graphics/intro/unk_8403FE8.bin rename to graphics/intro/scene_1/grass.bin diff --git a/graphics/intro/unk_8402D54.png b/graphics/intro/scene_1/grass.png similarity index 100% rename from graphics/intro/unk_8402D54.png rename to graphics/intro/scene_1/grass.png diff --git a/graphics/intro/unk_8405890.bin b/graphics/intro/scene_2/bg.bin similarity index 100% rename from graphics/intro/unk_8405890.bin rename to graphics/intro/scene_2/bg.bin diff --git a/graphics/intro/unk_84053B4.pal b/graphics/intro/scene_2/bg.pal similarity index 100% rename from graphics/intro/unk_84053B4.pal rename to graphics/intro/scene_2/bg.pal diff --git a/graphics/intro/unk_8405414.png b/graphics/intro/scene_2/bg.png similarity index 100% rename from graphics/intro/unk_8405414.png rename to graphics/intro/scene_2/bg.png diff --git a/graphics/intro/unk_840926C.png b/graphics/intro/scene_2/gengar.png similarity index 100% rename from graphics/intro/unk_840926C.png rename to graphics/intro/scene_2/gengar.png diff --git a/graphics/intro/unk_840644C.bin b/graphics/intro/scene_2/gengar_close.bin similarity index 100% rename from graphics/intro/unk_840644C.bin rename to graphics/intro/scene_2/gengar_close.bin diff --git a/graphics/intro/scene_2/gengar_close.png b/graphics/intro/scene_2/gengar_close.png new file mode 100644 index 0000000000000000000000000000000000000000..9878b9bcacbca7b5aa4965c05ca5cc7f53e805bb GIT binary patch literal 1346 zcmV-I1-<%-P)T z|Nq|J-g|p{{{a900RR60|3N8A|FnDVVoJ?9AjN~Uq+*nVL3>&`S`ZKrlUpOL000Ed zNkl*Nl5QTAqpy(VRW%&RuJKLn@df8?vZ?d*GJ^+>S0SFE<%Ty8K>>~n< zXEhSZPIu#%l3g>)z-5^xKfKosc7v1|@&r1I1w3d|qv(^PFU+DOx zSKP_}X?AL#NLf1qcZG|bYJYI5YvslS{yDBe3H2^SUe`NiIVy~yRy~2P(5qEAZ17Nh zB+&`PNtqEr9nunWgEBrz0+A$pv^=S{N4gy)Cj_L@3OV=Q8)qR2vVH-Dk_b8m;Y62= z07KwXC$gzu4k$^oQjN@^nGwnWXIgu6B1+75qvrF7FYBxnSO81nXDYw450i6l|5Z8Mm?S&jdaKZk6xqL`Wlk{So8 znfA*fOt_^#D6-zEIHIiapiH1Vpk$-o1BK}0tzQ%hW<{03aSftmQz*uPf&@Ya#e7L| zGEB@Oga`o3o1pTbj36yW_qOEdK|H+lY;zmT#-9=gtn5n}m%4HZK4LMQI$VH3t>@auNU5JkD4sXb$@P(3#R{3CJX(;g?< zD#G}OA`gncZJ$d}KTY`_riS-mGOzLHSb|er3bx*|dFPi>KNX-2xKh6v){S$(;-X=U1=y#t>UL7=p*P-o z@6&-%A}P}4f2-TG39n&-go9ie07uvbilm%7{sg zU64A-2xi71(i*2v+x-4I-OO0GYF91%9gT5WKre zAcoj3#0~QpLGsqu3|3bGyhqRwxG?C84i=N8U;TtCPN2u)lG>N{<|uu~d0}P@exRbr zFE@*IHm6mBzaqF71&FZ(QeP(!7qg2Segdrxd9`1z8N4TOPLGfR93lxnNALp)n!Nb~ z*d)nu!aadEv>&&jgy{hQi?ao}+O4r{Xjiokpr>~^X=#OQ9Oi5ay--TuMS+OyutHl7 z(D&uC2D7MX>7C*%Z)?F`kX_f6U?5xuv%M)nnXHYyP%Z9Z^j=8Ema@ZO<721rb}X_l z$vyoiRPJ=n+i_qkkbStq?dL4%!QqT^R`B$=wL?-olUxYg+x*%KA;#fc5J8%o-@yUT z4f}IJN`{5YS8iUA_1e1#X2o=WN)V!=%R%NM@+l+^L3deUu`paQl|gY9QndHrg4Mr( z;Ja9OV8M^kVGJNR5MI%PBW)LB5vK>G53~E$-VGnd9Po7bw4r`hSoA04bqSD*5oKQUCw|07*qoM6N<$ Ef+Q|?W&i*H literal 0 HcmV?d00001 diff --git a/graphics/intro/unk_84096CC.png b/graphics/intro/scene_2/nidorino.png similarity index 100% rename from graphics/intro/unk_84096CC.png rename to graphics/intro/scene_2/nidorino.png diff --git a/graphics/intro/unk_84071D0.bin b/graphics/intro/scene_2/nidorino_close.bin similarity index 100% rename from graphics/intro/unk_84071D0.bin rename to graphics/intro/scene_2/nidorino_close.bin diff --git a/graphics/intro/unk_8406634.pal b/graphics/intro/scene_2/nidorino_close.pal similarity index 100% rename from graphics/intro/unk_8406634.pal rename to graphics/intro/scene_2/nidorino_close.pal diff --git a/graphics/intro/unk_8406654.png b/graphics/intro/scene_2/nidorino_close.png similarity index 100% rename from graphics/intro/unk_8406654.png rename to graphics/intro/scene_2/nidorino_close.png diff --git a/graphics/intro/unk_8405CDC.bin b/graphics/intro/scene_2/plants.bin similarity index 100% rename from graphics/intro/unk_8405CDC.bin rename to graphics/intro/scene_2/plants.bin diff --git a/graphics/intro/unk_8405B28.png b/graphics/intro/scene_2/plants.png similarity index 100% rename from graphics/intro/unk_8405B28.png rename to graphics/intro/scene_2/plants.png diff --git a/graphics/intro/unk_8407A50.bin b/graphics/intro/scene_3/bg.bin similarity index 100% rename from graphics/intro/unk_8407A50.bin rename to graphics/intro/scene_3/bg.bin diff --git a/graphics/intro/unk_8407430.pal b/graphics/intro/scene_3/bg.pal similarity index 100% rename from graphics/intro/unk_8407430.pal rename to graphics/intro/scene_3/bg.pal diff --git a/graphics/intro/unk_8407470.png b/graphics/intro/scene_3/bg.png similarity index 100% rename from graphics/intro/unk_8407470.png rename to graphics/intro/scene_3/bg.png diff --git a/graphics/intro/unk_8408D98.bin b/graphics/intro/scene_3/gengar_anim.bin similarity index 100% rename from graphics/intro/unk_8408D98.bin rename to graphics/intro/scene_3/gengar_anim.bin diff --git a/graphics/intro/scene_3/gengar_anim.png b/graphics/intro/scene_3/gengar_anim.png new file mode 100644 index 0000000000000000000000000000000000000000..d339ca80fde5db865ff18629e29432a22d51212a GIT binary patch literal 3394 zcmV-I4ZZS-P)T z|Nq|J-g|p{{{a900RR60|3N8A|FnDVVoJ?9AjN~Uq+*nVL3>&`S`ZKrlUpOL000cl zNkl1VdgmW7$nx%X z57)W&SkkQlh7tTAW6Zid{J6PwTOMBi2HIc#2J+hvta|yOJ;GH1AG|d3@kOYI3qrjy zr_}uEl&XI`yew?;6`;MpnA00y`?hrg*{*GS{B2(@7NFjouud@3wtM>Zd1zZSWM6vQ zwnu+CVSQo-7*Du^-(bkT_~ii5k1O9_PI%vWdSmiP?Z024ngi73ulQg=GsrMxeRn{! zCxAMHzK-56gkWW46(H|iyB`38UvL-8i5aJ$&bdfWqF-l8V=}AT?*s}pa|*?E9g?79w>Ym zymQAbL-4+z;Hej=GL$0bx<>~{rv_h_9F_qZO>RPWh0PWj8_@yKlJFt^D=jKvJyApf zbl_nZpMQ@()o1V!q~qwN0y(EX4|D)`JaiS*D?`_pDM-hM%1inqeLPO-HVjW;LT(NZ za4yMB@$CJWpc4;EBv*#d_FHylGo>aywA85VCUiuu?OC7>q1X}>J|w0v+JZFtt98&R zV~*_vadPzU6tNs_M;ZM`h>d>gpvG_FCX6XZkW2l4#Gx6zIkn&Xj^ZRV6enzn`-adM zN7DlI{vh#rFW^QmPgMje!4Bq&Cz?)#N{?jwJC z35sB9f+(EFlc5I8?fOfCchUq0)gjckTTmK1fbhCUFW-e`hWs*kw_@O<$n}|qspxN^ zWNI;ysXpds=(SO&JMJ^#Ao#U5#71&j5D3=_YalVQZKLvy`#IuG?T%h*@ zmJcN&_x-11+=2ZXr*F6e{ zrrh1tRP(%uC)Tx8WrT_V8hN1C4~@lU%;IzMy}gCt%?m>i1vH)Afkw-pm7!~dW<7HB zrr||wDA258V6J9Mh)fCyJ5Ejo!5H-XT^&Zgw=HpUp?wJFM?c}Zzs~fq}e7C zx)VYR3GmZi3-Y5Db4t`CmE zLk3OqyM1v~{PZsSzkgYu!-ZkL|T%`5JQFpQy|4$#?~g}l(=wGk96?2KlRodD7$3?kIS*QO7aFRQDSwIm zSK8plT6*V(gPn1fz3Y2>3rT%;4BSEgzS8IB=<}XvDtnV!pQEKPCdj|Na}lx&$6_O2t>`FAu$EtT_bu!)JaH|qJ|Rn zyc1KX#6(?=8OmZRD}Ccdq!p1`X)_Y{CW!tb=syiXLzc?%j1=jVIn`(VI|$5W@xjXAE%3%47u42|INO74nV5X!N! z%!_PP?6M8n3m#?0rK%;1^pWB|H>=*xj0&;^f}P_XOBw=W89O&xS&&*lH;M*87yI1cB)OQbS4h1MNC9$Lq0;B>hUoig-luC0EVRJ|(8!jkBuU*6Xc zYLi#oKPc#s4%IW{P-DC<{%U^6p93D+HDpL6L%E`U>hRH(78Qol`WKu)aKC%w24oRG zaxk)(Z{5|vHlcHGSR3j*9_d&6%BEOwf5FOWzMQ*U3uIqkuIWz=JPn%{c)s`j7b=}E zk_$ia@yoI65hAr^UOYm6LgmyQaK$9(JDo$y@j5_XZR=Q1U0gqZhkYJQq-=iDM z-gkTuf5d$OLJPEP@&b7j#fA<{(}YWU7Amx9VV->d)H#Ggr4$B`B~yWbVi}VEdcZ|N zIAy;-kqiOve^=IiSf1-Ic%(~PH@yD0#gkSlmnj1ipRI%5B(3t4|9ZeRd0CD4_HZC* z=nkUHdRrubo%n41y(8#7|Mg&+WPL)f%;Lqj^pN|0=Wo*YAmEr`Ay z>b64<8ay!z-P%&mcl`MYW6Yp17f4Noe&$xPJf*{7*co z%Mk9p<_@Da3v-I`(j2M`c5t)ogjtv)glg*itPHugF$K@Bm_vnBSvKU{8%VZm z?tEx&d=_2^9he!@H^ztNCL2P?ri0dr=9(e$5s1l#;`2Z7sSSL!kaiDYl#RrYPFF$s z*xvKPIFBO7>CoJSBy#bv*M>0RdW|RRO_CG4XtE(1;sthlxOUdU4cZiwF`P+?0?{F+ zUPuxCH&9VG{~Ku9g0ST{E@_)NS0~5?S|~Wu%s~H)yn7GTaqsG7n-1f(tX@IH6ljA& z#-#)K)P`k+!7g78$Y7+ijv9+D1tq(fG{evzew3p~Ng;x7rjw~5-j48?M4GO91&vuC zDlevoOEz`63yt;ZbcWUk;ue&2R67Lf?E2u^o|~rG#e8N@2C^5E>cnGmpp@pC^@YY4 zediX^Pg7fd2jy&!n+J7<$DJzb3=h6}bHH9_c?h)5cB!*G1X>@k*I6D3T4lS`SsntZ zY!^CQud_VNI@^U0*Xt|~Q?gvR8aZ6AvOG-Aa-sI-!}Ti5!`#bs(ODkmPNqwh_4!0Q|Y$<2Ce6?;P z!^2dWE||m;B>YsChp97N(DS^G>MRelmFYsGq)w4dmFY535(`r*%fsYM7oGtqC1RcB zVREKRNn(lXERXE*oWz3F)ma{1K_f3_^LVPWJQU>9)@UQcLqS*{ESVb_9vb5MrrQh; z)h1esm#qwsHDs2J3=hK-vC4GW$na1C87`ENDcKw}HH1wFo`d?4lR%y2Qma|c#h`OK zo#k>1Sx(l_SuSV~0 z3ul**lS`@~9V8n+LEZ3UGb#-CCw=HEmA Y5Ab|@wbs@e761SM07*qoM6N<$g3GgYnE(I) literal 0 HcmV?d00001 diff --git a/graphics/intro/unk_8409D20.png b/graphics/intro/scene_3/gengar_static.png similarity index 100% rename from graphics/intro/unk_8409D20.png rename to graphics/intro/scene_3/gengar_static.png diff --git a/graphics/intro/unk_8409A3C.png b/graphics/intro/scene_3/grass.png similarity index 100% rename from graphics/intro/unk_8409A3C.png rename to graphics/intro/scene_3/grass.png diff --git a/graphics/intro/unk_840A3E4.png b/graphics/intro/scene_3/nidorino.png similarity index 100% rename from graphics/intro/unk_840A3E4.png rename to graphics/intro/scene_3/nidorino.png diff --git a/graphics/intro/unk_840BAE0.png b/graphics/intro/scene_3/recoil_dust.png similarity index 100% rename from graphics/intro/unk_840BAE0.png rename to graphics/intro/scene_3/recoil_dust.png diff --git a/graphics/intro/unk_840B874.png b/graphics/intro/scene_3/swipe.png similarity index 100% rename from graphics/intro/unk_840B874.png rename to graphics/intro/scene_3/swipe.png diff --git a/graphics/intro/unk_8402280.png b/graphics/intro/unk_8402280.png deleted file mode 100644 index dccf33afabced3cf28a392778330ae93fafc405e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)+cBr_WHWw7;B%6I9V2AZNBJmCsyZcgBVkN6V=ESO`35_!gJ| zFrNBeqyrUhZbwL)PVLZGoTg-rnXK)|T7qnGdZ~|ARA=YxfHUZt z&THNp%*1I?#e5~|>=Y{M(*v_NSaF%FxN8(s@E%zND^bz{T;d3b=^zItqDrlwt3-|0jII_>bR|X5wCaY@^hatyLk38WAN2bbif)* s_v<&9mtf~UE^}X{mML$F7b_C|2XyxnxbrLMX#fBK07*qoM6N<$g4g;0w*UYD diff --git a/graphics/intro/unk_840270C.pal b/graphics/intro/unk_840270C.pal deleted file mode 100644 index 619aee6a0..000000000 --- a/graphics/intro/unk_840270C.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -24 41 74 -0 0 0 -139 123 16 -189 172 16 -131 164 65 -148 230 49 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -222 222 222 -24 41 74 -82 82 82 -180 180 180 -255 255 255 diff --git a/graphics/intro/unk_8402D34.pal b/graphics/intro/unk_8402D34.pal deleted file mode 100644 index 4be93ec3e..000000000 --- a/graphics/intro/unk_8402D34.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 255 -115 197 106 -41 164 8 -82 180 65 -139 222 131 -98 197 82 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -16 139 98 -16 115 98 -24 90 90 -32 74 90 -32 65 82 diff --git a/graphics/intro/unk_84048CC.pal b/graphics/intro/unk_84048CC.pal deleted file mode 100644 index ef08ae2fe..000000000 --- a/graphics/intro/unk_84048CC.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 255 -255 255 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -238 246 246 -222 230 230 -180 189 197 -148 156 172 -106 123 139 -74 90 115 -41 57 90 -0 0 0 diff --git a/graphics/intro/unk_8405B08.pal b/graphics/intro/unk_8405B08.pal deleted file mode 100644 index 43cc9d949..000000000 --- a/graphics/intro/unk_8405B08.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -131 238 115 -82 189 74 -57 164 57 -115 213 98 -16 123 16 -164 255 131 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 148 0 -164 222 98 diff --git a/graphics/intro/unk_8405DC4.png b/graphics/intro/unk_8405DC4.png deleted file mode 100644 index 8ae6ba691fff2705e713ba057eefc57c514a4df8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmV-`1%LX9P)5!UosGThw%5zF+d88ISe_oh)}SX)zYicm zilH2(TKonAfd}Awe*ih+CqD!$DbUp-cGDU;uDVW+31K(gd~iyXpqLEPTBAfdV}8A4 zp)8&C*_5~;IuF?IB*7jQ*UgCE+~NhHu>*dVgngVNtD0!jfQ+aw6JoxsfCQr)<~PIbXO%TXF`+(Gjk4!zh35p_Y5HO;HAE{sEMpe3*n&`q!* z)`WA9F_{1$VCX2I4WKE=w1W3?D-gD zYZ6h(y6XMb(r+8ITDCT9Iq7~J)rI4nh)p%XRAOEHF6XjL*cwE%A^LpB)lH-ck*oHV8^YPC0&PfsGl^IdlUy zZKydVYtt2dxkbibZKbWZTdD8vw}OSYlG7=%uRf?l3B51{^hy|dpWe*#PmBJTTm%XI z!77iFA6>l?mI79(pQfeRc)?6N9KUUYXWF4OFUwR@@%oN`ub8H_)Lf|E5wBRcIqWF* z?^jg(-GGOCx!O_^aHy`B5mW42t&H49s7+g>lWgg{Z8BfHChq1tnCvFBd~IMSYXqt1>)eesp1oZzg>#@uqx1>2&QtZIZ=g1gB7 zwKYn!P3gB|QgFd^LHqvd(7ZJw!bV!3R>J=45@z;X?rZH(1z<1c!(m4p#C#-bq9M=; zd?e~;Z-tZ>B(J<2BnA#o#6i9WEakcTJ?{5=`T9y6UiXXVb-yQ$8-WkkK!H~AelK$U zw1=q)cEID#JMW1FaOZ&+K+=Oxh$aGb#6zPJ>T*D-lqfYvi3_yK_Q0a5N^3VZVAdc%289l#sdMtlf62w_!t zWjK#51=1Nr0YYSxzMTHm=jUqgeHEg3^!c097HY&WZ92|O3dO<hj*8gnq4Tzub4x-ng>IOlnn$=pB&5l)~SazED_ zP@~wnYn8rLmgvj#3w?eevViEK86tfcp-?E63^az23Z^DAvO!6uLhDp}2Y2YBLlj^~ z47o6RaL_B|HfTPb`f_#{>$7y>1sd!jk<;_Z=@MsjkDcu_8a8=GwQP{s@*yV8SwU2Pj439GRj6VBZxa1PSX)XzV?}aSNkT?+8o*O5Zt@|Gr=iytDs6ZP4 O0000xbL#fd;y6+ux|LMthSerX!xoID|@e?8WsE{_Bmfh@HaG9#e(lKCAv z5GR71f#yhSO|P## z2lR+2=@fvR_zZ8T0*=Tq<~$Rbj+Ky-{6fQ!7$inT0mo1Q3XDou&LtUu#;B+Rc5HTX z{VDB0XM(0piWjnry2{XBi7A1BY-Q!FRJK3+=MJE#D0ep=K@NBacux}K2;khVp6zA8 ze!h9{(pv3*%JBp|if06{qA(VDM$;WDKp2LU@CL2qZ#c2sFdr^fFJ@9Q(NDHZuQF=6MFf2p{ zwpYSl&H0q=jVS7J1YypWQwk7hBF(U7lg{qhmz~!8|H{|DjG9H(&SjT;}4&Z5d|wvOC=;`%gjQQMnXjN za(Yx6;NU7V8m`KC;8IOZwe~(!Dp0hYWX}}*3KK8W2)`bl2JP6{rJ{7B7J3nvssA|L zWQ(sf?J`OaO3|3JwI&m|01oCwg1-}c9%E?F{6xCriIf~kz>^}eX5=d%^?-?&kptuL zZV6K4aauTi^jyte6p@>vkYoMonY2?T)&Ob*do7oU&LO<^WFSEbJ5p~<$KlgQiGyxA zVuR&rw&i}>GQ-qqkhE6ogo+0%S;lD$pyT!>5@<9g{(-rIOm`8oa1hhxKueD>g^D=@P8sEME zwTFh>)HUK0@J&Q-y7%P0EBu+5RH$QX{k}XjqLKt(fSNMM3*es74DlLoyfF)`MeMoD zs!NhF^tMb65E#qP;9074KSj|n3k0B&rkd+yNF42Uk^m(gitQ!_)B;cvRApfphBS3{ zjiQ5`h|-RB*!*O`RVZpe;u`QRs{C?*Ho)x+75pVZV2C6gYpQ&YwQF3IE9Hl?h$2m7 z4O3iG%LkfUfDd-$N~&@Pq_D=oD?xF|YD&kR#{KP?nF%O9r}43o3$Zc*6!Id*EU4U`wC$LHuEC=F1}iTp zp*8hAT^aNB>;UqIZrZ6H32AC(}4_ zXCOqT_VyJw{g+dd2t{g_E~J0nT(x*WTt%RkL}ln5#NlE2#lEry4M$elIw~1~r2gLE z@i*qHE%ViuL&|lkD!tBEcPA7(68k@u=zJDwx%dSJp80Jpzp|b2MsnB-zI!liY+B#H(B!>f1{=ibsn(Vd z8D@CCFy(m~n{N+vmq^3NS2RfC4}u6Yhy;J~?Iif>!hp8R%E4Br z+I7mH@ZAyQ_V@t+M?B)Pq5*q~V5I`O&b{5me?XFR_<;6A0IATlRJ)rP)i{c@w*)qh5S=pS}2g{OJ7? ze3MyuuMJC12G9u_>1S+c5EDhkwLD00tf}noY#nxl*N);-=ttP*p?XA__h4e^J0WL( zYla6f;Q~N}x3TZpioRl9IW)>2)T3~vL$C~%g|Xq zjrnAZeZ{qW?*0r;WJd4L1y1I&PLt7i$5a)d3I|zHq5HDLjosY*=`B>Ko056*4abWf?q*;;{yWAKTPwvyf7n*=WJ1rYIMV>wUS=~Non-`8we;T`k{g|ZRAm4{Wlggf; zAvT)-{FlCqDY%*lsqZ5yXxB)u1XTFw93}wxvY4UvM}KVjlXfJo)f}-G+$Y1?Z|rA7 zEuW^o3VyD}5{evMJ(uona~HeN8ycY##WXe+Om!Ne~ z@F}|D>%z1h@H~67%r~AH`co>s_~5eb8W765q*0aQYqlp-sa|}4D;KI0Q2Q_I*puld zaJ4zB9hYHRnohtTm){)~Psu&XLyonvHaVtWg{{%Y(?MFmzR<;$5V1RZ%{&`RDX3^S z#c7m1mkMDvyfU4oW(+(m4R6uvz|%1>Z|OTj!#hx|jAt*ifJaHSf+g5OHb`=zyJKp=gV`yHPIaI7}DKptk ztXSPvW)2jqo65|fSiPgn^orGOWoA&UZYwiqYkEbQ8I-Nt%FLi_-BxDyUfJ4jDl>z! zbz7Mkl&#y!%%E)DR%Qle>$Wmedu8i31ZC^CGP7DBiVjA~OgJ&zrse(W2IQ2j{iZTA zC|kFcnL*k5y{XI$%GPaV=H#04A5dmG#p<>)GkEBA-F0_hd`RS!twx!tn;4?Z+=()s zGBYS!x0RW07k{~<%nZubZDr=rO2*s%v3f_D>6!4hGBex&ZYwkQ1)Adrp4k!`N)G5(OtdcXouJmGeYFKL(Dkhzj|HF$j1DWVn)_&3V*<4 zeDKPS09@=Rd*KE#V@JLuXoujnjRUH{_4AsTacO*0F=H$4-Omhkc&RsQCT0|a?deW` z(nY5n+#VjrFgc%GQgtrq7*QIYcWjk|6ttmF{6B+P+e1P7A*=uZ002ovPDHLkV1n1G B{^I}u diff --git a/graphics/intro/unk_8409A1C.pal b/graphics/intro/unk_8409A1C.pal deleted file mode 100644 index 36cbbb9a0..000000000 --- a/graphics/intro/unk_8409A1C.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -164 238 139 -57 148 57 -131 213 115 -156 230 156 -131 205 148 -106 180 131 -65 139 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 0 0 diff --git a/graphics/intro/unk_840B834.pal b/graphics/intro/unk_840B834.pal deleted file mode 100644 index 40bbce557..000000000 --- a/graphics/intro/unk_840B834.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -238 246 189 -0 0 0 -0 0 0 -115 213 255 -156 222 255 -205 238 255 -255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/unk_840B854.pal b/graphics/intro/unk_840B854.pal deleted file mode 100644 index dcf29b92e..000000000 --- a/graphics/intro/unk_840B854.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 222 205 -255 255 255 -222 222 222 -123 123 123 -156 222 255 -189 230 255 -222 238 255 -255 255 255 -255 180 123 -238 98 74 -205 57 32 -197 131 180 -164 98 148 -131 65 123 -90 57 90 -16 16 16 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 2adb6e847..0aa81586d 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -537,14 +537,20 @@ graphics/misc/emoticons.4bpp: %.4bpp: %.png $(ITEMMENUGFXDIR)/bag_tiles.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 55 -$(INTROGFXDIR)/unk_8402D54.4bpp: %.4bpp: %.png +$(INTROGFXDIR)/scene_1/grass.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 397 -$(INTROGFXDIR)/unk_8406654.4bpp: %.4bpp: %.png +$(INTROGFXDIR)/scene_2/plants.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 17 + +$(INTROGFXDIR)/scene_2/nidorino_close.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 170 -$(INTROGFXDIR)/unk_8405B28.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 17 +$(INTROGFXDIR)/scene_2/gengar_close.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 114 + +$(INTROGFXDIR)/scene_3/gengar_anim.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 348 $(BATTLETERRAINGFXDIR)/building/terrain.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 77 diff --git a/include/intro.h b/include/intro.h index 1630b845e..7ed777ad6 100644 --- a/include/intro.h +++ b/include/intro.h @@ -1,7 +1,7 @@ #ifndef GUARD_INTRO_H #define GUARD_INTRO_H -void CB2_CopyrightScreen(void); -void c2_copyright_1(void); +void CB2_InitCopyrightScreenAfterTitleScreen(void); +void CB2_InitCopyrightScreenAfterBootup(void); #endif //GUARD_INTRO_H diff --git a/include/random.h b/include/random.h index bf4af42d0..fd6b88ad0 100644 --- a/include/random.h +++ b/include/random.h @@ -15,8 +15,9 @@ u16 Random2(void); // The number 1103515245 comes from the example implementation of rand and srand // in the ISO C standard. -#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691) -#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) +#define RAND_MULT 1103515245 +#define ISO_RANDOMIZE1(val)(RAND_MULT * (val) + 24691) +#define ISO_RANDOMIZE2(val)(RAND_MULT * (val) + 12345) //Sets the initial seed value of the pseudorandom number generator void SeedRng(u16 seed); diff --git a/src/intro.c b/src/intro.c index 471cc4fcd..d3f5fe1e4 100644 --- a/src/intro.c +++ b/src/intro.c @@ -7,6 +7,7 @@ #include "new_menu_helpers.h" #include "link.h" #include "menu.h" +#include "random.h" #include "save.h" #include "new_game.h" #include "title_screen.h" @@ -16,6 +17,82 @@ #include "constants/songs.h" #include "constants/sound.h" +/* + The intro is grouped into the following scenes + - Copyright screen + - GF Logo + Scene 1. Brief close up shot of grass + Scene 2. A panning wide shot followed by a close-up of Gengar/Nidorino + Scene 3. A fight between Gengar/Nidorino + + After this it progresses to the title screen +*/ + +enum { + GFXTAG_STAR, + GFXTAG_SPARKLES_SMALL, + GFXTAG_SPARKLES_BIG, + GFXTAG_GF_LOGO, + GFXTAG_PRESENTS, + GFXTAG_SCENE3_NIDORINO, + GFXTAG_SCENE2_GENGAR, + GFXTAG_SCENE2_NIDORINO, + GFXTAG_SCENE3_GRASS, + GFXTAG_SCENE3_GENGAR, + GFXTAG_SCENE3_SWIPE, + GFXTAG_SCENE3_RECOIL_DUST, +}; + +enum { + PALTAG_STAR, + PALTAG_SPARKLES, + PALTAG_UNUSED_2, + PALTAG_GF, + PALTAG_UNUSED_4, + PALTAG_UNUSED_5, + PALTAG_GENGAR, + PALTAG_NIDORINO, + PALTAG_SCENE3_GRASS, + PALTAG_UNUSED_9, + PALTAG_SCENE3_SWIPE, + PALTAG_SCENE3_RECOIL_DUST, +}; + +// Background IDs for Game Freak logo scene +enum { + BG_GF_TEXT_LOGO = 2, + BG_GF_BACKGROUND +}; + + +// Background IDs for Scene 1 +enum { + BG_SCENE1_GRASS, + BG_SCENE1_BACKGROUND, + BG_SCENE1_UNUSED1, + BG_SCENE1_UNUSED2 +}; + +// Background IDs for Scene 2 +enum { + BG_SCENE2_PLANTS, + BG_SCENE2_NIDORINO, + BG_SCENE2_GENGAR, + BG_SCENE2_BACKGROUND // Bg for wide shot on upper half, close up on lower half +}; + +// Background IDs for Scene 3 +enum { + BG_SCENE3_GENGAR, + BG_SCENE3_BACKGROUND, + BG_SCENE3_UNUSED1, + BG_SCENE3_UNUSED2 +}; + +#define NUM_GENGAR_BACK_SPRITES 4 + +#define COLOSSEUM_GAME_CODE 0x65366347 // "Gc6e" in ASCII + struct IntroSequenceData; typedef void (*IntroCallback)(struct IntroSequenceData *); @@ -32,11 +109,11 @@ struct IntroSequenceData struct Sprite *gengarStaticSprite; struct Sprite *nidorinoStaticSprite; struct Sprite *grassSprite; - struct Sprite *gengarBackSpriteArray[4]; - u8 filler_0038[0x4]; - u8 gamefreakLogoArtSpriteTiles[0x400]; - u8 gamefreakTextBitmap[0x400]; - u8 filler_083C[0x2080]; + struct Sprite *gengarBackSprites[NUM_GENGAR_BACK_SPRITES]; + u8 unused0[4]; + u8 gameFreakLogoGfx[0x400]; + u8 gameFreakTextGfx[0x400]; + u8 unused1[0x2080]; }; // size: 0x28BC static EWRAM_DATA struct GcmbStruct sGcmb = {0}; @@ -103,8 +180,8 @@ static void FightScene4_CreateGengarSwipeSprites(void); static void SpriteCB_GengarSwipe(struct Sprite *sprite); static void Task_FightScene3_Bg0Scroll(u8 taskId); static void SpriteCB_LargeStar(struct Sprite *sprite); -static void SpriteCB_TrailingSparkles(struct Sprite *sprite); -static void SpriteCB_TrailingSparkles2(struct Sprite *sprite); +static void SpriteCB_SparklesSmall(struct Sprite *sprite); +static void SpriteCB_SparklesSmall2(struct Sprite *sprite); static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite); static void CreateNidorinoAnimSprite(struct IntroSequenceData * ptr); static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed); @@ -122,67 +199,69 @@ static void SpriteCB_HopToPos(struct Sprite *sprite); static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData * ptr); static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite); static void LoadFightSceneSpriteTilesAndPals(void); -#if REVISION >= 1 -static void Rev1_GameFreakScene_CreatePresentsText(void); -#else -#define Rev1_GameFreakScene_CreatePresentsText() -#endif +static void CreateGameFreakPresentsText(void); extern const u32 gMultiBootProgram_PokemonColosseum_Start[]; -static const u16 sCopyrightGraphicsPal[] = INCBIN_U16("graphics/intro/unk_8402260.gbapal"); -static const u8 sCopyrightGraphicsTiles[] = INCBIN_U8("graphics/intro/unk_8402280.4bpp.lz"); -static const u8 sCopyrightGraphicsMap[] = INCBIN_U8("graphics/intro/unk_84024E4.bin.lz"); -static const u16 sBg3Pal_GameFreakPresents[] = INCBIN_U16("graphics/intro/unk_8402630.gbapal"); -static const u8 sBg3Tiles_GameFreakPresents[] = INCBIN_U8("graphics/intro/unk_8402650.4bpp.lz"); -static const u8 sBg3Map_GameFreakPresents[] = INCBIN_U8("graphics/intro/unk_8402668.bin.lz"); -static const u16 sSpritePals_GameFreakPresents[] = INCBIN_U16("graphics/intro/unk_840270C.gbapal"); -static const u8 sBlit_GameFreakText[] = INCBIN_U8("graphics/intro/unk_840272C.4bpp.lz"); -static const u32 sSpriteTiles_GameFreakLogoArt[] = INCBIN_U32("graphics/intro/unk_84028F8.4bpp.lz"); -static const u16 sSpritePals_LargeStar[] = INCBIN_U16("graphics/intro/unk_8402A64.gbapal"); -static const u32 sSpriteTiles_LargeStar[] = INCBIN_U32("graphics/intro/unk_8402A64.4bpp.lz"); -static const u16 sSpritePals_Sparkles[] = INCBIN_U16("graphics/intro/unk_8402ADC.gbapal"); -static const u32 sSpriteTiles_TrailingSparkles[] = INCBIN_U32("graphics/intro/unk_8402ADC.4bpp.lz"); -static const u32 sSpriteTiles_RevealGameFreakTextSparkles[] = INCBIN_U32("graphics/intro/unk_8402B2C.4bpp.lz"); -static const u32 sSpriteTiles_PresentsText[] = INCBIN_U32("graphics/intro/unk_8402CD4.4bpp.lz"); -static const u16 sBg0Pal_FightScene1[] = INCBIN_U16("graphics/intro/unk_8402D34.gbapal"); -static const u8 sBg0Tiles_FightScene1[] = INCBIN_U8("graphics/intro/unk_8402D54.4bpp.lz"); -static const u8 sBg0Map_FightScene1[] = INCBIN_U8("graphics/intro/unk_8403FE8.bin.lz"); -static const u16 sBg1Pal_FightScene1[] = INCBIN_U16("graphics/intro/unk_84048CC.gbapal"); -static const u8 sBg1Tiles_FightScene1[] = INCBIN_U8("graphics/intro/unk_84048EC.4bpp.lz"); -static const u8 sBg1Map_FightScene1[] = INCBIN_U8("graphics/intro/unk_8404F7C.bin.lz"); -static const u16 sBg3Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_84053B4.gbapal"); -static const u8 sBg3Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405414.4bpp.lz"); -static const u8 sBg3Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405890.bin.lz"); -static const u16 sBg0Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_8405B08.gbapal"); -static const u8 sBg0Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405B28.4bpp.lz"); -static const u8 sBg0Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405CDC.bin.lz"); -static const u16 sSpritePals_Gengar[] = INCBIN_U16("graphics/intro/unk_8405DA4.gbapal"); -static const u8 sBg2Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405DC4.4bpp.lz"); -static const u8 sBg2Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_840644C.bin.lz"); -static const u16 sBg1Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_8406634.gbapal"); -static const u8 sBg1Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8406654.4bpp.lz"); -static const u8 sBg1Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_84071D0.bin.lz"); -static const u16 sBg1Pal_FightScene3[] = INCBIN_U16("graphics/intro/unk_8407430.gbapal"); -static const u8 sBg1Tiles_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407470.4bpp.lz"); -static const u8 sBg1Map_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407A50.bin.lz"); -static const u8 sBg0Tiles_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407B9C.4bpp.lz"); -static const u8 sBg0Map_FightScene3[] = INCBIN_U8("graphics/intro/unk_8408D98.bin.lz"); -static const u32 sSpriteTiles_GengarStatic[] = INCBIN_U32("graphics/intro/unk_840926C.4bpp.lz"); -static const u16 sSpritePals_Nidorino[] = INCBIN_U16("graphics/intro/unk_84096AC.gbapal"); -static const u32 sSpriteTiles_NidorinoStatic[] = INCBIN_U32("graphics/intro/unk_84096CC.4bpp.lz"); -static const u16 sSpritePals_Grass[] = INCBIN_U16("graphics/intro/unk_8409A1C.gbapal"); -static const u32 sSpriteTiles_Grass[] = INCBIN_U32("graphics/intro/unk_8409A3C.4bpp.lz"); -static const u32 sSpriteTiles_GengarBack[] = INCBIN_U32("graphics/intro/unk_8409D20.4bpp.lz"); -static const u32 sSpriteTiles_NidorinoAnim[] = INCBIN_U32("graphics/intro/unk_840A3E4.4bpp.lz"); -static const u16 sSpritePals_GengarSwipe[] = INCBIN_U16("graphics/intro/unk_840B834.gbapal"); -static const u16 sSpritePals_NidorinoRecoilDust[] = INCBIN_U16("graphics/intro/unk_840B854.gbapal"); -static const u32 sSpriteTiles_GengarSwipe[] = INCBIN_U32("graphics/intro/unk_840B874.4bpp.lz"); -static const u32 sSpriteTiles_NidorinoRecoilDust[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz"); +static const u16 sCopyright_Pal[] = INCBIN_U16("graphics/intro/copyright.gbapal"); +static const u8 sCopyright_Gfx[] = INCBIN_U8("graphics/intro/copyright.4bpp.lz"); +static const u8 sCopyright_Map[] = INCBIN_U8("graphics/intro/copyright.bin.lz"); + +// Game Freak +static const u16 sGameFreakBg_Pal[] = INCBIN_U16("graphics/intro/game_freak/bg.gbapal"); +static const u8 sGameFreakBg_Gfx[] = INCBIN_U8( "graphics/intro/game_freak/bg.4bpp.lz"); +static const u8 sGameFreakBg_Map[] = INCBIN_U8( "graphics/intro/game_freak/bg.bin.lz"); +static const u16 sGameFreakLogo_Pal[] = INCBIN_U16("graphics/intro/game_freak/logo.gbapal"); +static const u8 sGameFreakText_Gfx[] = INCBIN_U8( "graphics/intro/game_freak/game_freak.4bpp.lz"); +static const u32 sGameFreakLogo_Gfx[] = INCBIN_U32("graphics/intro/game_freak/logo.4bpp.lz"); +static const u16 sStar_Pal[] = INCBIN_U16("graphics/intro/game_freak/star.gbapal"); +static const u32 sStar_Gfx[] = INCBIN_U32("graphics/intro/game_freak/star.4bpp.lz"); +static const u16 sSparkles_Pal[] = INCBIN_U16("graphics/intro/game_freak/sparkles.gbapal"); +static const u32 sSparklesSmall_Gfx[] = INCBIN_U32("graphics/intro/game_freak/sparkles_small.4bpp.lz"); +static const u32 sSparklesBig_Gfx[] = INCBIN_U32("graphics/intro/game_freak/sparkles_big.4bpp.lz"); +static const u32 sPresents_Gfx[] = INCBIN_U32("graphics/intro/game_freak/presents.4bpp.lz"); + +// Scene 1 (Grass close up) +static const u16 sScene1_Grass_Pal[] = INCBIN_U16("graphics/intro/scene_1/grass.gbapal"); +static const u8 sScene1_Grass_Gfx[] = INCBIN_U8( "graphics/intro/scene_1/grass.4bpp.lz"); +static const u8 sScene1_Grass_Map[] = INCBIN_U8( "graphics/intro/scene_1/grass.bin.lz"); +static const u16 sScene1_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_1/bg.gbapal"); +static const u8 sScene1_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_1/bg.4bpp.lz"); +static const u8 sScene1_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_1/bg.bin.lz"); + +// Scenes 2 and 3 (Gengar and Nidorino) +static const u16 sScene2_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_2/bg.gbapal"); +static const u8 sScene2_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/bg.4bpp.lz"); +static const u8 sScene2_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_2/bg.bin.lz"); +static const u16 sScene2_Plants_Pal[] = INCBIN_U16("graphics/intro/scene_2/plants.gbapal"); // Unused +static const u8 sScene2_Plants_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/plants.4bpp.lz"); +static const u8 sScene2_Plants_Map[] = INCBIN_U8( "graphics/intro/scene_2/plants.bin.lz"); +static const u16 sGengar_Pal[] = INCBIN_U16("graphics/intro/gengar.gbapal"); // Used by multiple scenes +static const u8 sScene2_GengarClose_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/gengar_close.4bpp.lz"); +static const u8 sScene2_GengarClose_Map[] = INCBIN_U8( "graphics/intro/scene_2/gengar_close.bin.lz"); +static const u16 sScene2_NidorinoClose_Pal[] = INCBIN_U16("graphics/intro/scene_2/nidorino_close.gbapal"); +static const u8 sScene2_NidorinoClose_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/nidorino_close.4bpp.lz"); +static const u8 sScene2_NidorinoClose_Map[] = INCBIN_U8( "graphics/intro/scene_2/nidorino_close.bin.lz"); +static const u16 sScene3_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_3/bg.gbapal"); +static const u8 sScene3_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/bg.4bpp.lz"); // give -width 16 +static const u8 sScene3_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_3/bg.bin.lz"); +static const u8 sScene3_GengarAnim_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/gengar_anim.4bpp.lz"); +static const u8 sScene3_GengarAnim_Map[] = INCBIN_U8( "graphics/intro/scene_3/gengar_anim.bin.lz"); +static const u32 sScene2_Gengar_Gfx[] = INCBIN_U32("graphics/intro/scene_2/gengar.4bpp.lz"); +static const u16 sNidorino_Pal[] = INCBIN_U16("graphics/intro/nidorino.gbapal"); // Used by multiple scenes +static const u32 sScene2_Nidorino_Gfx[] = INCBIN_U32("graphics/intro/scene_2/nidorino.4bpp.lz"); +static const u16 sScene3_Grass_Pal[] = INCBIN_U16("graphics/intro/scene_3/grass.gbapal"); +static const u32 sScene3_Grass_Gfx[] = INCBIN_U32("graphics/intro/scene_3/grass.4bpp.lz"); +static const u32 sScene3_GengarStatic_Gfx[] = INCBIN_U32("graphics/intro/scene_3/gengar_static.4bpp.lz"); +static const u32 sScene3_Nidorino_Gfx[] = INCBIN_U32("graphics/intro/scene_3/nidorino.4bpp.lz"); +static const u16 sScene3_Swipe_Pal[] = INCBIN_U16("graphics/intro/scene_3/swipe.gbapal"); +static const u16 sScene3_RecoilDust_Pal[] = INCBIN_U16("graphics/intro/scene_3/recoil_dust.gbapal"); +static const u32 sScene3_Swipe_Gfx[] = INCBIN_U32("graphics/intro/scene_3/swipe.4bpp.lz"); +static const u32 sScene3_RecoilDust_Gfx[] = INCBIN_U32("graphics/intro/scene_3/recoil_dust.4bpp.lz"); static const struct BgTemplate sBgTemplates_GameFreakScene[] = { { - .bg = 3, + .bg = BG_GF_BACKGROUND, .charBaseIndex = 3, .mapBaseIndex = 31, .screenSize = 0, @@ -190,7 +269,7 @@ static const struct BgTemplate sBgTemplates_GameFreakScene[] = { .priority = 3, .baseTile = 0x000 }, { - .bg = 2, + .bg = BG_GF_TEXT_LOGO, .charBaseIndex = 3, .mapBaseIndex = 30, .screenSize = 0, @@ -200,9 +279,9 @@ static const struct BgTemplate sBgTemplates_GameFreakScene[] = { } }; -static const struct BgTemplate sBgTemplates_FightScene1[] = { +static const struct BgTemplate sBgTemplates_Scene1[] = { { - .bg = 0, + .bg = BG_SCENE1_GRASS, .charBaseIndex = 0, .mapBaseIndex = 28, .screenSize = 2, @@ -210,7 +289,7 @@ static const struct BgTemplate sBgTemplates_FightScene1[] = { .priority = 0, .baseTile = 0x000 }, { - .bg = 1, + .bg = BG_SCENE1_BACKGROUND, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -220,9 +299,9 @@ static const struct BgTemplate sBgTemplates_FightScene1[] = { } }; -static const struct BgTemplate sBgTemplates_FightScene2[] = { +static const struct BgTemplate sBgTemplates_Scene2[] = { { - .bg = 3, + .bg = BG_SCENE2_BACKGROUND, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -230,7 +309,7 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { .priority = 3, .baseTile = 0x000 }, { - .bg = 0, + .bg = BG_SCENE2_PLANTS, .charBaseIndex = 0, .mapBaseIndex = 29, .screenSize = 0, @@ -238,7 +317,7 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { .priority = 0, .baseTile = 0x000 }, { - .bg = 2, + .bg = BG_SCENE2_GENGAR, .charBaseIndex = 3, .mapBaseIndex = 27, .screenSize = 0, @@ -246,7 +325,7 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { .priority = 2, .baseTile = 0x000 }, { - .bg = 1, + .bg = BG_SCENE2_NIDORINO, .charBaseIndex = 2, .mapBaseIndex = 28, .screenSize = 0, @@ -256,9 +335,9 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { } }; -static const struct BgTemplate sBgTemplates_FightScene3[] = { +static const struct BgTemplate sBgTemplates_Scene3[] = { { - .bg = 1, + .bg = BG_SCENE3_BACKGROUND, .charBaseIndex = 0, .mapBaseIndex = 29, .screenSize = 0, @@ -266,7 +345,7 @@ static const struct BgTemplate sBgTemplates_FightScene3[] = { .priority = 1, .baseTile = 0x000 }, { - .bg = 0, + .bg = BG_SCENE3_GENGAR, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -276,9 +355,9 @@ static const struct BgTemplate sBgTemplates_FightScene3[] = { } }; -static const struct WindowTemplate sWindowTemplate[] = { +static const struct WindowTemplate sWindowTemplate_GameFreakTextLogo[] = { { - .bg = 2, + .bg = BG_GF_TEXT_LOGO, .tilemapLeft = 6, .tilemapTop = 4, .width = 18, @@ -288,7 +367,7 @@ static const struct WindowTemplate sWindowTemplate[] = { }, DUMMY_WIN_TEMPLATE }; -static const u8 sGengarBackSpritePos2UpdateMods[][2] = { +static const u8 sGengarBackSpritePos2UpdateMods[NUM_GENGAR_BACK_SPRITES][2] = { {0x3f, 0x3f}, {0x00, 0x3f}, {0x3f, 0x00}, @@ -296,33 +375,33 @@ static const u8 sGengarBackSpritePos2UpdateMods[][2] = { }; static const struct CompressedSpriteSheet sSpriteSheets_GameFreakScene[] = { - {sSpriteTiles_LargeStar, 0x0080, 0}, - {sSpriteTiles_TrailingSparkles, 0x0080, 1}, - {sSpriteTiles_RevealGameFreakTextSparkles, 0x0800, 2}, - {sSpriteTiles_GameFreakLogoArt, 0x0400, 3}, - {sSpriteTiles_PresentsText, 0x0100, 4} + {sStar_Gfx, 0x80, GFXTAG_STAR}, + {sSparklesSmall_Gfx, 0x80, GFXTAG_SPARKLES_SMALL}, + {sSparklesBig_Gfx, 0x800, GFXTAG_SPARKLES_BIG}, + {sGameFreakLogo_Gfx, 0x400, GFXTAG_GF_LOGO}, + {sPresents_Gfx, 0x100, GFXTAG_PRESENTS} }; static const struct SpritePalette sSpritePalettes_GameFreakScene[] = { - {sSpritePals_LargeStar, 0}, - {sSpritePals_Sparkles, 1}, - {sSpritePals_GameFreakPresents, 3}, + {sStar_Pal, PALTAG_STAR}, + {sSparkles_Pal, PALTAG_SPARKLES}, + {sGameFreakLogo_Pal, PALTAG_GF}, {0} }; static const struct Coords16 sTrailingSparkleCoords[] = { - {0x0048, 0x0050}, - {0x0088, 0x004a}, - {0x00a8, 0x0050}, - {0x0078, 0x0050}, - {0x0068, 0x0056}, - {0x0058, 0x004a}, - {0x00b8, 0x004a}, - {0x0038, 0x0056}, - {0x0098, 0x0056} + { 72, 80}, + {136, 74}, + {168, 80}, + {120, 80}, + {104, 86}, + { 88, 74}, + {184, 74}, + { 56, 86}, + {152, 86} }; -static const struct OamData gOamData_840BC2C = { +static const struct OamData sOam_Star = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -335,7 +414,7 @@ static const struct OamData gOamData_840BC2C = { .paletteNum = 0 }; -static const struct OamData gOamData_840BC34 = { +static const struct OamData sOam_SparklesSmall = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -348,7 +427,7 @@ static const struct OamData gOamData_840BC34 = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BC3C[] = { +static const union AnimCmd sAnim_SparklesSmall_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(2, 4), @@ -356,7 +435,7 @@ static const union AnimCmd gAnimCmd_840BC3C[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gAnimCmd_840BC50[] = { +static const union AnimCmd sAnim_SparklesSmall_1[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(2, 4), @@ -364,32 +443,32 @@ static const union AnimCmd gAnimCmd_840BC50[] = { ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BC64[] = { - gAnimCmd_840BC3C, - gAnimCmd_840BC50 +static const union AnimCmd *const sAnims_SparklesSmall[] = { + sAnim_SparklesSmall_0, + sAnim_SparklesSmall_1 }; -static const struct SpriteTemplate sSpriteTemplate_LargeStar = { - .tileTag = 0, - .paletteTag = 0, - .oam = &gOamData_840BC2C, +static const struct SpriteTemplate sSpriteTemplate_Star = { + .tileTag = GFXTAG_STAR, + .paletteTag = PALTAG_STAR, + .oam = &sOam_Star, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_LargeStar }; -static const struct SpriteTemplate sSpriteTemplate_TrailingSparkles = { - .tileTag = 1, - .paletteTag = 1, - .oam = &gOamData_840BC34, - .anims = gAnimCmdTable_840BC64, +static const struct SpriteTemplate sSpriteTemplate_SparklesSmall = { + .tileTag = GFXTAG_SPARKLES_SMALL, + .paletteTag = PALTAG_SPARKLES, + .oam = &sOam_SparklesSmall, + .anims = sAnims_SparklesSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_TrailingSparkles + .callback = SpriteCB_SparklesSmall }; -static const struct OamData gOamData_840BC9C = { +static const struct OamData sOam_SparklesBig = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -402,7 +481,7 @@ static const struct OamData gOamData_840BC9C = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BCA4[] = { +static const union AnimCmd sAnim_SparklesBig[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(16, 8), ANIMCMD_FRAME(32, 8), @@ -410,21 +489,21 @@ static const union AnimCmd gAnimCmd_840BCA4[] = { ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BCB8[] = { - gAnimCmd_840BCA4 +static const union AnimCmd *const sAnims_SparklesBig[] = { + sAnim_SparklesBig }; -static const struct SpriteTemplate sSpriteTemplate_RevealGameFreakTextSparkles = { - .tileTag = 2, - .paletteTag = 1, - .oam = &gOamData_840BC9C, - .anims = gAnimCmdTable_840BCB8, +static const struct SpriteTemplate sSpriteTemplate_SparklesBig = { + .tileTag = GFXTAG_SPARKLES_BIG, + .paletteTag = PALTAG_SPARKLES, + .oam = &sOam_SparklesBig, + .anims = sAnims_SparklesBig, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_RevealGameFreakTextSparkles }; -static const struct OamData gOamData_840BCD4 = { +static const struct OamData sOam_GameFreakLogo = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, @@ -438,16 +517,16 @@ static const struct OamData gOamData_840BCD4 = { }; static const struct SpriteTemplate sSpriteTemplate_GameFreakLogoArt = { - .tileTag = 3, - .paletteTag = 3, - .oam = &gOamData_840BCD4, + .tileTag = GFXTAG_GF_LOGO, + .paletteTag = PALTAG_GF, + .oam = &sOam_GameFreakLogo, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BCF4 = { +static const struct OamData sOam_PresentsText = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, @@ -461,16 +540,16 @@ static const struct OamData gOamData_840BCF4 = { }; static const struct SpriteTemplate sSpriteTemplate_PresentsText = { - .tileTag = 4, - .paletteTag = 3, - .oam = &gOamData_840BCF4, + .tileTag = GFXTAG_PRESENTS, + .paletteTag = PALTAG_GF, + .oam = &sOam_PresentsText, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BD14 = { +static const struct OamData sOam_Scene3_Nidorino = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -483,66 +562,66 @@ static const struct OamData gOamData_840BD14 = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BD1C[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD24[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_1[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD2C[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_2[] = { ANIMCMD_FRAME(128, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD34[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_3[] = { ANIMCMD_FRAME(192, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD3C[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_4[] = { ANIMCMD_FRAME(256, 1), ANIMCMD_END }; -static const union AnimCmd *const sAnimTable_NidorinoAnim[] = { - gAnimCmd_840BD1C, - gAnimCmd_840BD24, - gAnimCmd_840BD2C, - gAnimCmd_840BD34, - gAnimCmd_840BD3C +static const union AnimCmd *const sAnims_Scene3_Nidorino[] = { + sAnim_Scene3_Nidorino_0, + sAnim_Scene3_Nidorino_1, + sAnim_Scene3_Nidorino_2, + sAnim_Scene3_Nidorino_3, + sAnim_Scene3_Nidorino_4 }; -static const union AffineAnimCmd gAffineAnimCmd_840BD58[] = { +static const union AffineAnimCmd sAffineAnim_Scene3_Mons_0[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gAffineAnimCmd_840BD68[] = { +static const union AffineAnimCmd sAffineAnim_Scene3_Mons_1[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(32, 32, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sAffineAnimTable_NidorinoAnim[] = { - gAffineAnimCmd_840BD58, - gAffineAnimCmd_840BD68 +static const union AffineAnimCmd *const sAffineAnims_Scene3_Mons[] = { + sAffineAnim_Scene3_Mons_0, + sAffineAnim_Scene3_Mons_1 }; -static const struct SpriteTemplate sSpriteTemplate_NidorinoAnim = { - .tileTag = 5, - .paletteTag = 7, - .oam = &gOamData_840BD14, - .anims = sAnimTable_NidorinoAnim, +static const struct SpriteTemplate sSpriteTemplate_Scene3_Nidorino = { + .tileTag = GFXTAG_SCENE3_NIDORINO, + .paletteTag = PALTAG_NIDORINO, + .oam = &sOam_Scene3_Nidorino, + .anims = sAnims_Scene3_Nidorino, .images = NULL, - .affineAnims = sAffineAnimTable_NidorinoAnim, + .affineAnims = sAffineAnims_Scene3_Mons, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BDA0 = { +static const struct OamData sOam_Scene2_Mons = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -555,27 +634,27 @@ static const struct OamData gOamData_840BDA0 = { .paletteNum = 0 }; -static const struct SpriteTemplate sSpriteTemplate_NidorinoStatic = { - .tileTag = 7, - .paletteTag = 7, - .oam = &gOamData_840BDA0, +static const struct SpriteTemplate sSpriteTemplate_Scene2_Nidorino = { + .tileTag = GFXTAG_SCENE2_NIDORINO, + .paletteTag = PALTAG_NIDORINO, + .oam = &sOam_Scene2_Mons, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate sSpriteTemplate_GengarStatic = { - .tileTag = 6, - .paletteTag = 6, - .oam = &gOamData_840BDA0, +static const struct SpriteTemplate sSpriteTemplate_Scene2_Gengar = { + .tileTag = GFXTAG_SCENE2_GENGAR, + .paletteTag = PALTAG_GENGAR, + .oam = &sOam_Scene2_Mons, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BDD8 = { +static const struct OamData sOam_Grass = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -588,33 +667,33 @@ static const struct OamData gOamData_840BDD8 = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmds_840BDE0[] = { +static const union AnimCmd sAnim_Grass_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmds_840BDE8[] = { +static const union AnimCmd sAnim_Grass_1[] = { ANIMCMD_FRAME(32, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BDF4[] = { - gAnimCmds_840BDE0, - gAnimCmds_840BDE8 +static const union AnimCmd *const sAnims_Grass[] = { + sAnim_Grass_0, + sAnim_Grass_1 }; static const struct SpriteTemplate sSpriteTemplate_Grass = { - .tileTag = 8, - .paletteTag = 8, - .oam = &gOamData_840BDD8, - .anims = gAnimCmdTable_840BDF4, + .tileTag = GFXTAG_SCENE3_GRASS, + .paletteTag = PALTAG_SCENE3_GRASS, + .oam = &sOam_Grass, + .anims = sAnims_Grass, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BE14 = { +static const struct OamData sOam_Scene3_Gengar = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -627,44 +706,44 @@ static const struct OamData gOamData_840BE14 = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BE1C[] = { +static const union AnimCmd sAnim_Scene3_Gengar_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE24[] = { +static const union AnimCmd sAnim_Scene3_Gengar_1[] = { ANIMCMD_FRAME(64, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE2C[] = { +static const union AnimCmd sAnim_Scene3_Gengar_2[] = { ANIMCMD_FRAME(96, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE34[] = { +static const union AnimCmd sAnim_Scene3_Gengar_3[] = { ANIMCMD_FRAME(160, 0), ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BE3C[] = { - gAnimCmd_840BE1C, - gAnimCmd_840BE24, - gAnimCmd_840BE2C, - gAnimCmd_840BE34 +static const union AnimCmd *const sAnims_Scene3_Gengar[NUM_GENGAR_BACK_SPRITES] = { + sAnim_Scene3_Gengar_0, + sAnim_Scene3_Gengar_1, + sAnim_Scene3_Gengar_2, + sAnim_Scene3_Gengar_3 }; -static const struct SpriteTemplate sSpriteTemplate_GengarBack = { - .tileTag = 9, - .paletteTag = 6, - .oam = &gOamData_840BE14, - .anims = gAnimCmdTable_840BE3C, +static const struct SpriteTemplate sSpriteTemplate_Scene3_Gengar = { + .tileTag = GFXTAG_SCENE3_GENGAR, + .paletteTag = PALTAG_GENGAR, + .oam = &sOam_Scene3_Gengar, + .anims = sAnims_Scene3_Gengar, .images = NULL, - .affineAnims = sAffineAnimTable_NidorinoAnim, + .affineAnims = sAffineAnims_Scene3_Mons, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BE64 = { +static const struct OamData sOam_Swipe = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -677,34 +756,34 @@ static const struct OamData gOamData_840BE64 = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BE6C[] = { +static const union AnimCmd sAnim_Swipe_0[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(32, 4), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE78[] = { +static const union AnimCmd sAnim_Swipe_1[] = { ANIMCMD_FRAME(64, 8), ANIMCMD_FRAME(72, 4), ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BE84[] = { - gAnimCmd_840BE6C, - gAnimCmd_840BE78 +static const union AnimCmd *const sAnims_Swipe[] = { + sAnim_Swipe_0, + sAnim_Swipe_1 }; static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = { - .tileTag = 10, - .paletteTag = 10, - .oam = &gOamData_840BE64, - .anims = gAnimCmdTable_840BE84, + .tileTag = GFXTAG_SCENE3_SWIPE, + .paletteTag = PALTAG_SCENE3_SWIPE, + .oam = &sOam_Swipe, + .anims = sAnims_Swipe, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_GengarSwipe }; -static const struct OamData gOamData_840BEA4 = { +static const struct OamData sOam_RecoilDust = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, @@ -717,7 +796,7 @@ static const struct OamData gOamData_840BEA4 = { .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BEAC[] = { +static const union AnimCmd sAnim_RecoilDust[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), ANIMCMD_FRAME(8, 10), @@ -725,28 +804,28 @@ static const union AnimCmd gAnimCmd_840BEAC[] = { ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BEC0[] = { - gAnimCmd_840BEAC +static const union AnimCmd *const sAnims_RecoilDust[] = { + sAnim_RecoilDust }; static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = { - .tileTag = 11, - .paletteTag = 11, - .oam = &gOamData_840BEA4, - .anims = gAnimCmdTable_840BEC0, + .tileTag = GFXTAG_SCENE3_RECOIL_DUST, + .paletteTag = PALTAG_SCENE3_RECOIL_DUST, + .oam = &sOam_RecoilDust, + .anims = sAnims_RecoilDust, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_NidorinoRecoilDust }; static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = { - {sSpriteTiles_GengarStatic, 0x0800, 6}, - {sSpriteTiles_NidorinoStatic, 0x0800, 7}, - {sSpriteTiles_NidorinoAnim, 0x2800, 5}, - {sSpriteTiles_Grass, 0x0800, 8}, - {sSpriteTiles_GengarBack, 0x1800, 9}, - {sSpriteTiles_GengarSwipe, 0x0a00, 10}, - {sSpriteTiles_NidorinoRecoilDust, 0x0200, 11} + {sScene2_Gengar_Gfx, 0x800, GFXTAG_SCENE2_GENGAR}, + {sScene2_Nidorino_Gfx, 0x800, GFXTAG_SCENE2_NIDORINO}, + {sScene3_Nidorino_Gfx, 0x2800, GFXTAG_SCENE3_NIDORINO}, + {sScene3_Grass_Gfx, 0x800, GFXTAG_SCENE3_GRASS}, + {sScene3_GengarStatic_Gfx, 0x1800, GFXTAG_SCENE3_GENGAR}, + {sScene3_Swipe_Gfx, 0xA00, GFXTAG_SCENE3_SWIPE}, + {sScene3_RecoilDust_Gfx, 0x200, GFXTAG_SCENE3_RECOIL_DUST} }; // POTENTIAL UB @@ -755,11 +834,11 @@ static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = { // Because such an entry is absent in this case, the function // continues reading into the next .rodata section. static const struct SpritePalette sFightSceneSpritePalettes[] = { - {sSpritePals_Gengar, 6}, - {sSpritePals_Nidorino, 7}, - {sSpritePals_Grass, 8}, - {sSpritePals_GengarSwipe, 10}, - {sSpritePals_NidorinoRecoilDust, 11}, + {sGengar_Pal, PALTAG_GENGAR}, + {sNidorino_Pal, PALTAG_NIDORINO}, + {sScene3_Grass_Pal, PALTAG_SCENE3_GRASS}, + {sScene3_Swipe_Pal, PALTAG_SCENE3_SWIPE}, + {sScene3_RecoilDust_Pal, PALTAG_SCENE3_RECOIL_DUST}, #ifdef BUGFIX {0} #endif @@ -778,19 +857,19 @@ static void CB2_WaitFadeBeforeSetUpIntro(void) SetMainCallback2(CB2_SetUpIntro); } -static void load_copyright_graphics(u16 charBase, u16 screenBase, u16 palOffset) +static void LoadCopyrightGraphics(u16 charBase, u16 screenBase, u16 palOffset) { - LZ77UnCompVram(sCopyrightGraphicsTiles, (void *)BG_VRAM + charBase); - LZ77UnCompVram(sCopyrightGraphicsMap, (void *)BG_VRAM + screenBase); - LoadPalette(sCopyrightGraphicsPal, palOffset, 0x20); + LZ77UnCompVram(sCopyright_Gfx, (void *)BG_VRAM + charBase); + LZ77UnCompVram(sCopyright_Map, (void *)BG_VRAM + screenBase); + LoadPalette(sCopyright_Pal, palOffset, 0x20); } -static void SerialCb_CopyrightScreen(void) +static void SerialCB_CopyrightScreen(void) { GameCubeMultiBoot_HandleSerialInterrupt(&sGcmb); } -static bool8 RunCopyrightScreen(void) +static bool8 SetUpCopyrightScreen(void) { switch (gMain.state) { @@ -807,17 +886,17 @@ static bool8 RunCopyrightScreen(void) DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT + sizeof(vu16), PLTT_SIZE - sizeof(vu16)); ResetPaletteFade(); - load_copyright_graphics(0 * BG_CHAR_SIZE, 7 * BG_SCREEN_SIZE, 0); + LoadCopyrightGraphics(0 * BG_CHAR_SIZE, 7 * BG_SCREEN_SIZE, 0); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, 0xFFFF); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(7)); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_Copyright); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); - SetSerialCallback(SerialCb_CopyrightScreen); + SetSerialCallback(SerialCB_CopyrightScreen); GameCubeMultiBoot_Init(&sGcmb); // fallthrough default: @@ -841,11 +920,10 @@ static bool8 RunCopyrightScreen(void) { if (sGcmb.gcmb_field_2 == 2) { - // Gc6e - if (*((u32 *)0x020000AC) == 0x65366347) + if (*(u32 *)(EWRAM_START + 0xAC) == COLOSSEUM_GAME_CODE) { CpuCopy16(gMultiBootProgram_PokemonColosseum_Start, (void *)EWRAM_START, 0x28000); - *((u32 *)0x020000AC) = 0x65366347; + *(u32 *)(EWRAM_START + 0xAC) = COLOSSEUM_GAME_CODE; } GameCubeMultiBoot_ExecuteProgram(&sGcmb); } @@ -866,9 +944,9 @@ static bool8 RunCopyrightScreen(void) return TRUE; } -void c2_copyright_1(void) +void CB2_InitCopyrightScreenAfterBootup(void) { - if (!RunCopyrightScreen()) + if (!SetUpCopyrightScreen()) { ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); @@ -879,9 +957,9 @@ void c2_copyright_1(void) } } -void CB2_CopyrightScreen(void) +void CB2_InitCopyrightScreenAfterTitleScreen(void) { - RunCopyrightScreen(); + SetUpCopyrightScreen(); } static void CB2_SetUpIntro(void) @@ -908,10 +986,10 @@ static void CB2_SetUpIntro(void) InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, NELEMS(sBgTemplates_GameFreakScene)); break; case 1: - LoadPalette(sBg3Pal_GameFreakPresents, 0x00, 0x20); - DecompressAndCopyTileDataToVram(3, sBg3Tiles_GameFreakPresents, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, sBg3Map_GameFreakPresents, 0, 0, 1); - LoadPalette(sSpritePals_GameFreakPresents, 0xD0, 0x20); + LoadPalette(sGameFreakBg_Pal, 0x00, 0x20); + DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Map, 0, 0, 1); + LoadPalette(sGameFreakLogo_Pal, 0xD0, 0x20); break; case 2: if (!FreeTempTileDataBuffersIfPossible()) @@ -985,12 +1063,12 @@ static void IntroCB_Init(struct IntroSequenceData * this) switch (this->state) { case 0: - InitWindows(sWindowTemplate); - LZ77UnCompWram(sBlit_GameFreakText, this->gamefreakTextBitmap); - LZ77UnCompWram(sSpriteTiles_GameFreakLogoArt, this->gamefreakLogoArtSpriteTiles); - FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); + InitWindows(sWindowTemplate_GameFreakTextLogo); + LZ77UnCompWram(sGameFreakText_Gfx, this->gameFreakTextGfx); + LZ77UnCompWram(sGameFreakLogo_Gfx, this->gameFreakLogoGfx); + FillBgTilemapBufferRect(BG_GF_TEXT_LOGO, 0x000, 0, 0, 32, 32, 0x11); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16); + BlitBitmapToWindow(0, this->gameFreakTextGfx, 0, 40, 144, 16); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); this->state++; @@ -1068,8 +1146,7 @@ static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData this->state++; break; case 1: - this->data[5]++; - if (this->data[5] >= 40) + if (++this->data[5] >= 40) this->state++; break; case 2: @@ -1090,8 +1167,7 @@ static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData } break; case 5: - this->data[5]++; - if (this->data[5] > 50) + if (++this->data[5] > 50) SetIntroCB(this, IntroCB_GameFreakScene_CreateGameFreakLogo); break; } @@ -1116,8 +1192,8 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 2: if (!IsBlendTaskActive()) { - BlitBitmapToWindow(0, this->gamefreakLogoArtSpriteTiles, 0x38, 0x06, 0x20, 0x40); - BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0x00, 0x28, 0x90, 0x10); + BlitBitmapToWindow(0, this->gameFreakLogoGfx, 0x38, 0x06, 0x20, 0x40); + BlitBitmapToWindow(0, this->gameFreakTextGfx, 0x00, 0x28, 0x90, 0x10); CopyWindowToVram(0, COPYWIN_GFX); this->state++; } @@ -1126,14 +1202,15 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData if (!IsDma3ManagerBusyWithBgCopy()) { DestroySprite(this->gameFreakLogoArtSprite); - Rev1_GameFreakScene_CreatePresentsText(); + #if REVISION >= 1 + CreateGameFreakPresentsText(); + #endif this->data[5] = 0; this->state++; } break; case 4: - this->data[5]++; - if (this->data[5] > 90) + if (++this->data[5] > 90) { SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2); StartBlendTask(16, 0, 0, 16, 20, 0); @@ -1143,7 +1220,7 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 5: if (!IsBlendTaskActive()) { - HideBg(2); + HideBg(BG_GF_TEXT_LOGO); this->state++; } break; @@ -1154,8 +1231,7 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData this->state++; break; case 7: - this->data[5]++; - if (this->data[5] > 20) + if (++this->data[5] > 20) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetIntroCB(this, IntroCB_FightScene); @@ -1170,16 +1246,16 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) { case 0: SetVBlankCallback(NULL); - LoadPalette(sBg0Pal_FightScene1, 0x10, 0x20); - LoadPalette(sBg1Pal_FightScene1, 0x20, 0x20); + LoadPalette(sScene1_Grass_Pal, 0x10, 0x20); + LoadPalette(sScene1_Bg_Pal, 0x20, 0x20); BlendPalettes(0x00000006, 0x10, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_FightScene1, NELEMS(sBgTemplates_FightScene1)); - DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene1, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene1, 0, 0, 1); - ShowBg(1); - HideBg(0); - HideBg(2); - HideBg(3); + InitBgsFromTemplates(0, sBgTemplates_Scene1, NELEMS(sBgTemplates_Scene1)); + DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Map, 0, 0, 1); + ShowBg(BG_SCENE1_BACKGROUND); + HideBg(BG_SCENE1_GRASS); + HideBg(BG_SCENE1_UNUSED1); + HideBg(BG_SCENE1_UNUSED2); LoadFightSceneSpriteTilesAndPals(); SetVBlankCallback(VBlankCB_Intro); this->state++; @@ -1187,17 +1263,17 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) case 1: if (!FreeTempTileDataBuffersIfPossible()) { - DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene1, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene1, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE1_GRASS, sScene1_Grass_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE1_GRASS, sScene1_Grass_Map, 0, 0, 1); ResetBgPositions(); - ShowBg(1); + ShowBg(BG_SCENE1_BACKGROUND); this->state++; } break; case 2: if (!FreeTempTileDataBuffersIfPossible()) { - ShowBg(0); + ShowBg(BG_SCENE1_GRASS); CreateTask(Task_FightScene1_GrassyFieldAnim, 0); BeginNormalPaletteFade(0x00000006, -2, 16, 0, RGB_WHITE); this->state++; @@ -1241,19 +1317,17 @@ static void Task_FightScene1_GrassyFieldAnim(u8 taskId) { s16 * data = gTasks[taskId].data; - data[0]++; - if (data[0] > 5) + if (++data[0] > 5) { data[0] = 0; - data[1]++; - if (data[1] > 2) + if (++data[1] > 2) data[1] = 0; - ChangeBgY(0, data[1] << 15, 0); + ChangeBgY(BG_SCENE1_GRASS, data[1] << 15, 0); } if (data[2]) { data[3] += 0x120; - ChangeBgY(0, data[3], 2); + ChangeBgY(BG_SCENE1_GRASS, data[3], 2); } } @@ -1267,13 +1341,12 @@ static void Task_FightScene1_ZoomEffect(u8 taskId) { s16 * data = gTasks[taskId].data; - data[0]++; - if (data[0] > 3) + if (++data[0] > 3) { data[0] = 0; if (data[1] < 2) data[1]++; - ChangeBgY(1, data[1] << 15, 0); + ChangeBgY(BG_SCENE1_BACKGROUND, data[1] << 15, 0); } } @@ -1283,32 +1356,32 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) { case 0: BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_FightScene2, NELEMS(sBgTemplates_FightScene2)); - DecompressAndCopyTileDataToVram(3, sBg3Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, sBg3Map_FightScene2, 0, 0, 1); - ShowBg(3); + InitBgsFromTemplates(0, sBgTemplates_Scene2, NELEMS(sBgTemplates_Scene2)); + DecompressAndCopyTileDataToVram(BG_SCENE2_BACKGROUND, sScene2_Bg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_BACKGROUND, sScene2_Bg_Map, 0, 0, 1); + ShowBg(BG_SCENE2_BACKGROUND); this->state++; break; case 1: if (!FreeTempTileDataBuffersIfPossible()) { SetVBlankCallback(NULL); - LoadPalette(sBg3Pal_FightScene2, 0x10, 0x60); - LoadPalette(sSpritePals_Gengar, 0x50, 0x20); - LoadPalette(sBg1Pal_FightScene2, 0x60, 0x20); + LoadPalette(sScene2_Bg_Pal, 0x10, 0x60); + LoadPalette(sGengar_Pal, 0x50, 0x20); + LoadPalette(sScene2_NidorinoClose_Pal, 0x60, 0x20); BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene2, 0, 0, 1); - DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene2, 0, 0, 1); - DecompressAndCopyTileDataToVram(2, sBg2Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, sBg2Map_FightScene2, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Map, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE2_NIDORINO, sScene2_NidorinoClose_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_NIDORINO, sScene2_NidorinoClose_Map, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE2_GENGAR, sScene2_GengarClose_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_GENGAR, sScene2_GengarClose_Map, 0, 0, 1); ResetBgPositions(); - ShowBg(0); - HideBg(1); - HideBg(2); - ChangeBgY(2, 0x0001CE00, 0); - ChangeBgY(1, 0x00002800, 0); + ShowBg(BG_SCENE2_PLANTS); + HideBg(BG_SCENE2_NIDORINO); // Hide bgs for scene 3 + HideBg(BG_SCENE2_GENGAR); + ChangeBgY(BG_SCENE2_GENGAR, 0x0001CE00, 0); + ChangeBgY(BG_SCENE2_NIDORINO, 0x00002800, 0); CreateTask(Task_FightScene2_CameraHorizPanEffect, 0); CreateMonStaticSprites(this); BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); @@ -1331,18 +1404,17 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) } break; case 4: - this->data[5]++; - if (this->data[5] >= 60) + if (++this->data[5] >= 60) { this->data[5] = 0; DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraHorizPanEffect)); DestroyStaticMonSprites(this); CreateTask(Task_FightScene2_CameraVertPanEffect, 0); - ChangeBgY(3, 0x00010000, 0); - HideBg(0); - ShowBg(3); - ShowBg(1); - ShowBg(2); + ChangeBgY(BG_SCENE2_BACKGROUND, 0x00010000, 0); // Move background from upper half (wide shot) to lower half (close up) + HideBg(BG_SCENE2_PLANTS); + ShowBg(BG_SCENE2_BACKGROUND); + ShowBg(BG_SCENE2_NIDORINO); + ShowBg(BG_SCENE2_GENGAR); this->state++; } break; @@ -1354,8 +1426,7 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) } break; case 6: - this->data[5]++; - if (this->data[5] >= 60) + if (++this->data[5] >= 60) { DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraVertPanEffect)); SetIntroCB(this, IntroCB_FightScene3); @@ -1366,14 +1437,14 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) static void Task_FightScene2_CameraHorizPanEffect(u8 taskId) { - ChangeBgX(3, 0x0E0, 2); - ChangeBgX(0, 0x110, 1); + ChangeBgX(BG_SCENE2_BACKGROUND, 0x0E0, 2); + ChangeBgX(BG_SCENE2_PLANTS, 0x110, 1); } static void Task_FightScene2_CameraVertPanEffect(u8 taskId) { - ChangeBgY(2, 0x020, 1); - ChangeBgY(1, 0x024, 2); + ChangeBgY(BG_SCENE2_GENGAR, 0x020, 1); + ChangeBgY(BG_SCENE2_NIDORINO, 0x024, 2); } static void CreateMonStaticSprites(struct IntroSequenceData * this) @@ -1383,11 +1454,11 @@ static void CreateMonStaticSprites(struct IntroSequenceData * this) this->gengarStaticSprite = NULL; this->nidorinoStaticSprite = NULL; - spriteId = CreateSprite(&sSpriteTemplate_NidorinoStatic, 168, 80, 11); + spriteId = CreateSprite(&sSpriteTemplate_Scene2_Nidorino, 168, 80, 11); if (spriteId != MAX_SPRITES) this->nidorinoStaticSprite = &gSprites[spriteId]; - spriteId = CreateSprite(&sSpriteTemplate_GengarStatic, 72, 80, 12); + spriteId = CreateSprite(&sSpriteTemplate_Scene2_Gengar, 72, 80, 12); if (spriteId != MAX_SPRITES) this->gengarStaticSprite = &gSprites[spriteId]; } @@ -1405,16 +1476,16 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) switch (this->state) { case 0: - LoadPalette(sBg1Pal_FightScene3, 0x10, 0x40); - LoadPalette(sSpritePals_Gengar, 0x50, 0x20); + LoadPalette(sScene3_Bg_Pal, 0x10, 0x40); + LoadPalette(sGengar_Pal, 0x50, 0x20); BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_FightScene3, NELEMS(sBgTemplates_FightScene3)); - DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene3, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene3, 0, 0, 1); - ShowBg(1); - HideBg(0); - HideBg(2); - HideBg(3); + InitBgsFromTemplates(0, sBgTemplates_Scene3, NELEMS(sBgTemplates_Scene3)); + DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Map, 0, 0, 1); + ShowBg(BG_SCENE3_BACKGROUND); + HideBg(BG_SCENE3_GENGAR); + HideBg(BG_SCENE3_UNUSED1); + HideBg(BG_SCENE3_UNUSED2); ResetBgPositions(); this->state++; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); @@ -1427,12 +1498,12 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) case 1: if (!FreeTempTileDataBuffersIfPossible()) { - DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene3, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene3, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE3_GENGAR, sScene3_GengarAnim_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE3_GENGAR, sScene3_GengarAnim_Map, 0, 0, 1); gUnknown_203AB00 = 4; gUnknown_203AB02 = 52; - ChangeBgX(0, 0x00001800, 0); - ChangeBgY(0, 0x0001F000, 0); + ChangeBgX(BG_SCENE3_GENGAR, 0x00001800, 0); + ChangeBgY(BG_SCENE3_GENGAR, 0x0001F000, 0); this->state++; } break; @@ -1440,7 +1511,7 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) if (!FreeTempTileDataBuffersIfPossible()) { BlendPalettes(0xFFFFFFFE, 0, RGB_WHITE); - ShowBg(0); + ShowBg(BG_SCENE3_GENGAR); CreateTask(Task_FightScene3_ForestBgScroll, 0); CreateNidorinoAnimSprite(this); StartNidorinoAnimSpriteSlideIn(this->nidorinoAnimSprite, 0, 0xB4, 0x34); @@ -1451,8 +1522,7 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) } break; case 3: - this->data[5]++; - if (this->data[5] == 16) + if (++this->data[5] == 16) CreateGrassSprite(this); if (!IsNidorinoAnimSpriteSlideInRunning(this) && !FuncIsActiveTask(Task_FightScene3_Bg0Scroll)) SetIntroCB(this, IntroCB_FightScene4); @@ -1463,9 +1533,9 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) static void Task_FightScene3_Bg1Scroll(u8 taskId) { if (gTasks[taskId].data[0] == 0) - ChangeBgX(1, 0x400, 2); + ChangeBgX(BG_SCENE3_BACKGROUND, 0x400, 2); else - ChangeBgX(1, 0x020, 2); + ChangeBgX(BG_SCENE3_BACKGROUND, 0x020, 2); } static void FightScene3_StartBg1Scroll(void) @@ -1484,12 +1554,11 @@ static void Task_FightScene3_ForestBgScroll(u8 taskId) s16 * data = gTasks[taskId].data; if (data[0] == 0) { - data[1]++; - if (data[1] >= 30) + if (++data[1] >= 30) { data[1] = 0; data[2] ^= 1; - ChangeBgY(0, (data[2] << 15) + 0x1F000, 0); + ChangeBgY(BG_SCENE3_GENGAR, (data[2] << 15) + 0x1F000, 0); } } } @@ -1566,8 +1635,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) this->state++; break; case 1: - this->data[5]++; - if (this->data[5] > 30) + if (++this->data[5] > 30) { FightScene4_NidorinoRearsUp(this); this->state++; @@ -1581,8 +1649,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) } break; case 3: - this->data[5]++; - if (this->data[5] > 30) + if (++this->data[5] > 30) { FightScene3_PauseForestBgScroll(); FightScene4_StartGengarAttack(this); @@ -1606,8 +1673,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) } break; case 6: - this->data[5]++; - if (this->data[5] > 16) + if (++this->data[5] > 16) { StartSpriteHopToPosAnim(this->nidorinoAnimSprite, 8, 12, 5); this->state++; @@ -1628,8 +1694,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) } break; case 9: - this->data[5]++; - if (this->data[5] > 20) + if (++this->data[5] > 20) { StartNidorinoAnim_LaunchSelfAtGengarAnim(this); this->data[5] = 0; @@ -1645,13 +1710,12 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) } break; case 11: - HideBg(0); + HideBg(BG_SCENE3_GENGAR); this->data[5] = 0; this->state++; break; case 12: - this->data[5]++; - if (this->data[5] == 48) + if (++this->data[5] == 48) BeginNormalPaletteFade(0x00000006, 2, 0, 16, RGB_WHITE); if (this->data[5] > 120) { @@ -1662,8 +1726,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) } break; case 13: - this->data[5]++; - if (this->data[5] > 8) + if (++this->data[5] > 8) { CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64); BeginNormalPaletteFade(0xFFFFFFFE, -2, 0, 16, RGB_BLACK); @@ -1678,8 +1741,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) } break; case 15: - this->data[5]++; - if (this->data[5] > 60) + if (++this->data[5] > 60) SetIntroCB(this, IntroCB_CleanUp); break; default: @@ -1705,18 +1767,18 @@ static void CreateGengarBackSprite(struct IntroSequenceData * this) int i; // Not using a subsprite table for this - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_GENGAR_BACK_SPRITES; i++) { int x = (i & 1) * 48 + 49; int y = (i / 2) * 64 + 72; - u8 spriteId = CreateSprite(&sSpriteTemplate_GengarBack, x, y, 8); + u8 spriteId = CreateSprite(&sSpriteTemplate_Scene3_Gengar, x, y, 8); if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); - this->gengarBackSpriteArray[i] = &gSprites[spriteId]; + this->gengarBackSprites[i] = &gSprites[spriteId]; if (i & 1) - this->gengarBackSpriteArray[i]->oam.shape = ST_OAM_V_RECTANGLE; - FightScene_CalcCenterToCornerVec(this->gengarBackSpriteArray[i]); + this->gengarBackSprites[i]->oam.shape = ST_OAM_V_RECTANGLE; + FightScene_CalcCenterToCornerVec(this->gengarBackSprites[i]); } } } @@ -1738,11 +1800,11 @@ static void FightScene4_StartGengarAffineAnim(struct IntroSequenceData * this) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_GENGAR_BACK_SPRITES; i++) { - StartSpriteAffineAnim(this->gengarBackSpriteArray[i], 1); - this->gengarBackSpriteArray[i]->callback = SpriteCB_DummyButNotDummy; - obj_pos2_update_enable(this->gengarBackSpriteArray[i], sGengarBackSpritePos2UpdateMods[i][0], sGengarBackSpritePos2UpdateMods[i][1]); + StartSpriteAffineAnim(this->gengarBackSprites[i], 1); + this->gengarBackSprites[i]->callback = SpriteCB_DummyButNotDummy; + obj_pos2_update_enable(this->gengarBackSprites[i], sGengarBackSpritePos2UpdateMods[i][0], sGengarBackSpritePos2UpdateMods[i][1]); } } @@ -1774,9 +1836,7 @@ static void GameFreakScene_LoadGfxCreateStar(void) static EWRAM_DATA u32 sTrailingSparklesRngSeed = 0; for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++) - { LoadCompressedSpriteSheet(&sSpriteSheets_GameFreakScene[i]); - } LoadSpritePalettes(sSpritePalettes_GameFreakScene); sLargeStarXSpeed = 0x60; sLargeStarYSpeed = 0x10; @@ -1791,7 +1851,7 @@ static void GameFreakScene_LoadGfxCreateStar(void) sTrailingSparklesYprecision = 5; if (sTrailingSparklesRngSeed == 0) sTrailingSparklesRngSeed = 354128453; - spriteId = CreateSprite(&sSpriteTemplate_LargeStar, 0xF8, 0x37, 0); + spriteId = CreateSprite(&sSpriteTemplate_Star, 0xF8, 0x37, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = 0xF80; @@ -1809,14 +1869,13 @@ static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2) u8 spriteId; s16 xMod = (a2 & sTrailingSparklesXmodMask) + 2; s16 yMod = sYmod; - sYmod++; - if (sYmod > 3) + if (++sYmod > 3) sYmod = -3; x += xMod; y += yMod; - if (x >= 1 && x <= 0xEF) + if (x > 0 && x < DISPLAY_WIDTH) { - spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, x, y, 1); + spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, x, y, 1); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = x << sTrailingSparklesXprecision; @@ -1843,19 +1902,17 @@ static void Task_GameFreakScene_TrailingSparkleSpawner(u8 taskId) { data[2] = 0; r6 = data[0]; - spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, sTrailingSparkleCoords[r6].x, sTrailingSparkleCoords[r6].y, 2); + spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, sTrailingSparkleCoords[r6].x, sTrailingSparkleCoords[r6].y, 2); StartSpriteAnim(&gSprites[spriteId], 1); - gSprites[spriteId].callback = SpriteCB_TrailingSparkles2; + gSprites[spriteId].callback = SpriteCB_SparklesSmall2; gSprites[spriteId].data[1] = sTrailingSparkleCoords[r6].y << 4; gSprites[spriteId].data[2] = 120; gSprites[spriteId].data[3] = data[1]; if (gSprites[spriteId].data[3] < 0) gSprites[spriteId].data[3] = 1; - data[0]++; - if (data[0] >= NELEMS(sTrailingSparkleCoords)) + if (++data[0] >= NELEMS(sTrailingSparkleCoords)) { - data[1]++; - if (data[1] > 1) + if (++data[1] > 1) DestroyTask(taskId); else data[0] = 0; @@ -1879,13 +1936,11 @@ static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId) data[1] += 4; if (data[1] >= NELEMS(sTrailingSparkleCoords)) data[1] -= NELEMS(sTrailingSparkleCoords); - CreateSprite(&sSpriteTemplate_RevealGameFreakTextSparkles, sTrailingSparkleCoords[r2].x, sTrailingSparkleCoords[r2].y, 3); - data[2]++; - if (data[2] > 8) + CreateSprite(&sSpriteTemplate_SparklesBig, sTrailingSparkleCoords[r2].x, sTrailingSparkleCoords[r2].y, 3); + if (++data[2] > 8) DestroyTask(taskId); } - data[0]++; - if (data[0] > 9) + if (++data[0] > 9) data[0] = 0; } @@ -1896,13 +1951,11 @@ static struct Sprite *CreateGameFreakLogoArtSprite(void) } #if REVISION >= 1 -static void Rev1_GameFreakScene_CreatePresentsText(void) +static void CreateGameFreakPresentsText(void) { int i; for (i = 0; i < 2; i++) - { gSprites[CreateSprite(&sSpriteTemplate_PresentsText, 0x68 + 32 * i, 0x6c, 5)].oam.tileNum += i * 4; - } } #endif @@ -1913,15 +1966,15 @@ static void FightScene4_StartGengarAttack(struct IntroSequenceData * this) taskId = CreateTask(Task_FightScene4_GengarAttack, 4); SetWordTaskArg(taskId, 5, (uintptr_t)this); gTasks[taskId].data[3] = 64; - gTasks[taskId].data[4] = GetBgX(0); + gTasks[taskId].data[4] = GetBgX(BG_SCENE3_GENGAR); } static void FightScene4_ApplyGengarAnim(int a, int b, int c, int d) { - ChangeBgY(0, (a << 15) + 0x1F000, 0); - ChangeBgX(0, d, 0); - ChangeBgX(0, b << 8, 2); - ChangeBgY(0, c << 8, 2); + ChangeBgY(BG_SCENE3_GENGAR, (a << 15) + 0x1F000, 0); + ChangeBgX(BG_SCENE3_GENGAR, d, 0); + ChangeBgX(BG_SCENE3_GENGAR, b << 8, 2); + ChangeBgY(BG_SCENE3_GENGAR, c << 8, 2); } static void Task_FightScene4_GengarAttack(u8 taskId) @@ -1940,16 +1993,14 @@ static void Task_FightScene4_GengarAttack(u8 taskId) break; case 1: data[3] -= 2; - data[1]++; - if (data[1] > 15) + if (++data[1] > 15) { data[1] = 0; data[0]++; } break; case 2: - data[1]++; - if (data[1] == 14) + if (++data[1] == 14) ((struct IntroSequenceData *)GetWordTaskArg(taskId, 5))->gengarAttackLanded = TRUE; if (data[1] > 15) { @@ -1959,8 +2010,7 @@ static void Task_FightScene4_GengarAttack(u8 taskId) break; case 3: data[3] += 8; - data[1]++; - if (data[1] == 4) + if (++data[1] == 4) { FightScene4_CreateGengarSwipeSprites(); data[8] = 32; @@ -1975,8 +2025,7 @@ static void Task_FightScene4_GengarAttack(u8 taskId) break; case 4: data[3] -= 8; - data[1]++; - if (data[1] > 3) + if (++data[1] > 3) { data[7] = 0; data[3] = 64; @@ -2028,15 +2077,14 @@ static void Task_FightScene3_Bg0Scroll(u8 taskId) data[0]++; // fallthrough case 1: - data[2]++; - if (data[2] > 39 && data[1] > 16) + if (++data[2] > 39 && data[1] > 16) data[1] -= 16; - gUnknown_203AB30 = ChangeBgX(0, data[1], 1); + gUnknown_203AB30 = ChangeBgX(BG_SCENE3_GENGAR, data[1], 1); if (gUnknown_203AB30 >= 0x8000) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); if (gUnknown_203AB30 >= 0xEF00) { - ChangeBgX(0, 0xEF00, 0); + ChangeBgX(BG_SCENE3_GENGAR, 0xEF00, 0); DestroyTask(taskId); } break; @@ -2056,7 +2104,7 @@ static void SpriteCB_LargeStar(struct Sprite *sprite) if (sprite->data[5] % sTrailingSparklesSpawnRate) { LoadWordFromTwoHalfwords(&sprite->data[6], &v); - v = v * 1103515245 + 24691; + v = ISO_RANDOMIZE1(v); StoreWordInTwoHalfwords(&sprite->data[6], v); v >>= 16; GameFreakScene_TrailingSparklesGen(sprite->x, sprite->y + sprite->y2, v); @@ -2065,7 +2113,7 @@ static void SpriteCB_LargeStar(struct Sprite *sprite) DestroySprite(sprite); } -static void SpriteCB_TrailingSparkles(struct Sprite *sprite) +static void SpriteCB_SparklesSmall(struct Sprite *sprite) { u32 v; @@ -2088,7 +2136,7 @@ static void SpriteCB_TrailingSparkles(struct Sprite *sprite) DestroySprite(sprite); } -static void SpriteCB_TrailingSparkles2(struct Sprite *sprite) +static void SpriteCB_SparklesSmall2(struct Sprite *sprite) { if (sprite->data[2]) { @@ -2131,8 +2179,7 @@ static void SpriteCB_TrailingSparkles2(struct Sprite *sprite) StartSpriteAnim(sprite, 0); sprite->data[1] += 4; sprite->y = sprite->data[1] >> 4; - sprite->data[4]++; - if (sprite->data[4] > 50) + if (++sprite->data[4] > 50) DestroySprite(sprite); } } @@ -2145,7 +2192,7 @@ static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite) static void CreateNidorinoAnimSprite(struct IntroSequenceData * this) { - u8 spriteId = CreateSprite(&sSpriteTemplate_NidorinoAnim, 0, 0, 9); + u8 spriteId = CreateSprite(&sSpriteTemplate_Scene3_Nidorino, 0, 0, 9); this->nidorinoAnimSprite = &gSprites[spriteId]; } @@ -2163,8 +2210,7 @@ static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1 static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite) { - sprite->data[4]++; - if (sprite->data[4] >= 40) + if (++sprite->data[4] >= 40) { if (sprite->data[1] > 1) sprite->data[1]--; @@ -2197,8 +2243,7 @@ static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->data[1]++; - if (sprite->data[1] > 8) + if (++sprite->data[1] > 8) { StartSpriteAnim(sprite, 1); sprite->y2 = 0; @@ -2211,14 +2256,12 @@ static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite) sprite->data[0]++; break; case 2: - sprite->data[2]++; - if (sprite->data[2] > 1) + if (++sprite->data[2] > 1) { sprite->data[2] = 0; sprite->y2 = sprite->y2 == 0 ? 1 : 0; } - sprite->data[1]++; - if (sprite->data[1] > 48) + if (++sprite->data[1] > 48) { StartSpriteAnim(sprite, 0); sprite->y2 = 0; @@ -2284,7 +2327,7 @@ static void SpriteCB_NidorinoRecoil(struct Sprite *sprite) if (sprite->data[1] > 6) { CreateNidorinoRecoilDustSprites(sprite->x + sprite->x2, sprite->y + sprite->y2, sprite->data[6]); - sprite->data[6] *= 1103515245; + sprite->data[6] *= RAND_MULT; } if (sprite->data[1] > 12) { @@ -2296,9 +2339,7 @@ static void SpriteCB_NidorinoRecoil(struct Sprite *sprite) case 3: sprite->data[1]++; if (sprite->data[1] > 16) - { StartSpriteHopToPosAnim(sprite, gUnknown_203AB0A, -sprite->x2, 4); - } break; } } @@ -2321,7 +2362,7 @@ static void CreateNidorinoRecoilDustSprites(s16 x, s16 y, s16 seed) gSprites[spriteId].data[3] = (seed % 13) + 8; gSprites[spriteId].data[4] = seed % 3; gSprites[spriteId].data[7] = i; - seed *= 1103515245; + seed *= RAND_MULT; } } } @@ -2346,8 +2387,7 @@ static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite) DestroySprite(sprite); break; } - data[7]++; - if (data[7] > 1) + if (++data[7] > 1) { data[7] = 0; sprite->invisible ^= TRUE; @@ -2373,8 +2413,7 @@ static void SpriteCB_HopToPos(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->data[6]++; - if (sprite->data[6] > 4) + if (++sprite->data[6] > 4) { StartSpriteAnim(sprite, 3); sprite->data[6] = 0; @@ -2405,8 +2444,7 @@ static void SpriteCB_HopToPos(struct Sprite *sprite) } break; case 2: - sprite->data[6]++; - if (sprite->data[6] > 4) + if (++sprite->data[6] > 4) { StartSpriteAnim(sprite, 0); sprite->callback = SpriteCallbackDummy; @@ -2439,11 +2477,9 @@ static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->data[1]++; - if (sprite->data[1] & 1) + if (++sprite->data[1] & 1) { - sprite->data[2]++; - if (sprite->data[2] & 1) + if (++sprite->data[2] & 1) sprite->x2++; else sprite->x2--; diff --git a/src/main.c b/src/main.c index 2f039c23b..368638022 100644 --- a/src/main.c +++ b/src/main.c @@ -206,7 +206,7 @@ static void InitMainCallbacks(void) gMain.vblankCounter1 = 0; gMain.vblankCounter2 = 0; gMain.callback1 = NULL; - SetMainCallback2(c2_copyright_1); + SetMainCallback2(CB2_InitCopyrightScreenAfterBootup); gSaveBlock2Ptr = &gSaveBlock2; gSaveBlock1Ptr = &gSaveBlock1; gSaveBlock2.encryptionKey = 0; diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index 0b1277113..518ac769d 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -8,6 +8,7 @@ #include "menu.h" #include "new_menu_helpers.h" #include "pokemon_special_anim_internal.h" +#include "random.h" #include "strings.h" #include "text_window.h" #include "trig.h" @@ -1303,7 +1304,7 @@ static void Task_UseItem_OutwardSpiralDots(u8 taskId) static u16 PSAScene_RandomFromTask(u8 taskId) { u32 state = GetWordTaskArg(taskId, tOff_RngState); - state = state * 1103515245 + 24691; + state = ISO_RANDOMIZE1(state); SetWordTaskArg(taskId, tOff_RngState, state); return state >> 16; } @@ -1441,8 +1442,7 @@ static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data) { gSprites[spriteId].oam.priority = tPriority; gSprites[spriteId].tsYsubpixel = 0; - // similar to the LCRNG in random.c, but seeding from data[2] - gSprites[spriteId].tsSpeed = ((tMadeSprCt * 1103515245 + 24691) & 0x3F) + 0x20; + gSprites[spriteId].tsSpeed = (ISO_RANDOMIZE1(tMadeSprCt) & 0x3F) + 0x20; gSprites[spriteId].tsTaskId = taskId; tActiveSprCt++; } diff --git a/src/title_screen.c b/src/title_screen.c index c2aefa0bc..0ca5a10d1 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -9,6 +9,7 @@ #include "intro.h" #include "load_save.h" #include "new_game.h" +#include "random.h" #include "save.h" #include "main_menu.h" #include "clear_save_data_screen.h" @@ -662,7 +663,7 @@ static void SetTitleScreenScene_Restart(s16 * data) case 4: HelpSystem_Disable(); DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); - SetMainCallback2(CB2_CopyrightScreen); + SetMainCallback2(CB2_InitCopyrightScreenAfterTitleScreen); break; } } @@ -1121,7 +1122,7 @@ static u16 TitleScreen_rand(u8 taskId, u8 field) u32 rngval; rngval = GetWordTaskArg(taskId, field); - rngval = rngval * 1103515245 + 24691; + rngval = ISO_RANDOMIZE1(rngval); SetWordTaskArg(taskId, field, rngval); return rngval >> 16; } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index d3f076c43..2e9eba3ec 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -3,6 +3,7 @@ #include "wild_encounter.h" #include "event_data.h" #include "fieldmap.h" +#include "random.h" #include "roamer.h" #include "field_player_avatar.h" #include "battle_setup.h" @@ -668,8 +669,7 @@ void SeedWildEncounterRng(u16 seed) static u16 WildEncounterRandom(void) { - sWildEncounterData.rngState *= 1103515245; - sWildEncounterData.rngState += 12345; + sWildEncounterData.rngState = ISO_RANDOMIZE2(sWildEncounterData.rngState); return sWildEncounterData.rngState >> 16; } From 61ad87a314ca325877fbec4832edb2565c44231a Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Sat, 17 Sep 2022 14:29:32 +0800 Subject: [PATCH 067/105] Document party menu --- include/constants/party_menu.h | 11 +- include/party_menu.h | 9 +- include/strings.h | 6 +- src/data/party_menu.h | 180 +++++---- src/item_use.c | 4 +- src/party_menu.c | 653 ++++++++++++++++----------------- src/party_menu_specials.c | 2 +- src/script_pokemon_util.c | 4 +- src/strings.c | 6 +- src/union_room.c | 2 +- 10 files changed, 423 insertions(+), 454 deletions(-) diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index 0c958ccc5..1321a4ced 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -55,8 +55,8 @@ #define PARTY_MENU_TYPE_FIELD 0 #define PARTY_MENU_TYPE_IN_BATTLE 1 #define PARTY_MENU_TYPE_CONTEST 2 -#define PARTY_MENU_TYPE_CHOOSE_MON 3 -#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities +#define PARTY_MENU_TYPE_CHOOSE_SINGLE_MON 3 +#define PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS 4 // multi battles, eReader battles, and some battle facilities #define PARTY_MENU_TYPE_MULTI_SHOWCASE 5 #define PARTY_MENU_TYPE_DAYCARE 6 #define PARTY_MENU_TYPE_MOVE_RELEARNER 7 @@ -128,4 +128,11 @@ #define SELECTWINDOW_MAIL 2 #define SELECTWINDOW_MOVES 3 +enum +{ + CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE, + CHOOSE_MONS_FOR_BATTLE_TOWER, + CHOOSE_MONS_FOR_UNION_ROOM_BATTLE, +}; + #endif // GUARD_CONSTANTS_PARTY_MENU_H diff --git a/include/party_menu.h b/include/party_menu.h index 5d329d246..97379910f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -11,13 +11,12 @@ struct PartyMenu TaskFunc task; u8 menuType:4; u8 layout:2; - u8 unk_8_6:2; + u8 chooseMonsBattleType:2; s8 slotId; s8 slotId2; u8 action; u16 bagItem; - s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos - s16 learnMoveState; + s16 data[2]; }; extern struct PartyMenu gPartyMenu; @@ -53,7 +52,7 @@ void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData); void CB2_ShowPartyMenuForItemUse(void); void ItemUseCB_Medicine(u8 taskId, TaskFunc func); void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func); -void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func); +void ItemUseCB_TryRestorePP(u8 taskId, TaskFunc func); void ItemUseCB_PPUp(u8 taskId, TaskFunc func); u16 ItemIdToBattleMoveId(u16 item); bool8 IsMoveHm(u16 move); @@ -66,7 +65,7 @@ u8 GetItemEffectType(u16 item); void CB2_PartyMenuFromStartMenu(void); void CB2_ChooseMonToGiveItem(void); void ChooseMonToGiveMailFromMailbox(void); -void InitChooseHalfPartyForBattle(u8 a1); +void InitChooseMonsForBattle(u8 chooseMonsBattleType); void ClearSelectedPartyOrder(void); void ChooseMonForTradingBoard(u8 menuType, MainCallback callback); void ChooseMonForMoveTutor(void); diff --git a/include/strings.h b/include/strings.h index 3c527b58a..8ddbb5672 100644 --- a/include/strings.h +++ b/include/strings.h @@ -330,7 +330,7 @@ extern const u8 gText_NotPkmnOtherTrainerWants[]; extern const u8 gText_ThatIsntAnEgg[]; extern const u8 gText_OtherTrainerCantAcceptPkmn[]; extern const u8 gText_CantTradeWithTrainer[]; -extern const u8 gUnknown_84176CF[]; +extern const u8 gText_CancelBattle[]; extern const u8 gText_PkmnWasGivenItem[]; extern const u8 gText_ReceivedItemFromPkmn[]; extern const u8 gText_PkmnAlreadyHoldingItemSwitch[]; @@ -350,8 +350,8 @@ extern const u8 gText_MailSentToPC[]; extern const u8 gText_MailMessageWillBeLost[]; extern const u8 gText_SendMailToPC[]; extern const u8 gText_MailTakenFromPkmn[]; -extern const u8 gUnknown_8416B3E[]; -extern const u8 gUnknown_8416B16[]; +extern const u8 gText_NoMoreThanTwoMayEnter[]; +extern const u8 gText_NoMoreThanThreeMayEnter[]; extern const u8 gText_PauseUntilPress[]; extern const u8 gText_CantUseUntilNewBadge[]; extern const u8 gText_ReturnToHealingSpot[]; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 6c17d080e..de330200a 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -48,7 +48,7 @@ static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] = 38, 36, 24, 8, // HP 53, 36, 24, 8, // Max HP 24, 35, 48, 3 // HP bar - }, + }, 12, 34, 64, 16 // Description text (e.g. NO USE) }, [PARTY_BOX_RIGHT_COLUMN] = @@ -71,6 +71,7 @@ static const u8 sPartyMenuSpriteCoords[PARTY_LAYOUT_COUNT][PARTY_SIZE][4 * 2] = { [PARTY_LAYOUT_SINGLE] = { + // pokemon coords, held item coords, status coords, pokeball coords { 16, 40, 20, 50, 56, 52, 16, 34}, {104, 18, 108, 28, 144, 27, 102, 25}, {104, 42, 108, 52, 144, 51, 102, 49}, @@ -537,7 +538,7 @@ static const struct WindowTemplate sWindowTemplate_FirstBattleOakVoiceover = .baseBlock = 0x1DF, }; -static const struct WindowTemplate gUnknown_845A178 = +static const struct WindowTemplate sFieldMoveDescriptionWindowTemplate = { .bg = 2, .tilemapLeft = 0, @@ -572,32 +573,23 @@ static const u8 sMainSlotTileNums_Egg[] = static const u8 sOtherSlotsTileNums[] = { - 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 45, 49, 33, - 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, - 51, 51, 51, 51, 51, 54, 55, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 57, + 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, + 49, 33, 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, 51, 51, 51, 51, 51, 54, + 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, }; static const u8 sOtherSlotsTileNums_Egg[] = { - 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 45, 49, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 50, 55, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 57, + 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, + 49, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 50, + 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, }; static const u8 sEmptySlotTileNums[] = { - 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 23, 30, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 31, 37, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 39, + 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, }; static const u8 sGenderPalOffsets[] = {11, 12}; @@ -687,20 +679,20 @@ static const u8 *const sDescriptionStringTable[] = [PARTYBOX_DESC_LEARNED] = gText_Learned, }; -static const u8 *const sHMDescriptionTable[] = +static const u8 *const sFieldMoveDescriptionTable[] = { - gText_LightUpDarkness, - gText_CutATreeOrGrass, - gText_FlyToAKnownTown, - gText_MoveHeavyBoulders, - gText_TravelOnWater, - gText_ShatterACrackedRock, - gText_ClimbAWaterfall, - gText_ReturnToAHealingSpot, - gText_EscapeFromHere, - gText_ShareHp, - gText_ShareHp, - gText_LureWildPokemon, + [FIELD_MOVE_FLASH] = gText_LightUpDarkness, + [FIELD_MOVE_CUT] = gText_CutATreeOrGrass, + [FIELD_MOVE_FLY] = gText_FlyToAKnownTown, + [FIELD_MOVE_STRENGTH] = gText_MoveHeavyBoulders, + [FIELD_MOVE_SURF] = gText_TravelOnWater, + [FIELD_MOVE_ROCK_SMASH] = gText_ShatterACrackedRock, + [FIELD_MOVE_WATERFALL] = gText_ClimbAWaterfall, + [FIELD_MOVE_TELEPORT] = gText_ReturnToAHealingSpot, + [FIELD_MOVE_DIG] = gText_EscapeFromHere, + [FIELD_MOVE_MILK_DRINK] = gText_ShareHp, + [FIELD_MOVE_SOFT_BOILED] = gText_ShareHp, + [FIELD_MOVE_SWEET_SCENT] = gText_LureWildPokemon, }; static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/interface/hold_icons.4bpp"); @@ -1073,25 +1065,25 @@ static const u16 sTMHMMoves_Duplicate[] = enum { - MENU_SUMMARY, - MENU_SWITCH, - MENU_CANCEL1, - MENU_ITEM, - MENU_GIVE, - MENU_TAKE_ITEM, - MENU_MAIL, - MENU_TAKE_MAIL, - MENU_READ, - MENU_CANCEL2, - MENU_SHIFT, - MENU_SEND_OUT, - MENU_ENTER, - MENU_NO_ENTRY, - MENU_STORE, - MENU_REGISTER, - MENU_TRADE1, - MENU_TRADE2, - MENU_FIELD_MOVES, + CURSOR_OPTION_SUMMARY, + CURSOR_OPTION_SWITCH, + CURSOR_OPTION_CANCEL1, + CURSOR_OPTION_ITEM, + CURSOR_OPTION_GIVE, + CURSOR_OPTION_TAKE_ITEM, + CURSOR_OPTION_MAIL, + CURSOR_OPTION_TAKE_MAIL, + CURSOR_OPTION_READ, + CURSOR_OPTION_CANCEL2, + CURSOR_OPTION_SHIFT, + CURSOR_OPTION_SEND_OUT, + CURSOR_OPTION_ENTER, + CURSOR_OPTION_NO_ENTRY, + CURSOR_OPTION_STORE, + CURSOR_OPTION_REGISTER, + CURSOR_OPTION_TRADE1, + CURSOR_OPTION_TRADE2, + CURSOR_OPTION_FIELD_MOVES, }; static struct @@ -1100,50 +1092,50 @@ static struct TaskFunc func; } const sCursorOptions[] = { - [MENU_SUMMARY] = {gText_Summary5, CursorCB_Summary}, - [MENU_SWITCH] = {gText_Switch2, CursorCB_Switch}, - [MENU_CANCEL1] = {gFameCheckerText_Cancel, CursorCB_Cancel1}, - [MENU_ITEM] = {gText_Item, CursorCB_Item}, - [MENU_GIVE] = {gOtherText_Give, CursorCB_Give}, - [MENU_TAKE_ITEM] = {gText_Take, CursorCB_TakeItem}, - [MENU_MAIL] = {gText_Mail, CursorCB_Mail}, - [MENU_TAKE_MAIL] = {gText_Take2, CursorCB_TakeMail}, - [MENU_READ] = {gText_Read2, CursorCB_Read}, - [MENU_CANCEL2] = {gFameCheckerText_Cancel, CursorCB_Cancel2}, - [MENU_SHIFT] = {gText_Shift, CursorCB_SendMon}, - [MENU_SEND_OUT] = {gText_SendOut, CursorCB_SendMon}, - [MENU_ENTER] = {gText_Enter, CursorCB_Enter}, - [MENU_NO_ENTRY] = {gText_NoEntry, CursorCB_NoEntry}, - [MENU_STORE] = {gText_Store, CursorCB_Store}, - [MENU_REGISTER] = {gText_Register, CursorCB_Register}, - [MENU_TRADE1] = {gText_Trade4, CursorCB_Trade1}, - [MENU_TRADE2] = {gText_Trade4, CursorCB_Trade2}, - [MENU_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_FLY] = {gMoveNames[MOVE_FLY], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_STRENGTH] = {gMoveNames[MOVE_STRENGTH], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_SURF] = {gMoveNames[MOVE_SURF], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_WATERFALL] = {gMoveNames[MOVE_WATERFALL], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_TELEPORT] = {gMoveNames[MOVE_TELEPORT], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_DIG] = {gMoveNames[MOVE_DIG], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_MILK_DRINK] = {gMoveNames[MOVE_MILK_DRINK], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_SOFT_BOILED] = {gMoveNames[MOVE_SOFT_BOILED], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_SWEET_SCENT] = {gMoveNames[MOVE_SWEET_SCENT], CursorCB_FieldMove}, + [CURSOR_OPTION_SUMMARY] = {gText_Summary5, CursorCB_Summary }, + [CURSOR_OPTION_SWITCH] = {gText_Switch2, CursorCB_Switch }, + [CURSOR_OPTION_CANCEL1] = {gFameCheckerText_Cancel, CursorCB_Cancel1 }, + [CURSOR_OPTION_ITEM] = {gText_Item, CursorCB_Item }, + [CURSOR_OPTION_GIVE] = {gOtherText_Give, CursorCB_Give }, + [CURSOR_OPTION_TAKE_ITEM] = {gText_Take, CursorCB_TakeItem }, + [CURSOR_OPTION_MAIL] = {gText_Mail, CursorCB_Mail }, + [CURSOR_OPTION_TAKE_MAIL] = {gText_Take2, CursorCB_TakeMail }, + [CURSOR_OPTION_READ] = {gText_Read2, CursorCB_Read }, + [CURSOR_OPTION_CANCEL2] = {gFameCheckerText_Cancel, CursorCB_Cancel2 }, + [CURSOR_OPTION_SHIFT] = {gText_Shift, CursorCB_SendMon }, + [CURSOR_OPTION_SEND_OUT] = {gText_SendOut, CursorCB_SendMon }, + [CURSOR_OPTION_ENTER] = {gText_Enter, CursorCB_Enter }, + [CURSOR_OPTION_NO_ENTRY] = {gText_NoEntry, CursorCB_NoEntry }, + [CURSOR_OPTION_STORE] = {gText_Store, CursorCB_Store }, + [CURSOR_OPTION_REGISTER] = {gText_Register, CursorCB_Register }, + [CURSOR_OPTION_TRADE1] = {gText_Trade4, CursorCB_Trade1 }, + [CURSOR_OPTION_TRADE2] = {gText_Trade4, CursorCB_Trade2 }, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_FLY] = {gMoveNames[MOVE_FLY], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_STRENGTH] = {gMoveNames[MOVE_STRENGTH], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_SURF] = {gMoveNames[MOVE_SURF], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_WATERFALL] = {gMoveNames[MOVE_WATERFALL], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_TELEPORT] = {gMoveNames[MOVE_TELEPORT], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_DIG] = {gMoveNames[MOVE_DIG], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_MILK_DRINK] = {gMoveNames[MOVE_MILK_DRINK], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_SOFT_BOILED] = {gMoveNames[MOVE_SOFT_BOILED], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_SWEET_SCENT] = {gMoveNames[MOVE_SWEET_SCENT], CursorCB_FieldMove}, }; -static const u8 sPartyMenuAction_SummarySwitchCancel[] = {MENU_SUMMARY, MENU_SWITCH, MENU_CANCEL1}; -static const u8 sPartyMenuAction_ShiftSummaryCancel[] = {MENU_SHIFT, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_SendOutSummaryCancel[] = {MENU_SEND_OUT, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_SummaryCancel[] = {MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_EnterSummaryCancel[] = {MENU_ENTER, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_NoEntrySummaryCancel[] = {MENU_NO_ENTRY, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_StoreSummaryCancel[] = {MENU_STORE, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_GiveTakeItemCancel[] = {MENU_GIVE, MENU_TAKE_ITEM, MENU_CANCEL2}; -static const u8 sPartyMenuAction_ReadTakeMailCancel[] = {MENU_READ, MENU_TAKE_MAIL, MENU_CANCEL2}; -static const u8 sPartyMenuAction_RegisterSummaryCancel[] = {MENU_REGISTER, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {MENU_TRADE1, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1}; +static const u8 sPartyMenuAction_SummarySwitchCancel[] = {CURSOR_OPTION_SUMMARY, CURSOR_OPTION_SWITCH, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_ShiftSummaryCancel[] = {CURSOR_OPTION_SHIFT, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_SendOutSummaryCancel[] = {CURSOR_OPTION_SEND_OUT, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_SummaryCancel[] = {CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_EnterSummaryCancel[] = {CURSOR_OPTION_ENTER, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_NoEntrySummaryCancel[] = {CURSOR_OPTION_NO_ENTRY, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_StoreSummaryCancel[] = {CURSOR_OPTION_STORE, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_GiveTakeItemCancel[] = {CURSOR_OPTION_GIVE, CURSOR_OPTION_TAKE_ITEM, CURSOR_OPTION_CANCEL2}; +static const u8 sPartyMenuAction_ReadTakeMailCancel[] = {CURSOR_OPTION_READ, CURSOR_OPTION_TAKE_MAIL, CURSOR_OPTION_CANCEL2}; +static const u8 sPartyMenuAction_RegisterSummaryCancel[] = {CURSOR_OPTION_REGISTER, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {CURSOR_OPTION_TRADE1, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {CURSOR_OPTION_TRADE2, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; // IDs for the action lists that appear when a party mon is selected enum diff --git a/src/item_use.c b/src/item_use.c index 2ce7de755..64d532a43 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -414,7 +414,7 @@ void FieldUseFunc_Medicine(u8 taskId) void FieldUseFunc_Ether(u8 taskId) { - gItemUseCB = ItemUseCB_PPRecovery; + gItemUseCB = ItemUseCB_TryRestorePP; sub_80A16D0(taskId); } @@ -817,7 +817,7 @@ static void sub_80A1FD8(u8 taskId) void BattleUseFunc_Ether(u8 taskId) { - gItemUseCB = ItemUseCB_PPRecovery; + gItemUseCB = ItemUseCB_TryRestorePP; ItemUse_SwitchToPartyMenuInBattle(taskId); } diff --git a/src/party_menu.c b/src/party_menu.c index 8cc148d48..ee7c9e5d9 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -83,6 +83,9 @@ #define MENU_DIR_RIGHT 2 #define MENU_DIR_LEFT -2 +#define SLOT_CONFIRM PARTY_SIZE +#define SLOT_CANCEL PARTY_SIZE + 1 + enum { CAN_LEARN_MOVE, @@ -91,6 +94,20 @@ enum CANNOT_LEARN_MOVE_IS_EGG }; +enum +{ + LEARN_VIA_TMHM, + LEARN_VIA_LEVEL_UP, + LEARN_VIA_TUTOR, +}; + +enum +{ + DRAW_TEXT_ONLY, + DRAW_MENU_BOX_AND_TEXT, + DRAW_MENU_BOX_ONLY, +}; + struct PartyMenuBoxInfoRects { void (*blitFunc)(u8 windowId, u8 x, u8 y, u8 width, u8 height, bool8 isEgg); @@ -105,7 +122,7 @@ struct PartyMenuInternal { TaskFunc task; MainCallback exitCallback; - u32 chooseHalf:1; + u32 chooseMultiple:1; u32 lastSelectedSlot:3; // Used to return to same slot when going left/right bewtween columns u32 spriteIdConfirmPokeball:7; u32 spriteIdCancelPokeball:7; @@ -165,29 +182,29 @@ static void LoadPartyMenuPokeballGfx(void); static void LoadPartyMenuAilmentGfx(void); static bool8 RenderPartyMenuBoxes(void); static void CreateCancelConfirmPokeballSprites(void); -static void CreateCancelConfirmWindows(bool8 chooseHalf); +static void CreateCancelConfirmWindows(bool8 chooseMultiple); static void Task_ExitPartyMenu(u8 taskId); static void FreePartyPointers(void); static void PartyPaletteBufferCopy(u8 offset); static void DisplayPartyPokemonDataForMultiBattle(u8 slot); -static void DisplayPartyPokemonDataForChooseHalf(u8 slot); +static void DisplayPartyPokemonDataForChooseMultiple(u8 slot); static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot); static void DisplayPartyPokemonData(u8 slot); static void DisplayPartyPokemonDataForWirelessMinigame(u8 slot); static void LoadPartyBoxPalette(struct PartyMenuBox *menuBox, u8 palFlags); static void DrawEmptySlot(u8 windowId); -static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); +static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); static void DisplayPartyPokemonHPBarCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox); -static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 c); +static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); static bool8 GetBattleEntryEligibility(struct Pokemon *mon); static bool8 IsMonAllowedInMinigame(u8 slot); static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 item, u8 tutor); static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor); -static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *align); +static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *dimensions); static void DisplayPartyPokemonLevel(u8 level, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox); @@ -222,7 +239,7 @@ static void SwitchSelectedMons(u8 taskId); static void TryEnterMonForMinigame(u8 taskId, u8 slot); static void Task_TryCreateSelectionWindow(u8 taskId); static void TryGiveItemOrMailToSelectedMon(u8 taskId); -static void PartyMenuRemoveWindow(u8 *ptr); +static void PartyMenuRemoveWindow(u8 *windowId); static void CB2_SetUpExitToBattleScreen(void); static void Task_ClosePartyMenuAfterText(u8 taskId); static void FinishTwoMonAction(u8 taskId); @@ -299,7 +316,7 @@ static u8 GetPartyIdFromBattleSlot(u8 slot); static void Task_DisplayHPRestoredMessage(u8 taskId); static void SetSelectedMoveForPPItem(u8 taskId); static void ReturnToUseOnWhichMon(u8 taskId); -static void TryUsePPItem(u8 taskId); +static void TryUsePPItemInBattle(u8 taskId); static void ItemUseCB_LearnedMove(u8 taskId, TaskFunc func); static void Task_LearnedMove(u8 taskId); static void Task_ReplaceMoveYesNo(u8 taskId); @@ -343,9 +360,9 @@ static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void); static bool8 ReturnGiveItemToBagOrPC(u16 item); static void Task_DisplayGaveMailFromBagMessage(u8 taskId); static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId); -static void Task_ValidateChosenHalfParty(u8 taskId); +static void Task_ValidateChosenMonsForBattle(u8 taskId); static bool8 HasPartySlotAlreadyBeenSelected(u8 slot); -static void Task_ContinueChoosingHalfParty(u8 taskId); +static void Task_ContinueChoosingMonsForBattle(u8 taskId); static void BufferBattlePartyOrder(u8 *partyBattleOrder, u8 flankId); static void BufferBattlePartyOrderBySide(u8 *partyBattleOrder, u8 flankId, u8 battlerId); static void Task_InitMultiPartnerPartySlideIn(u8 taskId); @@ -373,13 +390,13 @@ static u8 FirstBattleEnterParty_CreateWindowAndMsg1Printer(void); static void FirstBattleEnterParty_DestroyVoiceoverWindow(u8 windowId); static void SetSwitchedPartyOrderQuestLogEvent(void); static void SetUsedFieldMoveQuestLogEvent(struct Pokemon *mon, u8 fieldMove); -static void sub_8124DE0(void); -static void sub_8124E48(void); -static void sub_812580C(u8 taskId); -static void sub_8125898(u8 taskId, TaskFunc func); -static void sub_8125F4C(u8 taskId, TaskFunc func); -static void sub_8125F5C(u8 taskId); -static void sub_8126BD4(void); +static void CB2_DoUseItemAnim(void); +static void CB2_UseItem(void); +static void TryUsePPItemOutsideBattle(u8 taskId); +static void ItemUseCB_RestorePP(u8 taskId, TaskFunc func); +static void ItemUseCB_ReplaceMoveWithTMHM(u8 taskId, TaskFunc func); +static void Task_ReplaceMoveWithTMHM(u8 taskId); +static void CB2_UseEvolutionStone(void); static bool8 MonCanEvolve(void); static EWRAM_DATA struct PartyMenuInternal *sPartyMenuInternal = NULL; @@ -409,9 +426,7 @@ void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, ResetPartyMenu(); sPartyMenuInternal = Alloc(sizeof(struct PartyMenuInternal)); if (sPartyMenuInternal == NULL) - { SetMainCallback2(callback); - } else { gPartyMenu.menuType = menuType; @@ -421,16 +436,16 @@ void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, sPartyMenuInternal->task = task; sPartyMenuInternal->exitCallback = NULL; sPartyMenuInternal->lastSelectedSlot = 0; - if (menuType == PARTY_MENU_TYPE_CHOOSE_HALF) - sPartyMenuInternal->chooseHalf = TRUE; + if (menuType == PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS) + sPartyMenuInternal->chooseMultiple = TRUE; else - sPartyMenuInternal->chooseHalf = FALSE; + sPartyMenuInternal->chooseMultiple = FALSE; if (layout != KEEP_PARTY_LAYOUT) gPartyMenu.layout = layout; - for (i = 0; i < NELEMS(sPartyMenuInternal->data); ++i) + for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->data); ++i) sPartyMenuInternal->data[i] = 0; - for (i = 0; i < NELEMS(sPartyMenuInternal->windowId); ++i) - sPartyMenuInternal->windowId[i] = 0xFF; + for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->windowId); ++i) + sPartyMenuInternal->windowId[i] = WINDOW_NONE; if (!keepCursorPos) gPartyMenu.slotId = 0; else if (gPartyMenu.slotId > PARTY_SIZE - 1 || GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES) == SPECIES_NONE) @@ -562,7 +577,7 @@ static bool8 ShowPartyMenu(void) ++gMain.state; break; case 18: - CreateCancelConfirmWindows(sPartyMenuInternal->chooseHalf); + CreateCancelConfirmWindows(sPartyMenuInternal->chooseMultiple); ++gMain.state; break; case 19: @@ -625,7 +640,7 @@ static bool8 AllocPartyMenuBg(void) return FALSE; memset(sPartyBgTilemapBuffer, 0, 0x800); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sPartyMenuBgTemplates, NELEMS(sPartyMenuBgTemplates)); + InitBgsFromTemplates(0, sPartyMenuBgTemplates, ARRAY_COUNT(sPartyMenuBgTemplates)); SetBgTilemapBuffer(1, sPartyBgTilemapBuffer); ScheduleBgCopyTilemapToVram(1); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); @@ -743,8 +758,8 @@ static void RenderPartyMenuBox(u8 slot) } else { - if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_HALF) - DisplayPartyPokemonDataForChooseHalf(slot); + if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS) + DisplayPartyPokemonDataForChooseMultiple(slot); else if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) DisplayPartyPokemonDataForWirelessMinigame(slot); else if (!DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(slot)) @@ -766,16 +781,16 @@ static void DisplayPartyPokemonData(u8 slot) if (GetMonData(&gPlayerParty[slot], MON_DATA_IS_EGG)) { sPartyMenuBoxes[slot].infoRects->blitFunc(sPartyMenuBoxes[slot].windowId, 0, 0, 0, 0, TRUE); - DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); } else { sPartyMenuBoxes[slot].infoRects->blitFunc(sPartyMenuBoxes[slot].windowId, 0, 0, 0, 0, FALSE); - DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonLevelCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonGenderNidoranCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonMaxHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonLevelCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonGenderNidoranCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonMaxHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); DisplayPartyPokemonHPBarCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot]); } } @@ -785,16 +800,16 @@ static void DisplayPartyPokemonDescriptionData(u8 slot, u8 stringId) struct Pokemon *mon = &gPlayerParty[slot]; sPartyMenuBoxes[slot].infoRects->blitFunc(sPartyMenuBoxes[slot].windowId, 0, 0, 0, 0, TRUE); - DisplayPartyPokemonNickname(mon, &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonNickname(mon, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); if (!GetMonData(mon, MON_DATA_IS_EGG)) { - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonGenderNidoranCheck(mon, &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonGenderNidoranCheck(mon, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); } - DisplayPartyPokemonDescriptionText(stringId, &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonDescriptionText(stringId, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); } -static void DisplayPartyPokemonDataForChooseHalf(u8 slot) +static void DisplayPartyPokemonDataForChooseMultiple(u8 slot) { u8 i; struct Pokemon *mon = &gPlayerParty[slot]; @@ -802,12 +817,10 @@ static void DisplayPartyPokemonDataForChooseHalf(u8 slot) u8 maxBattlers; if (!GetBattleEntryEligibility(mon)) - { DisplayPartyPokemonDescriptionData(slot, PARTYBOX_DESC_NOT_ABLE); - } else { - if (gPartyMenu.unk_8_6 == 2) + if (gPartyMenu.chooseMonsBattleType == CHOOSE_MONS_FOR_UNION_ROOM_BATTLE) maxBattlers = 2; else maxBattlers = 3; @@ -888,9 +901,7 @@ static void DisplayPartyPokemonDataForMultiBattle(u8 slot) u8 actualSlot = slot - (3); if (gMultiPartnerParty[actualSlot].species == SPECIES_NONE) - { DrawEmptySlot(menuBox->windowId); - } else { menuBox->infoRects->blitFunc(menuBox->windowId, 0, 0, 0, 0, FALSE); @@ -969,16 +980,15 @@ static void CreateCancelConfirmPokeballSprites(void) } else { - if (sPartyMenuInternal->chooseHalf) + if (sPartyMenuInternal->chooseMultiple) { sPartyMenuInternal->spriteIdConfirmPokeball = CreateSmallPokeballButtonSprite(0xBF, 0x88); DrawCancelConfirmButtons(); sPartyMenuInternal->spriteIdCancelPokeball = CreateSmallPokeballButtonSprite(0xBF, 0x98); } else - { sPartyMenuInternal->spriteIdCancelPokeball = CreatePokeballButtonSprite(198, 148); - } + AnimatePartySlot(gPartyMenu.slotId, 1); } } @@ -997,29 +1007,28 @@ void AnimatePartySlot(u8 slot, u8 animNum) PartyMenuStartSpriteAnim(sPartyMenuBoxes[slot].pokeballSpriteId, animNum); } return; - case PARTY_SIZE: // Confirm + case SLOT_CONFIRM: if (animNum == 0) SetBgTilemapPalette(1, 23, 16, 7, 2, 1); else SetBgTilemapPalette(1, 23, 16, 7, 2, 2); spriteId = sPartyMenuInternal->spriteIdConfirmPokeball; break; - case PARTY_SIZE + 1: // Cancel + case SLOT_CANCEL: // The position of the Cancel button changes if Confirm is present - if (!sPartyMenuInternal->chooseHalf) + if (!sPartyMenuInternal->chooseMultiple) { if (animNum == 0) SetBgTilemapPalette(1, 23, 17, 7, 2, 1); else SetBgTilemapPalette(1, 23, 17, 7, 2, 2); } - else if (animNum == 0) - { - SetBgTilemapPalette(1, 23, 18, 7, 2, 1); - } else { - SetBgTilemapPalette(1, 23, 18, 7, 2, 2); + if (animNum == 0) + SetBgTilemapPalette(1, 23, 18, 7, 2, 1); + else + SetBgTilemapPalette(1, 23, 18, 7, 2, 2); } spriteId = sPartyMenuInternal->spriteIdCancelPokeball; break; @@ -1115,14 +1124,14 @@ void Task_HandleChooseMonInput(u8 taskId) switch (PartyMenuButtonHandler(slotPtr)) { - case 1: // Selected mon + case A_BUTTON: HandleChooseMonSelection(taskId, slotPtr); break; - case 2: // Selected Cancel + case B_BUTTON: // also handles pressing A_BUTTON on Cancel HandleChooseMonCancel(taskId, slotPtr); break; - case 8: // Start button - if (sPartyMenuInternal->chooseHalf) + case START_BUTTON: + if (sPartyMenuInternal->chooseMultiple) { PlaySE(SE_SELECT); MoveCursorToConfirm(); @@ -1142,10 +1151,8 @@ static s8 *GetCurrentPartySlotPtr(void) static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) { - if (*slotPtr == PARTY_SIZE) - { - gPartyMenu.task(taskId); - } + if (*slotPtr == SLOT_CONFIRM) + gPartyMenu.task(taskId); // task here is always Task_ValidateChosenMonsForBattle else { switch (gPartyMenu.action) @@ -1200,8 +1207,6 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) TryEnterMonForMinigame(taskId, (u8)*slotPtr); break; default: - case PARTY_ACTION_ABILITY_PREVENTS: - case PARTY_ACTION_SWITCHING: PlaySE(SE_SELECT); Task_TryCreateSelectionWindow(taskId); break; @@ -1237,16 +1242,14 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) break; default: PlaySE(SE_SELECT); - if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_HALF) - { + if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS) DisplayCancelChooseMonYesNo(taskId); - } else { if (!MenuHelpers_LinkSomething()) - gSpecialVar_0x8004 = PARTY_SIZE + 1; + gSpecialVar_0x8004 = SLOT_CANCEL; gPartyMenuUseExitCallback = FALSE; - *slotPtr = PARTY_SIZE + 1; + *slotPtr = SLOT_CANCEL; Task_ClosePartyMenu(taskId); } break; @@ -1256,7 +1259,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) static void DisplayCancelChooseMonYesNo(u8 taskId) { PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); - StringExpandPlaceholders(gStringVar4, gUnknown_84176CF); + StringExpandPlaceholders(gStringVar4, gText_CancelBattle); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_CancelChooseMonYesNo; } @@ -1276,7 +1279,7 @@ static void Task_HandleCancelChooseMonYesNoInput(u8 taskId) { case 0: gPartyMenuUseExitCallback = FALSE; - gPartyMenu.slotId = PARTY_SIZE + 1; + gPartyMenu.slotId = SLOT_CANCEL; ClearSelectedPartyOrder(); Task_ClosePartyMenu(taskId); break; @@ -1323,15 +1326,14 @@ static u16 PartyMenuButtonHandler(s8 *slotPtr) break; } if (JOY_NEW(START_BUTTON)) - return 8; + return START_BUTTON; if (movementDir) { UpdateCurrentPartySelection(slotPtr, movementDir); return 0; } - // Pressed Cancel - if (JOY_NEW(A_BUTTON) && *slotPtr == PARTY_SIZE + 1) - return 2; + if (JOY_NEW(A_BUTTON) && *slotPtr == SLOT_CANCEL) + return B_BUTTON; return JOY_NEW(A_BUTTON | B_BUTTON); } @@ -1354,49 +1356,35 @@ static void UpdateCurrentPartySelection(s8 *slotPtr, s8 movementDir) static void UpdatePartySelectionSingleLayout(s8 *slotPtr, s8 movementDir) { - // PARTY_SIZE + 1 is Cancel, PARTY_SIZE is Confirm switch (movementDir) { case MENU_DIR_UP: if (*slotPtr == 0) - { - *slotPtr = PARTY_SIZE + 1; - } - else if (*slotPtr == PARTY_SIZE) - { + *slotPtr = SLOT_CANCEL; + else if (*slotPtr == SLOT_CONFIRM) *slotPtr = gPlayerPartyCount - 1; - } - else if (*slotPtr == PARTY_SIZE + 1) + else if (*slotPtr == SLOT_CANCEL) { - if (sPartyMenuInternal->chooseHalf) - *slotPtr = PARTY_SIZE; + if (sPartyMenuInternal->chooseMultiple) + *slotPtr = SLOT_CONFIRM; else *slotPtr = gPlayerPartyCount - 1; } else - { --*slotPtr; - } break; case MENU_DIR_DOWN: - if (*slotPtr == PARTY_SIZE + 1) - { + if (*slotPtr == SLOT_CANCEL) *slotPtr = 0; + else if (*slotPtr == gPlayerPartyCount - 1) + { + if (sPartyMenuInternal->chooseMultiple) + *slotPtr = SLOT_CONFIRM; + else + *slotPtr = SLOT_CANCEL; } else - { - if (*slotPtr == gPlayerPartyCount - 1) - { - if (sPartyMenuInternal->chooseHalf) - *slotPtr = PARTY_SIZE; - else - *slotPtr = PARTY_SIZE + 1; - } - else - { - ++*slotPtr; - } - } + ++*slotPtr; break; case MENU_DIR_RIGHT: if (gPlayerPartyCount != 1 && *slotPtr == 0) @@ -1408,7 +1396,7 @@ static void UpdatePartySelectionSingleLayout(s8 *slotPtr, s8 movementDir) } break; case MENU_DIR_LEFT: - if (*slotPtr != 0 && *slotPtr != PARTY_SIZE && *slotPtr != PARTY_SIZE + 1) + if (*slotPtr != 0 && *slotPtr != SLOT_CONFIRM && *slotPtr != SLOT_CANCEL) { sPartyMenuInternal->lastSelectedSlot = *slotPtr; *slotPtr = 0; @@ -1419,7 +1407,6 @@ static void UpdatePartySelectionSingleLayout(s8 *slotPtr, s8 movementDir) static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) { - // PARTY_SIZE + 1 is Cancel, PARTY_SIZE is Confirm // newSlot is used temporarily as a movement direction during its later assignment s8 newSlot = movementDir; @@ -1428,19 +1415,19 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) case MENU_DIR_UP: if (*slotPtr == 0) { - *slotPtr = PARTY_SIZE + 1; + *slotPtr = SLOT_CANCEL; break; } - else if (*slotPtr == PARTY_SIZE) + else if (*slotPtr == SLOT_CONFIRM) { *slotPtr = gPlayerPartyCount - 1; break; } - else if (*slotPtr == PARTY_SIZE + 1) + else if (*slotPtr == SLOT_CANCEL) { - if (sPartyMenuInternal->chooseHalf) + if (sPartyMenuInternal->chooseMultiple) { - *slotPtr = PARTY_SIZE; + *slotPtr = SLOT_CONFIRM; break; } --*slotPtr; @@ -1450,28 +1437,22 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) *slotPtr = newSlot; break; case MENU_DIR_DOWN: - if (*slotPtr == PARTY_SIZE) - { - *slotPtr = PARTY_SIZE + 1; - } - else if (*slotPtr == PARTY_SIZE + 1) - { + if (*slotPtr == SLOT_CONFIRM) + *slotPtr = SLOT_CANCEL; + else if (*slotPtr == SLOT_CANCEL) *slotPtr = 0; - } else { newSlot = GetNewSlotDoubleLayout(*slotPtr, MENU_DIR_DOWN); if (newSlot == -1) { - if (sPartyMenuInternal->chooseHalf) - *slotPtr = PARTY_SIZE; + if (sPartyMenuInternal->chooseMultiple) + *slotPtr = SLOT_CONFIRM; else - *slotPtr = PARTY_SIZE + 1; + *slotPtr = SLOT_CANCEL; } else - { *slotPtr = newSlot; - } } break; case MENU_DIR_RIGHT: @@ -1483,9 +1464,8 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) *slotPtr = 3; } else if (GetMonData(&gPlayerParty[2], MON_DATA_SPECIES) != SPECIES_NONE) - { *slotPtr = 2; - } + } else if (*slotPtr == 1) { @@ -1495,9 +1475,8 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) *slotPtr = 5; } else if (GetMonData(&gPlayerParty[4], MON_DATA_SPECIES) != SPECIES_NONE) - { *slotPtr = 4; - } + } break; case MENU_DIR_LEFT: @@ -1520,7 +1499,7 @@ static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir) while (TRUE) { slotId += movementDir; - if ((u8)slotId >= PARTY_SIZE) + if ((u8)slotId >= SLOT_CONFIRM) return -1; if (GetMonData(&gPlayerParty[slotId], MON_DATA_SPECIES) != SPECIES_NONE) return slotId; @@ -1697,7 +1676,7 @@ static void Task_PartyMenuModifyHP(u8 taskId) tHP += tHPIncrement; --tHPToAdd; SetMonData(&gPlayerParty[tPartyId], MON_DATA_HP, &tHP); - DisplayPartyPokemonHPCheck(&gPlayerParty[tPartyId], &sPartyMenuBoxes[tPartyId], 1); + DisplayPartyPokemonHPCheck(&gPlayerParty[tPartyId], &sPartyMenuBoxes[tPartyId], DRAW_MENU_BOX_AND_TEXT); DisplayPartyPokemonHPBarCheck(&gPlayerParty[tPartyId], &sPartyMenuBoxes[tPartyId]); if (tHPToAdd == 0 || tHP == 0 || tHP == tMaxHP) { @@ -1788,25 +1767,24 @@ u8 GetMonAilment(struct Pokemon *mon) return AILMENT_NONE; } +#define minigameBitflag data[0] + static void SetPartyMonsAllowedInMinigame(void) { - u16 *ptr; - if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) { u8 i; - - ptr = &gPartyMenu.data1; - gPartyMenu.data1 = 0; + s16 *data = gPartyMenu.data; + minigameBitflag = 0; if (gSpecialVar_0x8005 == 0) { for (i = 0; i < gPlayerPartyCount; ++i) - *ptr += IsMonAllowedInPokemonJump(&gPlayerParty[i]) << i; + minigameBitflag += IsMonAllowedInPokemonJump(&gPlayerParty[i]) << i; } else { for (i = 0; i < gPlayerPartyCount; ++i) - *ptr += IsMonAllowedInDodrioBerryPicking(&gPlayerParty[i]) << i; + minigameBitflag += IsMonAllowedInDodrioBerryPicking(&gPlayerParty[i]) << i; } } } @@ -1818,7 +1796,6 @@ static bool16 IsMonAllowedInPokemonJump(struct Pokemon *mon) return FALSE; } - static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon) { if (GetMonData(mon, MON_DATA_IS_EGG) != TRUE && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_DODRIO) @@ -1828,11 +1805,13 @@ static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon) static bool8 IsMonAllowedInMinigame(u8 slot) { - if (!((gPartyMenu.data1 >> slot) & 1)) + if (!((gPartyMenu.minigameBitflag >> slot) & 1)) return FALSE; return TRUE; } +#undef minigameBitflag + static void TryEnterMonForMinigame(u8 taskId, u8 slot) { if (IsMonAllowedInMinigame(slot) == TRUE) @@ -1871,7 +1850,7 @@ static void Task_HandleCancelParticipationYesNoInput(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - gSpecialVar_0x8004 = PARTY_SIZE + 1; + gSpecialVar_0x8004 = SLOT_CANCEL; Task_ClosePartyMenu(taskId); break; case MENU_B_PRESSED: @@ -1892,22 +1871,16 @@ static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor) if (item >= ITEM_TM01_FOCUS_PUNCH) { - if (CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH)) - move = ItemIdToBattleMoveId(item); - else + if (!CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH)) return CANNOT_LEARN_MOVE; - do - { - } while (0); + else + move = ItemIdToBattleMoveId(item); } else if (CanLearnTutorMove(GetMonData(mon, MON_DATA_SPECIES), tutor) == FALSE) - { return CANNOT_LEARN_MOVE; - } else - { move = GetTutorMove(tutor); - } + if (MonKnowsMove(mon, move) == TRUE) return ALREADY_KNOWS_MOVE; else @@ -2148,7 +2121,7 @@ static void InitPartyMenuWindows(u8 layout) LoadPalette(stdpal_get(0), 0xE0, 0x20); } -static void CreateCancelConfirmWindows(bool8 chooseHalf) +static void CreateCancelConfirmWindows(bool8 chooseMultiple) { u8 confirmWindowId; u8 cancelWindowId; @@ -2156,7 +2129,7 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf) if (gPartyMenu.menuType != PARTY_MENU_TYPE_MULTI_SHOWCASE) { - if (chooseHalf == TRUE) + if (chooseMultiple == TRUE) { confirmWindowId = AddWindow(&sConfirmButtonWindowTemplate); FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0)); @@ -2194,7 +2167,7 @@ static u16 *GetPartyMenuPalBufferPtr(u8 paletteId) return &sPartyMenuInternal->palBuffer[paletteId]; } -static void BlitBitmapToPartyWindow(u8 windowId, const u8 *b, u8 c, u8 x, u8 y, u8 width, u8 height) +static void BlitBitmapToPartyWindow(u8 windowId, const u8 *tileNums, u8 menuBoxWidth, u8 x, u8 y, u8 width, u8 height) { u8 *pixels = AllocZeroed(height * width * 32); u8 i, j; @@ -2203,7 +2176,7 @@ static void BlitBitmapToPartyWindow(u8 windowId, const u8 *b, u8 c, u8 x, u8 y, { for (i = 0; i < height; ++i) for (j = 0; j < width; ++j) - CpuCopy16(GetPartyMenuBgTile(b[x + j + ((y + i) * c)]), &pixels[(i * width + j) * 32], 32); + CpuCopy16(GetPartyMenuBgTile(tileNums[x + j + ((y + i) * menuBoxWidth)]), &pixels[(i * width + j) * 32], 32); BlitBitmapToWindow(windowId, pixels, x * 8, y * 8, width * 8, height * 8); Free(pixels); } @@ -2320,25 +2293,25 @@ static void LoadPartyBoxPalette(struct PartyMenuBox *menuBox, u8 palFlags) } } -static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *align) +static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *dimensions) { - AddTextPrinterParameterized3(windowId, FONT_0, align[0], align[1], sFontColorTable[color], 0, str); + AddTextPrinterParameterized3(windowId, FONT_0, dimensions[0], dimensions[1], sFontColorTable[color], 0, str); } -static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { u8 nickname[POKEMON_NAME_LENGTH + 1]; if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - if (c == 1) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[0] >> 3, menuBox->infoRects->dimensions[1] >> 3, menuBox->infoRects->dimensions[2] >> 3, menuBox->infoRects->dimensions[3] >> 3, FALSE); + if (drawMenuBoxOrText == DRAW_MENU_BOX_AND_TEXT) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[0] / 8, menuBox->infoRects->dimensions[1] / 8, menuBox->infoRects->dimensions[2] / 8, menuBox->infoRects->dimensions[3] / 8, FALSE); GetMonNickname(mon, nickname); DisplayPartyPokemonBarDetail(menuBox->windowId, nickname, 0, menuBox->infoRects->dimensions); } } -static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { @@ -2346,9 +2319,9 @@ static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuB if (ailment == AILMENT_NONE || ailment == AILMENT_PKRS) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[4] >> 3, (menuBox->infoRects->dimensions[5] >> 3) + 1, menuBox->infoRects->dimensions[6] >> 3, menuBox->infoRects->dimensions[7] >> 3, FALSE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[4] / 8, (menuBox->infoRects->dimensions[5] / 8) + 1, menuBox->infoRects->dimensions[6] / 8, menuBox->infoRects->dimensions[7] / 8, FALSE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) DisplayPartyPokemonLevel(GetMonData(mon, MON_DATA_LEVEL), menuBox); } } @@ -2362,12 +2335,12 @@ static void DisplayPartyPokemonLevel(u8 level, struct PartyMenuBox *menuBox) DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[4]); } -static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { u8 nickname[POKEMON_NAME_LENGTH + 1]; - if (c == 1) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[8] >> 3, (menuBox->infoRects->dimensions[9] >> 3) + 1, menuBox->infoRects->dimensions[10] >> 3, menuBox->infoRects->dimensions[11] >> 3, FALSE); + if (drawMenuBoxOrText == DRAW_MENU_BOX_AND_TEXT) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[8] / 8, (menuBox->infoRects->dimensions[9] / 8) + 1, menuBox->infoRects->dimensions[10] / 8, menuBox->infoRects->dimensions[11] / 8, FALSE); GetMonNickname(mon, nickname); DisplayPartyPokemonGender(GetMonGender(mon), GetMonData(mon, MON_DATA_SPECIES), nickname, menuBox); } @@ -2395,13 +2368,13 @@ static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, stru } } -static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[12] >> 3, (menuBox->infoRects->dimensions[13] >> 3) + 1, menuBox->infoRects->dimensions[14] >> 3, menuBox->infoRects->dimensions[15] >> 3, FALSE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[12] / 8, (menuBox->infoRects->dimensions[13] / 8) + 1, menuBox->infoRects->dimensions[14] / 8, menuBox->infoRects->dimensions[15] / 8, FALSE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) DisplayPartyPokemonHP(GetMonData(mon, MON_DATA_HP), menuBox); } } @@ -2415,13 +2388,13 @@ static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox) DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[12]); } -static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, (menuBox->infoRects->dimensions[16] >> 3) + 1, (menuBox->infoRects->dimensions[17] >> 3) + 1, menuBox->infoRects->dimensions[18] >> 3, menuBox->infoRects->dimensions[19] >> 3, FALSE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, (menuBox->infoRects->dimensions[16] / 8) + 1, (menuBox->infoRects->dimensions[17] / 8) + 1, menuBox->infoRects->dimensions[18] / 8, menuBox->infoRects->dimensions[19] / 8, FALSE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) DisplayPartyPokemonMaxHP(GetMonData(mon, MON_DATA_MAX_HP), menuBox); } } @@ -2473,21 +2446,21 @@ static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *men CopyWindowToVram(menuBox->windowId, COPYWIN_GFX); } -static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->descTextLeft >> 3, menuBox->infoRects->descTextTop >> 3, menuBox->infoRects->descTextWidth >> 3, menuBox->infoRects->descTextHeight >> 3, TRUE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->descTextLeft / 8, menuBox->infoRects->descTextTop / 8, menuBox->infoRects->descTextWidth / 8, menuBox->infoRects->descTextHeight / 8, TRUE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) AddTextPrinterParameterized3(menuBox->windowId, FONT_1, menuBox->infoRects->descTextLeft, menuBox->infoRects->descTextTop, sFontColorTable[0], 0, sDescriptionStringTable[stringId]); } -static void PartyMenuRemoveWindow(u8 *ptr) +static void PartyMenuRemoveWindow(u8 *windowId) { - if (*ptr != 0xFF) + if (*windowId != WINDOW_NONE) { - ClearStdWindowAndFrameToTransparent(*ptr, FALSE); - RemoveWindow(*ptr); - *ptr = 0xFF; + ClearStdWindowAndFrameToTransparent(*windowId, FALSE); + RemoveWindow(*windowId); + *windowId = WINDOW_NONE; ScheduleBgCopyTilemapToVram(2); } } @@ -2496,7 +2469,7 @@ void DisplayPartyMenuStdMessage(u32 stringId) { u8 *windowPtr = &sPartyMenuInternal->windowId[1]; - if (*windowPtr != 0xFF) + if (*windowPtr != WINDOW_NONE) PartyMenuRemoveWindow(windowPtr); if (stringId != PARTY_MSG_NONE) @@ -2523,7 +2496,7 @@ void DisplayPartyMenuStdMessage(u32 stringId) if (stringId == PARTY_MSG_CHOOSE_MON) { - if (sPartyMenuInternal->chooseHalf) + if (sPartyMenuInternal->chooseMultiple) stringId = PARTY_MSG_CHOOSE_MON_AND_CONFIRM; else if (!ShouldUseChooseMonText()) stringId = PARTY_MSG_CHOOSE_MON_OR_CANCEL; @@ -2583,7 +2556,7 @@ static u8 DisplaySelectionWindow(u8 windowType) fontAttribute = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); for (i = 0; i < sPartyMenuInternal->numActions; ++i) { - u8 fontColorsId = (sPartyMenuInternal->actions[i] >= MENU_FIELD_MOVES) ? 4 : 3; + u8 fontColorsId = (sPartyMenuInternal->actions[i] >= CURSOR_OPTION_FIELD_MOVES) ? 4 : 3; AddTextPrinterParameterized4(sPartyMenuInternal->windowId[0], FONT_2, cursorDimension, (i * 16) + 2, fontAttribute, 0, sFontColorTable[fontColorsId], 0, sCursorOptions[sPartyMenuInternal->actions[i]].text); } @@ -2642,28 +2615,28 @@ static void FirstBattleEnterParty_DestroyVoiceoverWindow(u8 windowId) ScheduleBgCopyTilemapToVram(2); } -static void sub_8122138(u8 action) +static void ToggleFieldMoveDescriptionWindow(u8 action) { - u8 attr; + u8 letterSpacing; struct PartyMenuInternal *ptr = sPartyMenuInternal; - if (action <= 17) + if (action < CURSOR_OPTION_FIELD_MOVES) { - if (ptr->windowId[2] != 0xFF) + if (ptr->windowId[2] != WINDOW_NONE) { ClearWindowTilemap(ptr->windowId[2]); RemoveWindow(ptr->windowId[2]); - ptr->windowId[2] = 0xFF; + ptr->windowId[2] = WINDOW_NONE; ScheduleBgCopyTilemapToVram(2); } } else { - if (ptr->windowId[2] == 0xFF) - ptr->windowId[2] = AddWindow(&gUnknown_845A178); + if (ptr->windowId[2] == WINDOW_NONE) + ptr->windowId[2] = AddWindow(&sFieldMoveDescriptionWindowTemplate); sub_8112F18(ptr->windowId[2]); - attr = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); - AddTextPrinterParameterized4(ptr->windowId[2], FONT_2, 3, 6, attr, 0, sFontColorTable[5], 0, sHMDescriptionTable[action - MENU_FIELD_MOVES]); + letterSpacing = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); + AddTextPrinterParameterized4(ptr->windowId[2], FONT_2, 3, 6, letterSpacing, 0, sFontColorTable[5], 0, sFieldMoveDescriptionTable[action - CURSOR_OPTION_FIELD_MOVES]); PutWindowTilemap(ptr->windowId[2]); ScheduleBgCopyTilemapToVram(2); } @@ -2990,7 +2963,7 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId) u8 i, j; sPartyMenuInternal->numActions = 0; - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_SUMMARY); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_SUMMARY); // Add field moves to action list for (i = 0; i < MAX_MON_MOVES; ++i) { @@ -2998,18 +2971,18 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId) { if (GetMonData(&mons[slotId], i + MON_DATA_MOVE1) == sFieldMoves[j]) { - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, j + MENU_FIELD_MOVES); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, j + CURSOR_OPTION_FIELD_MOVES); break; } } } if (GetMonData(&mons[1], MON_DATA_SPECIES) != SPECIES_NONE) - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_SWITCH); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_SWITCH); if (ItemIsMail(GetMonData(&mons[slotId], MON_DATA_HELD_ITEM))) - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_MAIL); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_MAIL); else - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_ITEM); - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_CANCEL1); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_ITEM); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_CANCEL1); } static u8 GetPartyMenuActionsType(struct Pokemon *mon) @@ -3027,7 +3000,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon) case PARTY_MENU_TYPE_IN_BATTLE: actionType = GetPartyMenuActionsTypeInBattle(mon); break; - case PARTY_MENU_TYPE_CHOOSE_HALF: + case PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS: switch (GetPartySlotEntryStatus(gPartyMenu.slotId)) { default: // Not eligible @@ -3055,7 +3028,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon) break; // The following have no selection actions (i.e. they exit immediately upon selection) // PARTY_MENU_TYPE_CONTEST - // PARTY_MENU_TYPE_CHOOSE_MON + // PARTY_MENU_TYPE_CHOOSE_SINGLE_MON // PARTY_MENU_TYPE_MULTI_SHOWCASE // PARTY_MENU_TYPE_MOVE_RELEARNER // PARTY_MENU_TYPE_MINIGAME @@ -3080,7 +3053,7 @@ static void CreateSelectionWindow(void) static void Task_TryCreateSelectionWindow(u8 taskId) { CreateSelectionWindow(); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3095,8 +3068,10 @@ static void Task_HandleSelectionMenuInput(u8 taskId) input = Menu_ProcessInputNoWrapAround_other(); else input = Menu_ProcessInput_other(); + if (data[0] != Menu_GetCursorPos()) - sub_8122138(sPartyMenuInternal->actions[Menu_GetCursorPos()]); + ToggleFieldMoveDescriptionWindow(sPartyMenuInternal->actions[Menu_GetCursorPos()]); + data[0] = Menu_GetCursorPos(); switch (input) { @@ -3431,7 +3406,7 @@ static void CursorCB_Item(u8 taskId) SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, ACTIONS_ITEM); DisplaySelectionWindow(SELECTWINDOW_ITEM); DisplayPartyMenuStdMessage(PARTY_MSG_DO_WHAT_WITH_ITEM); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3644,7 +3619,7 @@ static void CursorCB_Mail(u8 taskId) SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, ACTIONS_MAIL); DisplaySelectionWindow(SELECTWINDOW_MAIL); DisplayPartyMenuStdMessage(PARTY_MSG_DO_WHAT_WITH_MAIL); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3759,7 +3734,7 @@ static void CursorCB_Cancel2(u8 taskId) SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, GetPartyMenuActionsType(mon)); DisplaySelectionWindow(SELECTWINDOW_ACTIONS); DisplayPartyMenuStdMessage(PARTY_MSG_DO_WHAT_WITH_MON); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3786,15 +3761,15 @@ static void CursorCB_Enter(u8 taskId) u8 i; const u8 *str; - if (gPartyMenu.unk_8_6 == 2) + if (gPartyMenu.chooseMonsBattleType == CHOOSE_MONS_FOR_UNION_ROOM_BATTLE) { maxBattlers = 2; - str = gUnknown_8416B3E; + str = gText_NoMoreThanTwoMayEnter; } else { maxBattlers = 3; - str = gUnknown_8416B16; + str = gText_NoMoreThanThreeMayEnter; } PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); @@ -3820,7 +3795,7 @@ static void CursorCB_Enter(u8 taskId) static void MoveCursorToConfirm(void) { AnimatePartySlot(gPartyMenu.slotId, 0); - gPartyMenu.slotId = PARTY_SIZE; + gPartyMenu.slotId = SLOT_CONFIRM; AnimatePartySlot(gPartyMenu.slotId, 1); } @@ -3851,11 +3826,11 @@ static void CursorCB_NoEntry(u8 taskId) break; } } - DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_ABLE_3, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_ABLE_3, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); if (gSelectedOrderFromParty[0] != 0) - DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_FIRST, &sPartyMenuBoxes[gSelectedOrderFromParty[0] - 1], 1); + DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_FIRST, &sPartyMenuBoxes[gSelectedOrderFromParty[0] - 1], DRAW_MENU_BOX_AND_TEXT); if (gSelectedOrderFromParty[1] != 0) - DisplayPartyPokemonDescriptionText(1 + PARTYBOX_DESC_FIRST, &sPartyMenuBoxes[gSelectedOrderFromParty[1] - 1], 1); + DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_SECOND, &sPartyMenuBoxes[gSelectedOrderFromParty[1] - 1], DRAW_MENU_BOX_AND_TEXT); DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } @@ -3927,7 +3902,7 @@ static void CursorCB_Trade2(u8 taskId) static void CursorCB_FieldMove(u8 taskId) { - u8 fieldMove = sPartyMenuInternal->actions[Menu_GetCursorPos()] - MENU_FIELD_MOVES; + u8 fieldMove = sPartyMenuInternal->actions[Menu_GetCursorPos()] - CURSOR_OPTION_FIELD_MOVES; const struct MapHeader *mapHeader; PlaySE(SE_SELECT); @@ -4023,7 +3998,7 @@ static void Task_HandleFieldMoveExitAreaYesNoInput(u8 taskId) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // Yes gPartyMenu.exitCallback = CB2_ReturnToField; SetUsedFieldMoveQuestLogEvent(&gPlayerParty[GetCursorSelectionMonId()], sPartyMenuInternal->data[0]); Task_ClosePartyMenu(taskId); @@ -4031,7 +4006,7 @@ static void Task_HandleFieldMoveExitAreaYesNoInput(u8 taskId) case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough - case 1: + case 1: // No gFieldCallback2 = NULL; gPostMenuFieldCallback = NULL; Task_ReturnToChooseMonAfterText(taskId); @@ -4289,31 +4264,28 @@ static void CB2_ReturnToBerryPouchMenu(void) InitBerryPouch(BERRYPOUCH_NA, NULL, 0xFF); } -static void sub_8124DC0(u8 taskId) +static void Task_DoUseItemAnim(u8 taskId) { - sPartyMenuInternal->exitCallback = sub_8124DE0; + sPartyMenuInternal->exitCallback = CB2_DoUseItemAnim; Task_ClosePartyMenu(taskId); } -static void sub_8124DE0(void) +static void CB2_DoUseItemAnim(void) { if (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId) == 2) // Evolution stone { if (MonCanEvolve() == TRUE) - StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8126BD4); + StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, CB2_UseEvolutionStone); else StartUseItemAnim_CantEvolve(gPartyMenu.slotId, gSpecialVar_ItemId, gPartyMenu.exitCallback); } else - { - StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8124E48); - } + StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, CB2_UseItem); } -static void sub_8124E48(void) +static void CB2_UseItem(void) { - if (ItemId_GetPocket(gSpecialVar_ItemId) == POCKET_TM_CASE - && PSA_IsCancelDisabled() == TRUE) + if (ItemId_GetPocket(gSpecialVar_ItemId) == POCKET_TM_CASE && PSA_IsCancelDisabled() == TRUE) { GiveMoveToMon(&gPlayerParty[gPartyMenu.slotId], ItemIdToBattleMoveId(gSpecialVar_ItemId)); AdjustFriendship(&gPlayerParty[gPartyMenu.slotId], FRIENDSHIP_EVENT_LEARN_TMHM); @@ -4322,12 +4294,10 @@ static void sub_8124E48(void) SetMainCallback2(gPartyMenu.exitCallback); } else - { InitPartyMenu(gPartyMenu.menuType, KEEP_PARTY_LAYOUT, PARTY_ACTION_CHOOSE_MON, gPartyMenu.slotId, PARTY_MSG_NONE, Task_SetSacredAshCB, gPartyMenu.exitCallback); - } } -static void sub_8124EFC(void) +static void CB2_UseTMHMAfterForgettingMove(void) { if (PSA_IsCancelDisabled() == TRUE) { @@ -4344,9 +4314,7 @@ static void sub_8124EFC(void) SetMainCallback2(gPartyMenu.exitCallback); } else - { InitPartyMenu(gPartyMenu.menuType, KEEP_PARTY_LAYOUT, gPartyMenu.action, gPartyMenu.slotId, PARTY_MSG_NONE, Task_SetSacredAshCB, gPartyMenu.exitCallback); - } } static void Task_SetSacredAshCB(u8 taskId) @@ -4492,7 +4460,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc func) else { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); - sub_8124DC0(taskId); + Task_DoUseItemAnim(taskId); gItemUseCB = ItemUseCB_MedicineStep; } } @@ -4513,6 +4481,7 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) if (hp == GetMonData(mon, MON_DATA_MAX_HP)) canHeal = FALSE; } + if (ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0)) { WONT_HAVE_EFFECT: @@ -4525,9 +4494,8 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) } } else - { goto WONT_HAVE_EFFECT; // even loop wrap won't work - } + gPartyMenuUseExitCallback = TRUE; if (!IsItemFlute(item)) { @@ -4536,12 +4504,12 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) RemoveBagItem(item, 1); } else - { PlaySE(SE_GLASS_FLUTE); - } + SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); + if (canHeal == TRUE) { if (hp == 0) @@ -4605,7 +4573,7 @@ static void ShowMoveSelectWindow(u8 slot) ScheduleBgCopyTilemapToVram(2); } -static void Task_HandleWhichMoveInput(u8 taskId) +static void Task_HandleRestoreWhichMoveInput(u8 taskId) { s8 input = Menu_ProcessInput(); @@ -4617,13 +4585,13 @@ static void Task_HandleWhichMoveInput(u8 taskId) ReturnToUseOnWhichMon(taskId); } else - { SetSelectedMoveForPPItem(taskId); - } } } -void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func) +#define ppMoveSlot data[0] + +void ItemUseCB_TryRestorePP(u8 taskId, TaskFunc func) { const u8 *effect; u16 item = gSpecialVar_ItemId; @@ -4635,29 +4603,29 @@ void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func) if (!(effect[4] & ITEM4_HEAL_PP_ONE)) { - gPartyMenu.data1 = 0; + gPartyMenu.ppMoveSlot = 0; if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE) - TryUsePPItem(taskId); + TryUsePPItemInBattle(taskId); else - sub_812580C(taskId); + TryUsePPItemOutsideBattle(taskId); } else { PlaySE(SE_SELECT); DisplayPartyMenuStdMessage(PARTY_MSG_RESTORE_WHICH_MOVE); ShowMoveSelectWindow(gPartyMenu.slotId); - gTasks[taskId].func = Task_HandleWhichMoveInput; + gTasks[taskId].func = Task_HandleRestoreWhichMoveInput; } } static void SetSelectedMoveForPPItem(u8 taskId) { PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); - gPartyMenu.data1 = Menu_GetCursorPos(); + gPartyMenu.ppMoveSlot = Menu_GetCursorPos(); if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE) - TryUsePPItem(taskId); + TryUsePPItemInBattle(taskId); else - sub_812580C(taskId); + TryUsePPItemOutsideBattle(taskId); } static void ReturnToUseOnWhichMon(u8 taskId) @@ -4668,12 +4636,12 @@ static void ReturnToUseOnWhichMon(u8 taskId) DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); } -static void sub_812580C(u8 taskId) +static void TryUsePPItemOutsideBattle(u8 taskId) { bool8 noEffect = PokemonItemUseNoEffect(&gPlayerParty[gPartyMenu.slotId], gSpecialVar_ItemId, gPartyMenu.slotId, - gPartyMenu.data1); + gPartyMenu.ppMoveSlot); PlaySE(SE_SELECT); if (noEffect) { @@ -4684,22 +4652,22 @@ static void sub_812580C(u8 taskId) } else { - sub_8124DC0(taskId); - gItemUseCB = sub_8125898; + Task_DoUseItemAnim(taskId); + gItemUseCB = ItemUseCB_RestorePP; } } -static void sub_8125898(u8 taskId, TaskFunc func) +static void ItemUseCB_RestorePP(u8 taskId, TaskFunc func) { u16 move; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, (u8)gPartyMenu.data1); + ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, (u8)gPartyMenu.ppMoveSlot); gPartyMenuUseExitCallback = TRUE; ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, 0xFFFF); PlaySE(SE_USE_ITEM); RemoveBagItem(gSpecialVar_ItemId, 1); - move = GetMonData(mon, gPartyMenu.data1 + MON_DATA_MOVE1); + move = GetMonData(mon, gPartyMenu.ppMoveSlot + MON_DATA_MOVE1); StringCopy(gStringVar1, gMoveNames[move]); GetMedicineItemEffectMessage(gSpecialVar_ItemId); DisplayPartyMenuMessage(gStringVar4, 1); @@ -4707,10 +4675,10 @@ static void sub_8125898(u8 taskId, TaskFunc func) gTasks[taskId].func = Task_ClosePartyMenuAfterText; } -static void TryUsePPItem(u8 taskId) +static void TryUsePPItemInBattle(u8 taskId) { u16 move = MOVE_NONE; - s16 *moveSlot = &gPartyMenu.data1; + s16 *moveSlot = &gPartyMenu.ppMoveSlot; u16 item = gSpecialVar_ItemId; struct PartyMenu *ptr = &gPartyMenu; struct Pokemon *mon; @@ -4739,12 +4707,14 @@ static void TryUsePPItem(u8 taskId) } } +#undef ppMoveSlot + void ItemUseCB_PPUp(u8 taskId, TaskFunc func) { PlaySE(SE_SELECT); DisplayPartyMenuStdMessage(PARTY_MSG_BOOST_PP_WHICH_MOVE); ShowMoveSelectWindow(gPartyMenu.slotId); - gTasks[taskId].func = Task_HandleWhichMoveInput; + gTasks[taskId].func = Task_HandleRestoreWhichMoveInput; } u16 ItemIdToBattleMoveId(u16 item) @@ -4789,20 +4759,23 @@ static void DisplayLearnMoveMessageAndClose(u8 taskId, const u8 *str) gTasks[taskId].func = Task_ClosePartyMenuAfterText; } +#define learnMoveId data[0] +#define learnMoveMethod data[1] + void ItemUseCB_TMHM(u8 taskId, TaskFunc func) { struct Pokemon *mon; - s16 *move; + s16 *data; u16 item; PlaySE(SE_SELECT); mon = &gPlayerParty[gPartyMenu.slotId]; - move = &gPartyMenu.data1; + data = gPartyMenu.data; item = gSpecialVar_ItemId; GetMonNickname(mon, gStringVar1); - move[0] = ItemIdToBattleMoveId(item); - StringCopy(gStringVar2, gMoveNames[move[0]]); - move[1] = 0; + learnMoveId = ItemIdToBattleMoveId(item); + StringCopy(gStringVar2, gMoveNames[learnMoveId]); + learnMoveMethod = LEARN_VIA_TMHM; switch (CanMonLearnTMTutor(mon, item, 0)) { case CANNOT_LEARN_MOVE: @@ -4812,10 +4785,10 @@ void ItemUseCB_TMHM(u8 taskId, TaskFunc func) DisplayLearnMoveMessageAndClose(taskId, gText_PkmnAlreadyKnows); return; } - if (GiveMoveToMon(mon, move[0]) != MON_HAS_MAX_MOVES) + if (GiveMoveToMon(mon, learnMoveId) != MON_HAS_MAX_MOVES) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); - sub_8124DC0(taskId); + Task_DoUseItemAnim(taskId); gItemUseCB = ItemUseCB_LearnedMove; } else @@ -4833,17 +4806,17 @@ static void ItemUseCB_LearnedMove(u8 taskId, TaskFunc func) static void Task_LearnedMove(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - s16 *move = &gPartyMenu.data1; + s16 *data = gPartyMenu.data; u16 item = gSpecialVar_ItemId; - if (move[1] == 0) + if (learnMoveMethod == LEARN_VIA_TMHM) { AdjustFriendship(mon, FRIENDSHIP_EVENT_LEARN_TMHM); - if (item < ITEM_HM01_CUT) + if (item <= ITEM_TM50) RemoveBagItem(item, 1); } GetMonNickname(mon, gStringVar1); - StringCopy(gStringVar2, gMoveNames[move[0]]); + StringCopy(gStringVar2, gMoveNames[learnMoveId]); StringExpandPlaceholders(gStringVar4, gText_PkmnLearnedMove3); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); @@ -4863,11 +4836,11 @@ static void Task_LearnNextMoveOrClosePartyMenu(u8 taskId) { if (IsFanfareTaskInactive() && ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))) { - if (gPartyMenu.learnMoveState == 1) + if (gPartyMenu.learnMoveMethod == LEARN_VIA_LEVEL_UP) Task_TryLearningNextMove(taskId); else { - if (gPartyMenu.learnMoveState == 2) // never occurs + if (gPartyMenu.learnMoveMethod == LEARN_VIA_TUTOR) gSpecialVar_Result = TRUE; Task_ClosePartyMenu(taskId); } @@ -4887,14 +4860,14 @@ static void Task_HandleReplaceMoveYesNoInput(u8 taskId) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // Yes DisplayPartyMenuMessage(gText_WhichMoveToForget, TRUE); gTasks[taskId].func = Task_ShowSummaryScreenToForgetMove; break; case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough - case 1: + case 1: // No StopLearningMovePrompt(taskId); break; } @@ -4911,26 +4884,24 @@ static void Task_ShowSummaryScreenToForgetMove(u8 taskId) static void CB2_ShowSummaryScreenToForgetMove(void) { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuWhileLearningMove, gPartyMenu.data1); + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuWhileLearningMove, gPartyMenu.learnMoveId); } static void CB2_ReturnToPartyMenuWhileLearningMove(void) { u8 moveIdx = GetMoveSlotToReplace(); u16 move; - s32 learnMoveState = gPartyMenu.learnMoveState; + s32 learnMethod = gPartyMenu.learnMoveMethod; - if (learnMoveState == 0 && moveIdx != MAX_MON_MOVES) + if (learnMethod == LEARN_VIA_TMHM && moveIdx != MAX_MON_MOVES) { move = GetMonData(&gPlayerParty[gPartyMenu.slotId], moveIdx + MON_DATA_MOVE1); - StartUseItemAnim_ForgetMoveAndLearnTMorHM(gPartyMenu.slotId, gSpecialVar_ItemId, move, sub_8124EFC); - gItemUseCB = sub_8125F4C; - gPartyMenu.action = learnMoveState; + StartUseItemAnim_ForgetMoveAndLearnTMorHM(gPartyMenu.slotId, gSpecialVar_ItemId, move, CB2_UseTMHMAfterForgettingMove); + gItemUseCB = ItemUseCB_ReplaceMoveWithTMHM; + gPartyMenu.action = PARTY_ACTION_CHOOSE_MON; } else - { InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, TRUE, PARTY_MSG_NONE, Task_ReturnToPartyMenuWhileLearningMove, gPartyMenu.exitCallback); - } } static void Task_ReturnToPartyMenuWhileLearningMove(u8 taskId) @@ -4944,12 +4915,12 @@ static void Task_ReturnToPartyMenuWhileLearningMove(u8 taskId) } } -static void sub_8125F4C(u8 taskId, TaskFunc func) +static void ItemUseCB_ReplaceMoveWithTMHM(u8 taskId, TaskFunc func) { - sub_8125F5C(taskId); + Task_ReplaceMoveWithTMHM(taskId); } -static void sub_8125F5C(u8 taskId) +static void Task_ReplaceMoveWithTMHM(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; u8 moveIdx = GetMoveSlotToReplace(); @@ -4959,7 +4930,7 @@ static void sub_8125F5C(u8 taskId) GetMonNickname(mon, gStringVar1); StringCopy(gStringVar2, gMoveNames[move]); RemoveMonPPBonus(mon, moveIdx); - SetMonMoveSlot(mon, gPartyMenu.data1, moveIdx); + SetMonMoveSlot(mon, gPartyMenu.learnMoveId, moveIdx); Task_LearnedMove(taskId); } @@ -4983,7 +4954,7 @@ static void Task_PartyMenuReplaceMove(u8 taskId) { mon = &gPlayerParty[gPartyMenu.slotId]; RemoveMonPPBonus(mon, GetMoveSlotToReplace()); - move = gPartyMenu.data1; + move = gPartyMenu.learnMoveId; SetMonMoveSlot(mon, move, GetMoveSlotToReplace()); Task_LearnedMove(taskId); } @@ -4991,7 +4962,7 @@ static void Task_PartyMenuReplaceMove(u8 taskId) static void StopLearningMovePrompt(u8 taskId) { - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); StringExpandPlaceholders(gStringVar4, gText_StopLearningMove2); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); @@ -5013,18 +4984,18 @@ static void Task_HandleStopLearningMoveYesNoInput(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // Yes GetMonNickname(mon, gStringVar1); - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); StringExpandPlaceholders(gStringVar4, gText_MoveNotLearned); DisplayPartyMenuMessage(gStringVar4, TRUE); - if (gPartyMenu.learnMoveState == 1) + if (gPartyMenu.learnMoveMethod == LEARN_VIA_LEVEL_UP) { gTasks[taskId].func = Task_TryLearningNextMoveAfterText; } else { - if (gPartyMenu.learnMoveState == 2) // never occurs + if (gPartyMenu.learnMoveMethod == LEARN_VIA_TUTOR) gSpecialVar_Result = FALSE; gTasks[taskId].func = Task_ClosePartyMenuAfterText; } @@ -5032,9 +5003,9 @@ static void Task_HandleStopLearningMoveYesNoInput(u8 taskId) case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough - case 1: + case 1: // No GetMonNickname(mon, gStringVar1); - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); DisplayLearnMoveMessage(gText_PkmnNeedsToReplaceMove); gTasks[taskId].func = Task_ReplaceMoveYesNo; break; @@ -5067,7 +5038,7 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc func) } else { - sub_8124DC0(taskId); + Task_DoUseItemAnim(taskId); gItemUseCB = ItemUseCB_RareCandyStep; } } @@ -5100,9 +5071,9 @@ static void UpdateMonDisplayInfoAfterRareCandy(u8 slot, struct Pokemon *mon) { SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[slot]); if (gSprites[sPartyMenuBoxes[slot].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], 1); - DisplayPartyPokemonHPCheck(mon, &sPartyMenuBoxes[slot], 1); - DisplayPartyPokemonMaxHPCheck(mon, &sPartyMenuBoxes[slot], 1); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], DRAW_MENU_BOX_AND_TEXT); + DisplayPartyPokemonHPCheck(mon, &sPartyMenuBoxes[slot], DRAW_MENU_BOX_AND_TEXT); + DisplayPartyPokemonMaxHPCheck(mon, &sPartyMenuBoxes[slot], DRAW_MENU_BOX_AND_TEXT); DisplayPartyPokemonHPBarCheck(mon, &sPartyMenuBoxes[slot]); UpdatePartyMonHPBar(sPartyMenuBoxes[slot].monSpriteId, mon); AnimatePartySlot(slot, 1); @@ -5152,14 +5123,14 @@ static void Task_TryLearnNewMoves(u8 taskId) { u16 learnMove; - if (WaitFanfare(0) && (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))) + if (WaitFanfare(FALSE) && (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))) { RemoveLevelUpStatsWindow(); learnMove = MonTryLearningNewMove(&gPlayerParty[gPartyMenu.slotId], TRUE); - gPartyMenu.learnMoveState = 1; + gPartyMenu.learnMoveMethod = LEARN_VIA_LEVEL_UP; switch (learnMove) { - case 0: // No moves to learn + case MOVE_NONE: // No moves to learn PartyMenuTryEvolution(taskId); break; case MON_HAS_MAX_MOVES: @@ -5181,7 +5152,7 @@ static void Task_TryLearningNextMove(u8 taskId) switch (result) { - case 0: // No moves to learn + case MOVE_NONE: // No moves to learn PartyMenuTryEvolution(taskId); break; case MON_HAS_MAX_MOVES: @@ -5198,19 +5169,17 @@ static void Task_TryLearningNextMove(u8 taskId) static void PartyMenuTryEvolution(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, 0); + u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE); if (targetSpecies != SPECIES_NONE) { FreePartyPointers(); gCB2_AfterEvolution = gPartyMenu.exitCallback; - BeginEvolutionScene(mon, targetSpecies, 1, gPartyMenu.slotId); + BeginEvolutionScene(mon, targetSpecies, TRUE, gPartyMenu.slotId); DestroyTask(taskId); } else - { gTasks[taskId].func = Task_ClosePartyMenuAfterText; - } } static void DisplayMonNeedsToReplaceMove(u8 taskId) @@ -5220,7 +5189,7 @@ static void DisplayMonNeedsToReplaceMove(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_PkmnNeedsToReplaceMove); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); - gPartyMenu.data1 = gMoveToLearn; + gPartyMenu.learnMoveId = gMoveToLearn; gTasks[taskId].func = Task_ReplaceMoveYesNo; } @@ -5231,7 +5200,7 @@ static void DisplayMonLearnedMove(u8 taskId, u16 move) StringExpandPlaceholders(gStringVar4, gText_PkmnLearnedMove3); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); - gPartyMenu.data1 = move; + gPartyMenu.learnMoveId = move; gTasks[taskId].func = Task_DoLearnedMoveFanfareAfterText; } @@ -5268,7 +5237,7 @@ static void UseSacredAsh(u8 taskId) sSacredAshQuestLogMonBackup = mon; SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); AnimatePartySlot(sPartyMenuInternal->tLastSlotUsed, 0); AnimatePartySlot(gPartyMenu.slotId, 1); PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_SacredAshDisplayHPRestored); @@ -5338,12 +5307,10 @@ void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func) gTasks[taskId].func = func; } else - { - sub_8124DC0(taskId); - } + Task_DoUseItemAnim(taskId); } -static void sub_8126BD4(void) +static void CB2_UseEvolutionStone(void) { gCB2_AfterEvolution = gPartyMenu.exitCallback; ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, 0); @@ -5427,16 +5394,16 @@ u8 GetItemEffectType(u16 item) static void TryTutorSelectedMon(u8 taskId) { struct Pokemon *mon; - s16 *move; + s16 *data; if (!gPaletteFade.active) { mon = &gPlayerParty[gPartyMenu.slotId]; - move = &gPartyMenu.data1; + data = gPartyMenu.data; GetMonNickname(mon, gStringVar1); - gPartyMenu.data1 = GetTutorMove(gSpecialVar_0x8005); - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); - move[1] = 2; + gPartyMenu.learnMoveId = GetTutorMove(gSpecialVar_0x8005); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); + learnMoveMethod = LEARN_VIA_TUTOR; switch (CanMonLearnTMTutor(mon, 0, gSpecialVar_0x8005)) { case CANNOT_LEARN_MOVE: @@ -5446,7 +5413,7 @@ static void TryTutorSelectedMon(u8 taskId) DisplayLearnMoveMessageAndClose(taskId, gText_PkmnAlreadyKnows); return; default: - if (GiveMoveToMon(mon, gPartyMenu.data1) != MON_HAS_MAX_MOVES) + if (GiveMoveToMon(mon, gPartyMenu.learnMoveId) != MON_HAS_MAX_MOVES) { Task_LearnedMove(taskId); return; @@ -5458,6 +5425,9 @@ static void TryTutorSelectedMon(u8 taskId) } } +#undef learnMoveId +#undef learnMoveMethod + void CB2_PartyMenuFromStartMenu(void) { InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, CB2_ReturnToFieldWithOpenMenu); @@ -5681,12 +5651,12 @@ static void TryGiveMailToSelectedMon(u8 taskId) gTasks[taskId].func = Task_UpdateHeldItemSpriteAndClosePartyMenu; } -void InitChooseHalfPartyForBattle(u8 a1) +void InitChooseMonsForBattle(u8 chooseMonsBattleType) { ClearSelectedPartyOrder(); - InitPartyMenu(PARTY_MENU_TYPE_CHOOSE_HALF, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, gMain.savedCallback); - gPartyMenu.unk_8_6 = a1; - gPartyMenu.task = Task_ValidateChosenHalfParty; + InitPartyMenu(PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, gMain.savedCallback); + gPartyMenu.chooseMonsBattleType = chooseMonsBattleType; + gPartyMenu.task = Task_ValidateChosenMonsForBattle; } void ClearSelectedPartyOrder(void) @@ -5697,10 +5667,11 @@ void ClearSelectedPartyOrder(void) static u8 GetPartySlotEntryStatus(s8 slot) { if (GetBattleEntryEligibility(&gPlayerParty[slot]) == FALSE) - return 2; - if (HasPartySlotAlreadyBeenSelected(slot + 1) == TRUE) - return 1; - return 0; + return 2; // Not eligible + else if (HasPartySlotAlreadyBeenSelected(slot + 1) == TRUE) + return 1; // Already selected + else + return 0; // Eligible, not selected } static bool8 GetBattleEntryEligibility(struct Pokemon *mon) @@ -5710,17 +5681,17 @@ static bool8 GetBattleEntryEligibility(struct Pokemon *mon) if (GetMonData(mon, MON_DATA_IS_EGG)) return FALSE; - switch (gPartyMenu.unk_8_6) + switch (gPartyMenu.chooseMonsBattleType) { default: if (GetMonData(mon, MON_DATA_LEVEL) > 30) return FALSE; break; - case 0: + case CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE: if (GetMonData(mon, MON_DATA_HP) == 0) return FALSE; break; - case 1: + case CHOOSE_MONS_FOR_BATTLE_TOWER: if (gSaveBlock2Ptr->battleTower.battleTowerLevelType == 0 // level 50 && GetMonData(mon, MON_DATA_LEVEL) > 50) return FALSE; @@ -5739,9 +5710,9 @@ static u8 CheckBattleEntriesAndGetMessage(void) struct Pokemon *party = gPlayerParty; u8 *order = gSelectedOrderFromParty; - switch (gPartyMenu.unk_8_6) + switch (gPartyMenu.chooseMonsBattleType) { - case 1: + case CHOOSE_MONS_FOR_BATTLE_TOWER: if (order[2] == 0) return PARTY_MSG_THREE_MONS_ARE_NEEDED; for (i = 0; i < 2; ++i) @@ -5757,7 +5728,7 @@ static u8 CheckBattleEntriesAndGetMessage(void) } } break; - case 2: + case CHOOSE_MONS_FOR_UNION_ROOM_BATTLE: if (order[1] == 0) return PARTY_MSG_TWO_MONS_ARE_NEEDED; break; @@ -5775,7 +5746,7 @@ static bool8 HasPartySlotAlreadyBeenSelected(u8 slot) return FALSE; } -static void Task_ValidateChosenHalfParty(u8 taskId) +static void Task_ValidateChosenMonsForBattle(u8 taskId) { u8 msgId = CheckBattleEntriesAndGetMessage(); @@ -5783,7 +5754,7 @@ static void Task_ValidateChosenHalfParty(u8 taskId) { PlaySE(SE_FAILURE); DisplayPartyMenuStdMessage(msgId); - gTasks[taskId].func = Task_ContinueChoosingHalfParty; + gTasks[taskId].func = Task_ContinueChoosingMonsForBattle; } else { @@ -5796,12 +5767,12 @@ static void Task_ValidateChosenHalfParty(u8 taskId) { PlaySE(SE_FAILURE); DisplayPartyMenuStdMessage(PARTY_MSG_NO_MON_FOR_BATTLE); - gTasks[taskId].func = Task_ContinueChoosingHalfParty; + gTasks[taskId].func = Task_ContinueChoosingMonsForBattle; } } } -static void Task_ContinueChoosingHalfParty(u8 taskId) +static void Task_ContinueChoosingMonsForBattle(u8 taskId) { if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c index 23934773c..9b17a73ed 100644 --- a/src/party_menu_specials.c +++ b/src/party_menu_specials.c @@ -17,7 +17,7 @@ void ChoosePartyMon(void) LockPlayerFieldControls(); taskId = CreateTask(sub_80BF97C, 10); - gTasks[taskId].data[0] = PARTY_MENU_TYPE_CHOOSE_MON; + gTasks[taskId].data[0] = PARTY_MENU_TYPE_CHOOSE_SINGLE_MON; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 561621c1f..4bd5c9f22 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -153,7 +153,7 @@ void ChooseHalfPartyForBattle(void) { gMain.savedCallback = CB2_ReturnFromChooseHalfParty; // VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER); - InitChooseHalfPartyForBattle(0); + InitChooseMonsForBattle(CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE); } static void CB2_ReturnFromChooseHalfParty(void) @@ -174,7 +174,7 @@ static void CB2_ReturnFromChooseHalfParty(void) void ChooseBattleTowerPlayerParty(void) { gMain.savedCallback = CB2_ReturnFromChooseBattleTowerParty; - InitChooseHalfPartyForBattle(1); + InitChooseMonsForBattle(CHOOSE_MONS_FOR_BATTLE_TOWER); } static void CB2_ReturnFromChooseBattleTowerParty(void) diff --git a/src/strings.c b/src/strings.c index a9651340a..477c3c439 100644 --- a/src/strings.c +++ b/src/strings.c @@ -260,8 +260,8 @@ const u8 gText_PkmnHasNoEnergy[] = _("{STR_VAR_1} has no energy\nleft to battle! const u8 gText_CantSwitchWithAlly[] = _("You can't switch {STR_VAR_1}'s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}"); const u8 gText_EggCantBattle[] = _("An EGG can't battle!{PAUSE_UNTIL_PRESS}"); const u8 gText_CantUseUntilNewBadge[] = _("This can't be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416B16[] = _("No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416B3E[] = _("No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NoMoreThanThreeMayEnter[] = _("No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NoMoreThanTwoMayEnter[] = _("No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); const u8 gText_SendMailToPC[] = _("Send the removed MAIL to\nyour PC?"); const u8 gText_MailSentToPC[] = _("The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}"); const u8 gText_PCMailboxFull[] = _("Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS}"); @@ -367,7 +367,7 @@ const u8 gUnknown_8417693[] = _("HP"); const u8 gText_PkmnCantParticipate[] = _("That POKéMON can't participate.{PAUSE_UNTIL_PRESS}"); const u8 gText_CancelParticipation[] = _("Cancel participation?"); const u8 gUnknown_84176CE[] = _(""); -const u8 gUnknown_84176CF[] = _("Cancel the battle?"); +const u8 gText_CancelBattle[] = _("Cancel the battle?"); const u8 gText_TurnOff[] = _("TURN OFF"); const u8 gUnknown_84176EB[] = _("もよã†ãŒãˆ"); const u8 gText_ItemStorage[] = _("ITEM STORAGE"); diff --git a/src/union_room.c b/src/union_room.c index c93360fea..68c210781 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1929,7 +1929,7 @@ static void Task_StartActivity(u8 taskId) case ACTIVITY_ACCEPT | IN_UNION_ROOM: CleanupOverworldWindowsAndTilemaps(); gMain.savedCallback = CB2_UnionRoomBattle; - InitChooseHalfPartyForBattle(2); + InitChooseMonsForBattle(CHOOSE_MONS_FOR_UNION_ROOM_BATTLE); break; case ACTIVITY_BATTLE: CleanupOverworldWindowsAndTilemaps(); From 500a488442f4be7cd8f2ed4b1b32c2ce807812ec Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Sat, 17 Sep 2022 16:21:42 +0800 Subject: [PATCH 068/105] Remove goto in ItemUseCB_MedicineStep Leak-informed --- src/party_menu.c | 79 ++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/src/party_menu.c b/src/party_menu.c index ee7c9e5d9..5b0eb5d4c 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -4471,8 +4471,11 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; u16 item = gSpecialVar_ItemId; bool8 canHeal; + bool8 cannotHeal; - if (NotUsingHPEVItemOnShedinja(mon, item)) + if (NotUsingHPEVItemOnShedinja(mon, item) == FALSE) + cannotHeal = TRUE; + else { canHeal = IsHPRecoveryItem(item); if (canHeal == TRUE) @@ -4482,50 +4485,48 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) canHeal = FALSE; } - if (ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0)) - { - WONT_HAVE_EFFECT: - gPartyMenuUseExitCallback = FALSE; - PlaySE(SE_SELECT); - DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); - ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = func; - return; - } + cannotHeal = ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0); } - else - goto WONT_HAVE_EFFECT; // even loop wrap won't work - gPartyMenuUseExitCallback = TRUE; - if (!IsItemFlute(item)) + if (cannotHeal != FALSE) { - PlaySE(SE_USE_ITEM); - if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM) - RemoveBagItem(item, 1); - } - else - PlaySE(SE_GLASS_FLUTE); - - SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); - if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); - - if (canHeal == TRUE) - { - if (hp == 0) - AnimatePartySlot(gPartyMenu.slotId, 1); - PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage); - ResetHPTaskData(taskId, 0, hp); - return; - } - else - { - GetMonNickname(mon, gStringVar1); - GetMedicineItemEffectMessage(item); - DisplayPartyMenuMessage(gStringVar4, TRUE); + gPartyMenuUseExitCallback = FALSE; + PlaySE(SE_SELECT); + DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); ScheduleBgCopyTilemapToVram(2); gTasks[taskId].func = func; } + else + { + gPartyMenuUseExitCallback = TRUE; + if (!IsItemFlute(item)) + { + PlaySE(SE_USE_ITEM); + if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM) + RemoveBagItem(item, 1); + } + else + PlaySE(SE_GLASS_FLUTE); + + SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); + if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + if (canHeal == TRUE) + { + if (hp == 0) + AnimatePartySlot(gPartyMenu.slotId, 1); + PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage); + ResetHPTaskData(taskId, 0, hp); + } + else + { + GetMonNickname(mon, gStringVar1); + GetMedicineItemEffectMessage(item); + DisplayPartyMenuMessage(gStringVar4, TRUE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = func; + } + } } static void Task_DisplayHPRestoredMessage(u8 taskId) From e33ed44b7f87de05d69cc786c929e26866d894be Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Fri, 23 Sep 2022 00:39:59 +0800 Subject: [PATCH 069/105] Add parentheses and case statements --- src/party_menu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/party_menu.c b/src/party_menu.c index 5b0eb5d4c..92b14b21d 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -83,8 +83,8 @@ #define MENU_DIR_RIGHT 2 #define MENU_DIR_LEFT -2 -#define SLOT_CONFIRM PARTY_SIZE -#define SLOT_CANCEL PARTY_SIZE + 1 +#define SLOT_CONFIRM (PARTY_SIZE) +#define SLOT_CANCEL (PARTY_SIZE + 1) enum { @@ -1207,6 +1207,8 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) TryEnterMonForMinigame(taskId, (u8)*slotPtr); break; default: + case PARTY_ACTION_ABILITY_PREVENTS: + case PARTY_ACTION_SWITCHING: PlaySE(SE_SELECT); Task_TryCreateSelectionWindow(taskId); break; From 536f40b3860bd317c330ae949e03911e4ae0e36d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 22 Sep 2022 14:36:16 -0400 Subject: [PATCH 070/105] Sync cries with pokeemerald --- Makefile | 7 +- sound/cry_tables.inc | 781 ++++++++++++++++++ sound/direct_sound_data.inc | 776 ++++++++--------- .../{cry_abra.aif => cries/abra.aif} | Bin .../{cry_absol.aif => cries/absol.aif} | Bin .../aerodactyl.aif} | Bin .../{cry_aggron.aif => cries/aggron.aif} | Bin .../{cry_aipom.aif => cries/aipom.aif} | Bin .../{cry_alakazam.aif => cries/alakazam.aif} | Bin .../{cry_altaria.aif => cries/altaria.aif} | Bin .../{cry_ampharos.aif => cries/ampharos.aif} | Bin .../{cry_anorith.aif => cries/anorith.aif} | Bin .../{cry_arbok.aif => cries/arbok.aif} | Bin .../{cry_arcanine.aif => cries/arcanine.aif} | Bin .../{cry_ariados.aif => cries/ariados.aif} | Bin .../{cry_armaldo.aif => cries/armaldo.aif} | Bin .../{cry_aron.aif => cries/aron.aif} | Bin .../{cry_articuno.aif => cries/articuno.aif} | Bin .../azumarill.aif} | Bin .../{cry_azurill.aif => cries/azurill.aif} | Bin .../{cry_bagon.aif => cries/bagon.aif} | Bin .../{cry_baltoy.aif => cries/baltoy.aif} | Bin .../{cry_banette.aif => cries/banette.aif} | Bin .../{cry_barboach.aif => cries/barboach.aif} | Bin .../{cry_bayleef.aif => cries/bayleef.aif} | Bin .../beautifly.aif} | Bin .../{cry_beedrill.aif => cries/beedrill.aif} | Bin .../{cry_beldum.aif => cries/beldum.aif} | Bin .../bellossom.aif} | Bin .../bellsprout.aif} | Bin .../blastoise.aif} | Bin .../{cry_blaziken.aif => cries/blaziken.aif} | Bin .../{cry_blissey.aif => cries/blissey.aif} | Bin .../{cry_breloom.aif => cries/breloom.aif} | Bin .../bulbasaur.aif} | Bin .../butterfree.aif} | Bin .../{cry_cacnea.aif => cries/cacnea.aif} | Bin .../{cry_cacturne.aif => cries/cacturne.aif} | Bin .../{cry_camerupt.aif => cries/camerupt.aif} | Bin .../{cry_carvanha.aif => cries/carvanha.aif} | Bin .../{cry_cascoon.aif => cries/cascoon.aif} | Bin .../{cry_castform.aif => cries/castform.aif} | Bin .../{cry_caterpie.aif => cries/caterpie.aif} | Bin .../{cry_celebi.aif => cries/celebi.aif} | Bin .../{cry_chansey.aif => cries/chansey.aif} | Bin .../charizard.aif} | Bin .../charmander.aif} | Bin .../charmeleon.aif} | Bin .../chikorita.aif} | Bin .../{cry_chimecho.aif => cries/chimecho.aif} | Bin .../{cry_chinchou.aif => cries/chinchou.aif} | Bin .../{cry_clamperl.aif => cries/clamperl.aif} | Bin .../{cry_claydol.aif => cries/claydol.aif} | Bin .../{cry_clefable.aif => cries/clefable.aif} | Bin .../{cry_clefairy.aif => cries/clefairy.aif} | Bin .../{cry_cleffa.aif => cries/cleffa.aif} | Bin .../{cry_cloyster.aif => cries/cloyster.aif} | Bin .../combusken.aif} | Bin .../{cry_corphish.aif => cries/corphish.aif} | Bin .../{cry_corsola.aif => cries/corsola.aif} | Bin .../{cry_cradily.aif => cries/cradily.aif} | Bin .../crawdaunt.aif} | Bin .../{cry_crobat.aif => cries/crobat.aif} | Bin .../{cry_croconaw.aif => cries/croconaw.aif} | Bin .../{cry_cubone.aif => cries/cubone.aif} | Bin .../cyndaquil.aif} | Bin .../{cry_delcatty.aif => cries/delcatty.aif} | Bin .../{cry_delibird.aif => cries/delibird.aif} | Bin .../{cry_deoxys.aif => cries/deoxys.aif} | Bin .../{cry_dewgong.aif => cries/dewgong.aif} | Bin .../{cry_diglett.aif => cries/diglett.aif} | Bin .../{cry_ditto.aif => cries/ditto.aif} | Bin .../{cry_dodrio.aif => cries/dodrio.aif} | Bin .../{cry_doduo.aif => cries/doduo.aif} | Bin .../{cry_donphan.aif => cries/donphan.aif} | Bin .../dragonair.aif} | Bin .../dragonite.aif} | Bin .../{cry_dratini.aif => cries/dratini.aif} | Bin .../{cry_drowzee.aif => cries/drowzee.aif} | Bin .../{cry_dugtrio.aif => cries/dugtrio.aif} | Bin .../dunsparce.aif} | Bin .../{cry_dusclops.aif => cries/dusclops.aif} | Bin .../{cry_duskull.aif => cries/duskull.aif} | Bin .../{cry_dustox.aif => cries/dustox.aif} | Bin .../{cry_eevee.aif => cries/eevee.aif} | Bin .../{cry_ekans.aif => cries/ekans.aif} | Bin .../electabuzz.aif} | Bin .../electrike.aif} | Bin .../electrode.aif} | Bin .../{cry_elekid.aif => cries/elekid.aif} | Bin .../{cry_entei.aif => cries/entei.aif} | Bin .../{cry_espeon.aif => cries/espeon.aif} | Bin .../exeggcute.aif} | Bin .../exeggutor.aif} | Bin .../{cry_exploud.aif => cries/exploud.aif} | Bin .../farfetchd.aif} | Bin .../{cry_fearow.aif => cries/fearow.aif} | Bin .../{cry_feebas.aif => cries/feebas.aif} | Bin .../feraligatr.aif} | Bin .../{cry_flaaffy.aif => cries/flaaffy.aif} | Bin .../{cry_flareon.aif => cries/flareon.aif} | Bin .../{cry_flygon.aif => cries/flygon.aif} | Bin .../forretress.aif} | Bin .../{cry_furret.aif => cries/furret.aif} | Bin .../gardevoir.aif} | Bin .../{cry_gastly.aif => cries/gastly.aif} | Bin .../{cry_gengar.aif => cries/gengar.aif} | Bin .../{cry_geodude.aif => cries/geodude.aif} | Bin .../girafarig.aif} | Bin .../{cry_glalie.aif => cries/glalie.aif} | Bin .../{cry_gligar.aif => cries/gligar.aif} | Bin .../{cry_gloom.aif => cries/gloom.aif} | Bin .../{cry_golbat.aif => cries/golbat.aif} | Bin .../{cry_goldeen.aif => cries/goldeen.aif} | Bin .../{cry_golduck.aif => cries/golduck.aif} | Bin .../{cry_golem.aif => cries/golem.aif} | Bin .../{cry_gorebyss.aif => cries/gorebyss.aif} | Bin .../{cry_granbull.aif => cries/granbull.aif} | Bin .../{cry_graveler.aif => cries/graveler.aif} | Bin .../{cry_grimer.aif => cries/grimer.aif} | Bin .../{cry_groudon.aif => cries/groudon.aif} | Bin .../{cry_grovyle.aif => cries/grovyle.aif} | Bin .../growlithe.aif} | Bin .../{cry_grumpig.aif => cries/grumpig.aif} | Bin .../{cry_gulpin.aif => cries/gulpin.aif} | Bin .../{cry_gyarados.aif => cries/gyarados.aif} | Bin .../{cry_hariyama.aif => cries/hariyama.aif} | Bin .../{cry_haunter.aif => cries/haunter.aif} | Bin .../heracross.aif} | Bin .../hitmonchan.aif} | Bin .../hitmonlee.aif} | Bin .../hitmontop.aif} | Bin .../{cry_ho_oh.aif => cries/ho_oh.aif} | Bin .../{cry_hoothoot.aif => cries/hoothoot.aif} | Bin .../{cry_hoppip.aif => cries/hoppip.aif} | Bin .../{cry_horsea.aif => cries/horsea.aif} | Bin .../{cry_houndoom.aif => cries/houndoom.aif} | Bin .../{cry_houndour.aif => cries/houndour.aif} | Bin .../{cry_huntail.aif => cries/huntail.aif} | Bin .../{cry_hypno.aif => cries/hypno.aif} | Bin .../igglybuff.aif} | Bin .../{cry_illumise.aif => cries/illumise.aif} | Bin .../{cry_ivysaur.aif => cries/ivysaur.aif} | Bin .../jigglypuff.aif} | Bin .../{cry_jirachi.aif => cries/jirachi.aif} | Bin .../{cry_jolteon.aif => cries/jolteon.aif} | Bin .../{cry_jumpluff.aif => cries/jumpluff.aif} | Bin .../{cry_jynx.aif => cries/jynx.aif} | Bin .../{cry_kabuto.aif => cries/kabuto.aif} | Bin .../{cry_kabutops.aif => cries/kabutops.aif} | Bin .../{cry_kadabra.aif => cries/kadabra.aif} | Bin .../{cry_kakuna.aif => cries/kakuna.aif} | Bin .../kangaskhan.aif} | Bin .../{cry_kecleon.aif => cries/kecleon.aif} | Bin .../{cry_kingdra.aif => cries/kingdra.aif} | Bin .../{cry_kingler.aif => cries/kingler.aif} | Bin .../{cry_kirlia.aif => cries/kirlia.aif} | Bin .../{cry_koffing.aif => cries/koffing.aif} | Bin .../{cry_krabby.aif => cries/krabby.aif} | Bin .../{cry_kyogre.aif => cries/kyogre.aif} | Bin .../{cry_lairon.aif => cries/lairon.aif} | Bin .../{cry_lanturn.aif => cries/lanturn.aif} | Bin .../{cry_lapras.aif => cries/lapras.aif} | Bin .../{cry_larvitar.aif => cries/larvitar.aif} | Bin .../{cry_latias.aif => cries/latias.aif} | Bin .../{cry_latios.aif => cries/latios.aif} | Bin .../{cry_ledian.aif => cries/ledian.aif} | Bin .../{cry_ledyba.aif => cries/ledyba.aif} | Bin .../lickitung.aif} | Bin .../{cry_lileep.aif => cries/lileep.aif} | Bin .../{cry_linoone.aif => cries/linoone.aif} | Bin .../{cry_lombre.aif => cries/lombre.aif} | Bin .../{cry_lotad.aif => cries/lotad.aif} | Bin .../{cry_loudred.aif => cries/loudred.aif} | Bin .../{cry_ludicolo.aif => cries/ludicolo.aif} | Bin .../{cry_lugia.aif => cries/lugia.aif} | Bin .../{cry_lunatone.aif => cries/lunatone.aif} | Bin .../{cry_luvdisc.aif => cries/luvdisc.aif} | Bin .../{cry_machamp.aif => cries/machamp.aif} | Bin .../{cry_machoke.aif => cries/machoke.aif} | Bin .../{cry_machop.aif => cries/machop.aif} | Bin .../{cry_magby.aif => cries/magby.aif} | Bin .../{cry_magcargo.aif => cries/magcargo.aif} | Bin .../{cry_magikarp.aif => cries/magikarp.aif} | Bin .../{cry_magmar.aif => cries/magmar.aif} | Bin .../magnemite.aif} | Bin .../{cry_magneton.aif => cries/magneton.aif} | Bin .../{cry_makuhita.aif => cries/makuhita.aif} | Bin .../manectric.aif} | Bin .../{cry_mankey.aif => cries/mankey.aif} | Bin .../{cry_mantine.aif => cries/mantine.aif} | Bin .../{cry_mareep.aif => cries/mareep.aif} | Bin .../{cry_marill.aif => cries/marill.aif} | Bin .../{cry_marowak.aif => cries/marowak.aif} | Bin .../marshtomp.aif} | Bin .../masquerain.aif} | Bin .../{cry_mawile.aif => cries/mawile.aif} | Bin .../{cry_medicham.aif => cries/medicham.aif} | Bin .../{cry_meditite.aif => cries/meditite.aif} | Bin .../{cry_meganium.aif => cries/meganium.aif} | Bin .../{cry_meowth.aif => cries/meowth.aif} | Bin .../metagross.aif} | Bin .../{cry_metang.aif => cries/metang.aif} | Bin .../{cry_metapod.aif => cries/metapod.aif} | Bin .../{cry_mew.aif => cries/mew.aif} | Bin .../{cry_mewtwo.aif => cries/mewtwo.aif} | Bin .../mightyena.aif} | Bin .../{cry_milotic.aif => cries/milotic.aif} | Bin .../{cry_miltank.aif => cries/miltank.aif} | Bin .../{cry_minun.aif => cries/minun.aif} | Bin .../misdreavus.aif} | Bin .../{cry_moltres.aif => cries/moltres.aif} | Bin .../{cry_mr_mime.aif => cries/mr_mime.aif} | Bin .../{cry_mudkip.aif => cries/mudkip.aif} | Bin .../{cry_muk.aif => cries/muk.aif} | Bin .../{cry_murkrow.aif => cries/murkrow.aif} | Bin .../{cry_natu.aif => cries/natu.aif} | Bin .../{cry_nidoking.aif => cries/nidoking.aif} | Bin .../nidoqueen.aif} | Bin .../nidoran_f.aif} | Bin .../nidoran_m.aif} | Bin .../{cry_nidorina.aif => cries/nidorina.aif} | Bin .../{cry_nidorino.aif => cries/nidorino.aif} | Bin .../{cry_nincada.aif => cries/nincada.aif} | Bin .../ninetales.aif} | Bin .../{cry_ninjask.aif => cries/ninjask.aif} | Bin .../{cry_noctowl.aif => cries/noctowl.aif} | Bin .../{cry_nosepass.aif => cries/nosepass.aif} | Bin .../{cry_numel.aif => cries/numel.aif} | Bin .../{cry_nuzleaf.aif => cries/nuzleaf.aif} | Bin .../octillery.aif} | Bin .../{cry_oddish.aif => cries/oddish.aif} | Bin .../{cry_omanyte.aif => cries/omanyte.aif} | Bin .../{cry_omastar.aif => cries/omastar.aif} | Bin .../{cry_onix.aif => cries/onix.aif} | Bin .../{cry_paras.aif => cries/paras.aif} | Bin .../{cry_parasect.aif => cries/parasect.aif} | Bin .../{cry_pelipper.aif => cries/pelipper.aif} | Bin .../{cry_persian.aif => cries/persian.aif} | Bin .../{cry_phanpy.aif => cries/phanpy.aif} | Bin .../{cry_pichu.aif => cries/pichu.aif} | Bin .../{cry_pidgeot.aif => cries/pidgeot.aif} | Bin .../pidgeotto.aif} | Bin .../{cry_pidgey.aif => cries/pidgey.aif} | Bin .../{cry_pikachu.aif => cries/pikachu.aif} | Bin .../piloswine.aif} | Bin .../{cry_pineco.aif => cries/pineco.aif} | Bin .../{cry_pinsir.aif => cries/pinsir.aif} | Bin .../{cry_plusle.aif => cries/plusle.aif} | Bin .../{cry_politoed.aif => cries/politoed.aif} | Bin .../{cry_poliwag.aif => cries/poliwag.aif} | Bin .../poliwhirl.aif} | Bin .../poliwrath.aif} | Bin .../{cry_ponyta.aif => cries/ponyta.aif} | Bin .../poochyena.aif} | Bin .../{cry_porygon.aif => cries/porygon.aif} | Bin .../{cry_porygon2.aif => cries/porygon2.aif} | Bin .../{cry_primeape.aif => cries/primeape.aif} | Bin .../{cry_psyduck.aif => cries/psyduck.aif} | Bin .../{cry_pupitar.aif => cries/pupitar.aif} | Bin .../{cry_quagsire.aif => cries/quagsire.aif} | Bin .../{cry_quilava.aif => cries/quilava.aif} | Bin .../{cry_qwilfish.aif => cries/qwilfish.aif} | Bin .../{cry_raichu.aif => cries/raichu.aif} | Bin .../{cry_raikou.aif => cries/raikou.aif} | Bin .../{cry_ralts.aif => cries/ralts.aif} | Bin .../{cry_rapidash.aif => cries/rapidash.aif} | Bin .../{cry_raticate.aif => cries/raticate.aif} | Bin .../{cry_rattata.aif => cries/rattata.aif} | Bin .../{cry_rayquaza.aif => cries/rayquaza.aif} | Bin .../{cry_regice.aif => cries/regice.aif} | Bin .../{cry_regirock.aif => cries/regirock.aif} | Bin .../registeel.aif} | Bin .../relicanth.aif} | Bin .../{cry_remoraid.aif => cries/remoraid.aif} | Bin .../{cry_rhydon.aif => cries/rhydon.aif} | Bin .../{cry_rhyhorn.aif => cries/rhyhorn.aif} | Bin .../{cry_roselia.aif => cries/roselia.aif} | Bin .../{cry_sableye.aif => cries/sableye.aif} | Bin .../salamence.aif} | Bin .../sandshrew.aif} | Bin .../sandslash.aif} | Bin .../{cry_sceptile.aif => cries/sceptile.aif} | Bin .../{cry_scizor.aif => cries/scizor.aif} | Bin .../{cry_scyther.aif => cries/scyther.aif} | Bin .../{cry_seadra.aif => cries/seadra.aif} | Bin .../{cry_seaking.aif => cries/seaking.aif} | Bin .../{cry_sealeo.aif => cries/sealeo.aif} | Bin .../{cry_seedot.aif => cries/seedot.aif} | Bin .../{cry_seel.aif => cries/seel.aif} | Bin .../{cry_sentret.aif => cries/sentret.aif} | Bin .../{cry_seviper.aif => cries/seviper.aif} | Bin .../{cry_sharpedo.aif => cries/sharpedo.aif} | Bin .../{cry_shedinja.aif => cries/shedinja.aif} | Bin .../{cry_shelgon.aif => cries/shelgon.aif} | Bin .../{cry_shellder.aif => cries/shellder.aif} | Bin .../{cry_shiftry.aif => cries/shiftry.aif} | Bin .../shroomish.aif} | Bin .../{cry_shuckle.aif => cries/shuckle.aif} | Bin .../{cry_shuppet.aif => cries/shuppet.aif} | Bin .../{cry_silcoon.aif => cries/silcoon.aif} | Bin .../{cry_skarmory.aif => cries/skarmory.aif} | Bin .../{cry_skiploom.aif => cries/skiploom.aif} | Bin .../{cry_skitty.aif => cries/skitty.aif} | Bin .../{cry_slaking.aif => cries/slaking.aif} | Bin .../{cry_slakoth.aif => cries/slakoth.aif} | Bin .../{cry_slowbro.aif => cries/slowbro.aif} | Bin .../{cry_slowking.aif => cries/slowking.aif} | Bin .../{cry_slowpoke.aif => cries/slowpoke.aif} | Bin .../{cry_slugma.aif => cries/slugma.aif} | Bin .../{cry_smeargle.aif => cries/smeargle.aif} | Bin .../{cry_smoochum.aif => cries/smoochum.aif} | Bin .../{cry_sneasel.aif => cries/sneasel.aif} | Bin .../{cry_snorlax.aif => cries/snorlax.aif} | Bin .../{cry_snorunt.aif => cries/snorunt.aif} | Bin .../{cry_snubbull.aif => cries/snubbull.aif} | Bin .../{cry_solrock.aif => cries/solrock.aif} | Bin .../{cry_spearow.aif => cries/spearow.aif} | Bin .../{cry_spheal.aif => cries/spheal.aif} | Bin .../{cry_spinarak.aif => cries/spinarak.aif} | Bin .../{cry_spinda.aif => cries/spinda.aif} | Bin .../{cry_spoink.aif => cries/spoink.aif} | Bin .../{cry_squirtle.aif => cries/squirtle.aif} | Bin .../{cry_stantler.aif => cries/stantler.aif} | Bin .../{cry_starmie.aif => cries/starmie.aif} | Bin .../{cry_staryu.aif => cries/staryu.aif} | Bin .../{cry_steelix.aif => cries/steelix.aif} | Bin .../sudowoodo.aif} | Bin .../{cry_suicune.aif => cries/suicune.aif} | Bin .../{cry_sunflora.aif => cries/sunflora.aif} | Bin .../{cry_sunkern.aif => cries/sunkern.aif} | Bin .../{cry_surskit.aif => cries/surskit.aif} | Bin .../{cry_swablu.aif => cries/swablu.aif} | Bin .../{cry_swalot.aif => cries/swalot.aif} | Bin .../{cry_swampert.aif => cries/swampert.aif} | Bin .../{cry_swellow.aif => cries/swellow.aif} | Bin .../{cry_swinub.aif => cries/swinub.aif} | Bin .../{cry_taillow.aif => cries/taillow.aif} | Bin .../{cry_tangela.aif => cries/tangela.aif} | Bin .../{cry_tauros.aif => cries/tauros.aif} | Bin .../teddiursa.aif} | Bin .../tentacool.aif} | Bin .../tentacruel.aif} | Bin .../{cry_togepi.aif => cries/togepi.aif} | Bin .../{cry_togetic.aif => cries/togetic.aif} | Bin .../{cry_torchic.aif => cries/torchic.aif} | Bin .../{cry_torkoal.aif => cries/torkoal.aif} | Bin .../{cry_totodile.aif => cries/totodile.aif} | Bin .../{cry_trapinch.aif => cries/trapinch.aif} | Bin .../{cry_treecko.aif => cries/treecko.aif} | Bin .../{cry_tropius.aif => cries/tropius.aif} | Bin .../typhlosion.aif} | Bin .../tyranitar.aif} | Bin .../{cry_tyrogue.aif => cries/tyrogue.aif} | Bin .../{cry_umbreon.aif => cries/umbreon.aif} | Bin .../{cry_unown.aif => cries/unown.aif} | Bin .../unused_265.aif} | Bin .../unused_268.aif} | Bin .../{cry_ursaring.aif => cries/ursaring.aif} | Bin .../{cry_vaporeon.aif => cries/vaporeon.aif} | Bin .../{cry_venomoth.aif => cries/venomoth.aif} | Bin .../{cry_venonat.aif => cries/venonat.aif} | Bin .../{cry_venusaur.aif => cries/venusaur.aif} | Bin .../{cry_vibrava.aif => cries/vibrava.aif} | Bin .../victreebel.aif} | Bin .../{cry_vigoroth.aif => cries/vigoroth.aif} | Bin .../vileplume.aif} | Bin .../{cry_volbeat.aif => cries/volbeat.aif} | Bin .../{cry_voltorb.aif => cries/voltorb.aif} | Bin .../{cry_vulpix.aif => cries/vulpix.aif} | Bin .../{cry_wailmer.aif => cries/wailmer.aif} | Bin .../{cry_wailord.aif => cries/wailord.aif} | Bin .../{cry_walrein.aif => cries/walrein.aif} | Bin .../wartortle.aif} | Bin .../{cry_weedle.aif => cries/weedle.aif} | Bin .../weepinbell.aif} | Bin .../{cry_weezing.aif => cries/weezing.aif} | Bin .../{cry_whiscash.aif => cries/whiscash.aif} | Bin .../{cry_whismur.aif => cries/whismur.aif} | Bin .../wigglytuff.aif} | Bin .../{cry_wingull.aif => cries/wingull.aif} | Bin .../wobbuffet.aif} | Bin .../{cry_wooper.aif => cries/wooper.aif} | Bin .../{cry_wurmple.aif => cries/wurmple.aif} | Bin .../{cry_wynaut.aif => cries/wynaut.aif} | Bin .../{cry_xatu.aif => cries/xatu.aif} | Bin .../{cry_yanma.aif => cries/yanma.aif} | Bin .../{cry_zangoose.aif => cries/zangoose.aif} | Bin .../{cry_zapdos.aif => cries/zapdos.aif} | Bin .../zigzagoon.aif} | Bin .../{cry_zubat.aif => cries/zubat.aif} | Bin sound/direct_sound_samples/cry_none.aif | Bin 8286 -> 0 bytes sound/voice_groups.inc | 780 +---------------- 393 files changed, 1175 insertions(+), 1169 deletions(-) create mode 100644 sound/cry_tables.inc rename sound/direct_sound_samples/{cry_abra.aif => cries/abra.aif} (100%) rename sound/direct_sound_samples/{cry_absol.aif => cries/absol.aif} (100%) rename sound/direct_sound_samples/{cry_aerodactyl.aif => cries/aerodactyl.aif} (100%) rename sound/direct_sound_samples/{cry_aggron.aif => cries/aggron.aif} (100%) rename sound/direct_sound_samples/{cry_aipom.aif => cries/aipom.aif} (100%) rename sound/direct_sound_samples/{cry_alakazam.aif => cries/alakazam.aif} (100%) rename sound/direct_sound_samples/{cry_altaria.aif => cries/altaria.aif} (100%) rename sound/direct_sound_samples/{cry_ampharos.aif => cries/ampharos.aif} (100%) rename sound/direct_sound_samples/{cry_anorith.aif => cries/anorith.aif} (100%) rename sound/direct_sound_samples/{cry_arbok.aif => cries/arbok.aif} (100%) rename sound/direct_sound_samples/{cry_arcanine.aif => cries/arcanine.aif} (100%) rename sound/direct_sound_samples/{cry_ariados.aif => cries/ariados.aif} (100%) rename sound/direct_sound_samples/{cry_armaldo.aif => cries/armaldo.aif} (100%) rename sound/direct_sound_samples/{cry_aron.aif => cries/aron.aif} (100%) rename sound/direct_sound_samples/{cry_articuno.aif => cries/articuno.aif} (100%) rename sound/direct_sound_samples/{cry_azumarill.aif => cries/azumarill.aif} (100%) rename sound/direct_sound_samples/{cry_azurill.aif => cries/azurill.aif} (100%) rename sound/direct_sound_samples/{cry_bagon.aif => cries/bagon.aif} (100%) rename sound/direct_sound_samples/{cry_baltoy.aif => cries/baltoy.aif} (100%) rename sound/direct_sound_samples/{cry_banette.aif => cries/banette.aif} (100%) rename sound/direct_sound_samples/{cry_barboach.aif => cries/barboach.aif} (100%) rename sound/direct_sound_samples/{cry_bayleef.aif => cries/bayleef.aif} (100%) rename sound/direct_sound_samples/{cry_beautifly.aif => cries/beautifly.aif} (100%) rename sound/direct_sound_samples/{cry_beedrill.aif => cries/beedrill.aif} (100%) rename sound/direct_sound_samples/{cry_beldum.aif => cries/beldum.aif} (100%) rename sound/direct_sound_samples/{cry_bellossom.aif => cries/bellossom.aif} (100%) rename sound/direct_sound_samples/{cry_bellsprout.aif => cries/bellsprout.aif} (100%) rename sound/direct_sound_samples/{cry_blastoise.aif => cries/blastoise.aif} (100%) rename sound/direct_sound_samples/{cry_blaziken.aif => cries/blaziken.aif} (100%) rename sound/direct_sound_samples/{cry_blissey.aif => cries/blissey.aif} (100%) rename sound/direct_sound_samples/{cry_breloom.aif => cries/breloom.aif} (100%) rename sound/direct_sound_samples/{cry_bulbasaur.aif => cries/bulbasaur.aif} (100%) rename sound/direct_sound_samples/{cry_butterfree.aif => cries/butterfree.aif} (100%) rename sound/direct_sound_samples/{cry_cacnea.aif => cries/cacnea.aif} (100%) rename sound/direct_sound_samples/{cry_cacturne.aif => cries/cacturne.aif} (100%) rename sound/direct_sound_samples/{cry_camerupt.aif => cries/camerupt.aif} (100%) rename sound/direct_sound_samples/{cry_carvanha.aif => cries/carvanha.aif} (100%) rename sound/direct_sound_samples/{cry_cascoon.aif => cries/cascoon.aif} (100%) rename sound/direct_sound_samples/{cry_castform.aif => cries/castform.aif} (100%) rename sound/direct_sound_samples/{cry_caterpie.aif => cries/caterpie.aif} (100%) rename sound/direct_sound_samples/{cry_celebi.aif => cries/celebi.aif} (100%) rename sound/direct_sound_samples/{cry_chansey.aif => cries/chansey.aif} (100%) rename sound/direct_sound_samples/{cry_charizard.aif => cries/charizard.aif} (100%) rename sound/direct_sound_samples/{cry_charmander.aif => cries/charmander.aif} (100%) rename sound/direct_sound_samples/{cry_charmeleon.aif => cries/charmeleon.aif} (100%) rename sound/direct_sound_samples/{cry_chikorita.aif => cries/chikorita.aif} (100%) rename sound/direct_sound_samples/{cry_chimecho.aif => cries/chimecho.aif} (100%) rename sound/direct_sound_samples/{cry_chinchou.aif => cries/chinchou.aif} (100%) rename sound/direct_sound_samples/{cry_clamperl.aif => cries/clamperl.aif} (100%) rename sound/direct_sound_samples/{cry_claydol.aif => cries/claydol.aif} (100%) rename sound/direct_sound_samples/{cry_clefable.aif => cries/clefable.aif} (100%) rename sound/direct_sound_samples/{cry_clefairy.aif => cries/clefairy.aif} (100%) rename sound/direct_sound_samples/{cry_cleffa.aif => cries/cleffa.aif} (100%) rename sound/direct_sound_samples/{cry_cloyster.aif => cries/cloyster.aif} (100%) rename sound/direct_sound_samples/{cry_combusken.aif => cries/combusken.aif} (100%) rename sound/direct_sound_samples/{cry_corphish.aif => cries/corphish.aif} (100%) rename sound/direct_sound_samples/{cry_corsola.aif => cries/corsola.aif} (100%) rename sound/direct_sound_samples/{cry_cradily.aif => cries/cradily.aif} (100%) rename sound/direct_sound_samples/{cry_crawdaunt.aif => cries/crawdaunt.aif} (100%) rename sound/direct_sound_samples/{cry_crobat.aif => cries/crobat.aif} (100%) rename sound/direct_sound_samples/{cry_croconaw.aif => cries/croconaw.aif} (100%) rename sound/direct_sound_samples/{cry_cubone.aif => cries/cubone.aif} (100%) rename sound/direct_sound_samples/{cry_cyndaquil.aif => cries/cyndaquil.aif} (100%) rename sound/direct_sound_samples/{cry_delcatty.aif => cries/delcatty.aif} (100%) rename sound/direct_sound_samples/{cry_delibird.aif => cries/delibird.aif} (100%) rename sound/direct_sound_samples/{cry_deoxys.aif => cries/deoxys.aif} (100%) rename sound/direct_sound_samples/{cry_dewgong.aif => cries/dewgong.aif} (100%) rename sound/direct_sound_samples/{cry_diglett.aif => cries/diglett.aif} (100%) rename sound/direct_sound_samples/{cry_ditto.aif => cries/ditto.aif} (100%) rename sound/direct_sound_samples/{cry_dodrio.aif => cries/dodrio.aif} (100%) rename sound/direct_sound_samples/{cry_doduo.aif => cries/doduo.aif} (100%) rename sound/direct_sound_samples/{cry_donphan.aif => cries/donphan.aif} (100%) rename sound/direct_sound_samples/{cry_dragonair.aif => cries/dragonair.aif} (100%) rename sound/direct_sound_samples/{cry_dragonite.aif => cries/dragonite.aif} (100%) rename sound/direct_sound_samples/{cry_dratini.aif => cries/dratini.aif} (100%) rename sound/direct_sound_samples/{cry_drowzee.aif => cries/drowzee.aif} (100%) rename sound/direct_sound_samples/{cry_dugtrio.aif => cries/dugtrio.aif} (100%) rename sound/direct_sound_samples/{cry_dunsparce.aif => cries/dunsparce.aif} (100%) rename sound/direct_sound_samples/{cry_dusclops.aif => cries/dusclops.aif} (100%) rename sound/direct_sound_samples/{cry_duskull.aif => cries/duskull.aif} (100%) rename sound/direct_sound_samples/{cry_dustox.aif => cries/dustox.aif} (100%) rename sound/direct_sound_samples/{cry_eevee.aif => cries/eevee.aif} (100%) rename sound/direct_sound_samples/{cry_ekans.aif => cries/ekans.aif} (100%) rename sound/direct_sound_samples/{cry_electabuzz.aif => cries/electabuzz.aif} (100%) rename sound/direct_sound_samples/{cry_electrike.aif => cries/electrike.aif} (100%) rename sound/direct_sound_samples/{cry_electrode.aif => cries/electrode.aif} (100%) rename sound/direct_sound_samples/{cry_elekid.aif => cries/elekid.aif} (100%) rename sound/direct_sound_samples/{cry_entei.aif => cries/entei.aif} (100%) rename sound/direct_sound_samples/{cry_espeon.aif => cries/espeon.aif} (100%) rename sound/direct_sound_samples/{cry_exeggcute.aif => cries/exeggcute.aif} (100%) rename sound/direct_sound_samples/{cry_exeggutor.aif => cries/exeggutor.aif} (100%) rename sound/direct_sound_samples/{cry_exploud.aif => cries/exploud.aif} (100%) rename sound/direct_sound_samples/{cry_farfetchd.aif => cries/farfetchd.aif} (100%) rename sound/direct_sound_samples/{cry_fearow.aif => cries/fearow.aif} (100%) rename sound/direct_sound_samples/{cry_feebas.aif => cries/feebas.aif} (100%) rename sound/direct_sound_samples/{cry_feraligatr.aif => cries/feraligatr.aif} (100%) rename sound/direct_sound_samples/{cry_flaaffy.aif => cries/flaaffy.aif} (100%) rename sound/direct_sound_samples/{cry_flareon.aif => cries/flareon.aif} (100%) rename sound/direct_sound_samples/{cry_flygon.aif => cries/flygon.aif} (100%) rename sound/direct_sound_samples/{cry_forretress.aif => cries/forretress.aif} (100%) rename sound/direct_sound_samples/{cry_furret.aif => cries/furret.aif} (100%) rename sound/direct_sound_samples/{cry_gardevoir.aif => cries/gardevoir.aif} (100%) rename sound/direct_sound_samples/{cry_gastly.aif => cries/gastly.aif} (100%) rename sound/direct_sound_samples/{cry_gengar.aif => cries/gengar.aif} (100%) rename sound/direct_sound_samples/{cry_geodude.aif => cries/geodude.aif} (100%) rename sound/direct_sound_samples/{cry_girafarig.aif => cries/girafarig.aif} (100%) rename sound/direct_sound_samples/{cry_glalie.aif => cries/glalie.aif} (100%) rename sound/direct_sound_samples/{cry_gligar.aif => cries/gligar.aif} (100%) rename sound/direct_sound_samples/{cry_gloom.aif => cries/gloom.aif} (100%) rename sound/direct_sound_samples/{cry_golbat.aif => cries/golbat.aif} (100%) rename sound/direct_sound_samples/{cry_goldeen.aif => cries/goldeen.aif} (100%) rename sound/direct_sound_samples/{cry_golduck.aif => cries/golduck.aif} (100%) rename sound/direct_sound_samples/{cry_golem.aif => cries/golem.aif} (100%) rename sound/direct_sound_samples/{cry_gorebyss.aif => cries/gorebyss.aif} (100%) rename sound/direct_sound_samples/{cry_granbull.aif => cries/granbull.aif} (100%) rename sound/direct_sound_samples/{cry_graveler.aif => cries/graveler.aif} (100%) rename sound/direct_sound_samples/{cry_grimer.aif => cries/grimer.aif} (100%) rename sound/direct_sound_samples/{cry_groudon.aif => cries/groudon.aif} (100%) rename sound/direct_sound_samples/{cry_grovyle.aif => cries/grovyle.aif} (100%) rename sound/direct_sound_samples/{cry_growlithe.aif => cries/growlithe.aif} (100%) rename sound/direct_sound_samples/{cry_grumpig.aif => cries/grumpig.aif} (100%) rename sound/direct_sound_samples/{cry_gulpin.aif => cries/gulpin.aif} (100%) rename sound/direct_sound_samples/{cry_gyarados.aif => cries/gyarados.aif} (100%) rename sound/direct_sound_samples/{cry_hariyama.aif => cries/hariyama.aif} (100%) rename sound/direct_sound_samples/{cry_haunter.aif => cries/haunter.aif} (100%) rename sound/direct_sound_samples/{cry_heracross.aif => cries/heracross.aif} (100%) rename sound/direct_sound_samples/{cry_hitmonchan.aif => cries/hitmonchan.aif} (100%) rename sound/direct_sound_samples/{cry_hitmonlee.aif => cries/hitmonlee.aif} (100%) rename sound/direct_sound_samples/{cry_hitmontop.aif => cries/hitmontop.aif} (100%) rename sound/direct_sound_samples/{cry_ho_oh.aif => cries/ho_oh.aif} (100%) rename sound/direct_sound_samples/{cry_hoothoot.aif => cries/hoothoot.aif} (100%) rename sound/direct_sound_samples/{cry_hoppip.aif => cries/hoppip.aif} (100%) rename sound/direct_sound_samples/{cry_horsea.aif => cries/horsea.aif} (100%) rename sound/direct_sound_samples/{cry_houndoom.aif => cries/houndoom.aif} (100%) rename sound/direct_sound_samples/{cry_houndour.aif => cries/houndour.aif} (100%) rename sound/direct_sound_samples/{cry_huntail.aif => cries/huntail.aif} (100%) rename sound/direct_sound_samples/{cry_hypno.aif => cries/hypno.aif} (100%) rename sound/direct_sound_samples/{cry_igglybuff.aif => cries/igglybuff.aif} (100%) rename sound/direct_sound_samples/{cry_illumise.aif => cries/illumise.aif} (100%) rename sound/direct_sound_samples/{cry_ivysaur.aif => cries/ivysaur.aif} (100%) rename sound/direct_sound_samples/{cry_jigglypuff.aif => cries/jigglypuff.aif} (100%) rename sound/direct_sound_samples/{cry_jirachi.aif => cries/jirachi.aif} (100%) rename sound/direct_sound_samples/{cry_jolteon.aif => cries/jolteon.aif} (100%) rename sound/direct_sound_samples/{cry_jumpluff.aif => cries/jumpluff.aif} (100%) rename sound/direct_sound_samples/{cry_jynx.aif => cries/jynx.aif} (100%) rename sound/direct_sound_samples/{cry_kabuto.aif => cries/kabuto.aif} (100%) rename sound/direct_sound_samples/{cry_kabutops.aif => cries/kabutops.aif} (100%) rename sound/direct_sound_samples/{cry_kadabra.aif => cries/kadabra.aif} (100%) rename sound/direct_sound_samples/{cry_kakuna.aif => cries/kakuna.aif} (100%) rename sound/direct_sound_samples/{cry_kangaskhan.aif => cries/kangaskhan.aif} (100%) rename sound/direct_sound_samples/{cry_kecleon.aif => cries/kecleon.aif} (100%) rename sound/direct_sound_samples/{cry_kingdra.aif => cries/kingdra.aif} (100%) rename sound/direct_sound_samples/{cry_kingler.aif => cries/kingler.aif} (100%) rename sound/direct_sound_samples/{cry_kirlia.aif => cries/kirlia.aif} (100%) rename sound/direct_sound_samples/{cry_koffing.aif => cries/koffing.aif} (100%) rename sound/direct_sound_samples/{cry_krabby.aif => cries/krabby.aif} (100%) rename sound/direct_sound_samples/{cry_kyogre.aif => cries/kyogre.aif} (100%) rename sound/direct_sound_samples/{cry_lairon.aif => cries/lairon.aif} (100%) rename sound/direct_sound_samples/{cry_lanturn.aif => cries/lanturn.aif} (100%) rename sound/direct_sound_samples/{cry_lapras.aif => cries/lapras.aif} (100%) rename sound/direct_sound_samples/{cry_larvitar.aif => cries/larvitar.aif} (100%) rename sound/direct_sound_samples/{cry_latias.aif => cries/latias.aif} (100%) rename sound/direct_sound_samples/{cry_latios.aif => cries/latios.aif} (100%) rename sound/direct_sound_samples/{cry_ledian.aif => cries/ledian.aif} (100%) rename sound/direct_sound_samples/{cry_ledyba.aif => cries/ledyba.aif} (100%) rename sound/direct_sound_samples/{cry_lickitung.aif => cries/lickitung.aif} (100%) rename sound/direct_sound_samples/{cry_lileep.aif => cries/lileep.aif} (100%) rename sound/direct_sound_samples/{cry_linoone.aif => cries/linoone.aif} (100%) rename sound/direct_sound_samples/{cry_lombre.aif => cries/lombre.aif} (100%) rename sound/direct_sound_samples/{cry_lotad.aif => cries/lotad.aif} (100%) rename sound/direct_sound_samples/{cry_loudred.aif => cries/loudred.aif} (100%) rename sound/direct_sound_samples/{cry_ludicolo.aif => cries/ludicolo.aif} (100%) rename sound/direct_sound_samples/{cry_lugia.aif => cries/lugia.aif} (100%) rename sound/direct_sound_samples/{cry_lunatone.aif => cries/lunatone.aif} (100%) rename sound/direct_sound_samples/{cry_luvdisc.aif => cries/luvdisc.aif} (100%) rename sound/direct_sound_samples/{cry_machamp.aif => cries/machamp.aif} (100%) rename sound/direct_sound_samples/{cry_machoke.aif => cries/machoke.aif} (100%) rename sound/direct_sound_samples/{cry_machop.aif => cries/machop.aif} (100%) rename sound/direct_sound_samples/{cry_magby.aif => cries/magby.aif} (100%) rename sound/direct_sound_samples/{cry_magcargo.aif => cries/magcargo.aif} (100%) rename sound/direct_sound_samples/{cry_magikarp.aif => cries/magikarp.aif} (100%) rename sound/direct_sound_samples/{cry_magmar.aif => cries/magmar.aif} (100%) rename sound/direct_sound_samples/{cry_magnemite.aif => cries/magnemite.aif} (100%) rename sound/direct_sound_samples/{cry_magneton.aif => cries/magneton.aif} (100%) rename sound/direct_sound_samples/{cry_makuhita.aif => cries/makuhita.aif} (100%) rename sound/direct_sound_samples/{cry_manectric.aif => cries/manectric.aif} (100%) rename sound/direct_sound_samples/{cry_mankey.aif => cries/mankey.aif} (100%) rename sound/direct_sound_samples/{cry_mantine.aif => cries/mantine.aif} (100%) rename sound/direct_sound_samples/{cry_mareep.aif => cries/mareep.aif} (100%) rename sound/direct_sound_samples/{cry_marill.aif => cries/marill.aif} (100%) rename sound/direct_sound_samples/{cry_marowak.aif => cries/marowak.aif} (100%) rename sound/direct_sound_samples/{cry_marshtomp.aif => cries/marshtomp.aif} (100%) rename sound/direct_sound_samples/{cry_masquerain.aif => cries/masquerain.aif} (100%) rename sound/direct_sound_samples/{cry_mawile.aif => cries/mawile.aif} (100%) rename sound/direct_sound_samples/{cry_medicham.aif => cries/medicham.aif} (100%) rename sound/direct_sound_samples/{cry_meditite.aif => cries/meditite.aif} (100%) rename sound/direct_sound_samples/{cry_meganium.aif => cries/meganium.aif} (100%) rename sound/direct_sound_samples/{cry_meowth.aif => cries/meowth.aif} (100%) rename sound/direct_sound_samples/{cry_metagross.aif => cries/metagross.aif} (100%) rename sound/direct_sound_samples/{cry_metang.aif => cries/metang.aif} (100%) rename sound/direct_sound_samples/{cry_metapod.aif => cries/metapod.aif} (100%) rename sound/direct_sound_samples/{cry_mew.aif => cries/mew.aif} (100%) rename sound/direct_sound_samples/{cry_mewtwo.aif => cries/mewtwo.aif} (100%) rename sound/direct_sound_samples/{cry_mightyena.aif => cries/mightyena.aif} (100%) rename sound/direct_sound_samples/{cry_milotic.aif => cries/milotic.aif} (100%) rename sound/direct_sound_samples/{cry_miltank.aif => cries/miltank.aif} (100%) rename sound/direct_sound_samples/{cry_minun.aif => cries/minun.aif} (100%) rename sound/direct_sound_samples/{cry_misdreavus.aif => cries/misdreavus.aif} (100%) rename sound/direct_sound_samples/{cry_moltres.aif => cries/moltres.aif} (100%) rename sound/direct_sound_samples/{cry_mr_mime.aif => cries/mr_mime.aif} (100%) rename sound/direct_sound_samples/{cry_mudkip.aif => cries/mudkip.aif} (100%) rename sound/direct_sound_samples/{cry_muk.aif => cries/muk.aif} (100%) rename sound/direct_sound_samples/{cry_murkrow.aif => cries/murkrow.aif} (100%) rename sound/direct_sound_samples/{cry_natu.aif => cries/natu.aif} (100%) rename sound/direct_sound_samples/{cry_nidoking.aif => cries/nidoking.aif} (100%) rename sound/direct_sound_samples/{cry_nidoqueen.aif => cries/nidoqueen.aif} (100%) rename sound/direct_sound_samples/{cry_nidoran_f.aif => cries/nidoran_f.aif} (100%) rename sound/direct_sound_samples/{cry_nidoran_m.aif => cries/nidoran_m.aif} (100%) rename sound/direct_sound_samples/{cry_nidorina.aif => cries/nidorina.aif} (100%) rename sound/direct_sound_samples/{cry_nidorino.aif => cries/nidorino.aif} (100%) rename sound/direct_sound_samples/{cry_nincada.aif => cries/nincada.aif} (100%) rename sound/direct_sound_samples/{cry_ninetales.aif => cries/ninetales.aif} (100%) rename sound/direct_sound_samples/{cry_ninjask.aif => cries/ninjask.aif} (100%) rename sound/direct_sound_samples/{cry_noctowl.aif => cries/noctowl.aif} (100%) rename sound/direct_sound_samples/{cry_nosepass.aif => cries/nosepass.aif} (100%) rename sound/direct_sound_samples/{cry_numel.aif => cries/numel.aif} (100%) rename sound/direct_sound_samples/{cry_nuzleaf.aif => cries/nuzleaf.aif} (100%) rename sound/direct_sound_samples/{cry_octillery.aif => cries/octillery.aif} (100%) rename sound/direct_sound_samples/{cry_oddish.aif => cries/oddish.aif} (100%) rename sound/direct_sound_samples/{cry_omanyte.aif => cries/omanyte.aif} (100%) rename sound/direct_sound_samples/{cry_omastar.aif => cries/omastar.aif} (100%) rename sound/direct_sound_samples/{cry_onix.aif => cries/onix.aif} (100%) rename sound/direct_sound_samples/{cry_paras.aif => cries/paras.aif} (100%) rename sound/direct_sound_samples/{cry_parasect.aif => cries/parasect.aif} (100%) rename sound/direct_sound_samples/{cry_pelipper.aif => cries/pelipper.aif} (100%) rename sound/direct_sound_samples/{cry_persian.aif => cries/persian.aif} (100%) rename sound/direct_sound_samples/{cry_phanpy.aif => cries/phanpy.aif} (100%) rename sound/direct_sound_samples/{cry_pichu.aif => cries/pichu.aif} (100%) rename sound/direct_sound_samples/{cry_pidgeot.aif => cries/pidgeot.aif} (100%) rename sound/direct_sound_samples/{cry_pidgeotto.aif => cries/pidgeotto.aif} (100%) rename sound/direct_sound_samples/{cry_pidgey.aif => cries/pidgey.aif} (100%) rename sound/direct_sound_samples/{cry_pikachu.aif => cries/pikachu.aif} (100%) rename sound/direct_sound_samples/{cry_piloswine.aif => cries/piloswine.aif} (100%) rename sound/direct_sound_samples/{cry_pineco.aif => cries/pineco.aif} (100%) rename sound/direct_sound_samples/{cry_pinsir.aif => cries/pinsir.aif} (100%) rename sound/direct_sound_samples/{cry_plusle.aif => cries/plusle.aif} (100%) rename sound/direct_sound_samples/{cry_politoed.aif => cries/politoed.aif} (100%) rename sound/direct_sound_samples/{cry_poliwag.aif => cries/poliwag.aif} (100%) rename sound/direct_sound_samples/{cry_poliwhirl.aif => cries/poliwhirl.aif} (100%) rename sound/direct_sound_samples/{cry_poliwrath.aif => cries/poliwrath.aif} (100%) rename sound/direct_sound_samples/{cry_ponyta.aif => cries/ponyta.aif} (100%) rename sound/direct_sound_samples/{cry_poochyena.aif => cries/poochyena.aif} (100%) rename sound/direct_sound_samples/{cry_porygon.aif => cries/porygon.aif} (100%) rename sound/direct_sound_samples/{cry_porygon2.aif => cries/porygon2.aif} (100%) rename sound/direct_sound_samples/{cry_primeape.aif => cries/primeape.aif} (100%) rename sound/direct_sound_samples/{cry_psyduck.aif => cries/psyduck.aif} (100%) rename sound/direct_sound_samples/{cry_pupitar.aif => cries/pupitar.aif} (100%) rename sound/direct_sound_samples/{cry_quagsire.aif => cries/quagsire.aif} (100%) rename sound/direct_sound_samples/{cry_quilava.aif => cries/quilava.aif} (100%) rename sound/direct_sound_samples/{cry_qwilfish.aif => cries/qwilfish.aif} (100%) rename sound/direct_sound_samples/{cry_raichu.aif => cries/raichu.aif} (100%) rename sound/direct_sound_samples/{cry_raikou.aif => cries/raikou.aif} (100%) rename sound/direct_sound_samples/{cry_ralts.aif => cries/ralts.aif} (100%) rename sound/direct_sound_samples/{cry_rapidash.aif => cries/rapidash.aif} (100%) rename sound/direct_sound_samples/{cry_raticate.aif => cries/raticate.aif} (100%) rename sound/direct_sound_samples/{cry_rattata.aif => cries/rattata.aif} (100%) rename sound/direct_sound_samples/{cry_rayquaza.aif => cries/rayquaza.aif} (100%) rename sound/direct_sound_samples/{cry_regice.aif => cries/regice.aif} (100%) rename sound/direct_sound_samples/{cry_regirock.aif => cries/regirock.aif} (100%) rename sound/direct_sound_samples/{cry_registeel.aif => cries/registeel.aif} (100%) rename sound/direct_sound_samples/{cry_relicanth.aif => cries/relicanth.aif} (100%) rename sound/direct_sound_samples/{cry_remoraid.aif => cries/remoraid.aif} (100%) rename sound/direct_sound_samples/{cry_rhydon.aif => cries/rhydon.aif} (100%) rename sound/direct_sound_samples/{cry_rhyhorn.aif => cries/rhyhorn.aif} (100%) rename sound/direct_sound_samples/{cry_roselia.aif => cries/roselia.aif} (100%) rename sound/direct_sound_samples/{cry_sableye.aif => cries/sableye.aif} (100%) rename sound/direct_sound_samples/{cry_salamence.aif => cries/salamence.aif} (100%) rename sound/direct_sound_samples/{cry_sandshrew.aif => cries/sandshrew.aif} (100%) rename sound/direct_sound_samples/{cry_sandslash.aif => cries/sandslash.aif} (100%) rename sound/direct_sound_samples/{cry_sceptile.aif => cries/sceptile.aif} (100%) rename sound/direct_sound_samples/{cry_scizor.aif => cries/scizor.aif} (100%) rename sound/direct_sound_samples/{cry_scyther.aif => cries/scyther.aif} (100%) rename sound/direct_sound_samples/{cry_seadra.aif => cries/seadra.aif} (100%) rename sound/direct_sound_samples/{cry_seaking.aif => cries/seaking.aif} (100%) rename sound/direct_sound_samples/{cry_sealeo.aif => cries/sealeo.aif} (100%) rename sound/direct_sound_samples/{cry_seedot.aif => cries/seedot.aif} (100%) rename sound/direct_sound_samples/{cry_seel.aif => cries/seel.aif} (100%) rename sound/direct_sound_samples/{cry_sentret.aif => cries/sentret.aif} (100%) rename sound/direct_sound_samples/{cry_seviper.aif => cries/seviper.aif} (100%) rename sound/direct_sound_samples/{cry_sharpedo.aif => cries/sharpedo.aif} (100%) rename sound/direct_sound_samples/{cry_shedinja.aif => cries/shedinja.aif} (100%) rename sound/direct_sound_samples/{cry_shelgon.aif => cries/shelgon.aif} (100%) rename sound/direct_sound_samples/{cry_shellder.aif => cries/shellder.aif} (100%) rename sound/direct_sound_samples/{cry_shiftry.aif => cries/shiftry.aif} (100%) rename sound/direct_sound_samples/{cry_shroomish.aif => cries/shroomish.aif} (100%) rename sound/direct_sound_samples/{cry_shuckle.aif => cries/shuckle.aif} (100%) rename sound/direct_sound_samples/{cry_shuppet.aif => cries/shuppet.aif} (100%) rename sound/direct_sound_samples/{cry_silcoon.aif => cries/silcoon.aif} (100%) rename sound/direct_sound_samples/{cry_skarmory.aif => cries/skarmory.aif} (100%) rename sound/direct_sound_samples/{cry_skiploom.aif => cries/skiploom.aif} (100%) rename sound/direct_sound_samples/{cry_skitty.aif => cries/skitty.aif} (100%) rename sound/direct_sound_samples/{cry_slaking.aif => cries/slaking.aif} (100%) rename sound/direct_sound_samples/{cry_slakoth.aif => cries/slakoth.aif} (100%) rename sound/direct_sound_samples/{cry_slowbro.aif => cries/slowbro.aif} (100%) rename sound/direct_sound_samples/{cry_slowking.aif => cries/slowking.aif} (100%) rename sound/direct_sound_samples/{cry_slowpoke.aif => cries/slowpoke.aif} (100%) rename sound/direct_sound_samples/{cry_slugma.aif => cries/slugma.aif} (100%) rename sound/direct_sound_samples/{cry_smeargle.aif => cries/smeargle.aif} (100%) rename sound/direct_sound_samples/{cry_smoochum.aif => cries/smoochum.aif} (100%) rename sound/direct_sound_samples/{cry_sneasel.aif => cries/sneasel.aif} (100%) rename sound/direct_sound_samples/{cry_snorlax.aif => cries/snorlax.aif} (100%) rename sound/direct_sound_samples/{cry_snorunt.aif => cries/snorunt.aif} (100%) rename sound/direct_sound_samples/{cry_snubbull.aif => cries/snubbull.aif} (100%) rename sound/direct_sound_samples/{cry_solrock.aif => cries/solrock.aif} (100%) rename sound/direct_sound_samples/{cry_spearow.aif => cries/spearow.aif} (100%) rename sound/direct_sound_samples/{cry_spheal.aif => cries/spheal.aif} (100%) rename sound/direct_sound_samples/{cry_spinarak.aif => cries/spinarak.aif} (100%) rename sound/direct_sound_samples/{cry_spinda.aif => cries/spinda.aif} (100%) rename sound/direct_sound_samples/{cry_spoink.aif => cries/spoink.aif} (100%) rename sound/direct_sound_samples/{cry_squirtle.aif => cries/squirtle.aif} (100%) rename sound/direct_sound_samples/{cry_stantler.aif => cries/stantler.aif} (100%) rename sound/direct_sound_samples/{cry_starmie.aif => cries/starmie.aif} (100%) rename sound/direct_sound_samples/{cry_staryu.aif => cries/staryu.aif} (100%) rename sound/direct_sound_samples/{cry_steelix.aif => cries/steelix.aif} (100%) rename sound/direct_sound_samples/{cry_sudowoodo.aif => cries/sudowoodo.aif} (100%) rename sound/direct_sound_samples/{cry_suicune.aif => cries/suicune.aif} (100%) rename sound/direct_sound_samples/{cry_sunflora.aif => cries/sunflora.aif} (100%) rename sound/direct_sound_samples/{cry_sunkern.aif => cries/sunkern.aif} (100%) rename sound/direct_sound_samples/{cry_surskit.aif => cries/surskit.aif} (100%) rename sound/direct_sound_samples/{cry_swablu.aif => cries/swablu.aif} (100%) rename sound/direct_sound_samples/{cry_swalot.aif => cries/swalot.aif} (100%) rename sound/direct_sound_samples/{cry_swampert.aif => cries/swampert.aif} (100%) rename sound/direct_sound_samples/{cry_swellow.aif => cries/swellow.aif} (100%) rename sound/direct_sound_samples/{cry_swinub.aif => cries/swinub.aif} (100%) rename sound/direct_sound_samples/{cry_taillow.aif => cries/taillow.aif} (100%) rename sound/direct_sound_samples/{cry_tangela.aif => cries/tangela.aif} (100%) rename sound/direct_sound_samples/{cry_tauros.aif => cries/tauros.aif} (100%) rename sound/direct_sound_samples/{cry_teddiursa.aif => cries/teddiursa.aif} (100%) rename sound/direct_sound_samples/{cry_tentacool.aif => cries/tentacool.aif} (100%) rename sound/direct_sound_samples/{cry_tentacruel.aif => cries/tentacruel.aif} (100%) rename sound/direct_sound_samples/{cry_togepi.aif => cries/togepi.aif} (100%) rename sound/direct_sound_samples/{cry_togetic.aif => cries/togetic.aif} (100%) rename sound/direct_sound_samples/{cry_torchic.aif => cries/torchic.aif} (100%) rename sound/direct_sound_samples/{cry_torkoal.aif => cries/torkoal.aif} (100%) rename sound/direct_sound_samples/{cry_totodile.aif => cries/totodile.aif} (100%) rename sound/direct_sound_samples/{cry_trapinch.aif => cries/trapinch.aif} (100%) rename sound/direct_sound_samples/{cry_treecko.aif => cries/treecko.aif} (100%) rename sound/direct_sound_samples/{cry_tropius.aif => cries/tropius.aif} (100%) rename sound/direct_sound_samples/{cry_typhlosion.aif => cries/typhlosion.aif} (100%) rename sound/direct_sound_samples/{cry_tyranitar.aif => cries/tyranitar.aif} (100%) rename sound/direct_sound_samples/{cry_tyrogue.aif => cries/tyrogue.aif} (100%) rename sound/direct_sound_samples/{cry_umbreon.aif => cries/umbreon.aif} (100%) rename sound/direct_sound_samples/{cry_unown.aif => cries/unown.aif} (100%) rename sound/direct_sound_samples/{cry_unused_265.aif => cries/unused_265.aif} (100%) rename sound/direct_sound_samples/{cry_unused_268.aif => cries/unused_268.aif} (100%) rename sound/direct_sound_samples/{cry_ursaring.aif => cries/ursaring.aif} (100%) rename sound/direct_sound_samples/{cry_vaporeon.aif => cries/vaporeon.aif} (100%) rename sound/direct_sound_samples/{cry_venomoth.aif => cries/venomoth.aif} (100%) rename sound/direct_sound_samples/{cry_venonat.aif => cries/venonat.aif} (100%) rename sound/direct_sound_samples/{cry_venusaur.aif => cries/venusaur.aif} (100%) rename sound/direct_sound_samples/{cry_vibrava.aif => cries/vibrava.aif} (100%) rename sound/direct_sound_samples/{cry_victreebel.aif => cries/victreebel.aif} (100%) rename sound/direct_sound_samples/{cry_vigoroth.aif => cries/vigoroth.aif} (100%) rename sound/direct_sound_samples/{cry_vileplume.aif => cries/vileplume.aif} (100%) rename sound/direct_sound_samples/{cry_volbeat.aif => cries/volbeat.aif} (100%) rename sound/direct_sound_samples/{cry_voltorb.aif => cries/voltorb.aif} (100%) rename sound/direct_sound_samples/{cry_vulpix.aif => cries/vulpix.aif} (100%) rename sound/direct_sound_samples/{cry_wailmer.aif => cries/wailmer.aif} (100%) rename sound/direct_sound_samples/{cry_wailord.aif => cries/wailord.aif} (100%) rename sound/direct_sound_samples/{cry_walrein.aif => cries/walrein.aif} (100%) rename sound/direct_sound_samples/{cry_wartortle.aif => cries/wartortle.aif} (100%) rename sound/direct_sound_samples/{cry_weedle.aif => cries/weedle.aif} (100%) rename sound/direct_sound_samples/{cry_weepinbell.aif => cries/weepinbell.aif} (100%) rename sound/direct_sound_samples/{cry_weezing.aif => cries/weezing.aif} (100%) rename sound/direct_sound_samples/{cry_whiscash.aif => cries/whiscash.aif} (100%) rename sound/direct_sound_samples/{cry_whismur.aif => cries/whismur.aif} (100%) rename sound/direct_sound_samples/{cry_wigglytuff.aif => cries/wigglytuff.aif} (100%) rename sound/direct_sound_samples/{cry_wingull.aif => cries/wingull.aif} (100%) rename sound/direct_sound_samples/{cry_wobbuffet.aif => cries/wobbuffet.aif} (100%) rename sound/direct_sound_samples/{cry_wooper.aif => cries/wooper.aif} (100%) rename sound/direct_sound_samples/{cry_wurmple.aif => cries/wurmple.aif} (100%) rename sound/direct_sound_samples/{cry_wynaut.aif => cries/wynaut.aif} (100%) rename sound/direct_sound_samples/{cry_xatu.aif => cries/xatu.aif} (100%) rename sound/direct_sound_samples/{cry_yanma.aif => cries/yanma.aif} (100%) rename sound/direct_sound_samples/{cry_zangoose.aif => cries/zangoose.aif} (100%) rename sound/direct_sound_samples/{cry_zapdos.aif => cries/zapdos.aif} (100%) rename sound/direct_sound_samples/{cry_zigzagoon.aif => cries/zigzagoon.aif} (100%) rename sound/direct_sound_samples/{cry_zubat.aif => cries/zubat.aif} (100%) delete mode 100644 sound/direct_sound_samples/cry_none.aif diff --git a/Makefile b/Makefile index ec560f765..adb08dfb7 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,8 @@ ASM_SUBDIR = asm DATA_ASM_SUBDIR = data SONG_SUBDIR = sound/songs MID_SUBDIR = sound/songs/midi +SAMPLE_SUBDIR = sound/direct_sound_samples +CRY_SUBDIR = sound/direct_sound_samples/cries C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) @@ -193,7 +195,8 @@ compare: @$(MAKE) COMPARE=1 mostlyclean: tidy - $(RM) sound/direct_sound_samples/*.bin + rm -f $(SAMPLE_SUBDIR)/*.bin + rm -f $(CRY_SUBDIR)/*.bin $(RM) $(SONG_OBJS) $(MID_SUBDIR)/*.s find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + $(RM) $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc @@ -229,7 +232,7 @@ include songs.mk %.gbapal: %.png ; $(GFX) $< $@ %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ -sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(AIF) $< $@ --compress +$(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress sound/%.bin: sound/%.aif ; $(AIF) $< $@ sound/songs/%.s: sound/songs/%.mid $(MID) $< $@ diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc new file mode 100644 index 000000000..22e743363 --- /dev/null +++ b/sound/cry_tables.inc @@ -0,0 +1,781 @@ + .align 2 +gCryTable:: + cry Cry_Bulbasaur + cry Cry_Ivysaur + cry Cry_Venusaur + cry Cry_Charmander + cry Cry_Charmeleon + cry Cry_Charizard + cry Cry_Squirtle + cry Cry_Wartortle + cry Cry_Blastoise + cry Cry_Caterpie + cry Cry_Metapod + cry Cry_Butterfree + cry Cry_Weedle + cry Cry_Kakuna + cry Cry_Beedrill + cry Cry_Pidgey + cry Cry_Pidgeotto + cry Cry_Pidgeot + cry Cry_Rattata + cry Cry_Raticate + cry Cry_Spearow + cry Cry_Fearow + cry Cry_Ekans + cry Cry_Arbok + cry Cry_Pikachu + cry Cry_Raichu + cry Cry_Sandshrew + cry Cry_Sandslash + cry Cry_NidoranF + cry Cry_Nidorina + cry Cry_Nidoqueen + cry Cry_NidoranM + cry Cry_Nidorino + cry Cry_Nidoking + cry Cry_Clefairy + cry Cry_Clefable + cry Cry_Vulpix + cry Cry_Ninetales + cry Cry_Jigglypuff + cry Cry_Wigglytuff + cry Cry_Zubat + cry Cry_Golbat + cry Cry_Oddish + cry Cry_Gloom + cry Cry_Vileplume + cry Cry_Paras + cry Cry_Parasect + cry Cry_Venonat + cry Cry_Venomoth + cry Cry_Diglett + cry Cry_Dugtrio + cry Cry_Meowth + cry Cry_Persian + cry Cry_Psyduck + cry Cry_Golduck + cry Cry_Mankey + cry Cry_Primeape + cry Cry_Growlithe + cry Cry_Arcanine + cry Cry_Poliwag + cry Cry_Poliwhirl + cry Cry_Poliwrath + cry Cry_Abra + cry Cry_Kadabra + cry Cry_Alakazam + cry Cry_Machop + cry Cry_Machoke + cry Cry_Machamp + cry Cry_Bellsprout + cry Cry_Weepinbell + cry Cry_Victreebel + cry Cry_Tentacool + cry Cry_Tentacruel + cry Cry_Geodude + cry Cry_Graveler + cry Cry_Golem + cry Cry_Ponyta + cry Cry_Rapidash + cry Cry_Slowpoke + cry Cry_Slowbro + cry Cry_Magnemite + cry Cry_Magneton + cry Cry_Farfetchd + cry Cry_Doduo + cry Cry_Dodrio + cry Cry_Seel + cry Cry_Dewgong + cry Cry_Grimer + cry Cry_Muk + cry Cry_Shellder + cry Cry_Cloyster + cry Cry_Gastly + cry Cry_Haunter + cry Cry_Gengar + cry Cry_Onix + cry Cry_Drowzee + cry Cry_Hypno + cry Cry_Krabby + cry Cry_Kingler + cry Cry_Voltorb + cry Cry_Electrode + cry Cry_Exeggcute + cry Cry_Exeggutor + cry Cry_Cubone + cry Cry_Marowak + cry Cry_Hitmonlee + cry Cry_Hitmonchan + cry Cry_Lickitung + cry Cry_Koffing + cry Cry_Weezing + cry Cry_Rhyhorn + cry Cry_Rhydon + cry Cry_Chansey + cry Cry_Tangela + cry Cry_Kangaskhan + cry Cry_Horsea + cry Cry_Seadra + cry Cry_Goldeen + cry Cry_Seaking + cry Cry_Staryu + cry Cry_Starmie + cry Cry_MrMime + cry Cry_Scyther + cry Cry_Jynx + cry Cry_Electabuzz + cry Cry_Magmar + cry Cry_Pinsir + cry Cry_Tauros + cry Cry_Magikarp + cry Cry_Gyarados + cry Cry_Lapras + cry Cry_Ditto + cry Cry_Eevee + cry Cry_Vaporeon + cry Cry_Jolteon + cry Cry_Flareon + cry Cry_Porygon + cry Cry_Omanyte + cry Cry_Omastar + cry Cry_Kabuto + cry Cry_Kabutops + cry Cry_Aerodactyl + cry Cry_Snorlax + cry Cry_Articuno + cry Cry_Zapdos + cry Cry_Moltres + cry Cry_Dratini + cry Cry_Dragonair + cry Cry_Dragonite + cry Cry_Mewtwo + cry Cry_Mew + cry Cry_Chikorita + cry Cry_Bayleef + cry Cry_Meganium + cry Cry_Cyndaquil + cry Cry_Quilava + cry Cry_Typhlosion + cry Cry_Totodile + cry Cry_Croconaw + cry Cry_Feraligatr + cry Cry_Sentret + cry Cry_Furret + cry Cry_Hoothoot + cry Cry_Noctowl + cry Cry_Ledyba + cry Cry_Ledian + cry Cry_Spinarak + cry Cry_Ariados + cry Cry_Crobat + cry Cry_Chinchou + cry Cry_Lanturn + cry Cry_Pichu + cry Cry_Cleffa + cry Cry_Igglybuff + cry Cry_Togepi + cry Cry_Togetic + cry Cry_Natu + cry Cry_Xatu + cry Cry_Mareep + cry Cry_Flaaffy + cry Cry_Ampharos + cry Cry_Bellossom + cry Cry_Marill + cry Cry_Azumarill + cry Cry_Sudowoodo + cry Cry_Politoed + cry Cry_Hoppip + cry Cry_Skiploom + cry Cry_Jumpluff + cry Cry_Aipom + cry Cry_Sunkern + cry Cry_Sunflora + cry Cry_Yanma + cry Cry_Wooper + cry Cry_Quagsire + cry Cry_Espeon + cry Cry_Umbreon + cry Cry_Murkrow + cry Cry_Slowking + cry Cry_Misdreavus + cry Cry_Unown + cry Cry_Wobbuffet + cry Cry_Girafarig + cry Cry_Pineco + cry Cry_Forretress + cry Cry_Dunsparce + cry Cry_Gligar + cry Cry_Steelix + cry Cry_Snubbull + cry Cry_Granbull + cry Cry_Qwilfish + cry Cry_Scizor + cry Cry_Shuckle + cry Cry_Heracross + cry Cry_Sneasel + cry Cry_Teddiursa + cry Cry_Ursaring + cry Cry_Slugma + cry Cry_Magcargo + cry Cry_Swinub + cry Cry_Piloswine + cry Cry_Corsola + cry Cry_Remoraid + cry Cry_Octillery + cry Cry_Delibird + cry Cry_Mantine + cry Cry_Skarmory + cry Cry_Houndour + cry Cry_Houndoom + cry Cry_Kingdra + cry Cry_Phanpy + cry Cry_Donphan + cry Cry_Porygon2 + cry Cry_Stantler + cry Cry_Smeargle + cry Cry_Tyrogue + cry Cry_Hitmontop + cry Cry_Smoochum + cry Cry_Elekid + cry Cry_Magby + cry Cry_Miltank + cry Cry_Blissey + cry Cry_Raikou + cry Cry_Entei + cry Cry_Suicune + cry Cry_Larvitar + cry Cry_Pupitar + cry Cry_Tyranitar + cry Cry_Lugia + cry Cry_HoOh + cry Cry_Celebi + cry Cry_Kecleon + cry Cry_Roselia + cry Cry_Torkoal + cry Cry_Electrike + cry Cry_Manectric + cry Cry_Duskull + cry Cry_Latias + cry Cry_Wynaut + cry Cry_Seviper + cry Cry_Sharpedo + cry Cry_Zangoose + cry Cry_Azurill + cry Cry_Swablu + cry Cry_Altaria + cry Cry_Unused265 + cry Cry_Taillow + cry Cry_Swellow + cry Cry_Unused268 + cry Cry_Spinda + cry Cry_Torchic + cry Cry_Combusken + cry Cry_Blaziken + cry Cry_Treecko + cry Cry_Grovyle + cry Cry_Sceptile + cry Cry_Mudkip + cry Cry_Marshtomp + cry Cry_Swampert + cry Cry_Pelipper + cry Cry_Wingull + cry Cry_Banette + cry Cry_Shuppet + cry Cry_Lotad + cry Cry_Lombre + cry Cry_Ludicolo + cry Cry_Seedot + cry Cry_Nuzleaf + cry Cry_Shiftry + cry Cry_Carvanha + cry Cry_Wurmple + cry Cry_Silcoon + cry Cry_Beautifly + cry Cry_Cascoon + cry Cry_Dustox + cry Cry_Ralts + cry Cry_Kirlia + cry Cry_Gardevoir + cry Cry_Slakoth + cry Cry_Vigoroth + cry Cry_Slaking + cry Cry_Nincada + cry Cry_Ninjask + cry Cry_Shedinja + cry Cry_Makuhita + cry Cry_Hariyama + cry Cry_Nosepass + cry Cry_Glalie + cry Cry_Plusle + cry Cry_Minun + cry Cry_Surskit + cry Cry_Masquerain + cry Cry_Skitty + cry Cry_Delcatty + cry Cry_Gulpin + cry Cry_Swalot + cry Cry_Numel + cry Cry_Camerupt + cry Cry_Barboach + cry Cry_Whiscash + cry Cry_Corphish + cry Cry_Crawdaunt + cry Cry_Spoink + cry Cry_Grumpig + cry Cry_Trapinch + cry Cry_Vibrava + cry Cry_Flygon + cry Cry_Cacnea + cry Cry_Cacturne + cry Cry_Baltoy + cry Cry_Claydol + cry Cry_Lunatone + cry Cry_Solrock + cry Cry_Feebas + cry Cry_Milotic + cry Cry_Absol + cry Cry_Meditite + cry Cry_Medicham + cry Cry_Spheal + cry Cry_Sealeo + cry Cry_Walrein + cry Cry_Clamperl + cry Cry_Huntail + cry Cry_Gorebyss + cry Cry_Lileep + cry Cry_Cradily + cry Cry_Anorith + cry Cry_Armaldo + cry Cry_Beldum + cry Cry_Metang + cry Cry_Metagross + cry Cry_Bagon + cry Cry_Shelgon + cry Cry_Regirock + cry Cry_Regice + cry Cry_Registeel + cry Cry_Castform + cry Cry_Volbeat + cry Cry_Illumise + cry Cry_Poochyena + cry Cry_Mightyena + cry Cry_Dusclops + cry Cry_Sableye + cry Cry_Mawile + cry Cry_Aron + cry Cry_Lairon + cry Cry_Aggron + cry Cry_Relicanth + cry Cry_Luvdisc + cry Cry_Groudon + cry Cry_Kyogre + cry Cry_Rayquaza + cry Cry_Salamence + cry Cry_Breloom + cry Cry_Shroomish + cry Cry_Linoone + cry Cry_Tropius + cry Cry_Wailmer + cry Cry_Zigzagoon + cry Cry_Exploud + cry Cry_Loudred + cry Cry_Wailord + cry Cry_Whismur + cry Cry_Snorunt + cry Cry_Latios + cry Cry_Jirachi + cry Cry_Deoxys + cry Cry_Chimecho + + .align 2 +gCryTable_Reverse:: + cry_reverse Cry_Bulbasaur + cry_reverse Cry_Ivysaur + cry_reverse Cry_Venusaur + cry_reverse Cry_Charmander + cry_reverse Cry_Charmeleon + cry_reverse Cry_Charizard + cry_reverse Cry_Squirtle + cry_reverse Cry_Wartortle + cry_reverse Cry_Blastoise + cry_reverse Cry_Caterpie + cry_reverse Cry_Metapod + cry_reverse Cry_Butterfree + cry_reverse Cry_Weedle + cry_reverse Cry_Kakuna + cry_reverse Cry_Beedrill + cry_reverse Cry_Pidgey + cry_reverse Cry_Pidgeotto + cry_reverse Cry_Pidgeot + cry_reverse Cry_Rattata + cry_reverse Cry_Raticate + cry_reverse Cry_Spearow + cry_reverse Cry_Fearow + cry_reverse Cry_Ekans + cry_reverse Cry_Arbok + cry_reverse Cry_Pikachu + cry_reverse Cry_Raichu + cry_reverse Cry_Sandshrew + cry_reverse Cry_Sandslash + cry_reverse Cry_NidoranF + cry_reverse Cry_Nidorina + cry_reverse Cry_Nidoqueen + cry_reverse Cry_NidoranM + cry_reverse Cry_Nidorino + cry_reverse Cry_Nidoking + cry_reverse Cry_Clefairy + cry_reverse Cry_Clefable + cry_reverse Cry_Vulpix + cry_reverse Cry_Ninetales + cry_reverse Cry_Jigglypuff + cry_reverse Cry_Wigglytuff + cry_reverse Cry_Zubat + cry_reverse Cry_Golbat + cry_reverse Cry_Oddish + cry_reverse Cry_Gloom + cry_reverse Cry_Vileplume + cry_reverse Cry_Paras + cry_reverse Cry_Parasect + cry_reverse Cry_Venonat + cry_reverse Cry_Venomoth + cry_reverse Cry_Diglett + cry_reverse Cry_Dugtrio + cry_reverse Cry_Meowth + cry_reverse Cry_Persian + cry_reverse Cry_Psyduck + cry_reverse Cry_Golduck + cry_reverse Cry_Mankey + cry_reverse Cry_Primeape + cry_reverse Cry_Growlithe + cry_reverse Cry_Arcanine + cry_reverse Cry_Poliwag + cry_reverse Cry_Poliwhirl + cry_reverse Cry_Poliwrath + cry_reverse Cry_Abra + cry_reverse Cry_Kadabra + cry_reverse Cry_Alakazam + cry_reverse Cry_Machop + cry_reverse Cry_Machoke + cry_reverse Cry_Machamp + cry_reverse Cry_Bellsprout + cry_reverse Cry_Weepinbell + cry_reverse Cry_Victreebel + cry_reverse Cry_Tentacool + cry_reverse Cry_Tentacruel + cry_reverse Cry_Geodude + cry_reverse Cry_Graveler + cry_reverse Cry_Golem + cry_reverse Cry_Ponyta + cry_reverse Cry_Rapidash + cry_reverse Cry_Slowpoke + cry_reverse Cry_Slowbro + cry_reverse Cry_Magnemite + cry_reverse Cry_Magneton + cry_reverse Cry_Farfetchd + cry_reverse Cry_Doduo + cry_reverse Cry_Dodrio + cry_reverse Cry_Seel + cry_reverse Cry_Dewgong + cry_reverse Cry_Grimer + cry_reverse Cry_Muk + cry_reverse Cry_Shellder + cry_reverse Cry_Cloyster + cry_reverse Cry_Gastly + cry_reverse Cry_Haunter + cry_reverse Cry_Gengar + cry_reverse Cry_Onix + cry_reverse Cry_Drowzee + cry_reverse Cry_Hypno + cry_reverse Cry_Krabby + cry_reverse Cry_Kingler + cry_reverse Cry_Voltorb + cry_reverse Cry_Electrode + cry_reverse Cry_Exeggcute + cry_reverse Cry_Exeggutor + cry_reverse Cry_Cubone + cry_reverse Cry_Marowak + cry_reverse Cry_Hitmonlee + cry_reverse Cry_Hitmonchan + cry_reverse Cry_Lickitung + cry_reverse Cry_Koffing + cry_reverse Cry_Weezing + cry_reverse Cry_Rhyhorn + cry_reverse Cry_Rhydon + cry_reverse Cry_Chansey + cry_reverse Cry_Tangela + cry_reverse Cry_Kangaskhan + cry_reverse Cry_Horsea + cry_reverse Cry_Seadra + cry_reverse Cry_Goldeen + cry_reverse Cry_Seaking + cry_reverse Cry_Staryu + cry_reverse Cry_Starmie + cry_reverse Cry_MrMime + cry_reverse Cry_Scyther + cry_reverse Cry_Jynx + cry_reverse Cry_Electabuzz + cry_reverse Cry_Magmar + cry_reverse Cry_Pinsir + cry_reverse Cry_Tauros + cry_reverse Cry_Magikarp + cry_reverse Cry_Gyarados + cry_reverse Cry_Lapras + cry_reverse Cry_Ditto + cry_reverse Cry_Eevee + cry_reverse Cry_Vaporeon + cry_reverse Cry_Jolteon + cry_reverse Cry_Flareon + cry_reverse Cry_Porygon + cry_reverse Cry_Omanyte + cry_reverse Cry_Omastar + cry_reverse Cry_Kabuto + cry_reverse Cry_Kabutops + cry_reverse Cry_Aerodactyl + cry_reverse Cry_Snorlax + cry_reverse Cry_Articuno + cry_reverse Cry_Zapdos + cry_reverse Cry_Moltres + cry_reverse Cry_Dratini + cry_reverse Cry_Dragonair + cry_reverse Cry_Dragonite + cry_reverse Cry_Mewtwo + cry_reverse Cry_Mew + cry_reverse Cry_Chikorita + cry_reverse Cry_Bayleef + cry_reverse Cry_Meganium + cry_reverse Cry_Cyndaquil + cry_reverse Cry_Quilava + cry_reverse Cry_Typhlosion + cry_reverse Cry_Totodile + cry_reverse Cry_Croconaw + cry_reverse Cry_Feraligatr + cry_reverse Cry_Sentret + cry_reverse Cry_Furret + cry_reverse Cry_Hoothoot + cry_reverse Cry_Noctowl + cry_reverse Cry_Ledyba + cry_reverse Cry_Ledian + cry_reverse Cry_Spinarak + cry_reverse Cry_Ariados + cry_reverse Cry_Crobat + cry_reverse Cry_Chinchou + cry_reverse Cry_Lanturn + cry_reverse Cry_Pichu + cry_reverse Cry_Cleffa + cry_reverse Cry_Igglybuff + cry_reverse Cry_Togepi + cry_reverse Cry_Togetic + cry_reverse Cry_Natu + cry_reverse Cry_Xatu + cry_reverse Cry_Mareep + cry_reverse Cry_Flaaffy + cry_reverse Cry_Ampharos + cry_reverse Cry_Bellossom + cry_reverse Cry_Marill + cry_reverse Cry_Azumarill + cry_reverse Cry_Sudowoodo + cry_reverse Cry_Politoed + cry_reverse Cry_Hoppip + cry_reverse Cry_Skiploom + cry_reverse Cry_Jumpluff + cry_reverse Cry_Aipom + cry_reverse Cry_Sunkern + cry_reverse Cry_Sunflora + cry_reverse Cry_Yanma + cry_reverse Cry_Wooper + cry_reverse Cry_Quagsire + cry_reverse Cry_Espeon + cry_reverse Cry_Umbreon + cry_reverse Cry_Murkrow + cry_reverse Cry_Slowking + cry_reverse Cry_Misdreavus + cry_reverse Cry_Unown + cry_reverse Cry_Wobbuffet + cry_reverse Cry_Girafarig + cry_reverse Cry_Pineco + cry_reverse Cry_Forretress + cry_reverse Cry_Dunsparce + cry_reverse Cry_Gligar + cry_reverse Cry_Steelix + cry_reverse Cry_Snubbull + cry_reverse Cry_Granbull + cry_reverse Cry_Qwilfish + cry_reverse Cry_Scizor + cry_reverse Cry_Shuckle + cry_reverse Cry_Heracross + cry_reverse Cry_Sneasel + cry_reverse Cry_Teddiursa + cry_reverse Cry_Ursaring + cry_reverse Cry_Slugma + cry_reverse Cry_Magcargo + cry_reverse Cry_Swinub + cry_reverse Cry_Piloswine + cry_reverse Cry_Corsola + cry_reverse Cry_Remoraid + cry_reverse Cry_Octillery + cry_reverse Cry_Delibird + cry_reverse Cry_Mantine + cry_reverse Cry_Skarmory + cry_reverse Cry_Houndour + cry_reverse Cry_Houndoom + cry_reverse Cry_Kingdra + cry_reverse Cry_Phanpy + cry_reverse Cry_Donphan + cry_reverse Cry_Porygon2 + cry_reverse Cry_Stantler + cry_reverse Cry_Smeargle + cry_reverse Cry_Tyrogue + cry_reverse Cry_Hitmontop + cry_reverse Cry_Smoochum + cry_reverse Cry_Elekid + cry_reverse Cry_Magby + cry_reverse Cry_Miltank + cry_reverse Cry_Blissey + cry_reverse Cry_Raikou + cry_reverse Cry_Entei + cry_reverse Cry_Suicune + cry_reverse Cry_Larvitar + cry_reverse Cry_Pupitar + cry_reverse Cry_Tyranitar + cry_reverse Cry_Lugia + cry_reverse Cry_HoOh + cry_reverse Cry_Celebi + cry_reverse Cry_Kecleon + cry_reverse Cry_Roselia + cry_reverse Cry_Torkoal + cry_reverse Cry_Electrike + cry_reverse Cry_Manectric + cry_reverse Cry_Duskull + cry_reverse Cry_Latias + cry_reverse Cry_Wynaut + cry_reverse Cry_Seviper + cry_reverse Cry_Sharpedo + cry_reverse Cry_Zangoose + cry_reverse Cry_Azurill + cry_reverse Cry_Swablu + cry_reverse Cry_Altaria + cry_reverse Cry_Unused265 + cry_reverse Cry_Taillow + cry_reverse Cry_Swellow + cry_reverse Cry_Unused268 + cry_reverse Cry_Spinda + cry_reverse Cry_Torchic + cry_reverse Cry_Combusken + cry_reverse Cry_Blaziken + cry_reverse Cry_Treecko + cry_reverse Cry_Grovyle + cry_reverse Cry_Sceptile + cry_reverse Cry_Mudkip + cry_reverse Cry_Marshtomp + cry_reverse Cry_Swampert + cry_reverse Cry_Pelipper + cry_reverse Cry_Wingull + cry_reverse Cry_Banette + cry_reverse Cry_Shuppet + cry_reverse Cry_Lotad + cry_reverse Cry_Lombre + cry_reverse Cry_Ludicolo + cry_reverse Cry_Seedot + cry_reverse Cry_Nuzleaf + cry_reverse Cry_Shiftry + cry_reverse Cry_Carvanha + cry_reverse Cry_Wurmple + cry_reverse Cry_Silcoon + cry_reverse Cry_Beautifly + cry_reverse Cry_Cascoon + cry_reverse Cry_Dustox + cry_reverse Cry_Ralts + cry_reverse Cry_Kirlia + cry_reverse Cry_Gardevoir + cry_reverse Cry_Slakoth + cry_reverse Cry_Vigoroth + cry_reverse Cry_Slaking + cry_reverse Cry_Nincada + cry_reverse Cry_Ninjask + cry_reverse Cry_Shedinja + cry_reverse Cry_Makuhita + cry_reverse Cry_Hariyama + cry_reverse Cry_Nosepass + cry_reverse Cry_Glalie + cry_reverse Cry_Plusle + cry_reverse Cry_Minun + cry_reverse Cry_Surskit + cry_reverse Cry_Masquerain + cry_reverse Cry_Skitty + cry_reverse Cry_Delcatty + cry_reverse Cry_Gulpin + cry_reverse Cry_Swalot + cry_reverse Cry_Numel + cry_reverse Cry_Camerupt + cry_reverse Cry_Barboach + cry_reverse Cry_Whiscash + cry_reverse Cry_Corphish + cry_reverse Cry_Crawdaunt + cry_reverse Cry_Spoink + cry_reverse Cry_Grumpig + cry_reverse Cry_Trapinch + cry_reverse Cry_Vibrava + cry_reverse Cry_Flygon + cry_reverse Cry_Cacnea + cry_reverse Cry_Cacturne + cry_reverse Cry_Baltoy + cry_reverse Cry_Claydol + cry_reverse Cry_Lunatone + cry_reverse Cry_Solrock + cry_reverse Cry_Feebas + cry_reverse Cry_Milotic + cry_reverse Cry_Absol + cry_reverse Cry_Meditite + cry_reverse Cry_Medicham + cry_reverse Cry_Spheal + cry_reverse Cry_Sealeo + cry_reverse Cry_Walrein + cry_reverse Cry_Clamperl + cry_reverse Cry_Huntail + cry_reverse Cry_Gorebyss + cry_reverse Cry_Lileep + cry_reverse Cry_Cradily + cry_reverse Cry_Anorith + cry_reverse Cry_Armaldo + cry_reverse Cry_Beldum + cry_reverse Cry_Metang + cry_reverse Cry_Metagross + cry_reverse Cry_Bagon + cry_reverse Cry_Shelgon + cry_reverse Cry_Regirock + cry_reverse Cry_Regice + cry_reverse Cry_Registeel + cry_reverse Cry_Castform + cry_reverse Cry_Volbeat + cry_reverse Cry_Illumise + cry_reverse Cry_Poochyena + cry_reverse Cry_Mightyena + cry_reverse Cry_Dusclops + cry_reverse Cry_Sableye + cry_reverse Cry_Mawile + cry_reverse Cry_Aron + cry_reverse Cry_Lairon + cry_reverse Cry_Aggron + cry_reverse Cry_Relicanth + cry_reverse Cry_Luvdisc + cry_reverse Cry_Groudon + cry_reverse Cry_Kyogre + cry_reverse Cry_Rayquaza + cry_reverse Cry_Salamence + cry_reverse Cry_Breloom + cry_reverse Cry_Shroomish + cry_reverse Cry_Linoone + cry_reverse Cry_Tropius + cry_reverse Cry_Wailmer + cry_reverse Cry_Zigzagoon + cry_reverse Cry_Exploud + cry_reverse Cry_Loudred + cry_reverse Cry_Wailord + cry_reverse Cry_Whismur + cry_reverse Cry_Snorunt + cry_reverse Cry_Latios + cry_reverse Cry_Jirachi + cry_reverse Cry_Deoxys + cry_reverse Cry_Chimecho diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index a0ca80964..98191db21 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -305,1555 +305,1555 @@ DirectSoundWaveData_unused_sc55_tom:: .align 2 Cry_Bulbasaur:: - .incbin "sound/direct_sound_samples/cry_bulbasaur.bin" + .incbin "sound/direct_sound_samples/cries/bulbasaur.bin" .align 2 Cry_Ivysaur:: - .incbin "sound/direct_sound_samples/cry_ivysaur.bin" + .incbin "sound/direct_sound_samples/cries/ivysaur.bin" .align 2 Cry_Venusaur:: - .incbin "sound/direct_sound_samples/cry_venusaur.bin" + .incbin "sound/direct_sound_samples/cries/venusaur.bin" .align 2 Cry_Charmander:: - .incbin "sound/direct_sound_samples/cry_charmander.bin" + .incbin "sound/direct_sound_samples/cries/charmander.bin" .align 2 Cry_Charmeleon:: - .incbin "sound/direct_sound_samples/cry_charmeleon.bin" + .incbin "sound/direct_sound_samples/cries/charmeleon.bin" .align 2 Cry_Charizard:: - .incbin "sound/direct_sound_samples/cry_charizard.bin" + .incbin "sound/direct_sound_samples/cries/charizard.bin" .align 2 Cry_Squirtle:: - .incbin "sound/direct_sound_samples/cry_squirtle.bin" + .incbin "sound/direct_sound_samples/cries/squirtle.bin" .align 2 Cry_Wartortle:: - .incbin "sound/direct_sound_samples/cry_wartortle.bin" + .incbin "sound/direct_sound_samples/cries/wartortle.bin" .align 2 Cry_Blastoise:: - .incbin "sound/direct_sound_samples/cry_blastoise.bin" + .incbin "sound/direct_sound_samples/cries/blastoise.bin" .align 2 Cry_Caterpie:: - .incbin "sound/direct_sound_samples/cry_caterpie.bin" + .incbin "sound/direct_sound_samples/cries/caterpie.bin" .align 2 Cry_Metapod:: - .incbin "sound/direct_sound_samples/cry_metapod.bin" + .incbin "sound/direct_sound_samples/cries/metapod.bin" .align 2 Cry_Butterfree:: - .incbin "sound/direct_sound_samples/cry_butterfree.bin" + .incbin "sound/direct_sound_samples/cries/butterfree.bin" .align 2 Cry_Weedle:: - .incbin "sound/direct_sound_samples/cry_weedle.bin" + .incbin "sound/direct_sound_samples/cries/weedle.bin" .align 2 Cry_Kakuna:: - .incbin "sound/direct_sound_samples/cry_kakuna.bin" + .incbin "sound/direct_sound_samples/cries/kakuna.bin" .align 2 Cry_Beedrill:: - .incbin "sound/direct_sound_samples/cry_beedrill.bin" + .incbin "sound/direct_sound_samples/cries/beedrill.bin" .align 2 Cry_Pidgey:: - .incbin "sound/direct_sound_samples/cry_pidgey.bin" + .incbin "sound/direct_sound_samples/cries/pidgey.bin" .align 2 Cry_Pidgeotto:: - .incbin "sound/direct_sound_samples/cry_pidgeotto.bin" + .incbin "sound/direct_sound_samples/cries/pidgeotto.bin" .align 2 Cry_Pidgeot:: - .incbin "sound/direct_sound_samples/cry_pidgeot.bin" + .incbin "sound/direct_sound_samples/cries/pidgeot.bin" .align 2 Cry_Rattata:: - .incbin "sound/direct_sound_samples/cry_rattata.bin" + .incbin "sound/direct_sound_samples/cries/rattata.bin" .align 2 Cry_Raticate:: - .incbin "sound/direct_sound_samples/cry_raticate.bin" + .incbin "sound/direct_sound_samples/cries/raticate.bin" .align 2 Cry_Spearow:: - .incbin "sound/direct_sound_samples/cry_spearow.bin" + .incbin "sound/direct_sound_samples/cries/spearow.bin" .align 2 Cry_Fearow:: - .incbin "sound/direct_sound_samples/cry_fearow.bin" + .incbin "sound/direct_sound_samples/cries/fearow.bin" .align 2 Cry_Ekans:: - .incbin "sound/direct_sound_samples/cry_ekans.bin" + .incbin "sound/direct_sound_samples/cries/ekans.bin" .align 2 Cry_Arbok:: - .incbin "sound/direct_sound_samples/cry_arbok.bin" + .incbin "sound/direct_sound_samples/cries/arbok.bin" .align 2 Cry_Pikachu:: - .incbin "sound/direct_sound_samples/cry_pikachu.bin" + .incbin "sound/direct_sound_samples/cries/pikachu.bin" .align 2 Cry_Raichu:: - .incbin "sound/direct_sound_samples/cry_raichu.bin" + .incbin "sound/direct_sound_samples/cries/raichu.bin" .align 2 Cry_Sandshrew:: - .incbin "sound/direct_sound_samples/cry_sandshrew.bin" + .incbin "sound/direct_sound_samples/cries/sandshrew.bin" .align 2 Cry_Sandslash:: - .incbin "sound/direct_sound_samples/cry_sandslash.bin" + .incbin "sound/direct_sound_samples/cries/sandslash.bin" .align 2 Cry_NidoranF:: - .incbin "sound/direct_sound_samples/cry_nidoran_f.bin" + .incbin "sound/direct_sound_samples/cries/nidoran_f.bin" .align 2 Cry_Nidorina:: - .incbin "sound/direct_sound_samples/cry_nidorina.bin" + .incbin "sound/direct_sound_samples/cries/nidorina.bin" .align 2 Cry_Nidoqueen:: - .incbin "sound/direct_sound_samples/cry_nidoqueen.bin" + .incbin "sound/direct_sound_samples/cries/nidoqueen.bin" .align 2 Cry_NidoranM:: - .incbin "sound/direct_sound_samples/cry_nidoran_m.bin" + .incbin "sound/direct_sound_samples/cries/nidoran_m.bin" .align 2 Cry_Nidorino:: - .incbin "sound/direct_sound_samples/cry_nidorino.bin" + .incbin "sound/direct_sound_samples/cries/nidorino.bin" .align 2 Cry_Nidoking:: - .incbin "sound/direct_sound_samples/cry_nidoking.bin" + .incbin "sound/direct_sound_samples/cries/nidoking.bin" .align 2 Cry_Clefairy:: - .incbin "sound/direct_sound_samples/cry_clefairy.bin" + .incbin "sound/direct_sound_samples/cries/clefairy.bin" .align 2 Cry_Clefable:: - .incbin "sound/direct_sound_samples/cry_clefable.bin" + .incbin "sound/direct_sound_samples/cries/clefable.bin" .align 2 Cry_Vulpix:: - .incbin "sound/direct_sound_samples/cry_vulpix.bin" + .incbin "sound/direct_sound_samples/cries/vulpix.bin" .align 2 Cry_Ninetales:: - .incbin "sound/direct_sound_samples/cry_ninetales.bin" + .incbin "sound/direct_sound_samples/cries/ninetales.bin" .align 2 Cry_Jigglypuff:: - .incbin "sound/direct_sound_samples/cry_jigglypuff.bin" + .incbin "sound/direct_sound_samples/cries/jigglypuff.bin" .align 2 Cry_Wigglytuff:: - .incbin "sound/direct_sound_samples/cry_wigglytuff.bin" + .incbin "sound/direct_sound_samples/cries/wigglytuff.bin" .align 2 Cry_Zubat:: - .incbin "sound/direct_sound_samples/cry_zubat.bin" + .incbin "sound/direct_sound_samples/cries/zubat.bin" .align 2 Cry_Golbat:: - .incbin "sound/direct_sound_samples/cry_golbat.bin" + .incbin "sound/direct_sound_samples/cries/golbat.bin" .align 2 Cry_Oddish:: - .incbin "sound/direct_sound_samples/cry_oddish.bin" + .incbin "sound/direct_sound_samples/cries/oddish.bin" .align 2 Cry_Gloom:: - .incbin "sound/direct_sound_samples/cry_gloom.bin" + .incbin "sound/direct_sound_samples/cries/gloom.bin" .align 2 Cry_Vileplume:: - .incbin "sound/direct_sound_samples/cry_vileplume.bin" + .incbin "sound/direct_sound_samples/cries/vileplume.bin" .align 2 Cry_Paras:: - .incbin "sound/direct_sound_samples/cry_paras.bin" + .incbin "sound/direct_sound_samples/cries/paras.bin" .align 2 Cry_Parasect:: - .incbin "sound/direct_sound_samples/cry_parasect.bin" + .incbin "sound/direct_sound_samples/cries/parasect.bin" .align 2 Cry_Venonat:: - .incbin "sound/direct_sound_samples/cry_venonat.bin" + .incbin "sound/direct_sound_samples/cries/venonat.bin" .align 2 Cry_Venomoth:: - .incbin "sound/direct_sound_samples/cry_venomoth.bin" + .incbin "sound/direct_sound_samples/cries/venomoth.bin" .align 2 Cry_Diglett:: - .incbin "sound/direct_sound_samples/cry_diglett.bin" + .incbin "sound/direct_sound_samples/cries/diglett.bin" .align 2 Cry_Dugtrio:: - .incbin "sound/direct_sound_samples/cry_dugtrio.bin" + .incbin "sound/direct_sound_samples/cries/dugtrio.bin" .align 2 Cry_Meowth:: - .incbin "sound/direct_sound_samples/cry_meowth.bin" + .incbin "sound/direct_sound_samples/cries/meowth.bin" .align 2 Cry_Persian:: - .incbin "sound/direct_sound_samples/cry_persian.bin" + .incbin "sound/direct_sound_samples/cries/persian.bin" .align 2 Cry_Psyduck:: - .incbin "sound/direct_sound_samples/cry_psyduck.bin" + .incbin "sound/direct_sound_samples/cries/psyduck.bin" .align 2 Cry_Golduck:: - .incbin "sound/direct_sound_samples/cry_golduck.bin" + .incbin "sound/direct_sound_samples/cries/golduck.bin" .align 2 Cry_Mankey:: - .incbin "sound/direct_sound_samples/cry_mankey.bin" + .incbin "sound/direct_sound_samples/cries/mankey.bin" .align 2 Cry_Primeape:: - .incbin "sound/direct_sound_samples/cry_primeape.bin" + .incbin "sound/direct_sound_samples/cries/primeape.bin" .align 2 Cry_Growlithe:: - .incbin "sound/direct_sound_samples/cry_growlithe.bin" + .incbin "sound/direct_sound_samples/cries/growlithe.bin" .align 2 Cry_Arcanine:: - .incbin "sound/direct_sound_samples/cry_arcanine.bin" + .incbin "sound/direct_sound_samples/cries/arcanine.bin" .align 2 Cry_Poliwag:: - .incbin "sound/direct_sound_samples/cry_poliwag.bin" + .incbin "sound/direct_sound_samples/cries/poliwag.bin" .align 2 Cry_Poliwhirl:: - .incbin "sound/direct_sound_samples/cry_poliwhirl.bin" + .incbin "sound/direct_sound_samples/cries/poliwhirl.bin" .align 2 Cry_Poliwrath:: - .incbin "sound/direct_sound_samples/cry_poliwrath.bin" + .incbin "sound/direct_sound_samples/cries/poliwrath.bin" .align 2 Cry_Abra:: - .incbin "sound/direct_sound_samples/cry_abra.bin" + .incbin "sound/direct_sound_samples/cries/abra.bin" .align 2 Cry_Kadabra:: - .incbin "sound/direct_sound_samples/cry_kadabra.bin" + .incbin "sound/direct_sound_samples/cries/kadabra.bin" .align 2 Cry_Alakazam:: - .incbin "sound/direct_sound_samples/cry_alakazam.bin" + .incbin "sound/direct_sound_samples/cries/alakazam.bin" .align 2 Cry_Machop:: - .incbin "sound/direct_sound_samples/cry_machop.bin" + .incbin "sound/direct_sound_samples/cries/machop.bin" .align 2 Cry_Machoke:: - .incbin "sound/direct_sound_samples/cry_machoke.bin" + .incbin "sound/direct_sound_samples/cries/machoke.bin" .align 2 Cry_Machamp:: - .incbin "sound/direct_sound_samples/cry_machamp.bin" + .incbin "sound/direct_sound_samples/cries/machamp.bin" .align 2 Cry_Bellsprout:: - .incbin "sound/direct_sound_samples/cry_bellsprout.bin" + .incbin "sound/direct_sound_samples/cries/bellsprout.bin" .align 2 Cry_Weepinbell:: - .incbin "sound/direct_sound_samples/cry_weepinbell.bin" + .incbin "sound/direct_sound_samples/cries/weepinbell.bin" .align 2 Cry_Victreebel:: - .incbin "sound/direct_sound_samples/cry_victreebel.bin" + .incbin "sound/direct_sound_samples/cries/victreebel.bin" .align 2 Cry_Tentacool:: - .incbin "sound/direct_sound_samples/cry_tentacool.bin" + .incbin "sound/direct_sound_samples/cries/tentacool.bin" .align 2 Cry_Tentacruel:: - .incbin "sound/direct_sound_samples/cry_tentacruel.bin" + .incbin "sound/direct_sound_samples/cries/tentacruel.bin" .align 2 Cry_Geodude:: - .incbin "sound/direct_sound_samples/cry_geodude.bin" + .incbin "sound/direct_sound_samples/cries/geodude.bin" .align 2 Cry_Graveler:: - .incbin "sound/direct_sound_samples/cry_graveler.bin" + .incbin "sound/direct_sound_samples/cries/graveler.bin" .align 2 Cry_Golem:: - .incbin "sound/direct_sound_samples/cry_golem.bin" + .incbin "sound/direct_sound_samples/cries/golem.bin" .align 2 Cry_Ponyta:: - .incbin "sound/direct_sound_samples/cry_ponyta.bin" + .incbin "sound/direct_sound_samples/cries/ponyta.bin" .align 2 Cry_Rapidash:: - .incbin "sound/direct_sound_samples/cry_rapidash.bin" + .incbin "sound/direct_sound_samples/cries/rapidash.bin" .align 2 Cry_Slowpoke:: - .incbin "sound/direct_sound_samples/cry_slowpoke.bin" + .incbin "sound/direct_sound_samples/cries/slowpoke.bin" .align 2 Cry_Slowbro:: - .incbin "sound/direct_sound_samples/cry_slowbro.bin" + .incbin "sound/direct_sound_samples/cries/slowbro.bin" .align 2 Cry_Magnemite:: - .incbin "sound/direct_sound_samples/cry_magnemite.bin" + .incbin "sound/direct_sound_samples/cries/magnemite.bin" .align 2 Cry_Magneton:: - .incbin "sound/direct_sound_samples/cry_magneton.bin" + .incbin "sound/direct_sound_samples/cries/magneton.bin" .align 2 Cry_Farfetchd:: - .incbin "sound/direct_sound_samples/cry_farfetchd.bin" + .incbin "sound/direct_sound_samples/cries/farfetchd.bin" .align 2 Cry_Doduo:: - .incbin "sound/direct_sound_samples/cry_doduo.bin" + .incbin "sound/direct_sound_samples/cries/doduo.bin" .align 2 Cry_Dodrio:: - .incbin "sound/direct_sound_samples/cry_dodrio.bin" + .incbin "sound/direct_sound_samples/cries/dodrio.bin" .align 2 Cry_Seel:: - .incbin "sound/direct_sound_samples/cry_seel.bin" + .incbin "sound/direct_sound_samples/cries/seel.bin" .align 2 Cry_Dewgong:: - .incbin "sound/direct_sound_samples/cry_dewgong.bin" + .incbin "sound/direct_sound_samples/cries/dewgong.bin" .align 2 Cry_Grimer:: - .incbin "sound/direct_sound_samples/cry_grimer.bin" + .incbin "sound/direct_sound_samples/cries/grimer.bin" .align 2 Cry_Muk:: - .incbin "sound/direct_sound_samples/cry_muk.bin" + .incbin "sound/direct_sound_samples/cries/muk.bin" .align 2 Cry_Shellder:: - .incbin "sound/direct_sound_samples/cry_shellder.bin" + .incbin "sound/direct_sound_samples/cries/shellder.bin" .align 2 Cry_Cloyster:: - .incbin "sound/direct_sound_samples/cry_cloyster.bin" + .incbin "sound/direct_sound_samples/cries/cloyster.bin" .align 2 Cry_Gastly:: - .incbin "sound/direct_sound_samples/cry_gastly.bin" + .incbin "sound/direct_sound_samples/cries/gastly.bin" .align 2 Cry_Haunter:: - .incbin "sound/direct_sound_samples/cry_haunter.bin" + .incbin "sound/direct_sound_samples/cries/haunter.bin" .align 2 Cry_Gengar:: - .incbin "sound/direct_sound_samples/cry_gengar.bin" + .incbin "sound/direct_sound_samples/cries/gengar.bin" .align 2 Cry_Onix:: - .incbin "sound/direct_sound_samples/cry_onix.bin" + .incbin "sound/direct_sound_samples/cries/onix.bin" .align 2 Cry_Drowzee:: - .incbin "sound/direct_sound_samples/cry_drowzee.bin" + .incbin "sound/direct_sound_samples/cries/drowzee.bin" .align 2 Cry_Hypno:: - .incbin "sound/direct_sound_samples/cry_hypno.bin" + .incbin "sound/direct_sound_samples/cries/hypno.bin" .align 2 Cry_Krabby:: - .incbin "sound/direct_sound_samples/cry_krabby.bin" + .incbin "sound/direct_sound_samples/cries/krabby.bin" .align 2 Cry_Kingler:: - .incbin "sound/direct_sound_samples/cry_kingler.bin" + .incbin "sound/direct_sound_samples/cries/kingler.bin" .align 2 Cry_Voltorb:: - .incbin "sound/direct_sound_samples/cry_voltorb.bin" + .incbin "sound/direct_sound_samples/cries/voltorb.bin" .align 2 Cry_Electrode:: - .incbin "sound/direct_sound_samples/cry_electrode.bin" + .incbin "sound/direct_sound_samples/cries/electrode.bin" .align 2 Cry_Exeggcute:: - .incbin "sound/direct_sound_samples/cry_exeggcute.bin" + .incbin "sound/direct_sound_samples/cries/exeggcute.bin" .align 2 Cry_Exeggutor:: - .incbin "sound/direct_sound_samples/cry_exeggutor.bin" + .incbin "sound/direct_sound_samples/cries/exeggutor.bin" .align 2 Cry_Cubone:: - .incbin "sound/direct_sound_samples/cry_cubone.bin" + .incbin "sound/direct_sound_samples/cries/cubone.bin" .align 2 Cry_Marowak:: - .incbin "sound/direct_sound_samples/cry_marowak.bin" + .incbin "sound/direct_sound_samples/cries/marowak.bin" .align 2 Cry_Hitmonlee:: - .incbin "sound/direct_sound_samples/cry_hitmonlee.bin" + .incbin "sound/direct_sound_samples/cries/hitmonlee.bin" .align 2 Cry_Hitmonchan:: - .incbin "sound/direct_sound_samples/cry_hitmonchan.bin" + .incbin "sound/direct_sound_samples/cries/hitmonchan.bin" .align 2 Cry_Lickitung:: - .incbin "sound/direct_sound_samples/cry_lickitung.bin" + .incbin "sound/direct_sound_samples/cries/lickitung.bin" .align 2 Cry_Koffing:: - .incbin "sound/direct_sound_samples/cry_koffing.bin" + .incbin "sound/direct_sound_samples/cries/koffing.bin" .align 2 Cry_Weezing:: - .incbin "sound/direct_sound_samples/cry_weezing.bin" + .incbin "sound/direct_sound_samples/cries/weezing.bin" .align 2 Cry_Rhyhorn:: - .incbin "sound/direct_sound_samples/cry_rhyhorn.bin" + .incbin "sound/direct_sound_samples/cries/rhyhorn.bin" .align 2 Cry_Rhydon:: - .incbin "sound/direct_sound_samples/cry_rhydon.bin" + .incbin "sound/direct_sound_samples/cries/rhydon.bin" .align 2 Cry_Chansey:: - .incbin "sound/direct_sound_samples/cry_chansey.bin" + .incbin "sound/direct_sound_samples/cries/chansey.bin" .align 2 Cry_Tangela:: - .incbin "sound/direct_sound_samples/cry_tangela.bin" + .incbin "sound/direct_sound_samples/cries/tangela.bin" .align 2 Cry_Kangaskhan:: - .incbin "sound/direct_sound_samples/cry_kangaskhan.bin" + .incbin "sound/direct_sound_samples/cries/kangaskhan.bin" .align 2 Cry_Horsea:: - .incbin "sound/direct_sound_samples/cry_horsea.bin" + .incbin "sound/direct_sound_samples/cries/horsea.bin" .align 2 Cry_Seadra:: - .incbin "sound/direct_sound_samples/cry_seadra.bin" + .incbin "sound/direct_sound_samples/cries/seadra.bin" .align 2 Cry_Goldeen:: - .incbin "sound/direct_sound_samples/cry_goldeen.bin" + .incbin "sound/direct_sound_samples/cries/goldeen.bin" .align 2 Cry_Seaking:: - .incbin "sound/direct_sound_samples/cry_seaking.bin" + .incbin "sound/direct_sound_samples/cries/seaking.bin" .align 2 Cry_Staryu:: - .incbin "sound/direct_sound_samples/cry_staryu.bin" + .incbin "sound/direct_sound_samples/cries/staryu.bin" .align 2 Cry_Starmie:: - .incbin "sound/direct_sound_samples/cry_starmie.bin" + .incbin "sound/direct_sound_samples/cries/starmie.bin" .align 2 Cry_MrMime:: - .incbin "sound/direct_sound_samples/cry_mr_mime.bin" + .incbin "sound/direct_sound_samples/cries/mr_mime.bin" .align 2 Cry_Scyther:: - .incbin "sound/direct_sound_samples/cry_scyther.bin" + .incbin "sound/direct_sound_samples/cries/scyther.bin" .align 2 Cry_Jynx:: - .incbin "sound/direct_sound_samples/cry_jynx.bin" + .incbin "sound/direct_sound_samples/cries/jynx.bin" .align 2 Cry_Electabuzz:: - .incbin "sound/direct_sound_samples/cry_electabuzz.bin" + .incbin "sound/direct_sound_samples/cries/electabuzz.bin" .align 2 Cry_Magmar:: - .incbin "sound/direct_sound_samples/cry_magmar.bin" + .incbin "sound/direct_sound_samples/cries/magmar.bin" .align 2 Cry_Pinsir:: - .incbin "sound/direct_sound_samples/cry_pinsir.bin" + .incbin "sound/direct_sound_samples/cries/pinsir.bin" .align 2 Cry_Tauros:: - .incbin "sound/direct_sound_samples/cry_tauros.bin" + .incbin "sound/direct_sound_samples/cries/tauros.bin" .align 2 Cry_Magikarp:: - .incbin "sound/direct_sound_samples/cry_magikarp.bin" + .incbin "sound/direct_sound_samples/cries/magikarp.bin" .align 2 Cry_Gyarados:: - .incbin "sound/direct_sound_samples/cry_gyarados.bin" + .incbin "sound/direct_sound_samples/cries/gyarados.bin" .align 2 Cry_Lapras:: - .incbin "sound/direct_sound_samples/cry_lapras.bin" + .incbin "sound/direct_sound_samples/cries/lapras.bin" .align 2 Cry_Ditto:: - .incbin "sound/direct_sound_samples/cry_ditto.bin" + .incbin "sound/direct_sound_samples/cries/ditto.bin" .align 2 Cry_Eevee:: - .incbin "sound/direct_sound_samples/cry_eevee.bin" + .incbin "sound/direct_sound_samples/cries/eevee.bin" .align 2 Cry_Vaporeon:: - .incbin "sound/direct_sound_samples/cry_vaporeon.bin" + .incbin "sound/direct_sound_samples/cries/vaporeon.bin" .align 2 Cry_Jolteon:: - .incbin "sound/direct_sound_samples/cry_jolteon.bin" + .incbin "sound/direct_sound_samples/cries/jolteon.bin" .align 2 Cry_Flareon:: - .incbin "sound/direct_sound_samples/cry_flareon.bin" + .incbin "sound/direct_sound_samples/cries/flareon.bin" .align 2 Cry_Porygon:: - .incbin "sound/direct_sound_samples/cry_porygon.bin" + .incbin "sound/direct_sound_samples/cries/porygon.bin" .align 2 Cry_Omanyte:: - .incbin "sound/direct_sound_samples/cry_omanyte.bin" + .incbin "sound/direct_sound_samples/cries/omanyte.bin" .align 2 Cry_Omastar:: - .incbin "sound/direct_sound_samples/cry_omastar.bin" + .incbin "sound/direct_sound_samples/cries/omastar.bin" .align 2 Cry_Kabuto:: - .incbin "sound/direct_sound_samples/cry_kabuto.bin" + .incbin "sound/direct_sound_samples/cries/kabuto.bin" .align 2 Cry_Kabutops:: - .incbin "sound/direct_sound_samples/cry_kabutops.bin" + .incbin "sound/direct_sound_samples/cries/kabutops.bin" .align 2 Cry_Aerodactyl:: - .incbin "sound/direct_sound_samples/cry_aerodactyl.bin" + .incbin "sound/direct_sound_samples/cries/aerodactyl.bin" .align 2 Cry_Snorlax:: - .incbin "sound/direct_sound_samples/cry_snorlax.bin" + .incbin "sound/direct_sound_samples/cries/snorlax.bin" .align 2 Cry_Articuno:: - .incbin "sound/direct_sound_samples/cry_articuno.bin" + .incbin "sound/direct_sound_samples/cries/articuno.bin" .align 2 Cry_Zapdos:: - .incbin "sound/direct_sound_samples/cry_zapdos.bin" + .incbin "sound/direct_sound_samples/cries/zapdos.bin" .align 2 Cry_Moltres:: - .incbin "sound/direct_sound_samples/cry_moltres.bin" + .incbin "sound/direct_sound_samples/cries/moltres.bin" .align 2 Cry_Dratini:: - .incbin "sound/direct_sound_samples/cry_dratini.bin" + .incbin "sound/direct_sound_samples/cries/dratini.bin" .align 2 Cry_Dragonair:: - .incbin "sound/direct_sound_samples/cry_dragonair.bin" + .incbin "sound/direct_sound_samples/cries/dragonair.bin" .align 2 Cry_Dragonite:: - .incbin "sound/direct_sound_samples/cry_dragonite.bin" + .incbin "sound/direct_sound_samples/cries/dragonite.bin" .align 2 Cry_Mewtwo:: - .incbin "sound/direct_sound_samples/cry_mewtwo.bin" + .incbin "sound/direct_sound_samples/cries/mewtwo.bin" .align 2 Cry_Mew:: - .incbin "sound/direct_sound_samples/cry_mew.bin" + .incbin "sound/direct_sound_samples/cries/mew.bin" .align 2 Cry_Chikorita:: - .incbin "sound/direct_sound_samples/cry_chikorita.bin" + .incbin "sound/direct_sound_samples/cries/chikorita.bin" .align 2 Cry_Bayleef:: - .incbin "sound/direct_sound_samples/cry_bayleef.bin" + .incbin "sound/direct_sound_samples/cries/bayleef.bin" .align 2 Cry_Meganium:: - .incbin "sound/direct_sound_samples/cry_meganium.bin" + .incbin "sound/direct_sound_samples/cries/meganium.bin" .align 2 Cry_Cyndaquil:: - .incbin "sound/direct_sound_samples/cry_cyndaquil.bin" + .incbin "sound/direct_sound_samples/cries/cyndaquil.bin" .align 2 Cry_Quilava:: - .incbin "sound/direct_sound_samples/cry_quilava.bin" + .incbin "sound/direct_sound_samples/cries/quilava.bin" .align 2 Cry_Typhlosion:: - .incbin "sound/direct_sound_samples/cry_typhlosion.bin" + .incbin "sound/direct_sound_samples/cries/typhlosion.bin" .align 2 Cry_Totodile:: - .incbin "sound/direct_sound_samples/cry_totodile.bin" + .incbin "sound/direct_sound_samples/cries/totodile.bin" .align 2 Cry_Croconaw:: - .incbin "sound/direct_sound_samples/cry_croconaw.bin" + .incbin "sound/direct_sound_samples/cries/croconaw.bin" .align 2 Cry_Feraligatr:: - .incbin "sound/direct_sound_samples/cry_feraligatr.bin" + .incbin "sound/direct_sound_samples/cries/feraligatr.bin" .align 2 Cry_Sentret:: - .incbin "sound/direct_sound_samples/cry_sentret.bin" + .incbin "sound/direct_sound_samples/cries/sentret.bin" .align 2 Cry_Furret:: - .incbin "sound/direct_sound_samples/cry_furret.bin" + .incbin "sound/direct_sound_samples/cries/furret.bin" .align 2 Cry_Hoothoot:: - .incbin "sound/direct_sound_samples/cry_hoothoot.bin" + .incbin "sound/direct_sound_samples/cries/hoothoot.bin" .align 2 Cry_Noctowl:: - .incbin "sound/direct_sound_samples/cry_noctowl.bin" + .incbin "sound/direct_sound_samples/cries/noctowl.bin" .align 2 Cry_Ledyba:: - .incbin "sound/direct_sound_samples/cry_ledyba.bin" + .incbin "sound/direct_sound_samples/cries/ledyba.bin" .align 2 Cry_Ledian:: - .incbin "sound/direct_sound_samples/cry_ledian.bin" + .incbin "sound/direct_sound_samples/cries/ledian.bin" .align 2 Cry_Spinarak:: - .incbin "sound/direct_sound_samples/cry_spinarak.bin" + .incbin "sound/direct_sound_samples/cries/spinarak.bin" .align 2 Cry_Ariados:: - .incbin "sound/direct_sound_samples/cry_ariados.bin" + .incbin "sound/direct_sound_samples/cries/ariados.bin" .align 2 Cry_Crobat:: - .incbin "sound/direct_sound_samples/cry_crobat.bin" + .incbin "sound/direct_sound_samples/cries/crobat.bin" .align 2 Cry_Chinchou:: - .incbin "sound/direct_sound_samples/cry_chinchou.bin" + .incbin "sound/direct_sound_samples/cries/chinchou.bin" .align 2 Cry_Lanturn:: - .incbin "sound/direct_sound_samples/cry_lanturn.bin" + .incbin "sound/direct_sound_samples/cries/lanturn.bin" .align 2 Cry_Pichu:: - .incbin "sound/direct_sound_samples/cry_pichu.bin" + .incbin "sound/direct_sound_samples/cries/pichu.bin" .align 2 Cry_Cleffa:: - .incbin "sound/direct_sound_samples/cry_cleffa.bin" + .incbin "sound/direct_sound_samples/cries/cleffa.bin" .align 2 Cry_Igglybuff:: - .incbin "sound/direct_sound_samples/cry_igglybuff.bin" + .incbin "sound/direct_sound_samples/cries/igglybuff.bin" .align 2 Cry_Togepi:: - .incbin "sound/direct_sound_samples/cry_togepi.bin" + .incbin "sound/direct_sound_samples/cries/togepi.bin" .align 2 Cry_Togetic:: - .incbin "sound/direct_sound_samples/cry_togetic.bin" + .incbin "sound/direct_sound_samples/cries/togetic.bin" .align 2 Cry_Natu:: - .incbin "sound/direct_sound_samples/cry_natu.bin" + .incbin "sound/direct_sound_samples/cries/natu.bin" .align 2 Cry_Xatu:: - .incbin "sound/direct_sound_samples/cry_xatu.bin" + .incbin "sound/direct_sound_samples/cries/xatu.bin" .align 2 Cry_Mareep:: - .incbin "sound/direct_sound_samples/cry_mareep.bin" + .incbin "sound/direct_sound_samples/cries/mareep.bin" .align 2 Cry_Flaaffy:: - .incbin "sound/direct_sound_samples/cry_flaaffy.bin" + .incbin "sound/direct_sound_samples/cries/flaaffy.bin" .align 2 Cry_Ampharos:: - .incbin "sound/direct_sound_samples/cry_ampharos.bin" + .incbin "sound/direct_sound_samples/cries/ampharos.bin" .align 2 Cry_Bellossom:: - .incbin "sound/direct_sound_samples/cry_bellossom.bin" + .incbin "sound/direct_sound_samples/cries/bellossom.bin" .align 2 Cry_Marill:: - .incbin "sound/direct_sound_samples/cry_marill.bin" + .incbin "sound/direct_sound_samples/cries/marill.bin" .align 2 Cry_Azumarill:: - .incbin "sound/direct_sound_samples/cry_azumarill.bin" + .incbin "sound/direct_sound_samples/cries/azumarill.bin" .align 2 Cry_Sudowoodo:: - .incbin "sound/direct_sound_samples/cry_sudowoodo.bin" + .incbin "sound/direct_sound_samples/cries/sudowoodo.bin" .align 2 Cry_Politoed:: - .incbin "sound/direct_sound_samples/cry_politoed.bin" + .incbin "sound/direct_sound_samples/cries/politoed.bin" .align 2 Cry_Hoppip:: - .incbin "sound/direct_sound_samples/cry_hoppip.bin" + .incbin "sound/direct_sound_samples/cries/hoppip.bin" .align 2 Cry_Skiploom:: - .incbin "sound/direct_sound_samples/cry_skiploom.bin" + .incbin "sound/direct_sound_samples/cries/skiploom.bin" .align 2 Cry_Jumpluff:: - .incbin "sound/direct_sound_samples/cry_jumpluff.bin" + .incbin "sound/direct_sound_samples/cries/jumpluff.bin" .align 2 Cry_Aipom:: - .incbin "sound/direct_sound_samples/cry_aipom.bin" + .incbin "sound/direct_sound_samples/cries/aipom.bin" .align 2 Cry_Sunkern:: - .incbin "sound/direct_sound_samples/cry_sunkern.bin" + .incbin "sound/direct_sound_samples/cries/sunkern.bin" .align 2 Cry_Sunflora:: - .incbin "sound/direct_sound_samples/cry_sunflora.bin" + .incbin "sound/direct_sound_samples/cries/sunflora.bin" .align 2 Cry_Yanma:: - .incbin "sound/direct_sound_samples/cry_yanma.bin" + .incbin "sound/direct_sound_samples/cries/yanma.bin" .align 2 Cry_Wooper:: - .incbin "sound/direct_sound_samples/cry_wooper.bin" + .incbin "sound/direct_sound_samples/cries/wooper.bin" .align 2 Cry_Quagsire:: - .incbin "sound/direct_sound_samples/cry_quagsire.bin" + .incbin "sound/direct_sound_samples/cries/quagsire.bin" .align 2 Cry_Espeon:: - .incbin "sound/direct_sound_samples/cry_espeon.bin" + .incbin "sound/direct_sound_samples/cries/espeon.bin" .align 2 Cry_Umbreon:: - .incbin "sound/direct_sound_samples/cry_umbreon.bin" + .incbin "sound/direct_sound_samples/cries/umbreon.bin" .align 2 Cry_Murkrow:: - .incbin "sound/direct_sound_samples/cry_murkrow.bin" + .incbin "sound/direct_sound_samples/cries/murkrow.bin" .align 2 Cry_Slowking:: - .incbin "sound/direct_sound_samples/cry_slowking.bin" + .incbin "sound/direct_sound_samples/cries/slowking.bin" .align 2 Cry_Misdreavus:: - .incbin "sound/direct_sound_samples/cry_misdreavus.bin" + .incbin "sound/direct_sound_samples/cries/misdreavus.bin" .align 2 Cry_Unown:: - .incbin "sound/direct_sound_samples/cry_unown.bin" + .incbin "sound/direct_sound_samples/cries/unown.bin" .align 2 Cry_Wobbuffet:: - .incbin "sound/direct_sound_samples/cry_wobbuffet.bin" + .incbin "sound/direct_sound_samples/cries/wobbuffet.bin" .align 2 Cry_Girafarig:: - .incbin "sound/direct_sound_samples/cry_girafarig.bin" + .incbin "sound/direct_sound_samples/cries/girafarig.bin" .align 2 Cry_Pineco:: - .incbin "sound/direct_sound_samples/cry_pineco.bin" + .incbin "sound/direct_sound_samples/cries/pineco.bin" .align 2 Cry_Forretress:: - .incbin "sound/direct_sound_samples/cry_forretress.bin" + .incbin "sound/direct_sound_samples/cries/forretress.bin" .align 2 Cry_Dunsparce:: - .incbin "sound/direct_sound_samples/cry_dunsparce.bin" + .incbin "sound/direct_sound_samples/cries/dunsparce.bin" .align 2 Cry_Gligar:: - .incbin "sound/direct_sound_samples/cry_gligar.bin" + .incbin "sound/direct_sound_samples/cries/gligar.bin" .align 2 Cry_Steelix:: - .incbin "sound/direct_sound_samples/cry_steelix.bin" + .incbin "sound/direct_sound_samples/cries/steelix.bin" .align 2 Cry_Snubbull:: - .incbin "sound/direct_sound_samples/cry_snubbull.bin" + .incbin "sound/direct_sound_samples/cries/snubbull.bin" .align 2 Cry_Granbull:: - .incbin "sound/direct_sound_samples/cry_granbull.bin" + .incbin "sound/direct_sound_samples/cries/granbull.bin" .align 2 Cry_Qwilfish:: - .incbin "sound/direct_sound_samples/cry_qwilfish.bin" + .incbin "sound/direct_sound_samples/cries/qwilfish.bin" .align 2 Cry_Scizor:: - .incbin "sound/direct_sound_samples/cry_scizor.bin" + .incbin "sound/direct_sound_samples/cries/scizor.bin" .align 2 Cry_Shuckle:: - .incbin "sound/direct_sound_samples/cry_shuckle.bin" + .incbin "sound/direct_sound_samples/cries/shuckle.bin" .align 2 Cry_Heracross:: - .incbin "sound/direct_sound_samples/cry_heracross.bin" + .incbin "sound/direct_sound_samples/cries/heracross.bin" .align 2 Cry_Sneasel:: - .incbin "sound/direct_sound_samples/cry_sneasel.bin" + .incbin "sound/direct_sound_samples/cries/sneasel.bin" .align 2 Cry_Teddiursa:: - .incbin "sound/direct_sound_samples/cry_teddiursa.bin" + .incbin "sound/direct_sound_samples/cries/teddiursa.bin" .align 2 Cry_Ursaring:: - .incbin "sound/direct_sound_samples/cry_ursaring.bin" + .incbin "sound/direct_sound_samples/cries/ursaring.bin" .align 2 Cry_Slugma:: - .incbin "sound/direct_sound_samples/cry_slugma.bin" + .incbin "sound/direct_sound_samples/cries/slugma.bin" .align 2 Cry_Magcargo:: - .incbin "sound/direct_sound_samples/cry_magcargo.bin" + .incbin "sound/direct_sound_samples/cries/magcargo.bin" .align 2 Cry_Swinub:: - .incbin "sound/direct_sound_samples/cry_swinub.bin" + .incbin "sound/direct_sound_samples/cries/swinub.bin" .align 2 Cry_Piloswine:: - .incbin "sound/direct_sound_samples/cry_piloswine.bin" + .incbin "sound/direct_sound_samples/cries/piloswine.bin" .align 2 Cry_Corsola:: - .incbin "sound/direct_sound_samples/cry_corsola.bin" + .incbin "sound/direct_sound_samples/cries/corsola.bin" .align 2 Cry_Remoraid:: - .incbin "sound/direct_sound_samples/cry_remoraid.bin" + .incbin "sound/direct_sound_samples/cries/remoraid.bin" .align 2 Cry_Octillery:: - .incbin "sound/direct_sound_samples/cry_octillery.bin" + .incbin "sound/direct_sound_samples/cries/octillery.bin" .align 2 Cry_Delibird:: - .incbin "sound/direct_sound_samples/cry_delibird.bin" + .incbin "sound/direct_sound_samples/cries/delibird.bin" .align 2 Cry_Mantine:: - .incbin "sound/direct_sound_samples/cry_mantine.bin" + .incbin "sound/direct_sound_samples/cries/mantine.bin" .align 2 Cry_Skarmory:: - .incbin "sound/direct_sound_samples/cry_skarmory.bin" + .incbin "sound/direct_sound_samples/cries/skarmory.bin" .align 2 Cry_Houndour:: - .incbin "sound/direct_sound_samples/cry_houndour.bin" + .incbin "sound/direct_sound_samples/cries/houndour.bin" .align 2 Cry_Houndoom:: - .incbin "sound/direct_sound_samples/cry_houndoom.bin" + .incbin "sound/direct_sound_samples/cries/houndoom.bin" .align 2 Cry_Kingdra:: - .incbin "sound/direct_sound_samples/cry_kingdra.bin" + .incbin "sound/direct_sound_samples/cries/kingdra.bin" .align 2 Cry_Phanpy:: - .incbin "sound/direct_sound_samples/cry_phanpy.bin" + .incbin "sound/direct_sound_samples/cries/phanpy.bin" .align 2 Cry_Donphan:: - .incbin "sound/direct_sound_samples/cry_donphan.bin" + .incbin "sound/direct_sound_samples/cries/donphan.bin" .align 2 Cry_Porygon2:: - .incbin "sound/direct_sound_samples/cry_porygon2.bin" + .incbin "sound/direct_sound_samples/cries/porygon2.bin" .align 2 Cry_Stantler:: - .incbin "sound/direct_sound_samples/cry_stantler.bin" + .incbin "sound/direct_sound_samples/cries/stantler.bin" .align 2 Cry_Smeargle:: - .incbin "sound/direct_sound_samples/cry_smeargle.bin" + .incbin "sound/direct_sound_samples/cries/smeargle.bin" .align 2 Cry_Tyrogue:: - .incbin "sound/direct_sound_samples/cry_tyrogue.bin" + .incbin "sound/direct_sound_samples/cries/tyrogue.bin" .align 2 Cry_Hitmontop:: - .incbin "sound/direct_sound_samples/cry_hitmontop.bin" + .incbin "sound/direct_sound_samples/cries/hitmontop.bin" .align 2 Cry_Smoochum:: - .incbin "sound/direct_sound_samples/cry_smoochum.bin" + .incbin "sound/direct_sound_samples/cries/smoochum.bin" .align 2 Cry_Elekid:: - .incbin "sound/direct_sound_samples/cry_elekid.bin" + .incbin "sound/direct_sound_samples/cries/elekid.bin" .align 2 Cry_Magby:: - .incbin "sound/direct_sound_samples/cry_magby.bin" + .incbin "sound/direct_sound_samples/cries/magby.bin" .align 2 Cry_Miltank:: - .incbin "sound/direct_sound_samples/cry_miltank.bin" + .incbin "sound/direct_sound_samples/cries/miltank.bin" .align 2 Cry_Blissey:: - .incbin "sound/direct_sound_samples/cry_blissey.bin" + .incbin "sound/direct_sound_samples/cries/blissey.bin" .align 2 Cry_Raikou:: - .incbin "sound/direct_sound_samples/cry_raikou.bin" + .incbin "sound/direct_sound_samples/cries/raikou.bin" .align 2 Cry_Entei:: - .incbin "sound/direct_sound_samples/cry_entei.bin" + .incbin "sound/direct_sound_samples/cries/entei.bin" .align 2 Cry_Suicune:: - .incbin "sound/direct_sound_samples/cry_suicune.bin" + .incbin "sound/direct_sound_samples/cries/suicune.bin" .align 2 Cry_Larvitar:: - .incbin "sound/direct_sound_samples/cry_larvitar.bin" + .incbin "sound/direct_sound_samples/cries/larvitar.bin" .align 2 Cry_Pupitar:: - .incbin "sound/direct_sound_samples/cry_pupitar.bin" + .incbin "sound/direct_sound_samples/cries/pupitar.bin" .align 2 Cry_Tyranitar:: - .incbin "sound/direct_sound_samples/cry_tyranitar.bin" + .incbin "sound/direct_sound_samples/cries/tyranitar.bin" .align 2 Cry_Lugia:: - .incbin "sound/direct_sound_samples/cry_lugia.bin" + .incbin "sound/direct_sound_samples/cries/lugia.bin" .align 2 Cry_HoOh:: - .incbin "sound/direct_sound_samples/cry_ho_oh.bin" + .incbin "sound/direct_sound_samples/cries/ho_oh.bin" .align 2 Cry_Celebi:: - .incbin "sound/direct_sound_samples/cry_celebi.bin" + .incbin "sound/direct_sound_samples/cries/celebi.bin" .align 2 Cry_Kecleon:: - .incbin "sound/direct_sound_samples/cry_kecleon.bin" + .incbin "sound/direct_sound_samples/cries/kecleon.bin" .align 2 Cry_Roselia:: - .incbin "sound/direct_sound_samples/cry_roselia.bin" + .incbin "sound/direct_sound_samples/cries/roselia.bin" .align 2 Cry_Torkoal:: - .incbin "sound/direct_sound_samples/cry_torkoal.bin" + .incbin "sound/direct_sound_samples/cries/torkoal.bin" .align 2 Cry_Electrike:: - .incbin "sound/direct_sound_samples/cry_electrike.bin" + .incbin "sound/direct_sound_samples/cries/electrike.bin" .align 2 Cry_Manectric:: - .incbin "sound/direct_sound_samples/cry_manectric.bin" + .incbin "sound/direct_sound_samples/cries/manectric.bin" .align 2 Cry_Duskull:: - .incbin "sound/direct_sound_samples/cry_duskull.bin" + .incbin "sound/direct_sound_samples/cries/duskull.bin" .align 2 Cry_Latias:: - .incbin "sound/direct_sound_samples/cry_latias.bin" + .incbin "sound/direct_sound_samples/cries/latias.bin" .align 2 Cry_Wynaut:: - .incbin "sound/direct_sound_samples/cry_wynaut.bin" + .incbin "sound/direct_sound_samples/cries/wynaut.bin" .align 2 Cry_Seviper:: - .incbin "sound/direct_sound_samples/cry_seviper.bin" + .incbin "sound/direct_sound_samples/cries/seviper.bin" .align 2 Cry_Sharpedo:: - .incbin "sound/direct_sound_samples/cry_sharpedo.bin" + .incbin "sound/direct_sound_samples/cries/sharpedo.bin" .align 2 Cry_Zangoose:: - .incbin "sound/direct_sound_samples/cry_zangoose.bin" + .incbin "sound/direct_sound_samples/cries/zangoose.bin" .align 2 Cry_Azurill:: - .incbin "sound/direct_sound_samples/cry_azurill.bin" + .incbin "sound/direct_sound_samples/cries/azurill.bin" .align 2 Cry_Swablu:: - .incbin "sound/direct_sound_samples/cry_swablu.bin" + .incbin "sound/direct_sound_samples/cries/swablu.bin" .align 2 Cry_Altaria:: - .incbin "sound/direct_sound_samples/cry_altaria.bin" + .incbin "sound/direct_sound_samples/cries/altaria.bin" .align 2 Cry_Unused265:: - .incbin "sound/direct_sound_samples/cry_unused_265.bin" + .incbin "sound/direct_sound_samples/cries/unused_265.bin" .align 2 Cry_Taillow:: - .incbin "sound/direct_sound_samples/cry_taillow.bin" + .incbin "sound/direct_sound_samples/cries/taillow.bin" .align 2 Cry_Swellow:: - .incbin "sound/direct_sound_samples/cry_swellow.bin" + .incbin "sound/direct_sound_samples/cries/swellow.bin" .align 2 Cry_Unused268:: - .incbin "sound/direct_sound_samples/cry_unused_268.bin" + .incbin "sound/direct_sound_samples/cries/unused_268.bin" .align 2 Cry_Spinda:: - .incbin "sound/direct_sound_samples/cry_spinda.bin" + .incbin "sound/direct_sound_samples/cries/spinda.bin" .align 2 Cry_Torchic:: - .incbin "sound/direct_sound_samples/cry_torchic.bin" + .incbin "sound/direct_sound_samples/cries/torchic.bin" .align 2 Cry_Combusken:: - .incbin "sound/direct_sound_samples/cry_combusken.bin" + .incbin "sound/direct_sound_samples/cries/combusken.bin" .align 2 Cry_Blaziken:: - .incbin "sound/direct_sound_samples/cry_blaziken.bin" + .incbin "sound/direct_sound_samples/cries/blaziken.bin" .align 2 Cry_Treecko:: - .incbin "sound/direct_sound_samples/cry_treecko.bin" + .incbin "sound/direct_sound_samples/cries/treecko.bin" .align 2 Cry_Grovyle:: - .incbin "sound/direct_sound_samples/cry_grovyle.bin" + .incbin "sound/direct_sound_samples/cries/grovyle.bin" .align 2 Cry_Sceptile:: - .incbin "sound/direct_sound_samples/cry_sceptile.bin" + .incbin "sound/direct_sound_samples/cries/sceptile.bin" .align 2 Cry_Mudkip:: - .incbin "sound/direct_sound_samples/cry_mudkip.bin" + .incbin "sound/direct_sound_samples/cries/mudkip.bin" .align 2 Cry_Marshtomp:: - .incbin "sound/direct_sound_samples/cry_marshtomp.bin" + .incbin "sound/direct_sound_samples/cries/marshtomp.bin" .align 2 Cry_Swampert:: - .incbin "sound/direct_sound_samples/cry_swampert.bin" + .incbin "sound/direct_sound_samples/cries/swampert.bin" .align 2 Cry_Pelipper:: - .incbin "sound/direct_sound_samples/cry_pelipper.bin" + .incbin "sound/direct_sound_samples/cries/pelipper.bin" .align 2 Cry_Wingull:: - .incbin "sound/direct_sound_samples/cry_wingull.bin" + .incbin "sound/direct_sound_samples/cries/wingull.bin" .align 2 Cry_Banette:: - .incbin "sound/direct_sound_samples/cry_banette.bin" + .incbin "sound/direct_sound_samples/cries/banette.bin" .align 2 Cry_Shuppet:: - .incbin "sound/direct_sound_samples/cry_shuppet.bin" + .incbin "sound/direct_sound_samples/cries/shuppet.bin" .align 2 Cry_Lotad:: - .incbin "sound/direct_sound_samples/cry_lotad.bin" + .incbin "sound/direct_sound_samples/cries/lotad.bin" .align 2 Cry_Lombre:: - .incbin "sound/direct_sound_samples/cry_lombre.bin" + .incbin "sound/direct_sound_samples/cries/lombre.bin" .align 2 Cry_Ludicolo:: - .incbin "sound/direct_sound_samples/cry_ludicolo.bin" + .incbin "sound/direct_sound_samples/cries/ludicolo.bin" .align 2 Cry_Seedot:: - .incbin "sound/direct_sound_samples/cry_seedot.bin" + .incbin "sound/direct_sound_samples/cries/seedot.bin" .align 2 Cry_Nuzleaf:: - .incbin "sound/direct_sound_samples/cry_nuzleaf.bin" + .incbin "sound/direct_sound_samples/cries/nuzleaf.bin" .align 2 Cry_Shiftry:: - .incbin "sound/direct_sound_samples/cry_shiftry.bin" + .incbin "sound/direct_sound_samples/cries/shiftry.bin" .align 2 Cry_Carvanha:: - .incbin "sound/direct_sound_samples/cry_carvanha.bin" + .incbin "sound/direct_sound_samples/cries/carvanha.bin" .align 2 Cry_Wurmple:: - .incbin "sound/direct_sound_samples/cry_wurmple.bin" + .incbin "sound/direct_sound_samples/cries/wurmple.bin" .align 2 Cry_Silcoon:: - .incbin "sound/direct_sound_samples/cry_silcoon.bin" + .incbin "sound/direct_sound_samples/cries/silcoon.bin" .align 2 Cry_Beautifly:: - .incbin "sound/direct_sound_samples/cry_beautifly.bin" + .incbin "sound/direct_sound_samples/cries/beautifly.bin" .align 2 Cry_Cascoon:: - .incbin "sound/direct_sound_samples/cry_cascoon.bin" + .incbin "sound/direct_sound_samples/cries/cascoon.bin" .align 2 Cry_Dustox:: - .incbin "sound/direct_sound_samples/cry_dustox.bin" + .incbin "sound/direct_sound_samples/cries/dustox.bin" .align 2 Cry_Ralts:: - .incbin "sound/direct_sound_samples/cry_ralts.bin" + .incbin "sound/direct_sound_samples/cries/ralts.bin" .align 2 Cry_Kirlia:: - .incbin "sound/direct_sound_samples/cry_kirlia.bin" + .incbin "sound/direct_sound_samples/cries/kirlia.bin" .align 2 Cry_Gardevoir:: - .incbin "sound/direct_sound_samples/cry_gardevoir.bin" + .incbin "sound/direct_sound_samples/cries/gardevoir.bin" .align 2 Cry_Slakoth:: - .incbin "sound/direct_sound_samples/cry_slakoth.bin" + .incbin "sound/direct_sound_samples/cries/slakoth.bin" .align 2 Cry_Vigoroth:: - .incbin "sound/direct_sound_samples/cry_vigoroth.bin" + .incbin "sound/direct_sound_samples/cries/vigoroth.bin" .align 2 Cry_Slaking:: - .incbin "sound/direct_sound_samples/cry_slaking.bin" + .incbin "sound/direct_sound_samples/cries/slaking.bin" .align 2 Cry_Nincada:: - .incbin "sound/direct_sound_samples/cry_nincada.bin" + .incbin "sound/direct_sound_samples/cries/nincada.bin" .align 2 Cry_Ninjask:: - .incbin "sound/direct_sound_samples/cry_ninjask.bin" + .incbin "sound/direct_sound_samples/cries/ninjask.bin" .align 2 Cry_Shedinja:: - .incbin "sound/direct_sound_samples/cry_shedinja.bin" + .incbin "sound/direct_sound_samples/cries/shedinja.bin" .align 2 Cry_Makuhita:: - .incbin "sound/direct_sound_samples/cry_makuhita.bin" + .incbin "sound/direct_sound_samples/cries/makuhita.bin" .align 2 Cry_Hariyama:: - .incbin "sound/direct_sound_samples/cry_hariyama.bin" + .incbin "sound/direct_sound_samples/cries/hariyama.bin" .align 2 Cry_Nosepass:: - .incbin "sound/direct_sound_samples/cry_nosepass.bin" + .incbin "sound/direct_sound_samples/cries/nosepass.bin" .align 2 Cry_Glalie:: - .incbin "sound/direct_sound_samples/cry_glalie.bin" + .incbin "sound/direct_sound_samples/cries/glalie.bin" .align 2 Cry_Plusle:: - .incbin "sound/direct_sound_samples/cry_plusle.bin" + .incbin "sound/direct_sound_samples/cries/plusle.bin" .align 2 Cry_Minun:: - .incbin "sound/direct_sound_samples/cry_minun.bin" + .incbin "sound/direct_sound_samples/cries/minun.bin" .align 2 Cry_Surskit:: - .incbin "sound/direct_sound_samples/cry_surskit.bin" + .incbin "sound/direct_sound_samples/cries/surskit.bin" .align 2 Cry_Masquerain:: - .incbin "sound/direct_sound_samples/cry_masquerain.bin" + .incbin "sound/direct_sound_samples/cries/masquerain.bin" .align 2 Cry_Skitty:: - .incbin "sound/direct_sound_samples/cry_skitty.bin" + .incbin "sound/direct_sound_samples/cries/skitty.bin" .align 2 Cry_Delcatty:: - .incbin "sound/direct_sound_samples/cry_delcatty.bin" + .incbin "sound/direct_sound_samples/cries/delcatty.bin" .align 2 Cry_Gulpin:: - .incbin "sound/direct_sound_samples/cry_gulpin.bin" + .incbin "sound/direct_sound_samples/cries/gulpin.bin" .align 2 Cry_Swalot:: - .incbin "sound/direct_sound_samples/cry_swalot.bin" + .incbin "sound/direct_sound_samples/cries/swalot.bin" .align 2 Cry_Numel:: - .incbin "sound/direct_sound_samples/cry_numel.bin" + .incbin "sound/direct_sound_samples/cries/numel.bin" .align 2 Cry_Camerupt:: - .incbin "sound/direct_sound_samples/cry_camerupt.bin" + .incbin "sound/direct_sound_samples/cries/camerupt.bin" .align 2 Cry_Barboach:: - .incbin "sound/direct_sound_samples/cry_barboach.bin" + .incbin "sound/direct_sound_samples/cries/barboach.bin" .align 2 Cry_Whiscash:: - .incbin "sound/direct_sound_samples/cry_whiscash.bin" + .incbin "sound/direct_sound_samples/cries/whiscash.bin" .align 2 Cry_Corphish:: - .incbin "sound/direct_sound_samples/cry_corphish.bin" + .incbin "sound/direct_sound_samples/cries/corphish.bin" .align 2 Cry_Crawdaunt:: - .incbin "sound/direct_sound_samples/cry_crawdaunt.bin" + .incbin "sound/direct_sound_samples/cries/crawdaunt.bin" .align 2 Cry_Spoink:: - .incbin "sound/direct_sound_samples/cry_spoink.bin" + .incbin "sound/direct_sound_samples/cries/spoink.bin" .align 2 Cry_Grumpig:: - .incbin "sound/direct_sound_samples/cry_grumpig.bin" + .incbin "sound/direct_sound_samples/cries/grumpig.bin" .align 2 Cry_Trapinch:: - .incbin "sound/direct_sound_samples/cry_trapinch.bin" + .incbin "sound/direct_sound_samples/cries/trapinch.bin" .align 2 Cry_Vibrava:: - .incbin "sound/direct_sound_samples/cry_vibrava.bin" + .incbin "sound/direct_sound_samples/cries/vibrava.bin" .align 2 Cry_Flygon:: - .incbin "sound/direct_sound_samples/cry_flygon.bin" + .incbin "sound/direct_sound_samples/cries/flygon.bin" .align 2 Cry_Cacnea:: - .incbin "sound/direct_sound_samples/cry_cacnea.bin" + .incbin "sound/direct_sound_samples/cries/cacnea.bin" .align 2 Cry_Cacturne:: - .incbin "sound/direct_sound_samples/cry_cacturne.bin" + .incbin "sound/direct_sound_samples/cries/cacturne.bin" .align 2 Cry_Baltoy:: - .incbin "sound/direct_sound_samples/cry_baltoy.bin" + .incbin "sound/direct_sound_samples/cries/baltoy.bin" .align 2 Cry_Claydol:: - .incbin "sound/direct_sound_samples/cry_claydol.bin" + .incbin "sound/direct_sound_samples/cries/claydol.bin" .align 2 Cry_Lunatone:: - .incbin "sound/direct_sound_samples/cry_lunatone.bin" + .incbin "sound/direct_sound_samples/cries/lunatone.bin" .align 2 Cry_Solrock:: - .incbin "sound/direct_sound_samples/cry_solrock.bin" + .incbin "sound/direct_sound_samples/cries/solrock.bin" .align 2 Cry_Feebas:: - .incbin "sound/direct_sound_samples/cry_feebas.bin" + .incbin "sound/direct_sound_samples/cries/feebas.bin" .align 2 Cry_Milotic:: - .incbin "sound/direct_sound_samples/cry_milotic.bin" + .incbin "sound/direct_sound_samples/cries/milotic.bin" .align 2 Cry_Absol:: - .incbin "sound/direct_sound_samples/cry_absol.bin" + .incbin "sound/direct_sound_samples/cries/absol.bin" .align 2 Cry_Meditite:: - .incbin "sound/direct_sound_samples/cry_meditite.bin" + .incbin "sound/direct_sound_samples/cries/meditite.bin" .align 2 Cry_Medicham:: - .incbin "sound/direct_sound_samples/cry_medicham.bin" + .incbin "sound/direct_sound_samples/cries/medicham.bin" .align 2 Cry_Spheal:: - .incbin "sound/direct_sound_samples/cry_spheal.bin" + .incbin "sound/direct_sound_samples/cries/spheal.bin" .align 2 Cry_Sealeo:: - .incbin "sound/direct_sound_samples/cry_sealeo.bin" + .incbin "sound/direct_sound_samples/cries/sealeo.bin" .align 2 Cry_Walrein:: - .incbin "sound/direct_sound_samples/cry_walrein.bin" + .incbin "sound/direct_sound_samples/cries/walrein.bin" .align 2 Cry_Clamperl:: - .incbin "sound/direct_sound_samples/cry_clamperl.bin" + .incbin "sound/direct_sound_samples/cries/clamperl.bin" .align 2 Cry_Huntail:: - .incbin "sound/direct_sound_samples/cry_huntail.bin" + .incbin "sound/direct_sound_samples/cries/huntail.bin" .align 2 Cry_Gorebyss:: - .incbin "sound/direct_sound_samples/cry_gorebyss.bin" + .incbin "sound/direct_sound_samples/cries/gorebyss.bin" .align 2 Cry_Lileep:: - .incbin "sound/direct_sound_samples/cry_lileep.bin" + .incbin "sound/direct_sound_samples/cries/lileep.bin" .align 2 Cry_Cradily:: - .incbin "sound/direct_sound_samples/cry_cradily.bin" + .incbin "sound/direct_sound_samples/cries/cradily.bin" .align 2 Cry_Anorith:: - .incbin "sound/direct_sound_samples/cry_anorith.bin" + .incbin "sound/direct_sound_samples/cries/anorith.bin" .align 2 Cry_Armaldo:: - .incbin "sound/direct_sound_samples/cry_armaldo.bin" + .incbin "sound/direct_sound_samples/cries/armaldo.bin" .align 2 Cry_Beldum:: - .incbin "sound/direct_sound_samples/cry_beldum.bin" + .incbin "sound/direct_sound_samples/cries/beldum.bin" .align 2 Cry_Metang:: - .incbin "sound/direct_sound_samples/cry_metang.bin" + .incbin "sound/direct_sound_samples/cries/metang.bin" .align 2 Cry_Metagross:: - .incbin "sound/direct_sound_samples/cry_metagross.bin" + .incbin "sound/direct_sound_samples/cries/metagross.bin" .align 2 Cry_Bagon:: - .incbin "sound/direct_sound_samples/cry_bagon.bin" + .incbin "sound/direct_sound_samples/cries/bagon.bin" .align 2 Cry_Shelgon:: - .incbin "sound/direct_sound_samples/cry_shelgon.bin" + .incbin "sound/direct_sound_samples/cries/shelgon.bin" .align 2 Cry_Regirock:: - .incbin "sound/direct_sound_samples/cry_regirock.bin" + .incbin "sound/direct_sound_samples/cries/regirock.bin" .align 2 Cry_Regice:: - .incbin "sound/direct_sound_samples/cry_regice.bin" + .incbin "sound/direct_sound_samples/cries/regice.bin" .align 2 Cry_Registeel:: - .incbin "sound/direct_sound_samples/cry_registeel.bin" + .incbin "sound/direct_sound_samples/cries/registeel.bin" .align 2 Cry_Castform:: - .incbin "sound/direct_sound_samples/cry_castform.bin" + .incbin "sound/direct_sound_samples/cries/castform.bin" .align 2 Cry_Volbeat:: - .incbin "sound/direct_sound_samples/cry_volbeat.bin" + .incbin "sound/direct_sound_samples/cries/volbeat.bin" .align 2 Cry_Illumise:: - .incbin "sound/direct_sound_samples/cry_illumise.bin" + .incbin "sound/direct_sound_samples/cries/illumise.bin" .align 2 Cry_Poochyena:: - .incbin "sound/direct_sound_samples/cry_poochyena.bin" + .incbin "sound/direct_sound_samples/cries/poochyena.bin" .align 2 Cry_Mightyena:: - .incbin "sound/direct_sound_samples/cry_mightyena.bin" + .incbin "sound/direct_sound_samples/cries/mightyena.bin" .align 2 Cry_Dusclops:: - .incbin "sound/direct_sound_samples/cry_dusclops.bin" + .incbin "sound/direct_sound_samples/cries/dusclops.bin" .align 2 Cry_Sableye:: - .incbin "sound/direct_sound_samples/cry_sableye.bin" + .incbin "sound/direct_sound_samples/cries/sableye.bin" .align 2 Cry_Mawile:: - .incbin "sound/direct_sound_samples/cry_mawile.bin" + .incbin "sound/direct_sound_samples/cries/mawile.bin" .align 2 Cry_Aron:: - .incbin "sound/direct_sound_samples/cry_aron.bin" + .incbin "sound/direct_sound_samples/cries/aron.bin" .align 2 Cry_Lairon:: - .incbin "sound/direct_sound_samples/cry_lairon.bin" + .incbin "sound/direct_sound_samples/cries/lairon.bin" .align 2 Cry_Aggron:: - .incbin "sound/direct_sound_samples/cry_aggron.bin" + .incbin "sound/direct_sound_samples/cries/aggron.bin" .align 2 Cry_Relicanth:: - .incbin "sound/direct_sound_samples/cry_relicanth.bin" + .incbin "sound/direct_sound_samples/cries/relicanth.bin" .align 2 Cry_Luvdisc:: - .incbin "sound/direct_sound_samples/cry_luvdisc.bin" + .incbin "sound/direct_sound_samples/cries/luvdisc.bin" .align 2 Cry_Groudon:: - .incbin "sound/direct_sound_samples/cry_groudon.bin" + .incbin "sound/direct_sound_samples/cries/groudon.bin" .align 2 Cry_Kyogre:: - .incbin "sound/direct_sound_samples/cry_kyogre.bin" + .incbin "sound/direct_sound_samples/cries/kyogre.bin" .align 2 Cry_Rayquaza:: - .incbin "sound/direct_sound_samples/cry_rayquaza.bin" + .incbin "sound/direct_sound_samples/cries/rayquaza.bin" .align 2 Cry_Salamence:: - .incbin "sound/direct_sound_samples/cry_salamence.bin" + .incbin "sound/direct_sound_samples/cries/salamence.bin" .align 2 Cry_Breloom:: - .incbin "sound/direct_sound_samples/cry_breloom.bin" + .incbin "sound/direct_sound_samples/cries/breloom.bin" .align 2 Cry_Shroomish:: - .incbin "sound/direct_sound_samples/cry_shroomish.bin" + .incbin "sound/direct_sound_samples/cries/shroomish.bin" .align 2 Cry_Linoone:: - .incbin "sound/direct_sound_samples/cry_linoone.bin" + .incbin "sound/direct_sound_samples/cries/linoone.bin" .align 2 Cry_Tropius:: - .incbin "sound/direct_sound_samples/cry_tropius.bin" + .incbin "sound/direct_sound_samples/cries/tropius.bin" .align 2 Cry_Wailmer:: - .incbin "sound/direct_sound_samples/cry_wailmer.bin" + .incbin "sound/direct_sound_samples/cries/wailmer.bin" .align 2 Cry_Zigzagoon:: - .incbin "sound/direct_sound_samples/cry_zigzagoon.bin" + .incbin "sound/direct_sound_samples/cries/zigzagoon.bin" .align 2 Cry_Exploud:: - .incbin "sound/direct_sound_samples/cry_exploud.bin" + .incbin "sound/direct_sound_samples/cries/exploud.bin" .align 2 Cry_Loudred:: - .incbin "sound/direct_sound_samples/cry_loudred.bin" + .incbin "sound/direct_sound_samples/cries/loudred.bin" .align 2 Cry_Wailord:: - .incbin "sound/direct_sound_samples/cry_wailord.bin" + .incbin "sound/direct_sound_samples/cries/wailord.bin" .align 2 Cry_Whismur:: - .incbin "sound/direct_sound_samples/cry_whismur.bin" + .incbin "sound/direct_sound_samples/cries/whismur.bin" .align 2 Cry_Snorunt:: - .incbin "sound/direct_sound_samples/cry_snorunt.bin" + .incbin "sound/direct_sound_samples/cries/snorunt.bin" .align 2 Cry_Latios:: - .incbin "sound/direct_sound_samples/cry_latios.bin" + .incbin "sound/direct_sound_samples/cries/latios.bin" .align 2 Cry_Jirachi:: - .incbin "sound/direct_sound_samples/cry_jirachi.bin" + .incbin "sound/direct_sound_samples/cries/jirachi.bin" .align 2 Cry_Deoxys:: - .incbin "sound/direct_sound_samples/cry_deoxys.bin" + .incbin "sound/direct_sound_samples/cries/deoxys.bin" .align 2 Cry_Chimecho:: - .incbin "sound/direct_sound_samples/cry_chimecho.bin" + .incbin "sound/direct_sound_samples/cries/chimecho.bin" .align 2 diff --git a/sound/direct_sound_samples/cry_abra.aif b/sound/direct_sound_samples/cries/abra.aif similarity index 100% rename from sound/direct_sound_samples/cry_abra.aif rename to sound/direct_sound_samples/cries/abra.aif diff --git a/sound/direct_sound_samples/cry_absol.aif b/sound/direct_sound_samples/cries/absol.aif similarity index 100% rename from sound/direct_sound_samples/cry_absol.aif rename to sound/direct_sound_samples/cries/absol.aif diff --git a/sound/direct_sound_samples/cry_aerodactyl.aif b/sound/direct_sound_samples/cries/aerodactyl.aif similarity index 100% rename from sound/direct_sound_samples/cry_aerodactyl.aif rename to sound/direct_sound_samples/cries/aerodactyl.aif diff --git a/sound/direct_sound_samples/cry_aggron.aif b/sound/direct_sound_samples/cries/aggron.aif similarity index 100% rename from sound/direct_sound_samples/cry_aggron.aif rename to sound/direct_sound_samples/cries/aggron.aif diff --git a/sound/direct_sound_samples/cry_aipom.aif b/sound/direct_sound_samples/cries/aipom.aif similarity index 100% rename from sound/direct_sound_samples/cry_aipom.aif rename to sound/direct_sound_samples/cries/aipom.aif diff --git a/sound/direct_sound_samples/cry_alakazam.aif b/sound/direct_sound_samples/cries/alakazam.aif similarity index 100% rename from sound/direct_sound_samples/cry_alakazam.aif rename to sound/direct_sound_samples/cries/alakazam.aif diff --git a/sound/direct_sound_samples/cry_altaria.aif b/sound/direct_sound_samples/cries/altaria.aif similarity index 100% rename from sound/direct_sound_samples/cry_altaria.aif rename to sound/direct_sound_samples/cries/altaria.aif diff --git a/sound/direct_sound_samples/cry_ampharos.aif b/sound/direct_sound_samples/cries/ampharos.aif similarity index 100% rename from sound/direct_sound_samples/cry_ampharos.aif rename to sound/direct_sound_samples/cries/ampharos.aif diff --git a/sound/direct_sound_samples/cry_anorith.aif b/sound/direct_sound_samples/cries/anorith.aif similarity index 100% rename from sound/direct_sound_samples/cry_anorith.aif rename to sound/direct_sound_samples/cries/anorith.aif diff --git a/sound/direct_sound_samples/cry_arbok.aif b/sound/direct_sound_samples/cries/arbok.aif similarity index 100% rename from sound/direct_sound_samples/cry_arbok.aif rename to sound/direct_sound_samples/cries/arbok.aif diff --git a/sound/direct_sound_samples/cry_arcanine.aif b/sound/direct_sound_samples/cries/arcanine.aif similarity index 100% rename from sound/direct_sound_samples/cry_arcanine.aif rename to sound/direct_sound_samples/cries/arcanine.aif diff --git a/sound/direct_sound_samples/cry_ariados.aif b/sound/direct_sound_samples/cries/ariados.aif similarity index 100% rename from sound/direct_sound_samples/cry_ariados.aif rename to sound/direct_sound_samples/cries/ariados.aif diff --git a/sound/direct_sound_samples/cry_armaldo.aif b/sound/direct_sound_samples/cries/armaldo.aif similarity index 100% rename from sound/direct_sound_samples/cry_armaldo.aif rename to sound/direct_sound_samples/cries/armaldo.aif diff --git a/sound/direct_sound_samples/cry_aron.aif b/sound/direct_sound_samples/cries/aron.aif similarity index 100% rename from sound/direct_sound_samples/cry_aron.aif rename to sound/direct_sound_samples/cries/aron.aif diff --git a/sound/direct_sound_samples/cry_articuno.aif b/sound/direct_sound_samples/cries/articuno.aif similarity index 100% rename from sound/direct_sound_samples/cry_articuno.aif rename to sound/direct_sound_samples/cries/articuno.aif diff --git a/sound/direct_sound_samples/cry_azumarill.aif b/sound/direct_sound_samples/cries/azumarill.aif similarity index 100% rename from sound/direct_sound_samples/cry_azumarill.aif rename to sound/direct_sound_samples/cries/azumarill.aif diff --git a/sound/direct_sound_samples/cry_azurill.aif b/sound/direct_sound_samples/cries/azurill.aif similarity index 100% rename from sound/direct_sound_samples/cry_azurill.aif rename to sound/direct_sound_samples/cries/azurill.aif diff --git a/sound/direct_sound_samples/cry_bagon.aif b/sound/direct_sound_samples/cries/bagon.aif similarity index 100% rename from sound/direct_sound_samples/cry_bagon.aif rename to sound/direct_sound_samples/cries/bagon.aif diff --git a/sound/direct_sound_samples/cry_baltoy.aif b/sound/direct_sound_samples/cries/baltoy.aif similarity index 100% rename from sound/direct_sound_samples/cry_baltoy.aif rename to sound/direct_sound_samples/cries/baltoy.aif diff --git a/sound/direct_sound_samples/cry_banette.aif b/sound/direct_sound_samples/cries/banette.aif similarity index 100% rename from sound/direct_sound_samples/cry_banette.aif rename to sound/direct_sound_samples/cries/banette.aif diff --git a/sound/direct_sound_samples/cry_barboach.aif b/sound/direct_sound_samples/cries/barboach.aif similarity index 100% rename from sound/direct_sound_samples/cry_barboach.aif rename to sound/direct_sound_samples/cries/barboach.aif diff --git a/sound/direct_sound_samples/cry_bayleef.aif b/sound/direct_sound_samples/cries/bayleef.aif similarity index 100% rename from sound/direct_sound_samples/cry_bayleef.aif rename to sound/direct_sound_samples/cries/bayleef.aif diff --git a/sound/direct_sound_samples/cry_beautifly.aif b/sound/direct_sound_samples/cries/beautifly.aif similarity index 100% rename from sound/direct_sound_samples/cry_beautifly.aif rename to sound/direct_sound_samples/cries/beautifly.aif diff --git a/sound/direct_sound_samples/cry_beedrill.aif b/sound/direct_sound_samples/cries/beedrill.aif similarity index 100% rename from sound/direct_sound_samples/cry_beedrill.aif rename to sound/direct_sound_samples/cries/beedrill.aif diff --git a/sound/direct_sound_samples/cry_beldum.aif b/sound/direct_sound_samples/cries/beldum.aif similarity index 100% rename from sound/direct_sound_samples/cry_beldum.aif rename to sound/direct_sound_samples/cries/beldum.aif diff --git a/sound/direct_sound_samples/cry_bellossom.aif b/sound/direct_sound_samples/cries/bellossom.aif similarity index 100% rename from sound/direct_sound_samples/cry_bellossom.aif rename to sound/direct_sound_samples/cries/bellossom.aif diff --git a/sound/direct_sound_samples/cry_bellsprout.aif b/sound/direct_sound_samples/cries/bellsprout.aif similarity index 100% rename from sound/direct_sound_samples/cry_bellsprout.aif rename to sound/direct_sound_samples/cries/bellsprout.aif diff --git a/sound/direct_sound_samples/cry_blastoise.aif b/sound/direct_sound_samples/cries/blastoise.aif similarity index 100% rename from sound/direct_sound_samples/cry_blastoise.aif rename to sound/direct_sound_samples/cries/blastoise.aif diff --git a/sound/direct_sound_samples/cry_blaziken.aif b/sound/direct_sound_samples/cries/blaziken.aif similarity index 100% rename from sound/direct_sound_samples/cry_blaziken.aif rename to sound/direct_sound_samples/cries/blaziken.aif diff --git a/sound/direct_sound_samples/cry_blissey.aif b/sound/direct_sound_samples/cries/blissey.aif similarity index 100% rename from sound/direct_sound_samples/cry_blissey.aif rename to sound/direct_sound_samples/cries/blissey.aif diff --git a/sound/direct_sound_samples/cry_breloom.aif b/sound/direct_sound_samples/cries/breloom.aif similarity index 100% rename from sound/direct_sound_samples/cry_breloom.aif rename to sound/direct_sound_samples/cries/breloom.aif diff --git a/sound/direct_sound_samples/cry_bulbasaur.aif b/sound/direct_sound_samples/cries/bulbasaur.aif similarity index 100% rename from sound/direct_sound_samples/cry_bulbasaur.aif rename to sound/direct_sound_samples/cries/bulbasaur.aif diff --git a/sound/direct_sound_samples/cry_butterfree.aif b/sound/direct_sound_samples/cries/butterfree.aif similarity index 100% rename from sound/direct_sound_samples/cry_butterfree.aif rename to sound/direct_sound_samples/cries/butterfree.aif diff --git a/sound/direct_sound_samples/cry_cacnea.aif b/sound/direct_sound_samples/cries/cacnea.aif similarity index 100% rename from sound/direct_sound_samples/cry_cacnea.aif rename to sound/direct_sound_samples/cries/cacnea.aif diff --git a/sound/direct_sound_samples/cry_cacturne.aif b/sound/direct_sound_samples/cries/cacturne.aif similarity index 100% rename from sound/direct_sound_samples/cry_cacturne.aif rename to sound/direct_sound_samples/cries/cacturne.aif diff --git a/sound/direct_sound_samples/cry_camerupt.aif b/sound/direct_sound_samples/cries/camerupt.aif similarity index 100% rename from sound/direct_sound_samples/cry_camerupt.aif rename to sound/direct_sound_samples/cries/camerupt.aif diff --git a/sound/direct_sound_samples/cry_carvanha.aif b/sound/direct_sound_samples/cries/carvanha.aif similarity index 100% rename from sound/direct_sound_samples/cry_carvanha.aif rename to sound/direct_sound_samples/cries/carvanha.aif diff --git a/sound/direct_sound_samples/cry_cascoon.aif b/sound/direct_sound_samples/cries/cascoon.aif similarity index 100% rename from sound/direct_sound_samples/cry_cascoon.aif rename to sound/direct_sound_samples/cries/cascoon.aif diff --git a/sound/direct_sound_samples/cry_castform.aif b/sound/direct_sound_samples/cries/castform.aif similarity index 100% rename from sound/direct_sound_samples/cry_castform.aif rename to sound/direct_sound_samples/cries/castform.aif diff --git a/sound/direct_sound_samples/cry_caterpie.aif b/sound/direct_sound_samples/cries/caterpie.aif similarity index 100% rename from sound/direct_sound_samples/cry_caterpie.aif rename to sound/direct_sound_samples/cries/caterpie.aif diff --git a/sound/direct_sound_samples/cry_celebi.aif b/sound/direct_sound_samples/cries/celebi.aif similarity index 100% rename from sound/direct_sound_samples/cry_celebi.aif rename to sound/direct_sound_samples/cries/celebi.aif diff --git a/sound/direct_sound_samples/cry_chansey.aif b/sound/direct_sound_samples/cries/chansey.aif similarity index 100% rename from sound/direct_sound_samples/cry_chansey.aif rename to sound/direct_sound_samples/cries/chansey.aif diff --git a/sound/direct_sound_samples/cry_charizard.aif b/sound/direct_sound_samples/cries/charizard.aif similarity index 100% rename from sound/direct_sound_samples/cry_charizard.aif rename to sound/direct_sound_samples/cries/charizard.aif diff --git a/sound/direct_sound_samples/cry_charmander.aif b/sound/direct_sound_samples/cries/charmander.aif similarity index 100% rename from sound/direct_sound_samples/cry_charmander.aif rename to sound/direct_sound_samples/cries/charmander.aif diff --git a/sound/direct_sound_samples/cry_charmeleon.aif b/sound/direct_sound_samples/cries/charmeleon.aif similarity index 100% rename from sound/direct_sound_samples/cry_charmeleon.aif rename to sound/direct_sound_samples/cries/charmeleon.aif diff --git a/sound/direct_sound_samples/cry_chikorita.aif b/sound/direct_sound_samples/cries/chikorita.aif similarity index 100% rename from sound/direct_sound_samples/cry_chikorita.aif rename to sound/direct_sound_samples/cries/chikorita.aif diff --git a/sound/direct_sound_samples/cry_chimecho.aif b/sound/direct_sound_samples/cries/chimecho.aif similarity index 100% rename from sound/direct_sound_samples/cry_chimecho.aif rename to sound/direct_sound_samples/cries/chimecho.aif diff --git a/sound/direct_sound_samples/cry_chinchou.aif b/sound/direct_sound_samples/cries/chinchou.aif similarity index 100% rename from sound/direct_sound_samples/cry_chinchou.aif rename to sound/direct_sound_samples/cries/chinchou.aif diff --git a/sound/direct_sound_samples/cry_clamperl.aif b/sound/direct_sound_samples/cries/clamperl.aif similarity index 100% rename from sound/direct_sound_samples/cry_clamperl.aif rename to sound/direct_sound_samples/cries/clamperl.aif diff --git a/sound/direct_sound_samples/cry_claydol.aif b/sound/direct_sound_samples/cries/claydol.aif similarity index 100% rename from sound/direct_sound_samples/cry_claydol.aif rename to sound/direct_sound_samples/cries/claydol.aif diff --git a/sound/direct_sound_samples/cry_clefable.aif b/sound/direct_sound_samples/cries/clefable.aif similarity index 100% rename from sound/direct_sound_samples/cry_clefable.aif rename to sound/direct_sound_samples/cries/clefable.aif diff --git a/sound/direct_sound_samples/cry_clefairy.aif b/sound/direct_sound_samples/cries/clefairy.aif similarity index 100% rename from sound/direct_sound_samples/cry_clefairy.aif rename to sound/direct_sound_samples/cries/clefairy.aif diff --git a/sound/direct_sound_samples/cry_cleffa.aif b/sound/direct_sound_samples/cries/cleffa.aif similarity index 100% rename from sound/direct_sound_samples/cry_cleffa.aif rename to sound/direct_sound_samples/cries/cleffa.aif diff --git a/sound/direct_sound_samples/cry_cloyster.aif b/sound/direct_sound_samples/cries/cloyster.aif similarity index 100% rename from sound/direct_sound_samples/cry_cloyster.aif rename to sound/direct_sound_samples/cries/cloyster.aif diff --git a/sound/direct_sound_samples/cry_combusken.aif b/sound/direct_sound_samples/cries/combusken.aif similarity index 100% rename from sound/direct_sound_samples/cry_combusken.aif rename to sound/direct_sound_samples/cries/combusken.aif diff --git a/sound/direct_sound_samples/cry_corphish.aif b/sound/direct_sound_samples/cries/corphish.aif similarity index 100% rename from sound/direct_sound_samples/cry_corphish.aif rename to sound/direct_sound_samples/cries/corphish.aif diff --git a/sound/direct_sound_samples/cry_corsola.aif b/sound/direct_sound_samples/cries/corsola.aif similarity index 100% rename from sound/direct_sound_samples/cry_corsola.aif rename to sound/direct_sound_samples/cries/corsola.aif diff --git a/sound/direct_sound_samples/cry_cradily.aif b/sound/direct_sound_samples/cries/cradily.aif similarity index 100% rename from sound/direct_sound_samples/cry_cradily.aif rename to sound/direct_sound_samples/cries/cradily.aif diff --git a/sound/direct_sound_samples/cry_crawdaunt.aif b/sound/direct_sound_samples/cries/crawdaunt.aif similarity index 100% rename from sound/direct_sound_samples/cry_crawdaunt.aif rename to sound/direct_sound_samples/cries/crawdaunt.aif diff --git a/sound/direct_sound_samples/cry_crobat.aif b/sound/direct_sound_samples/cries/crobat.aif similarity index 100% rename from sound/direct_sound_samples/cry_crobat.aif rename to sound/direct_sound_samples/cries/crobat.aif diff --git a/sound/direct_sound_samples/cry_croconaw.aif b/sound/direct_sound_samples/cries/croconaw.aif similarity index 100% rename from sound/direct_sound_samples/cry_croconaw.aif rename to sound/direct_sound_samples/cries/croconaw.aif diff --git a/sound/direct_sound_samples/cry_cubone.aif b/sound/direct_sound_samples/cries/cubone.aif similarity index 100% rename from sound/direct_sound_samples/cry_cubone.aif rename to sound/direct_sound_samples/cries/cubone.aif diff --git a/sound/direct_sound_samples/cry_cyndaquil.aif b/sound/direct_sound_samples/cries/cyndaquil.aif similarity index 100% rename from sound/direct_sound_samples/cry_cyndaquil.aif rename to sound/direct_sound_samples/cries/cyndaquil.aif diff --git a/sound/direct_sound_samples/cry_delcatty.aif b/sound/direct_sound_samples/cries/delcatty.aif similarity index 100% rename from sound/direct_sound_samples/cry_delcatty.aif rename to sound/direct_sound_samples/cries/delcatty.aif diff --git a/sound/direct_sound_samples/cry_delibird.aif b/sound/direct_sound_samples/cries/delibird.aif similarity index 100% rename from sound/direct_sound_samples/cry_delibird.aif rename to sound/direct_sound_samples/cries/delibird.aif diff --git a/sound/direct_sound_samples/cry_deoxys.aif b/sound/direct_sound_samples/cries/deoxys.aif similarity index 100% rename from sound/direct_sound_samples/cry_deoxys.aif rename to sound/direct_sound_samples/cries/deoxys.aif diff --git a/sound/direct_sound_samples/cry_dewgong.aif b/sound/direct_sound_samples/cries/dewgong.aif similarity index 100% rename from sound/direct_sound_samples/cry_dewgong.aif rename to sound/direct_sound_samples/cries/dewgong.aif diff --git a/sound/direct_sound_samples/cry_diglett.aif b/sound/direct_sound_samples/cries/diglett.aif similarity index 100% rename from sound/direct_sound_samples/cry_diglett.aif rename to sound/direct_sound_samples/cries/diglett.aif diff --git a/sound/direct_sound_samples/cry_ditto.aif b/sound/direct_sound_samples/cries/ditto.aif similarity index 100% rename from sound/direct_sound_samples/cry_ditto.aif rename to sound/direct_sound_samples/cries/ditto.aif diff --git a/sound/direct_sound_samples/cry_dodrio.aif b/sound/direct_sound_samples/cries/dodrio.aif similarity index 100% rename from sound/direct_sound_samples/cry_dodrio.aif rename to sound/direct_sound_samples/cries/dodrio.aif diff --git a/sound/direct_sound_samples/cry_doduo.aif b/sound/direct_sound_samples/cries/doduo.aif similarity index 100% rename from sound/direct_sound_samples/cry_doduo.aif rename to sound/direct_sound_samples/cries/doduo.aif diff --git a/sound/direct_sound_samples/cry_donphan.aif b/sound/direct_sound_samples/cries/donphan.aif similarity index 100% rename from sound/direct_sound_samples/cry_donphan.aif rename to sound/direct_sound_samples/cries/donphan.aif diff --git a/sound/direct_sound_samples/cry_dragonair.aif b/sound/direct_sound_samples/cries/dragonair.aif similarity index 100% rename from sound/direct_sound_samples/cry_dragonair.aif rename to sound/direct_sound_samples/cries/dragonair.aif diff --git a/sound/direct_sound_samples/cry_dragonite.aif b/sound/direct_sound_samples/cries/dragonite.aif similarity index 100% rename from sound/direct_sound_samples/cry_dragonite.aif rename to sound/direct_sound_samples/cries/dragonite.aif diff --git a/sound/direct_sound_samples/cry_dratini.aif b/sound/direct_sound_samples/cries/dratini.aif similarity index 100% rename from sound/direct_sound_samples/cry_dratini.aif rename to sound/direct_sound_samples/cries/dratini.aif diff --git a/sound/direct_sound_samples/cry_drowzee.aif b/sound/direct_sound_samples/cries/drowzee.aif similarity index 100% rename from sound/direct_sound_samples/cry_drowzee.aif rename to sound/direct_sound_samples/cries/drowzee.aif diff --git a/sound/direct_sound_samples/cry_dugtrio.aif b/sound/direct_sound_samples/cries/dugtrio.aif similarity index 100% rename from sound/direct_sound_samples/cry_dugtrio.aif rename to sound/direct_sound_samples/cries/dugtrio.aif diff --git a/sound/direct_sound_samples/cry_dunsparce.aif b/sound/direct_sound_samples/cries/dunsparce.aif similarity index 100% rename from sound/direct_sound_samples/cry_dunsparce.aif rename to sound/direct_sound_samples/cries/dunsparce.aif diff --git a/sound/direct_sound_samples/cry_dusclops.aif b/sound/direct_sound_samples/cries/dusclops.aif similarity index 100% rename from sound/direct_sound_samples/cry_dusclops.aif rename to sound/direct_sound_samples/cries/dusclops.aif diff --git a/sound/direct_sound_samples/cry_duskull.aif b/sound/direct_sound_samples/cries/duskull.aif similarity index 100% rename from sound/direct_sound_samples/cry_duskull.aif rename to sound/direct_sound_samples/cries/duskull.aif diff --git a/sound/direct_sound_samples/cry_dustox.aif b/sound/direct_sound_samples/cries/dustox.aif similarity index 100% rename from sound/direct_sound_samples/cry_dustox.aif rename to sound/direct_sound_samples/cries/dustox.aif diff --git a/sound/direct_sound_samples/cry_eevee.aif b/sound/direct_sound_samples/cries/eevee.aif similarity index 100% rename from sound/direct_sound_samples/cry_eevee.aif rename to sound/direct_sound_samples/cries/eevee.aif diff --git a/sound/direct_sound_samples/cry_ekans.aif b/sound/direct_sound_samples/cries/ekans.aif similarity index 100% rename from sound/direct_sound_samples/cry_ekans.aif rename to sound/direct_sound_samples/cries/ekans.aif diff --git a/sound/direct_sound_samples/cry_electabuzz.aif b/sound/direct_sound_samples/cries/electabuzz.aif similarity index 100% rename from sound/direct_sound_samples/cry_electabuzz.aif rename to sound/direct_sound_samples/cries/electabuzz.aif diff --git a/sound/direct_sound_samples/cry_electrike.aif b/sound/direct_sound_samples/cries/electrike.aif similarity index 100% rename from sound/direct_sound_samples/cry_electrike.aif rename to sound/direct_sound_samples/cries/electrike.aif diff --git a/sound/direct_sound_samples/cry_electrode.aif b/sound/direct_sound_samples/cries/electrode.aif similarity index 100% rename from sound/direct_sound_samples/cry_electrode.aif rename to sound/direct_sound_samples/cries/electrode.aif diff --git a/sound/direct_sound_samples/cry_elekid.aif b/sound/direct_sound_samples/cries/elekid.aif similarity index 100% rename from sound/direct_sound_samples/cry_elekid.aif rename to sound/direct_sound_samples/cries/elekid.aif diff --git a/sound/direct_sound_samples/cry_entei.aif b/sound/direct_sound_samples/cries/entei.aif similarity index 100% rename from sound/direct_sound_samples/cry_entei.aif rename to sound/direct_sound_samples/cries/entei.aif diff --git a/sound/direct_sound_samples/cry_espeon.aif b/sound/direct_sound_samples/cries/espeon.aif similarity index 100% rename from sound/direct_sound_samples/cry_espeon.aif rename to sound/direct_sound_samples/cries/espeon.aif diff --git a/sound/direct_sound_samples/cry_exeggcute.aif b/sound/direct_sound_samples/cries/exeggcute.aif similarity index 100% rename from sound/direct_sound_samples/cry_exeggcute.aif rename to sound/direct_sound_samples/cries/exeggcute.aif diff --git a/sound/direct_sound_samples/cry_exeggutor.aif b/sound/direct_sound_samples/cries/exeggutor.aif similarity index 100% rename from sound/direct_sound_samples/cry_exeggutor.aif rename to sound/direct_sound_samples/cries/exeggutor.aif diff --git a/sound/direct_sound_samples/cry_exploud.aif b/sound/direct_sound_samples/cries/exploud.aif similarity index 100% rename from sound/direct_sound_samples/cry_exploud.aif rename to sound/direct_sound_samples/cries/exploud.aif diff --git a/sound/direct_sound_samples/cry_farfetchd.aif b/sound/direct_sound_samples/cries/farfetchd.aif similarity index 100% rename from sound/direct_sound_samples/cry_farfetchd.aif rename to sound/direct_sound_samples/cries/farfetchd.aif diff --git a/sound/direct_sound_samples/cry_fearow.aif b/sound/direct_sound_samples/cries/fearow.aif similarity index 100% rename from sound/direct_sound_samples/cry_fearow.aif rename to sound/direct_sound_samples/cries/fearow.aif diff --git a/sound/direct_sound_samples/cry_feebas.aif b/sound/direct_sound_samples/cries/feebas.aif similarity index 100% rename from sound/direct_sound_samples/cry_feebas.aif rename to sound/direct_sound_samples/cries/feebas.aif diff --git a/sound/direct_sound_samples/cry_feraligatr.aif b/sound/direct_sound_samples/cries/feraligatr.aif similarity index 100% rename from sound/direct_sound_samples/cry_feraligatr.aif rename to sound/direct_sound_samples/cries/feraligatr.aif diff --git a/sound/direct_sound_samples/cry_flaaffy.aif b/sound/direct_sound_samples/cries/flaaffy.aif similarity index 100% rename from sound/direct_sound_samples/cry_flaaffy.aif rename to sound/direct_sound_samples/cries/flaaffy.aif diff --git a/sound/direct_sound_samples/cry_flareon.aif b/sound/direct_sound_samples/cries/flareon.aif similarity index 100% rename from sound/direct_sound_samples/cry_flareon.aif rename to sound/direct_sound_samples/cries/flareon.aif diff --git a/sound/direct_sound_samples/cry_flygon.aif b/sound/direct_sound_samples/cries/flygon.aif similarity index 100% rename from sound/direct_sound_samples/cry_flygon.aif rename to sound/direct_sound_samples/cries/flygon.aif diff --git a/sound/direct_sound_samples/cry_forretress.aif b/sound/direct_sound_samples/cries/forretress.aif similarity index 100% rename from sound/direct_sound_samples/cry_forretress.aif rename to sound/direct_sound_samples/cries/forretress.aif diff --git a/sound/direct_sound_samples/cry_furret.aif b/sound/direct_sound_samples/cries/furret.aif similarity index 100% rename from sound/direct_sound_samples/cry_furret.aif rename to sound/direct_sound_samples/cries/furret.aif diff --git a/sound/direct_sound_samples/cry_gardevoir.aif b/sound/direct_sound_samples/cries/gardevoir.aif similarity index 100% rename from sound/direct_sound_samples/cry_gardevoir.aif rename to sound/direct_sound_samples/cries/gardevoir.aif diff --git a/sound/direct_sound_samples/cry_gastly.aif b/sound/direct_sound_samples/cries/gastly.aif similarity index 100% rename from sound/direct_sound_samples/cry_gastly.aif rename to sound/direct_sound_samples/cries/gastly.aif diff --git a/sound/direct_sound_samples/cry_gengar.aif b/sound/direct_sound_samples/cries/gengar.aif similarity index 100% rename from sound/direct_sound_samples/cry_gengar.aif rename to sound/direct_sound_samples/cries/gengar.aif diff --git a/sound/direct_sound_samples/cry_geodude.aif b/sound/direct_sound_samples/cries/geodude.aif similarity index 100% rename from sound/direct_sound_samples/cry_geodude.aif rename to sound/direct_sound_samples/cries/geodude.aif diff --git a/sound/direct_sound_samples/cry_girafarig.aif b/sound/direct_sound_samples/cries/girafarig.aif similarity index 100% rename from sound/direct_sound_samples/cry_girafarig.aif rename to sound/direct_sound_samples/cries/girafarig.aif diff --git a/sound/direct_sound_samples/cry_glalie.aif b/sound/direct_sound_samples/cries/glalie.aif similarity index 100% rename from sound/direct_sound_samples/cry_glalie.aif rename to sound/direct_sound_samples/cries/glalie.aif diff --git a/sound/direct_sound_samples/cry_gligar.aif b/sound/direct_sound_samples/cries/gligar.aif similarity index 100% rename from sound/direct_sound_samples/cry_gligar.aif rename to sound/direct_sound_samples/cries/gligar.aif diff --git a/sound/direct_sound_samples/cry_gloom.aif b/sound/direct_sound_samples/cries/gloom.aif similarity index 100% rename from sound/direct_sound_samples/cry_gloom.aif rename to sound/direct_sound_samples/cries/gloom.aif diff --git a/sound/direct_sound_samples/cry_golbat.aif b/sound/direct_sound_samples/cries/golbat.aif similarity index 100% rename from sound/direct_sound_samples/cry_golbat.aif rename to sound/direct_sound_samples/cries/golbat.aif diff --git a/sound/direct_sound_samples/cry_goldeen.aif b/sound/direct_sound_samples/cries/goldeen.aif similarity index 100% rename from sound/direct_sound_samples/cry_goldeen.aif rename to sound/direct_sound_samples/cries/goldeen.aif diff --git a/sound/direct_sound_samples/cry_golduck.aif b/sound/direct_sound_samples/cries/golduck.aif similarity index 100% rename from sound/direct_sound_samples/cry_golduck.aif rename to sound/direct_sound_samples/cries/golduck.aif diff --git a/sound/direct_sound_samples/cry_golem.aif b/sound/direct_sound_samples/cries/golem.aif similarity index 100% rename from sound/direct_sound_samples/cry_golem.aif rename to sound/direct_sound_samples/cries/golem.aif diff --git a/sound/direct_sound_samples/cry_gorebyss.aif b/sound/direct_sound_samples/cries/gorebyss.aif similarity index 100% rename from sound/direct_sound_samples/cry_gorebyss.aif rename to sound/direct_sound_samples/cries/gorebyss.aif diff --git a/sound/direct_sound_samples/cry_granbull.aif b/sound/direct_sound_samples/cries/granbull.aif similarity index 100% rename from sound/direct_sound_samples/cry_granbull.aif rename to sound/direct_sound_samples/cries/granbull.aif diff --git a/sound/direct_sound_samples/cry_graveler.aif b/sound/direct_sound_samples/cries/graveler.aif similarity index 100% rename from sound/direct_sound_samples/cry_graveler.aif rename to sound/direct_sound_samples/cries/graveler.aif diff --git a/sound/direct_sound_samples/cry_grimer.aif b/sound/direct_sound_samples/cries/grimer.aif similarity index 100% rename from sound/direct_sound_samples/cry_grimer.aif rename to sound/direct_sound_samples/cries/grimer.aif diff --git a/sound/direct_sound_samples/cry_groudon.aif b/sound/direct_sound_samples/cries/groudon.aif similarity index 100% rename from sound/direct_sound_samples/cry_groudon.aif rename to sound/direct_sound_samples/cries/groudon.aif diff --git a/sound/direct_sound_samples/cry_grovyle.aif b/sound/direct_sound_samples/cries/grovyle.aif similarity index 100% rename from sound/direct_sound_samples/cry_grovyle.aif rename to sound/direct_sound_samples/cries/grovyle.aif diff --git a/sound/direct_sound_samples/cry_growlithe.aif b/sound/direct_sound_samples/cries/growlithe.aif similarity index 100% rename from sound/direct_sound_samples/cry_growlithe.aif rename to sound/direct_sound_samples/cries/growlithe.aif diff --git a/sound/direct_sound_samples/cry_grumpig.aif b/sound/direct_sound_samples/cries/grumpig.aif similarity index 100% rename from sound/direct_sound_samples/cry_grumpig.aif rename to sound/direct_sound_samples/cries/grumpig.aif diff --git a/sound/direct_sound_samples/cry_gulpin.aif b/sound/direct_sound_samples/cries/gulpin.aif similarity index 100% rename from sound/direct_sound_samples/cry_gulpin.aif rename to sound/direct_sound_samples/cries/gulpin.aif diff --git a/sound/direct_sound_samples/cry_gyarados.aif b/sound/direct_sound_samples/cries/gyarados.aif similarity index 100% rename from sound/direct_sound_samples/cry_gyarados.aif rename to sound/direct_sound_samples/cries/gyarados.aif diff --git a/sound/direct_sound_samples/cry_hariyama.aif b/sound/direct_sound_samples/cries/hariyama.aif similarity index 100% rename from sound/direct_sound_samples/cry_hariyama.aif rename to sound/direct_sound_samples/cries/hariyama.aif diff --git a/sound/direct_sound_samples/cry_haunter.aif b/sound/direct_sound_samples/cries/haunter.aif similarity index 100% rename from sound/direct_sound_samples/cry_haunter.aif rename to sound/direct_sound_samples/cries/haunter.aif diff --git a/sound/direct_sound_samples/cry_heracross.aif b/sound/direct_sound_samples/cries/heracross.aif similarity index 100% rename from sound/direct_sound_samples/cry_heracross.aif rename to sound/direct_sound_samples/cries/heracross.aif diff --git a/sound/direct_sound_samples/cry_hitmonchan.aif b/sound/direct_sound_samples/cries/hitmonchan.aif similarity index 100% rename from sound/direct_sound_samples/cry_hitmonchan.aif rename to sound/direct_sound_samples/cries/hitmonchan.aif diff --git a/sound/direct_sound_samples/cry_hitmonlee.aif b/sound/direct_sound_samples/cries/hitmonlee.aif similarity index 100% rename from sound/direct_sound_samples/cry_hitmonlee.aif rename to sound/direct_sound_samples/cries/hitmonlee.aif diff --git a/sound/direct_sound_samples/cry_hitmontop.aif b/sound/direct_sound_samples/cries/hitmontop.aif similarity index 100% rename from sound/direct_sound_samples/cry_hitmontop.aif rename to sound/direct_sound_samples/cries/hitmontop.aif diff --git a/sound/direct_sound_samples/cry_ho_oh.aif b/sound/direct_sound_samples/cries/ho_oh.aif similarity index 100% rename from sound/direct_sound_samples/cry_ho_oh.aif rename to sound/direct_sound_samples/cries/ho_oh.aif diff --git a/sound/direct_sound_samples/cry_hoothoot.aif b/sound/direct_sound_samples/cries/hoothoot.aif similarity index 100% rename from sound/direct_sound_samples/cry_hoothoot.aif rename to sound/direct_sound_samples/cries/hoothoot.aif diff --git a/sound/direct_sound_samples/cry_hoppip.aif b/sound/direct_sound_samples/cries/hoppip.aif similarity index 100% rename from sound/direct_sound_samples/cry_hoppip.aif rename to sound/direct_sound_samples/cries/hoppip.aif diff --git a/sound/direct_sound_samples/cry_horsea.aif b/sound/direct_sound_samples/cries/horsea.aif similarity index 100% rename from sound/direct_sound_samples/cry_horsea.aif rename to sound/direct_sound_samples/cries/horsea.aif diff --git a/sound/direct_sound_samples/cry_houndoom.aif b/sound/direct_sound_samples/cries/houndoom.aif similarity index 100% rename from sound/direct_sound_samples/cry_houndoom.aif rename to sound/direct_sound_samples/cries/houndoom.aif diff --git a/sound/direct_sound_samples/cry_houndour.aif b/sound/direct_sound_samples/cries/houndour.aif similarity index 100% rename from sound/direct_sound_samples/cry_houndour.aif rename to sound/direct_sound_samples/cries/houndour.aif diff --git a/sound/direct_sound_samples/cry_huntail.aif b/sound/direct_sound_samples/cries/huntail.aif similarity index 100% rename from sound/direct_sound_samples/cry_huntail.aif rename to sound/direct_sound_samples/cries/huntail.aif diff --git a/sound/direct_sound_samples/cry_hypno.aif b/sound/direct_sound_samples/cries/hypno.aif similarity index 100% rename from sound/direct_sound_samples/cry_hypno.aif rename to sound/direct_sound_samples/cries/hypno.aif diff --git a/sound/direct_sound_samples/cry_igglybuff.aif b/sound/direct_sound_samples/cries/igglybuff.aif similarity index 100% rename from sound/direct_sound_samples/cry_igglybuff.aif rename to sound/direct_sound_samples/cries/igglybuff.aif diff --git a/sound/direct_sound_samples/cry_illumise.aif b/sound/direct_sound_samples/cries/illumise.aif similarity index 100% rename from sound/direct_sound_samples/cry_illumise.aif rename to sound/direct_sound_samples/cries/illumise.aif diff --git a/sound/direct_sound_samples/cry_ivysaur.aif b/sound/direct_sound_samples/cries/ivysaur.aif similarity index 100% rename from sound/direct_sound_samples/cry_ivysaur.aif rename to sound/direct_sound_samples/cries/ivysaur.aif diff --git a/sound/direct_sound_samples/cry_jigglypuff.aif b/sound/direct_sound_samples/cries/jigglypuff.aif similarity index 100% rename from sound/direct_sound_samples/cry_jigglypuff.aif rename to sound/direct_sound_samples/cries/jigglypuff.aif diff --git a/sound/direct_sound_samples/cry_jirachi.aif b/sound/direct_sound_samples/cries/jirachi.aif similarity index 100% rename from sound/direct_sound_samples/cry_jirachi.aif rename to sound/direct_sound_samples/cries/jirachi.aif diff --git a/sound/direct_sound_samples/cry_jolteon.aif b/sound/direct_sound_samples/cries/jolteon.aif similarity index 100% rename from sound/direct_sound_samples/cry_jolteon.aif rename to sound/direct_sound_samples/cries/jolteon.aif diff --git a/sound/direct_sound_samples/cry_jumpluff.aif b/sound/direct_sound_samples/cries/jumpluff.aif similarity index 100% rename from sound/direct_sound_samples/cry_jumpluff.aif rename to sound/direct_sound_samples/cries/jumpluff.aif diff --git a/sound/direct_sound_samples/cry_jynx.aif b/sound/direct_sound_samples/cries/jynx.aif similarity index 100% rename from sound/direct_sound_samples/cry_jynx.aif rename to sound/direct_sound_samples/cries/jynx.aif diff --git a/sound/direct_sound_samples/cry_kabuto.aif b/sound/direct_sound_samples/cries/kabuto.aif similarity index 100% rename from sound/direct_sound_samples/cry_kabuto.aif rename to sound/direct_sound_samples/cries/kabuto.aif diff --git a/sound/direct_sound_samples/cry_kabutops.aif b/sound/direct_sound_samples/cries/kabutops.aif similarity index 100% rename from sound/direct_sound_samples/cry_kabutops.aif rename to sound/direct_sound_samples/cries/kabutops.aif diff --git a/sound/direct_sound_samples/cry_kadabra.aif b/sound/direct_sound_samples/cries/kadabra.aif similarity index 100% rename from sound/direct_sound_samples/cry_kadabra.aif rename to sound/direct_sound_samples/cries/kadabra.aif diff --git a/sound/direct_sound_samples/cry_kakuna.aif b/sound/direct_sound_samples/cries/kakuna.aif similarity index 100% rename from sound/direct_sound_samples/cry_kakuna.aif rename to sound/direct_sound_samples/cries/kakuna.aif diff --git a/sound/direct_sound_samples/cry_kangaskhan.aif b/sound/direct_sound_samples/cries/kangaskhan.aif similarity index 100% rename from sound/direct_sound_samples/cry_kangaskhan.aif rename to sound/direct_sound_samples/cries/kangaskhan.aif diff --git a/sound/direct_sound_samples/cry_kecleon.aif b/sound/direct_sound_samples/cries/kecleon.aif similarity index 100% rename from sound/direct_sound_samples/cry_kecleon.aif rename to sound/direct_sound_samples/cries/kecleon.aif diff --git a/sound/direct_sound_samples/cry_kingdra.aif b/sound/direct_sound_samples/cries/kingdra.aif similarity index 100% rename from sound/direct_sound_samples/cry_kingdra.aif rename to sound/direct_sound_samples/cries/kingdra.aif diff --git a/sound/direct_sound_samples/cry_kingler.aif b/sound/direct_sound_samples/cries/kingler.aif similarity index 100% rename from sound/direct_sound_samples/cry_kingler.aif rename to sound/direct_sound_samples/cries/kingler.aif diff --git a/sound/direct_sound_samples/cry_kirlia.aif b/sound/direct_sound_samples/cries/kirlia.aif similarity index 100% rename from sound/direct_sound_samples/cry_kirlia.aif rename to sound/direct_sound_samples/cries/kirlia.aif diff --git a/sound/direct_sound_samples/cry_koffing.aif b/sound/direct_sound_samples/cries/koffing.aif similarity index 100% rename from sound/direct_sound_samples/cry_koffing.aif rename to sound/direct_sound_samples/cries/koffing.aif diff --git a/sound/direct_sound_samples/cry_krabby.aif b/sound/direct_sound_samples/cries/krabby.aif similarity index 100% rename from sound/direct_sound_samples/cry_krabby.aif rename to sound/direct_sound_samples/cries/krabby.aif diff --git a/sound/direct_sound_samples/cry_kyogre.aif b/sound/direct_sound_samples/cries/kyogre.aif similarity index 100% rename from sound/direct_sound_samples/cry_kyogre.aif rename to sound/direct_sound_samples/cries/kyogre.aif diff --git a/sound/direct_sound_samples/cry_lairon.aif b/sound/direct_sound_samples/cries/lairon.aif similarity index 100% rename from sound/direct_sound_samples/cry_lairon.aif rename to sound/direct_sound_samples/cries/lairon.aif diff --git a/sound/direct_sound_samples/cry_lanturn.aif b/sound/direct_sound_samples/cries/lanturn.aif similarity index 100% rename from sound/direct_sound_samples/cry_lanturn.aif rename to sound/direct_sound_samples/cries/lanturn.aif diff --git a/sound/direct_sound_samples/cry_lapras.aif b/sound/direct_sound_samples/cries/lapras.aif similarity index 100% rename from sound/direct_sound_samples/cry_lapras.aif rename to sound/direct_sound_samples/cries/lapras.aif diff --git a/sound/direct_sound_samples/cry_larvitar.aif b/sound/direct_sound_samples/cries/larvitar.aif similarity index 100% rename from sound/direct_sound_samples/cry_larvitar.aif rename to sound/direct_sound_samples/cries/larvitar.aif diff --git a/sound/direct_sound_samples/cry_latias.aif b/sound/direct_sound_samples/cries/latias.aif similarity index 100% rename from sound/direct_sound_samples/cry_latias.aif rename to sound/direct_sound_samples/cries/latias.aif diff --git a/sound/direct_sound_samples/cry_latios.aif b/sound/direct_sound_samples/cries/latios.aif similarity index 100% rename from sound/direct_sound_samples/cry_latios.aif rename to sound/direct_sound_samples/cries/latios.aif diff --git a/sound/direct_sound_samples/cry_ledian.aif b/sound/direct_sound_samples/cries/ledian.aif similarity index 100% rename from sound/direct_sound_samples/cry_ledian.aif rename to sound/direct_sound_samples/cries/ledian.aif diff --git a/sound/direct_sound_samples/cry_ledyba.aif b/sound/direct_sound_samples/cries/ledyba.aif similarity index 100% rename from sound/direct_sound_samples/cry_ledyba.aif rename to sound/direct_sound_samples/cries/ledyba.aif diff --git a/sound/direct_sound_samples/cry_lickitung.aif b/sound/direct_sound_samples/cries/lickitung.aif similarity index 100% rename from sound/direct_sound_samples/cry_lickitung.aif rename to sound/direct_sound_samples/cries/lickitung.aif diff --git a/sound/direct_sound_samples/cry_lileep.aif b/sound/direct_sound_samples/cries/lileep.aif similarity index 100% rename from sound/direct_sound_samples/cry_lileep.aif rename to sound/direct_sound_samples/cries/lileep.aif diff --git a/sound/direct_sound_samples/cry_linoone.aif b/sound/direct_sound_samples/cries/linoone.aif similarity index 100% rename from sound/direct_sound_samples/cry_linoone.aif rename to sound/direct_sound_samples/cries/linoone.aif diff --git a/sound/direct_sound_samples/cry_lombre.aif b/sound/direct_sound_samples/cries/lombre.aif similarity index 100% rename from sound/direct_sound_samples/cry_lombre.aif rename to sound/direct_sound_samples/cries/lombre.aif diff --git a/sound/direct_sound_samples/cry_lotad.aif b/sound/direct_sound_samples/cries/lotad.aif similarity index 100% rename from sound/direct_sound_samples/cry_lotad.aif rename to sound/direct_sound_samples/cries/lotad.aif diff --git a/sound/direct_sound_samples/cry_loudred.aif b/sound/direct_sound_samples/cries/loudred.aif similarity index 100% rename from sound/direct_sound_samples/cry_loudred.aif rename to sound/direct_sound_samples/cries/loudred.aif diff --git a/sound/direct_sound_samples/cry_ludicolo.aif b/sound/direct_sound_samples/cries/ludicolo.aif similarity index 100% rename from sound/direct_sound_samples/cry_ludicolo.aif rename to sound/direct_sound_samples/cries/ludicolo.aif diff --git a/sound/direct_sound_samples/cry_lugia.aif b/sound/direct_sound_samples/cries/lugia.aif similarity index 100% rename from sound/direct_sound_samples/cry_lugia.aif rename to sound/direct_sound_samples/cries/lugia.aif diff --git a/sound/direct_sound_samples/cry_lunatone.aif b/sound/direct_sound_samples/cries/lunatone.aif similarity index 100% rename from sound/direct_sound_samples/cry_lunatone.aif rename to sound/direct_sound_samples/cries/lunatone.aif diff --git a/sound/direct_sound_samples/cry_luvdisc.aif b/sound/direct_sound_samples/cries/luvdisc.aif similarity index 100% rename from sound/direct_sound_samples/cry_luvdisc.aif rename to sound/direct_sound_samples/cries/luvdisc.aif diff --git a/sound/direct_sound_samples/cry_machamp.aif b/sound/direct_sound_samples/cries/machamp.aif similarity index 100% rename from sound/direct_sound_samples/cry_machamp.aif rename to sound/direct_sound_samples/cries/machamp.aif diff --git a/sound/direct_sound_samples/cry_machoke.aif b/sound/direct_sound_samples/cries/machoke.aif similarity index 100% rename from sound/direct_sound_samples/cry_machoke.aif rename to sound/direct_sound_samples/cries/machoke.aif diff --git a/sound/direct_sound_samples/cry_machop.aif b/sound/direct_sound_samples/cries/machop.aif similarity index 100% rename from sound/direct_sound_samples/cry_machop.aif rename to sound/direct_sound_samples/cries/machop.aif diff --git a/sound/direct_sound_samples/cry_magby.aif b/sound/direct_sound_samples/cries/magby.aif similarity index 100% rename from sound/direct_sound_samples/cry_magby.aif rename to sound/direct_sound_samples/cries/magby.aif diff --git a/sound/direct_sound_samples/cry_magcargo.aif b/sound/direct_sound_samples/cries/magcargo.aif similarity index 100% rename from sound/direct_sound_samples/cry_magcargo.aif rename to sound/direct_sound_samples/cries/magcargo.aif diff --git a/sound/direct_sound_samples/cry_magikarp.aif b/sound/direct_sound_samples/cries/magikarp.aif similarity index 100% rename from sound/direct_sound_samples/cry_magikarp.aif rename to sound/direct_sound_samples/cries/magikarp.aif diff --git a/sound/direct_sound_samples/cry_magmar.aif b/sound/direct_sound_samples/cries/magmar.aif similarity index 100% rename from sound/direct_sound_samples/cry_magmar.aif rename to sound/direct_sound_samples/cries/magmar.aif diff --git a/sound/direct_sound_samples/cry_magnemite.aif b/sound/direct_sound_samples/cries/magnemite.aif similarity index 100% rename from sound/direct_sound_samples/cry_magnemite.aif rename to sound/direct_sound_samples/cries/magnemite.aif diff --git a/sound/direct_sound_samples/cry_magneton.aif b/sound/direct_sound_samples/cries/magneton.aif similarity index 100% rename from sound/direct_sound_samples/cry_magneton.aif rename to sound/direct_sound_samples/cries/magneton.aif diff --git a/sound/direct_sound_samples/cry_makuhita.aif b/sound/direct_sound_samples/cries/makuhita.aif similarity index 100% rename from sound/direct_sound_samples/cry_makuhita.aif rename to sound/direct_sound_samples/cries/makuhita.aif diff --git a/sound/direct_sound_samples/cry_manectric.aif b/sound/direct_sound_samples/cries/manectric.aif similarity index 100% rename from sound/direct_sound_samples/cry_manectric.aif rename to sound/direct_sound_samples/cries/manectric.aif diff --git a/sound/direct_sound_samples/cry_mankey.aif b/sound/direct_sound_samples/cries/mankey.aif similarity index 100% rename from sound/direct_sound_samples/cry_mankey.aif rename to sound/direct_sound_samples/cries/mankey.aif diff --git a/sound/direct_sound_samples/cry_mantine.aif b/sound/direct_sound_samples/cries/mantine.aif similarity index 100% rename from sound/direct_sound_samples/cry_mantine.aif rename to sound/direct_sound_samples/cries/mantine.aif diff --git a/sound/direct_sound_samples/cry_mareep.aif b/sound/direct_sound_samples/cries/mareep.aif similarity index 100% rename from sound/direct_sound_samples/cry_mareep.aif rename to sound/direct_sound_samples/cries/mareep.aif diff --git a/sound/direct_sound_samples/cry_marill.aif b/sound/direct_sound_samples/cries/marill.aif similarity index 100% rename from sound/direct_sound_samples/cry_marill.aif rename to sound/direct_sound_samples/cries/marill.aif diff --git a/sound/direct_sound_samples/cry_marowak.aif b/sound/direct_sound_samples/cries/marowak.aif similarity index 100% rename from sound/direct_sound_samples/cry_marowak.aif rename to sound/direct_sound_samples/cries/marowak.aif diff --git a/sound/direct_sound_samples/cry_marshtomp.aif b/sound/direct_sound_samples/cries/marshtomp.aif similarity index 100% rename from sound/direct_sound_samples/cry_marshtomp.aif rename to sound/direct_sound_samples/cries/marshtomp.aif diff --git a/sound/direct_sound_samples/cry_masquerain.aif b/sound/direct_sound_samples/cries/masquerain.aif similarity index 100% rename from sound/direct_sound_samples/cry_masquerain.aif rename to sound/direct_sound_samples/cries/masquerain.aif diff --git a/sound/direct_sound_samples/cry_mawile.aif b/sound/direct_sound_samples/cries/mawile.aif similarity index 100% rename from sound/direct_sound_samples/cry_mawile.aif rename to sound/direct_sound_samples/cries/mawile.aif diff --git a/sound/direct_sound_samples/cry_medicham.aif b/sound/direct_sound_samples/cries/medicham.aif similarity index 100% rename from sound/direct_sound_samples/cry_medicham.aif rename to sound/direct_sound_samples/cries/medicham.aif diff --git a/sound/direct_sound_samples/cry_meditite.aif b/sound/direct_sound_samples/cries/meditite.aif similarity index 100% rename from sound/direct_sound_samples/cry_meditite.aif rename to sound/direct_sound_samples/cries/meditite.aif diff --git a/sound/direct_sound_samples/cry_meganium.aif b/sound/direct_sound_samples/cries/meganium.aif similarity index 100% rename from sound/direct_sound_samples/cry_meganium.aif rename to sound/direct_sound_samples/cries/meganium.aif diff --git a/sound/direct_sound_samples/cry_meowth.aif b/sound/direct_sound_samples/cries/meowth.aif similarity index 100% rename from sound/direct_sound_samples/cry_meowth.aif rename to sound/direct_sound_samples/cries/meowth.aif diff --git a/sound/direct_sound_samples/cry_metagross.aif b/sound/direct_sound_samples/cries/metagross.aif similarity index 100% rename from sound/direct_sound_samples/cry_metagross.aif rename to sound/direct_sound_samples/cries/metagross.aif diff --git a/sound/direct_sound_samples/cry_metang.aif b/sound/direct_sound_samples/cries/metang.aif similarity index 100% rename from sound/direct_sound_samples/cry_metang.aif rename to sound/direct_sound_samples/cries/metang.aif diff --git a/sound/direct_sound_samples/cry_metapod.aif b/sound/direct_sound_samples/cries/metapod.aif similarity index 100% rename from sound/direct_sound_samples/cry_metapod.aif rename to sound/direct_sound_samples/cries/metapod.aif diff --git a/sound/direct_sound_samples/cry_mew.aif b/sound/direct_sound_samples/cries/mew.aif similarity index 100% rename from sound/direct_sound_samples/cry_mew.aif rename to sound/direct_sound_samples/cries/mew.aif diff --git a/sound/direct_sound_samples/cry_mewtwo.aif b/sound/direct_sound_samples/cries/mewtwo.aif similarity index 100% rename from sound/direct_sound_samples/cry_mewtwo.aif rename to sound/direct_sound_samples/cries/mewtwo.aif diff --git a/sound/direct_sound_samples/cry_mightyena.aif b/sound/direct_sound_samples/cries/mightyena.aif similarity index 100% rename from sound/direct_sound_samples/cry_mightyena.aif rename to sound/direct_sound_samples/cries/mightyena.aif diff --git a/sound/direct_sound_samples/cry_milotic.aif b/sound/direct_sound_samples/cries/milotic.aif similarity index 100% rename from sound/direct_sound_samples/cry_milotic.aif rename to sound/direct_sound_samples/cries/milotic.aif diff --git a/sound/direct_sound_samples/cry_miltank.aif b/sound/direct_sound_samples/cries/miltank.aif similarity index 100% rename from sound/direct_sound_samples/cry_miltank.aif rename to sound/direct_sound_samples/cries/miltank.aif diff --git a/sound/direct_sound_samples/cry_minun.aif b/sound/direct_sound_samples/cries/minun.aif similarity index 100% rename from sound/direct_sound_samples/cry_minun.aif rename to sound/direct_sound_samples/cries/minun.aif diff --git a/sound/direct_sound_samples/cry_misdreavus.aif b/sound/direct_sound_samples/cries/misdreavus.aif similarity index 100% rename from sound/direct_sound_samples/cry_misdreavus.aif rename to sound/direct_sound_samples/cries/misdreavus.aif diff --git a/sound/direct_sound_samples/cry_moltres.aif b/sound/direct_sound_samples/cries/moltres.aif similarity index 100% rename from sound/direct_sound_samples/cry_moltres.aif rename to sound/direct_sound_samples/cries/moltres.aif diff --git a/sound/direct_sound_samples/cry_mr_mime.aif b/sound/direct_sound_samples/cries/mr_mime.aif similarity index 100% rename from sound/direct_sound_samples/cry_mr_mime.aif rename to sound/direct_sound_samples/cries/mr_mime.aif diff --git a/sound/direct_sound_samples/cry_mudkip.aif b/sound/direct_sound_samples/cries/mudkip.aif similarity index 100% rename from sound/direct_sound_samples/cry_mudkip.aif rename to sound/direct_sound_samples/cries/mudkip.aif diff --git a/sound/direct_sound_samples/cry_muk.aif b/sound/direct_sound_samples/cries/muk.aif similarity index 100% rename from sound/direct_sound_samples/cry_muk.aif rename to sound/direct_sound_samples/cries/muk.aif diff --git a/sound/direct_sound_samples/cry_murkrow.aif b/sound/direct_sound_samples/cries/murkrow.aif similarity index 100% rename from sound/direct_sound_samples/cry_murkrow.aif rename to sound/direct_sound_samples/cries/murkrow.aif diff --git a/sound/direct_sound_samples/cry_natu.aif b/sound/direct_sound_samples/cries/natu.aif similarity index 100% rename from sound/direct_sound_samples/cry_natu.aif rename to sound/direct_sound_samples/cries/natu.aif diff --git a/sound/direct_sound_samples/cry_nidoking.aif b/sound/direct_sound_samples/cries/nidoking.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoking.aif rename to sound/direct_sound_samples/cries/nidoking.aif diff --git a/sound/direct_sound_samples/cry_nidoqueen.aif b/sound/direct_sound_samples/cries/nidoqueen.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoqueen.aif rename to sound/direct_sound_samples/cries/nidoqueen.aif diff --git a/sound/direct_sound_samples/cry_nidoran_f.aif b/sound/direct_sound_samples/cries/nidoran_f.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoran_f.aif rename to sound/direct_sound_samples/cries/nidoran_f.aif diff --git a/sound/direct_sound_samples/cry_nidoran_m.aif b/sound/direct_sound_samples/cries/nidoran_m.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoran_m.aif rename to sound/direct_sound_samples/cries/nidoran_m.aif diff --git a/sound/direct_sound_samples/cry_nidorina.aif b/sound/direct_sound_samples/cries/nidorina.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidorina.aif rename to sound/direct_sound_samples/cries/nidorina.aif diff --git a/sound/direct_sound_samples/cry_nidorino.aif b/sound/direct_sound_samples/cries/nidorino.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidorino.aif rename to sound/direct_sound_samples/cries/nidorino.aif diff --git a/sound/direct_sound_samples/cry_nincada.aif b/sound/direct_sound_samples/cries/nincada.aif similarity index 100% rename from sound/direct_sound_samples/cry_nincada.aif rename to sound/direct_sound_samples/cries/nincada.aif diff --git a/sound/direct_sound_samples/cry_ninetales.aif b/sound/direct_sound_samples/cries/ninetales.aif similarity index 100% rename from sound/direct_sound_samples/cry_ninetales.aif rename to sound/direct_sound_samples/cries/ninetales.aif diff --git a/sound/direct_sound_samples/cry_ninjask.aif b/sound/direct_sound_samples/cries/ninjask.aif similarity index 100% rename from sound/direct_sound_samples/cry_ninjask.aif rename to sound/direct_sound_samples/cries/ninjask.aif diff --git a/sound/direct_sound_samples/cry_noctowl.aif b/sound/direct_sound_samples/cries/noctowl.aif similarity index 100% rename from sound/direct_sound_samples/cry_noctowl.aif rename to sound/direct_sound_samples/cries/noctowl.aif diff --git a/sound/direct_sound_samples/cry_nosepass.aif b/sound/direct_sound_samples/cries/nosepass.aif similarity index 100% rename from sound/direct_sound_samples/cry_nosepass.aif rename to sound/direct_sound_samples/cries/nosepass.aif diff --git a/sound/direct_sound_samples/cry_numel.aif b/sound/direct_sound_samples/cries/numel.aif similarity index 100% rename from sound/direct_sound_samples/cry_numel.aif rename to sound/direct_sound_samples/cries/numel.aif diff --git a/sound/direct_sound_samples/cry_nuzleaf.aif b/sound/direct_sound_samples/cries/nuzleaf.aif similarity index 100% rename from sound/direct_sound_samples/cry_nuzleaf.aif rename to sound/direct_sound_samples/cries/nuzleaf.aif diff --git a/sound/direct_sound_samples/cry_octillery.aif b/sound/direct_sound_samples/cries/octillery.aif similarity index 100% rename from sound/direct_sound_samples/cry_octillery.aif rename to sound/direct_sound_samples/cries/octillery.aif diff --git a/sound/direct_sound_samples/cry_oddish.aif b/sound/direct_sound_samples/cries/oddish.aif similarity index 100% rename from sound/direct_sound_samples/cry_oddish.aif rename to sound/direct_sound_samples/cries/oddish.aif diff --git a/sound/direct_sound_samples/cry_omanyte.aif b/sound/direct_sound_samples/cries/omanyte.aif similarity index 100% rename from sound/direct_sound_samples/cry_omanyte.aif rename to sound/direct_sound_samples/cries/omanyte.aif diff --git a/sound/direct_sound_samples/cry_omastar.aif b/sound/direct_sound_samples/cries/omastar.aif similarity index 100% rename from sound/direct_sound_samples/cry_omastar.aif rename to sound/direct_sound_samples/cries/omastar.aif diff --git a/sound/direct_sound_samples/cry_onix.aif b/sound/direct_sound_samples/cries/onix.aif similarity index 100% rename from sound/direct_sound_samples/cry_onix.aif rename to sound/direct_sound_samples/cries/onix.aif diff --git a/sound/direct_sound_samples/cry_paras.aif b/sound/direct_sound_samples/cries/paras.aif similarity index 100% rename from sound/direct_sound_samples/cry_paras.aif rename to sound/direct_sound_samples/cries/paras.aif diff --git a/sound/direct_sound_samples/cry_parasect.aif b/sound/direct_sound_samples/cries/parasect.aif similarity index 100% rename from sound/direct_sound_samples/cry_parasect.aif rename to sound/direct_sound_samples/cries/parasect.aif diff --git a/sound/direct_sound_samples/cry_pelipper.aif b/sound/direct_sound_samples/cries/pelipper.aif similarity index 100% rename from sound/direct_sound_samples/cry_pelipper.aif rename to sound/direct_sound_samples/cries/pelipper.aif diff --git a/sound/direct_sound_samples/cry_persian.aif b/sound/direct_sound_samples/cries/persian.aif similarity index 100% rename from sound/direct_sound_samples/cry_persian.aif rename to sound/direct_sound_samples/cries/persian.aif diff --git a/sound/direct_sound_samples/cry_phanpy.aif b/sound/direct_sound_samples/cries/phanpy.aif similarity index 100% rename from sound/direct_sound_samples/cry_phanpy.aif rename to sound/direct_sound_samples/cries/phanpy.aif diff --git a/sound/direct_sound_samples/cry_pichu.aif b/sound/direct_sound_samples/cries/pichu.aif similarity index 100% rename from sound/direct_sound_samples/cry_pichu.aif rename to sound/direct_sound_samples/cries/pichu.aif diff --git a/sound/direct_sound_samples/cry_pidgeot.aif b/sound/direct_sound_samples/cries/pidgeot.aif similarity index 100% rename from sound/direct_sound_samples/cry_pidgeot.aif rename to sound/direct_sound_samples/cries/pidgeot.aif diff --git a/sound/direct_sound_samples/cry_pidgeotto.aif b/sound/direct_sound_samples/cries/pidgeotto.aif similarity index 100% rename from sound/direct_sound_samples/cry_pidgeotto.aif rename to sound/direct_sound_samples/cries/pidgeotto.aif diff --git a/sound/direct_sound_samples/cry_pidgey.aif b/sound/direct_sound_samples/cries/pidgey.aif similarity index 100% rename from sound/direct_sound_samples/cry_pidgey.aif rename to sound/direct_sound_samples/cries/pidgey.aif diff --git a/sound/direct_sound_samples/cry_pikachu.aif b/sound/direct_sound_samples/cries/pikachu.aif similarity index 100% rename from sound/direct_sound_samples/cry_pikachu.aif rename to sound/direct_sound_samples/cries/pikachu.aif diff --git a/sound/direct_sound_samples/cry_piloswine.aif b/sound/direct_sound_samples/cries/piloswine.aif similarity index 100% rename from sound/direct_sound_samples/cry_piloswine.aif rename to sound/direct_sound_samples/cries/piloswine.aif diff --git a/sound/direct_sound_samples/cry_pineco.aif b/sound/direct_sound_samples/cries/pineco.aif similarity index 100% rename from sound/direct_sound_samples/cry_pineco.aif rename to sound/direct_sound_samples/cries/pineco.aif diff --git a/sound/direct_sound_samples/cry_pinsir.aif b/sound/direct_sound_samples/cries/pinsir.aif similarity index 100% rename from sound/direct_sound_samples/cry_pinsir.aif rename to sound/direct_sound_samples/cries/pinsir.aif diff --git a/sound/direct_sound_samples/cry_plusle.aif b/sound/direct_sound_samples/cries/plusle.aif similarity index 100% rename from sound/direct_sound_samples/cry_plusle.aif rename to sound/direct_sound_samples/cries/plusle.aif diff --git a/sound/direct_sound_samples/cry_politoed.aif b/sound/direct_sound_samples/cries/politoed.aif similarity index 100% rename from sound/direct_sound_samples/cry_politoed.aif rename to sound/direct_sound_samples/cries/politoed.aif diff --git a/sound/direct_sound_samples/cry_poliwag.aif b/sound/direct_sound_samples/cries/poliwag.aif similarity index 100% rename from sound/direct_sound_samples/cry_poliwag.aif rename to sound/direct_sound_samples/cries/poliwag.aif diff --git a/sound/direct_sound_samples/cry_poliwhirl.aif b/sound/direct_sound_samples/cries/poliwhirl.aif similarity index 100% rename from sound/direct_sound_samples/cry_poliwhirl.aif rename to sound/direct_sound_samples/cries/poliwhirl.aif diff --git a/sound/direct_sound_samples/cry_poliwrath.aif b/sound/direct_sound_samples/cries/poliwrath.aif similarity index 100% rename from sound/direct_sound_samples/cry_poliwrath.aif rename to sound/direct_sound_samples/cries/poliwrath.aif diff --git a/sound/direct_sound_samples/cry_ponyta.aif b/sound/direct_sound_samples/cries/ponyta.aif similarity index 100% rename from sound/direct_sound_samples/cry_ponyta.aif rename to sound/direct_sound_samples/cries/ponyta.aif diff --git a/sound/direct_sound_samples/cry_poochyena.aif b/sound/direct_sound_samples/cries/poochyena.aif similarity index 100% rename from sound/direct_sound_samples/cry_poochyena.aif rename to sound/direct_sound_samples/cries/poochyena.aif diff --git a/sound/direct_sound_samples/cry_porygon.aif b/sound/direct_sound_samples/cries/porygon.aif similarity index 100% rename from sound/direct_sound_samples/cry_porygon.aif rename to sound/direct_sound_samples/cries/porygon.aif diff --git a/sound/direct_sound_samples/cry_porygon2.aif b/sound/direct_sound_samples/cries/porygon2.aif similarity index 100% rename from sound/direct_sound_samples/cry_porygon2.aif rename to sound/direct_sound_samples/cries/porygon2.aif diff --git a/sound/direct_sound_samples/cry_primeape.aif b/sound/direct_sound_samples/cries/primeape.aif similarity index 100% rename from sound/direct_sound_samples/cry_primeape.aif rename to sound/direct_sound_samples/cries/primeape.aif diff --git a/sound/direct_sound_samples/cry_psyduck.aif b/sound/direct_sound_samples/cries/psyduck.aif similarity index 100% rename from sound/direct_sound_samples/cry_psyduck.aif rename to sound/direct_sound_samples/cries/psyduck.aif diff --git a/sound/direct_sound_samples/cry_pupitar.aif b/sound/direct_sound_samples/cries/pupitar.aif similarity index 100% rename from sound/direct_sound_samples/cry_pupitar.aif rename to sound/direct_sound_samples/cries/pupitar.aif diff --git a/sound/direct_sound_samples/cry_quagsire.aif b/sound/direct_sound_samples/cries/quagsire.aif similarity index 100% rename from sound/direct_sound_samples/cry_quagsire.aif rename to sound/direct_sound_samples/cries/quagsire.aif diff --git a/sound/direct_sound_samples/cry_quilava.aif b/sound/direct_sound_samples/cries/quilava.aif similarity index 100% rename from sound/direct_sound_samples/cry_quilava.aif rename to sound/direct_sound_samples/cries/quilava.aif diff --git a/sound/direct_sound_samples/cry_qwilfish.aif b/sound/direct_sound_samples/cries/qwilfish.aif similarity index 100% rename from sound/direct_sound_samples/cry_qwilfish.aif rename to sound/direct_sound_samples/cries/qwilfish.aif diff --git a/sound/direct_sound_samples/cry_raichu.aif b/sound/direct_sound_samples/cries/raichu.aif similarity index 100% rename from sound/direct_sound_samples/cry_raichu.aif rename to sound/direct_sound_samples/cries/raichu.aif diff --git a/sound/direct_sound_samples/cry_raikou.aif b/sound/direct_sound_samples/cries/raikou.aif similarity index 100% rename from sound/direct_sound_samples/cry_raikou.aif rename to sound/direct_sound_samples/cries/raikou.aif diff --git a/sound/direct_sound_samples/cry_ralts.aif b/sound/direct_sound_samples/cries/ralts.aif similarity index 100% rename from sound/direct_sound_samples/cry_ralts.aif rename to sound/direct_sound_samples/cries/ralts.aif diff --git a/sound/direct_sound_samples/cry_rapidash.aif b/sound/direct_sound_samples/cries/rapidash.aif similarity index 100% rename from sound/direct_sound_samples/cry_rapidash.aif rename to sound/direct_sound_samples/cries/rapidash.aif diff --git a/sound/direct_sound_samples/cry_raticate.aif b/sound/direct_sound_samples/cries/raticate.aif similarity index 100% rename from sound/direct_sound_samples/cry_raticate.aif rename to sound/direct_sound_samples/cries/raticate.aif diff --git a/sound/direct_sound_samples/cry_rattata.aif b/sound/direct_sound_samples/cries/rattata.aif similarity index 100% rename from sound/direct_sound_samples/cry_rattata.aif rename to sound/direct_sound_samples/cries/rattata.aif diff --git a/sound/direct_sound_samples/cry_rayquaza.aif b/sound/direct_sound_samples/cries/rayquaza.aif similarity index 100% rename from sound/direct_sound_samples/cry_rayquaza.aif rename to sound/direct_sound_samples/cries/rayquaza.aif diff --git a/sound/direct_sound_samples/cry_regice.aif b/sound/direct_sound_samples/cries/regice.aif similarity index 100% rename from sound/direct_sound_samples/cry_regice.aif rename to sound/direct_sound_samples/cries/regice.aif diff --git a/sound/direct_sound_samples/cry_regirock.aif b/sound/direct_sound_samples/cries/regirock.aif similarity index 100% rename from sound/direct_sound_samples/cry_regirock.aif rename to sound/direct_sound_samples/cries/regirock.aif diff --git a/sound/direct_sound_samples/cry_registeel.aif b/sound/direct_sound_samples/cries/registeel.aif similarity index 100% rename from sound/direct_sound_samples/cry_registeel.aif rename to sound/direct_sound_samples/cries/registeel.aif diff --git a/sound/direct_sound_samples/cry_relicanth.aif b/sound/direct_sound_samples/cries/relicanth.aif similarity index 100% rename from sound/direct_sound_samples/cry_relicanth.aif rename to sound/direct_sound_samples/cries/relicanth.aif diff --git a/sound/direct_sound_samples/cry_remoraid.aif b/sound/direct_sound_samples/cries/remoraid.aif similarity index 100% rename from sound/direct_sound_samples/cry_remoraid.aif rename to sound/direct_sound_samples/cries/remoraid.aif diff --git a/sound/direct_sound_samples/cry_rhydon.aif b/sound/direct_sound_samples/cries/rhydon.aif similarity index 100% rename from sound/direct_sound_samples/cry_rhydon.aif rename to sound/direct_sound_samples/cries/rhydon.aif diff --git a/sound/direct_sound_samples/cry_rhyhorn.aif b/sound/direct_sound_samples/cries/rhyhorn.aif similarity index 100% rename from sound/direct_sound_samples/cry_rhyhorn.aif rename to sound/direct_sound_samples/cries/rhyhorn.aif diff --git a/sound/direct_sound_samples/cry_roselia.aif b/sound/direct_sound_samples/cries/roselia.aif similarity index 100% rename from sound/direct_sound_samples/cry_roselia.aif rename to sound/direct_sound_samples/cries/roselia.aif diff --git a/sound/direct_sound_samples/cry_sableye.aif b/sound/direct_sound_samples/cries/sableye.aif similarity index 100% rename from sound/direct_sound_samples/cry_sableye.aif rename to sound/direct_sound_samples/cries/sableye.aif diff --git a/sound/direct_sound_samples/cry_salamence.aif b/sound/direct_sound_samples/cries/salamence.aif similarity index 100% rename from sound/direct_sound_samples/cry_salamence.aif rename to sound/direct_sound_samples/cries/salamence.aif diff --git a/sound/direct_sound_samples/cry_sandshrew.aif b/sound/direct_sound_samples/cries/sandshrew.aif similarity index 100% rename from sound/direct_sound_samples/cry_sandshrew.aif rename to sound/direct_sound_samples/cries/sandshrew.aif diff --git a/sound/direct_sound_samples/cry_sandslash.aif b/sound/direct_sound_samples/cries/sandslash.aif similarity index 100% rename from sound/direct_sound_samples/cry_sandslash.aif rename to sound/direct_sound_samples/cries/sandslash.aif diff --git a/sound/direct_sound_samples/cry_sceptile.aif b/sound/direct_sound_samples/cries/sceptile.aif similarity index 100% rename from sound/direct_sound_samples/cry_sceptile.aif rename to sound/direct_sound_samples/cries/sceptile.aif diff --git a/sound/direct_sound_samples/cry_scizor.aif b/sound/direct_sound_samples/cries/scizor.aif similarity index 100% rename from sound/direct_sound_samples/cry_scizor.aif rename to sound/direct_sound_samples/cries/scizor.aif diff --git a/sound/direct_sound_samples/cry_scyther.aif b/sound/direct_sound_samples/cries/scyther.aif similarity index 100% rename from sound/direct_sound_samples/cry_scyther.aif rename to sound/direct_sound_samples/cries/scyther.aif diff --git a/sound/direct_sound_samples/cry_seadra.aif b/sound/direct_sound_samples/cries/seadra.aif similarity index 100% rename from sound/direct_sound_samples/cry_seadra.aif rename to sound/direct_sound_samples/cries/seadra.aif diff --git a/sound/direct_sound_samples/cry_seaking.aif b/sound/direct_sound_samples/cries/seaking.aif similarity index 100% rename from sound/direct_sound_samples/cry_seaking.aif rename to sound/direct_sound_samples/cries/seaking.aif diff --git a/sound/direct_sound_samples/cry_sealeo.aif b/sound/direct_sound_samples/cries/sealeo.aif similarity index 100% rename from sound/direct_sound_samples/cry_sealeo.aif rename to sound/direct_sound_samples/cries/sealeo.aif diff --git a/sound/direct_sound_samples/cry_seedot.aif b/sound/direct_sound_samples/cries/seedot.aif similarity index 100% rename from sound/direct_sound_samples/cry_seedot.aif rename to sound/direct_sound_samples/cries/seedot.aif diff --git a/sound/direct_sound_samples/cry_seel.aif b/sound/direct_sound_samples/cries/seel.aif similarity index 100% rename from sound/direct_sound_samples/cry_seel.aif rename to sound/direct_sound_samples/cries/seel.aif diff --git a/sound/direct_sound_samples/cry_sentret.aif b/sound/direct_sound_samples/cries/sentret.aif similarity index 100% rename from sound/direct_sound_samples/cry_sentret.aif rename to sound/direct_sound_samples/cries/sentret.aif diff --git a/sound/direct_sound_samples/cry_seviper.aif b/sound/direct_sound_samples/cries/seviper.aif similarity index 100% rename from sound/direct_sound_samples/cry_seviper.aif rename to sound/direct_sound_samples/cries/seviper.aif diff --git a/sound/direct_sound_samples/cry_sharpedo.aif b/sound/direct_sound_samples/cries/sharpedo.aif similarity index 100% rename from sound/direct_sound_samples/cry_sharpedo.aif rename to sound/direct_sound_samples/cries/sharpedo.aif diff --git a/sound/direct_sound_samples/cry_shedinja.aif b/sound/direct_sound_samples/cries/shedinja.aif similarity index 100% rename from sound/direct_sound_samples/cry_shedinja.aif rename to sound/direct_sound_samples/cries/shedinja.aif diff --git a/sound/direct_sound_samples/cry_shelgon.aif b/sound/direct_sound_samples/cries/shelgon.aif similarity index 100% rename from sound/direct_sound_samples/cry_shelgon.aif rename to sound/direct_sound_samples/cries/shelgon.aif diff --git a/sound/direct_sound_samples/cry_shellder.aif b/sound/direct_sound_samples/cries/shellder.aif similarity index 100% rename from sound/direct_sound_samples/cry_shellder.aif rename to sound/direct_sound_samples/cries/shellder.aif diff --git a/sound/direct_sound_samples/cry_shiftry.aif b/sound/direct_sound_samples/cries/shiftry.aif similarity index 100% rename from sound/direct_sound_samples/cry_shiftry.aif rename to sound/direct_sound_samples/cries/shiftry.aif diff --git a/sound/direct_sound_samples/cry_shroomish.aif b/sound/direct_sound_samples/cries/shroomish.aif similarity index 100% rename from sound/direct_sound_samples/cry_shroomish.aif rename to sound/direct_sound_samples/cries/shroomish.aif diff --git a/sound/direct_sound_samples/cry_shuckle.aif b/sound/direct_sound_samples/cries/shuckle.aif similarity index 100% rename from sound/direct_sound_samples/cry_shuckle.aif rename to sound/direct_sound_samples/cries/shuckle.aif diff --git a/sound/direct_sound_samples/cry_shuppet.aif b/sound/direct_sound_samples/cries/shuppet.aif similarity index 100% rename from sound/direct_sound_samples/cry_shuppet.aif rename to sound/direct_sound_samples/cries/shuppet.aif diff --git a/sound/direct_sound_samples/cry_silcoon.aif b/sound/direct_sound_samples/cries/silcoon.aif similarity index 100% rename from sound/direct_sound_samples/cry_silcoon.aif rename to sound/direct_sound_samples/cries/silcoon.aif diff --git a/sound/direct_sound_samples/cry_skarmory.aif b/sound/direct_sound_samples/cries/skarmory.aif similarity index 100% rename from sound/direct_sound_samples/cry_skarmory.aif rename to sound/direct_sound_samples/cries/skarmory.aif diff --git a/sound/direct_sound_samples/cry_skiploom.aif b/sound/direct_sound_samples/cries/skiploom.aif similarity index 100% rename from sound/direct_sound_samples/cry_skiploom.aif rename to sound/direct_sound_samples/cries/skiploom.aif diff --git a/sound/direct_sound_samples/cry_skitty.aif b/sound/direct_sound_samples/cries/skitty.aif similarity index 100% rename from sound/direct_sound_samples/cry_skitty.aif rename to sound/direct_sound_samples/cries/skitty.aif diff --git a/sound/direct_sound_samples/cry_slaking.aif b/sound/direct_sound_samples/cries/slaking.aif similarity index 100% rename from sound/direct_sound_samples/cry_slaking.aif rename to sound/direct_sound_samples/cries/slaking.aif diff --git a/sound/direct_sound_samples/cry_slakoth.aif b/sound/direct_sound_samples/cries/slakoth.aif similarity index 100% rename from sound/direct_sound_samples/cry_slakoth.aif rename to sound/direct_sound_samples/cries/slakoth.aif diff --git a/sound/direct_sound_samples/cry_slowbro.aif b/sound/direct_sound_samples/cries/slowbro.aif similarity index 100% rename from sound/direct_sound_samples/cry_slowbro.aif rename to sound/direct_sound_samples/cries/slowbro.aif diff --git a/sound/direct_sound_samples/cry_slowking.aif b/sound/direct_sound_samples/cries/slowking.aif similarity index 100% rename from sound/direct_sound_samples/cry_slowking.aif rename to sound/direct_sound_samples/cries/slowking.aif diff --git a/sound/direct_sound_samples/cry_slowpoke.aif b/sound/direct_sound_samples/cries/slowpoke.aif similarity index 100% rename from sound/direct_sound_samples/cry_slowpoke.aif rename to sound/direct_sound_samples/cries/slowpoke.aif diff --git a/sound/direct_sound_samples/cry_slugma.aif b/sound/direct_sound_samples/cries/slugma.aif similarity index 100% rename from sound/direct_sound_samples/cry_slugma.aif rename to sound/direct_sound_samples/cries/slugma.aif diff --git a/sound/direct_sound_samples/cry_smeargle.aif b/sound/direct_sound_samples/cries/smeargle.aif similarity index 100% rename from sound/direct_sound_samples/cry_smeargle.aif rename to sound/direct_sound_samples/cries/smeargle.aif diff --git a/sound/direct_sound_samples/cry_smoochum.aif b/sound/direct_sound_samples/cries/smoochum.aif similarity index 100% rename from sound/direct_sound_samples/cry_smoochum.aif rename to sound/direct_sound_samples/cries/smoochum.aif diff --git a/sound/direct_sound_samples/cry_sneasel.aif b/sound/direct_sound_samples/cries/sneasel.aif similarity index 100% rename from sound/direct_sound_samples/cry_sneasel.aif rename to sound/direct_sound_samples/cries/sneasel.aif diff --git a/sound/direct_sound_samples/cry_snorlax.aif b/sound/direct_sound_samples/cries/snorlax.aif similarity index 100% rename from sound/direct_sound_samples/cry_snorlax.aif rename to sound/direct_sound_samples/cries/snorlax.aif diff --git a/sound/direct_sound_samples/cry_snorunt.aif b/sound/direct_sound_samples/cries/snorunt.aif similarity index 100% rename from sound/direct_sound_samples/cry_snorunt.aif rename to sound/direct_sound_samples/cries/snorunt.aif diff --git a/sound/direct_sound_samples/cry_snubbull.aif b/sound/direct_sound_samples/cries/snubbull.aif similarity index 100% rename from sound/direct_sound_samples/cry_snubbull.aif rename to sound/direct_sound_samples/cries/snubbull.aif diff --git a/sound/direct_sound_samples/cry_solrock.aif b/sound/direct_sound_samples/cries/solrock.aif similarity index 100% rename from sound/direct_sound_samples/cry_solrock.aif rename to sound/direct_sound_samples/cries/solrock.aif diff --git a/sound/direct_sound_samples/cry_spearow.aif b/sound/direct_sound_samples/cries/spearow.aif similarity index 100% rename from sound/direct_sound_samples/cry_spearow.aif rename to sound/direct_sound_samples/cries/spearow.aif diff --git a/sound/direct_sound_samples/cry_spheal.aif b/sound/direct_sound_samples/cries/spheal.aif similarity index 100% rename from sound/direct_sound_samples/cry_spheal.aif rename to sound/direct_sound_samples/cries/spheal.aif diff --git a/sound/direct_sound_samples/cry_spinarak.aif b/sound/direct_sound_samples/cries/spinarak.aif similarity index 100% rename from sound/direct_sound_samples/cry_spinarak.aif rename to sound/direct_sound_samples/cries/spinarak.aif diff --git a/sound/direct_sound_samples/cry_spinda.aif b/sound/direct_sound_samples/cries/spinda.aif similarity index 100% rename from sound/direct_sound_samples/cry_spinda.aif rename to sound/direct_sound_samples/cries/spinda.aif diff --git a/sound/direct_sound_samples/cry_spoink.aif b/sound/direct_sound_samples/cries/spoink.aif similarity index 100% rename from sound/direct_sound_samples/cry_spoink.aif rename to sound/direct_sound_samples/cries/spoink.aif diff --git a/sound/direct_sound_samples/cry_squirtle.aif b/sound/direct_sound_samples/cries/squirtle.aif similarity index 100% rename from sound/direct_sound_samples/cry_squirtle.aif rename to sound/direct_sound_samples/cries/squirtle.aif diff --git a/sound/direct_sound_samples/cry_stantler.aif b/sound/direct_sound_samples/cries/stantler.aif similarity index 100% rename from sound/direct_sound_samples/cry_stantler.aif rename to sound/direct_sound_samples/cries/stantler.aif diff --git a/sound/direct_sound_samples/cry_starmie.aif b/sound/direct_sound_samples/cries/starmie.aif similarity index 100% rename from sound/direct_sound_samples/cry_starmie.aif rename to sound/direct_sound_samples/cries/starmie.aif diff --git a/sound/direct_sound_samples/cry_staryu.aif b/sound/direct_sound_samples/cries/staryu.aif similarity index 100% rename from sound/direct_sound_samples/cry_staryu.aif rename to sound/direct_sound_samples/cries/staryu.aif diff --git a/sound/direct_sound_samples/cry_steelix.aif b/sound/direct_sound_samples/cries/steelix.aif similarity index 100% rename from sound/direct_sound_samples/cry_steelix.aif rename to sound/direct_sound_samples/cries/steelix.aif diff --git a/sound/direct_sound_samples/cry_sudowoodo.aif b/sound/direct_sound_samples/cries/sudowoodo.aif similarity index 100% rename from sound/direct_sound_samples/cry_sudowoodo.aif rename to sound/direct_sound_samples/cries/sudowoodo.aif diff --git a/sound/direct_sound_samples/cry_suicune.aif b/sound/direct_sound_samples/cries/suicune.aif similarity index 100% rename from sound/direct_sound_samples/cry_suicune.aif rename to sound/direct_sound_samples/cries/suicune.aif diff --git a/sound/direct_sound_samples/cry_sunflora.aif b/sound/direct_sound_samples/cries/sunflora.aif similarity index 100% rename from sound/direct_sound_samples/cry_sunflora.aif rename to sound/direct_sound_samples/cries/sunflora.aif diff --git a/sound/direct_sound_samples/cry_sunkern.aif b/sound/direct_sound_samples/cries/sunkern.aif similarity index 100% rename from sound/direct_sound_samples/cry_sunkern.aif rename to sound/direct_sound_samples/cries/sunkern.aif diff --git a/sound/direct_sound_samples/cry_surskit.aif b/sound/direct_sound_samples/cries/surskit.aif similarity index 100% rename from sound/direct_sound_samples/cry_surskit.aif rename to sound/direct_sound_samples/cries/surskit.aif diff --git a/sound/direct_sound_samples/cry_swablu.aif b/sound/direct_sound_samples/cries/swablu.aif similarity index 100% rename from sound/direct_sound_samples/cry_swablu.aif rename to sound/direct_sound_samples/cries/swablu.aif diff --git a/sound/direct_sound_samples/cry_swalot.aif b/sound/direct_sound_samples/cries/swalot.aif similarity index 100% rename from sound/direct_sound_samples/cry_swalot.aif rename to sound/direct_sound_samples/cries/swalot.aif diff --git a/sound/direct_sound_samples/cry_swampert.aif b/sound/direct_sound_samples/cries/swampert.aif similarity index 100% rename from sound/direct_sound_samples/cry_swampert.aif rename to sound/direct_sound_samples/cries/swampert.aif diff --git a/sound/direct_sound_samples/cry_swellow.aif b/sound/direct_sound_samples/cries/swellow.aif similarity index 100% rename from sound/direct_sound_samples/cry_swellow.aif rename to sound/direct_sound_samples/cries/swellow.aif diff --git a/sound/direct_sound_samples/cry_swinub.aif b/sound/direct_sound_samples/cries/swinub.aif similarity index 100% rename from sound/direct_sound_samples/cry_swinub.aif rename to sound/direct_sound_samples/cries/swinub.aif diff --git a/sound/direct_sound_samples/cry_taillow.aif b/sound/direct_sound_samples/cries/taillow.aif similarity index 100% rename from sound/direct_sound_samples/cry_taillow.aif rename to sound/direct_sound_samples/cries/taillow.aif diff --git a/sound/direct_sound_samples/cry_tangela.aif b/sound/direct_sound_samples/cries/tangela.aif similarity index 100% rename from sound/direct_sound_samples/cry_tangela.aif rename to sound/direct_sound_samples/cries/tangela.aif diff --git a/sound/direct_sound_samples/cry_tauros.aif b/sound/direct_sound_samples/cries/tauros.aif similarity index 100% rename from sound/direct_sound_samples/cry_tauros.aif rename to sound/direct_sound_samples/cries/tauros.aif diff --git a/sound/direct_sound_samples/cry_teddiursa.aif b/sound/direct_sound_samples/cries/teddiursa.aif similarity index 100% rename from sound/direct_sound_samples/cry_teddiursa.aif rename to sound/direct_sound_samples/cries/teddiursa.aif diff --git a/sound/direct_sound_samples/cry_tentacool.aif b/sound/direct_sound_samples/cries/tentacool.aif similarity index 100% rename from sound/direct_sound_samples/cry_tentacool.aif rename to sound/direct_sound_samples/cries/tentacool.aif diff --git a/sound/direct_sound_samples/cry_tentacruel.aif b/sound/direct_sound_samples/cries/tentacruel.aif similarity index 100% rename from sound/direct_sound_samples/cry_tentacruel.aif rename to sound/direct_sound_samples/cries/tentacruel.aif diff --git a/sound/direct_sound_samples/cry_togepi.aif b/sound/direct_sound_samples/cries/togepi.aif similarity index 100% rename from sound/direct_sound_samples/cry_togepi.aif rename to sound/direct_sound_samples/cries/togepi.aif diff --git a/sound/direct_sound_samples/cry_togetic.aif b/sound/direct_sound_samples/cries/togetic.aif similarity index 100% rename from sound/direct_sound_samples/cry_togetic.aif rename to sound/direct_sound_samples/cries/togetic.aif diff --git a/sound/direct_sound_samples/cry_torchic.aif b/sound/direct_sound_samples/cries/torchic.aif similarity index 100% rename from sound/direct_sound_samples/cry_torchic.aif rename to sound/direct_sound_samples/cries/torchic.aif diff --git a/sound/direct_sound_samples/cry_torkoal.aif b/sound/direct_sound_samples/cries/torkoal.aif similarity index 100% rename from sound/direct_sound_samples/cry_torkoal.aif rename to sound/direct_sound_samples/cries/torkoal.aif diff --git a/sound/direct_sound_samples/cry_totodile.aif b/sound/direct_sound_samples/cries/totodile.aif similarity index 100% rename from sound/direct_sound_samples/cry_totodile.aif rename to sound/direct_sound_samples/cries/totodile.aif diff --git a/sound/direct_sound_samples/cry_trapinch.aif b/sound/direct_sound_samples/cries/trapinch.aif similarity index 100% rename from sound/direct_sound_samples/cry_trapinch.aif rename to sound/direct_sound_samples/cries/trapinch.aif diff --git a/sound/direct_sound_samples/cry_treecko.aif b/sound/direct_sound_samples/cries/treecko.aif similarity index 100% rename from sound/direct_sound_samples/cry_treecko.aif rename to sound/direct_sound_samples/cries/treecko.aif diff --git a/sound/direct_sound_samples/cry_tropius.aif b/sound/direct_sound_samples/cries/tropius.aif similarity index 100% rename from sound/direct_sound_samples/cry_tropius.aif rename to sound/direct_sound_samples/cries/tropius.aif diff --git a/sound/direct_sound_samples/cry_typhlosion.aif b/sound/direct_sound_samples/cries/typhlosion.aif similarity index 100% rename from sound/direct_sound_samples/cry_typhlosion.aif rename to sound/direct_sound_samples/cries/typhlosion.aif diff --git a/sound/direct_sound_samples/cry_tyranitar.aif b/sound/direct_sound_samples/cries/tyranitar.aif similarity index 100% rename from sound/direct_sound_samples/cry_tyranitar.aif rename to sound/direct_sound_samples/cries/tyranitar.aif diff --git a/sound/direct_sound_samples/cry_tyrogue.aif b/sound/direct_sound_samples/cries/tyrogue.aif similarity index 100% rename from sound/direct_sound_samples/cry_tyrogue.aif rename to sound/direct_sound_samples/cries/tyrogue.aif diff --git a/sound/direct_sound_samples/cry_umbreon.aif b/sound/direct_sound_samples/cries/umbreon.aif similarity index 100% rename from sound/direct_sound_samples/cry_umbreon.aif rename to sound/direct_sound_samples/cries/umbreon.aif diff --git a/sound/direct_sound_samples/cry_unown.aif b/sound/direct_sound_samples/cries/unown.aif similarity index 100% rename from sound/direct_sound_samples/cry_unown.aif rename to sound/direct_sound_samples/cries/unown.aif diff --git a/sound/direct_sound_samples/cry_unused_265.aif b/sound/direct_sound_samples/cries/unused_265.aif similarity index 100% rename from sound/direct_sound_samples/cry_unused_265.aif rename to sound/direct_sound_samples/cries/unused_265.aif diff --git a/sound/direct_sound_samples/cry_unused_268.aif b/sound/direct_sound_samples/cries/unused_268.aif similarity index 100% rename from sound/direct_sound_samples/cry_unused_268.aif rename to sound/direct_sound_samples/cries/unused_268.aif diff --git a/sound/direct_sound_samples/cry_ursaring.aif b/sound/direct_sound_samples/cries/ursaring.aif similarity index 100% rename from sound/direct_sound_samples/cry_ursaring.aif rename to sound/direct_sound_samples/cries/ursaring.aif diff --git a/sound/direct_sound_samples/cry_vaporeon.aif b/sound/direct_sound_samples/cries/vaporeon.aif similarity index 100% rename from sound/direct_sound_samples/cry_vaporeon.aif rename to sound/direct_sound_samples/cries/vaporeon.aif diff --git a/sound/direct_sound_samples/cry_venomoth.aif b/sound/direct_sound_samples/cries/venomoth.aif similarity index 100% rename from sound/direct_sound_samples/cry_venomoth.aif rename to sound/direct_sound_samples/cries/venomoth.aif diff --git a/sound/direct_sound_samples/cry_venonat.aif b/sound/direct_sound_samples/cries/venonat.aif similarity index 100% rename from sound/direct_sound_samples/cry_venonat.aif rename to sound/direct_sound_samples/cries/venonat.aif diff --git a/sound/direct_sound_samples/cry_venusaur.aif b/sound/direct_sound_samples/cries/venusaur.aif similarity index 100% rename from sound/direct_sound_samples/cry_venusaur.aif rename to sound/direct_sound_samples/cries/venusaur.aif diff --git a/sound/direct_sound_samples/cry_vibrava.aif b/sound/direct_sound_samples/cries/vibrava.aif similarity index 100% rename from sound/direct_sound_samples/cry_vibrava.aif rename to sound/direct_sound_samples/cries/vibrava.aif diff --git a/sound/direct_sound_samples/cry_victreebel.aif b/sound/direct_sound_samples/cries/victreebel.aif similarity index 100% rename from sound/direct_sound_samples/cry_victreebel.aif rename to sound/direct_sound_samples/cries/victreebel.aif diff --git a/sound/direct_sound_samples/cry_vigoroth.aif b/sound/direct_sound_samples/cries/vigoroth.aif similarity index 100% rename from sound/direct_sound_samples/cry_vigoroth.aif rename to sound/direct_sound_samples/cries/vigoroth.aif diff --git a/sound/direct_sound_samples/cry_vileplume.aif b/sound/direct_sound_samples/cries/vileplume.aif similarity index 100% rename from sound/direct_sound_samples/cry_vileplume.aif rename to sound/direct_sound_samples/cries/vileplume.aif diff --git a/sound/direct_sound_samples/cry_volbeat.aif b/sound/direct_sound_samples/cries/volbeat.aif similarity index 100% rename from sound/direct_sound_samples/cry_volbeat.aif rename to sound/direct_sound_samples/cries/volbeat.aif diff --git a/sound/direct_sound_samples/cry_voltorb.aif b/sound/direct_sound_samples/cries/voltorb.aif similarity index 100% rename from sound/direct_sound_samples/cry_voltorb.aif rename to sound/direct_sound_samples/cries/voltorb.aif diff --git a/sound/direct_sound_samples/cry_vulpix.aif b/sound/direct_sound_samples/cries/vulpix.aif similarity index 100% rename from sound/direct_sound_samples/cry_vulpix.aif rename to sound/direct_sound_samples/cries/vulpix.aif diff --git a/sound/direct_sound_samples/cry_wailmer.aif b/sound/direct_sound_samples/cries/wailmer.aif similarity index 100% rename from sound/direct_sound_samples/cry_wailmer.aif rename to sound/direct_sound_samples/cries/wailmer.aif diff --git a/sound/direct_sound_samples/cry_wailord.aif b/sound/direct_sound_samples/cries/wailord.aif similarity index 100% rename from sound/direct_sound_samples/cry_wailord.aif rename to sound/direct_sound_samples/cries/wailord.aif diff --git a/sound/direct_sound_samples/cry_walrein.aif b/sound/direct_sound_samples/cries/walrein.aif similarity index 100% rename from sound/direct_sound_samples/cry_walrein.aif rename to sound/direct_sound_samples/cries/walrein.aif diff --git a/sound/direct_sound_samples/cry_wartortle.aif b/sound/direct_sound_samples/cries/wartortle.aif similarity index 100% rename from sound/direct_sound_samples/cry_wartortle.aif rename to sound/direct_sound_samples/cries/wartortle.aif diff --git a/sound/direct_sound_samples/cry_weedle.aif b/sound/direct_sound_samples/cries/weedle.aif similarity index 100% rename from sound/direct_sound_samples/cry_weedle.aif rename to sound/direct_sound_samples/cries/weedle.aif diff --git a/sound/direct_sound_samples/cry_weepinbell.aif b/sound/direct_sound_samples/cries/weepinbell.aif similarity index 100% rename from sound/direct_sound_samples/cry_weepinbell.aif rename to sound/direct_sound_samples/cries/weepinbell.aif diff --git a/sound/direct_sound_samples/cry_weezing.aif b/sound/direct_sound_samples/cries/weezing.aif similarity index 100% rename from sound/direct_sound_samples/cry_weezing.aif rename to sound/direct_sound_samples/cries/weezing.aif diff --git a/sound/direct_sound_samples/cry_whiscash.aif b/sound/direct_sound_samples/cries/whiscash.aif similarity index 100% rename from sound/direct_sound_samples/cry_whiscash.aif rename to sound/direct_sound_samples/cries/whiscash.aif diff --git a/sound/direct_sound_samples/cry_whismur.aif b/sound/direct_sound_samples/cries/whismur.aif similarity index 100% rename from sound/direct_sound_samples/cry_whismur.aif rename to sound/direct_sound_samples/cries/whismur.aif diff --git a/sound/direct_sound_samples/cry_wigglytuff.aif b/sound/direct_sound_samples/cries/wigglytuff.aif similarity index 100% rename from sound/direct_sound_samples/cry_wigglytuff.aif rename to sound/direct_sound_samples/cries/wigglytuff.aif diff --git a/sound/direct_sound_samples/cry_wingull.aif b/sound/direct_sound_samples/cries/wingull.aif similarity index 100% rename from sound/direct_sound_samples/cry_wingull.aif rename to sound/direct_sound_samples/cries/wingull.aif diff --git a/sound/direct_sound_samples/cry_wobbuffet.aif b/sound/direct_sound_samples/cries/wobbuffet.aif similarity index 100% rename from sound/direct_sound_samples/cry_wobbuffet.aif rename to sound/direct_sound_samples/cries/wobbuffet.aif diff --git a/sound/direct_sound_samples/cry_wooper.aif b/sound/direct_sound_samples/cries/wooper.aif similarity index 100% rename from sound/direct_sound_samples/cry_wooper.aif rename to sound/direct_sound_samples/cries/wooper.aif diff --git a/sound/direct_sound_samples/cry_wurmple.aif b/sound/direct_sound_samples/cries/wurmple.aif similarity index 100% rename from sound/direct_sound_samples/cry_wurmple.aif rename to sound/direct_sound_samples/cries/wurmple.aif diff --git a/sound/direct_sound_samples/cry_wynaut.aif b/sound/direct_sound_samples/cries/wynaut.aif similarity index 100% rename from sound/direct_sound_samples/cry_wynaut.aif rename to sound/direct_sound_samples/cries/wynaut.aif diff --git a/sound/direct_sound_samples/cry_xatu.aif b/sound/direct_sound_samples/cries/xatu.aif similarity index 100% rename from sound/direct_sound_samples/cry_xatu.aif rename to sound/direct_sound_samples/cries/xatu.aif diff --git a/sound/direct_sound_samples/cry_yanma.aif b/sound/direct_sound_samples/cries/yanma.aif similarity index 100% rename from sound/direct_sound_samples/cry_yanma.aif rename to sound/direct_sound_samples/cries/yanma.aif diff --git a/sound/direct_sound_samples/cry_zangoose.aif b/sound/direct_sound_samples/cries/zangoose.aif similarity index 100% rename from sound/direct_sound_samples/cry_zangoose.aif rename to sound/direct_sound_samples/cries/zangoose.aif diff --git a/sound/direct_sound_samples/cry_zapdos.aif b/sound/direct_sound_samples/cries/zapdos.aif similarity index 100% rename from sound/direct_sound_samples/cry_zapdos.aif rename to sound/direct_sound_samples/cries/zapdos.aif diff --git a/sound/direct_sound_samples/cry_zigzagoon.aif b/sound/direct_sound_samples/cries/zigzagoon.aif similarity index 100% rename from sound/direct_sound_samples/cry_zigzagoon.aif rename to sound/direct_sound_samples/cries/zigzagoon.aif diff --git a/sound/direct_sound_samples/cry_zubat.aif b/sound/direct_sound_samples/cries/zubat.aif similarity index 100% rename from sound/direct_sound_samples/cry_zubat.aif rename to sound/direct_sound_samples/cries/zubat.aif diff --git a/sound/direct_sound_samples/cry_none.aif b/sound/direct_sound_samples/cry_none.aif deleted file mode 100644 index 44bb79c3cd1d0a210dc2814f8469ea8fe138f4aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8286 zcmb7JS8!WrcE0F^L?uXo9qgn?i4==Ss#%gP*@|Sjdp9#lW;f&Ahdk_4X7aeN*_~uI zle{EOX6)?RNwkiwwI#>0Y{@E?C`#-NEFcN6f(1nHE#LY73zA9pVRP>c3xIp?|DW@n z@B7ZdrPtnkRS@j&p1*wQ(u=RXioXT3AQ6P>xS&2)_|ZB1kK@(zZ(hN#LcGJ?lU=;_ z(&cM!y^Yr_rv>5XlAq%*dQZxKzV+6%mjuC%7y0owA7B6a?vv5kxfS>J{QJN8&u<@3 z&#mnELa|g%kVus(wML`S;=nJBTCG;8R7#~np^(evGMP+DhXhCdZhz=+dCwoe{&MfJ zh6p5rmA9-PA=rK$wZtMc>9E0lG;_oE-Ye72{puDaZ8Qrj+HJl)n@T|!aKV9}vq!0+4J z^Wxmw^ZERKgf|!pg~DM3GZu@-6F8E|R4SEDXXwb{$UpcG4jn~Il2NYw8t@sKUfT4B z<7q*z)@Ta~b$SCGdc97s(-rD8I5Xjfii#qO(NLh(AZRiv&YbOZ*O8h^i?L8Gm*ujV zbSjlhJ^ST9{N^Uza37Bf!Xu$kJPu(pk4iZMC1DZ=)^VW1mdh1#-PspT zb+!Q9v>%mHDglHtY3wPL+&}OSg1&#|qGeYuoIQ4=2G`&Ue4HT;siJIAzQU16G?Iv9 z?|uB`y@9d0m5t~Gfx*4Khfax zQ-^}#SE~E_fz2`oNFj%NvTf0Zuq7NU_R(ZC=eu$H!Lv!{I+Yf%EtSbxvOzk9MngUi zDy2$Rc;@_>qb+u}TvS{-o`@v;!sxI5je1@?MD_BBH_3P)TlFG&B@Dz$Mp^`z-q;cenhN3H0sq4m5DgrRp5CXihja#bw z|Ki7Qyway46o@s(Kb@@wPKrwfr^~hG+4TnQe|3Lwj;;wxyN)#0R+VkJwzl_z(HOB_ zjwnPeZ|-Y9)=*zCzltmTVNfC?7(iTevcCg7u!n-#z(sg&B1zTEs;j-R*6dz9c!w@R zWptkDZmq4!%x#s`RoA_&;sJ@qLb1*N`tE7s$craWm?svT>+4v>UN8^|$79X%u-_uz z@zKA;$b^oHbG^ron8rW+=+=5x3VDDy$YtGUz@VFsg=Lq2=;pUBlL`D(^X7&Ao(iXn z#~OEga(^({`r5U#CzI}VEZP^sYpB6kd22GMJ+>F5ZNyS+8$zz*a(_=l{n~;tWU4s`siswL(~J_A=WwiM&D`M=E!h10yL+P zC+wY(!sM>y;-xeF3D+9!Fo*(+O9G#Nxnb3JzWeG+-5qw9bJ2~rLJzM$3|Whc%qE@g z?8|3Q9%+dWxW+#C=b?(EagRcsbJFQrQ`b~h6cripnZb`gn}|kpskV+>G`am`biXvS zQq*S8PZ1uw@A=R)7iWewS$At|ZDW((pw|`zM;u5G0_Rh=5gF|)tgWW)cC4TzI5)qv zENiN&EHy4KI5#$Tb|Zn}{+8xys4cdl%M6W8QP8~s!hNi{?@v&(XS4Sn(jr(n(9@({ z-5qcLX`34E0j0;-722!nYi}*b!yNy14$>1y!nAUjj*& z&bn7<32+zT%p8hOd+McAy+!%gnBz!hGsm>aKyj%j?u&<^nRtOtWp5YK8TkCuPnV=J zdKN%07fR1`BQ2}gqi6ZEukHu1DV<)?0^GM%IA;U3Rh1TzX*1d3yTfV+D#XJKh3FN8 z(I?Bs^Yr<;;Ql&t(Z>(gONvX(MTT>AK*rX$xbLVz1}PRp2+*wqfATlTCK z1JpK4fnkTxZ?qUq-oc4+_oAL)#7ajYQS5&6d?-_5RSh^uBS##rHBn2HisDOu^|L>F zr(TGm<|g2uxLl_dCwe+tnhnNM1h7#3bZ~-;K)mH>TV1VY)=4$i1R5^3tdcgB5F=}; zpx7P44QG$F$Co_;FL*2XfaH{TH=4}m)Cl!^fBD|qSIXwu>+WsQ3rd9gSK43s@egfk zIjwheb`j|F`F(Mpy8q12e)7)M=6b=YLlKfb!FVQ#i}%dnwNjh<>0kfjzYKHi<()$t z3ddFvpPHWe`1%(!D#k@XqC%oQ1xl`|+?^zNeRcEOX{7;m4KkEBU!_!+%;1gH-JR&; zFYh_jHk$=*=Y?1Ly6cPkfA zk*WH+`&6sTag)mra*2c+$R7h|a6@P|p1=Rg_X&Q?x^RyMcPFF;|96juXe-f3wjGsC z?q7tg>)WB>MdxlMUeqtT7bOP_`}F(aakop}!@L4Y(K|RdtHGruO2(Ps=)8;2DwR^{ z_}JK1VtRdj&zm{cPF2NxFy4_tre%-*{@0W89+P(p$XG^~5ml-Rv;|tdw(RW5<45by z)RUi+WaiMK<;Aj!(rh;_gKkPoX*0So$eloCCv_-~0RV(n@Niu%K2YSF@!84NnBC)a z8z#AlOd6kVs_K2cSDBHJ;2d&8@Ey{E)95mKy9}dn1?X(Zkdxm{3u(p zkpwkn5}AY<#=>Tio=c69DSFK)AOr%#`zD;lB z&A`gw+?=+k_w{qVO-}B ztZ$VlBqo+B5evC&nt8goc)+ycVD1hE7+_7xmOr?08+%?Q%1Bcqr&6iW6l>`O<6ijb zyO+)s4oyR{P~&hR%yS76i4>HU! z@@4`a7$So{;zik`0p@h}eDQc1@m5UzZtxlPmT+Mg&!6eHLfskZ@P1u!;u4f20y&AW|4wK}JMdi&APa28mvA=QOCwGuN-=d<5@zK>BqFCEG) ziXLU3@qP**0OxhpRtFk%PN>YHN|iVp#g1NX^* z5CLjVf<>#A=CQ%jPG+m9YgH;UN@7N~GB77h8EdnWcf>ZrAE>=_f*L@$oppQ;wYe4C zQ}y*joZXAKbvd&LlW4yT@W_o3RN{QL9qtKA!&*kBpVV7Wk0CaRxs-hJ29+O`0Om6c zjMU}u<_1{oymF!QxIoOY<;}CPXaP`l(k|8*mLm>JcPMr^ zYq4GvONdK6(DdOAs~zKmsk}6^sf!G)h(
    4NjSea*KLtg-?Y^LIukUaGPV%Jip(1J!EtF9 zu`Qf1jW|#?2v;^a_!#D+5YrD}23TBrd{8=R0enS*1czbL4O6w~;hL(vQ;QH|Xk*Aq zf^KpxlhJ}%rp6R^Mgv6V6B&XAasg&xAGfd$}z8d=`(NaM2TphLbQ&_Ih34{=8t zo6vobqO77tuvagS&bnPDv|0O=#6$hRv6vg7T3p-^2Oq3o$8-i0LVos9)Ol04--*J7 z;vizwo}w8A_Mk05C5sb2ND4EpLb{mBr*sZxl#F1x)xkv!o1q2{?Pdo8#eE+Im;8Tx zfUjrM@3ZroauaT#Qq(+VSzfD_2=WzZNJ#%EQR*g;bUsc}(x43hABMi9?N?6qHi5EdQ1sv^;vDI?Xk(ce@xcM? z65AjA3{z;DuO$;nbarAnQUemUoo>UY^oxK6`BjP?X(_VSNyP_e%A!?A8ck&jCX8as zd|`oP)X;ShMfMy)5+49IL37R3cB?H%vGnX#9<67_1flZm()N+j9@rbZH6MQrQpI^0 zi7;e%9>wNZ02ol@#cQ}BBFA&fXRCa!N(@VD<5}bsH4J|y3JcsPdVguQmNrvkaMo6Wc zCZSnT(tUZ0&I}N1SJ|X!;rZ0`x?6@S=d}zsu`xU&vb#7oCc8pf!J8y)V0ea_dB`s7 zqY;K3w*FMAja1AI0tUdr4;(moriKhIJe-(xE=Ke15}QgAD+#d!WW`zg%*z1nWMG)M zm;3rCh7=$N!xEc@l#{c=(2COFvlAs+L!-;f9#5c__={zc=buK7Y(#eW2k&424Kz${ z0$w6X(>`%p2PY3NPeUYjO5oiw8c?`hG!lTSF;qfcXtKo{TWA}4aq4!6Rx$GkL*rSg zix_4aNW6p8x56!}R+)|DE6<`+7s;L~iw5s%M*0lmVk?VsXTE2RSpz<#1Zc6cYUK*M z+5Wn)D0vULrpg2s;qk=t$-r<`>BT6A%p03G*x>l8h{dSMAdR37gzPnB1sx!d=~l3g zx@T)>AH=YMNAr}9aZnyrsF?gII0<@~w{V}&hbfFV$d`g&*rY;M*nx5thtwjCCJ3~L zs~^;f5hY7New&!d82LZ|joljCN;H|!93>mYSwXeONWoi`#}afmjRJy_X;Jy+k_?`K zAXZ^#V$Cb5se$#-@(N?z!iMf7oD}^8>&{*BedWVFse{4b4hZ63#t1ZhA(O&9nM%Dz z<^<(JkTkjW=Pb!&wjHjk5(!#g^X{e(uGo(y%hE;;zLTeizX71dr_he#`xhEbC5xaW z6>QHK0@9>Yoa3aDRYcvW5SnQQOE73NnK5GoLxgQ~fq8F<=pu#r9u0$-W{WxoIT61Z z$O{Y4s^Dk7m8|~n`A&&_rNnfjk(9Aa!s?V&3z0Z47n%Yw^_6DzPztUsD3_fHuny54 z;)r|Ghk0dDqXr*M4lN06I1dy_C*KBJb0RZ0$Qo6?skjONxfnzUK`n>!c+s95$`{!uRCAdn3X2rU?PQnkR|^Kx-4fT4Uvh^XEW z1$=yaSt}((zs=c#&$x&$IWqSb$bw7Xz|b*Ec7ID+ZY5W+&IN#R0sG#L7mG?p*=Ex! zcsjmM0nIgM$U`}4;^fF{oFpfmvebhjOO*S)D=J7uj+8nFY(=^Sr?a^kBVdqWq?x7I z#2aiD__i2rGL$anIznhsq*sZv{F+i4tK|WNm=LAY8RMj;M#GPp3CWQ{zQf4;V5z`D zSskCBF&^1ng{pcpB^VOxG~$quzFtTx*oTZU+LJHGZpmyC<(ej;NjHO=jKCQ$f?jkiPFc(Pw8Wz7PM5O7BF z#lFxwtSw|y={)@8yj>z|B~_9mXXQ*jRLaMX8BFjv`o&^l_-A&NeNSMd$qFz@0GEYW z1O#bu`fz845|e|+&KSH5-gkshGJR;zB}jiCboI2`Kbq)Rsy45M=K*= woL?9CSY@S{sP?=8e>fy#xF$g2d(Yt3q1q}T(gQZ~n+16V*oY#5xvn7mH-XvUQ~&?~ diff --git a/sound/voice_groups.inc b/sound/voice_groups.inc index 00bb2cbb0..3eb050e7c 100644 --- a/sound/voice_groups.inc +++ b/sound/voice_groups.inc @@ -993,785 +993,7 @@ voicegroup128:: voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 voice_noise_alt 60, 0, 0, 0, 1, 12, 0 -gCryTable:: - cry Cry_Bulbasaur - cry Cry_Ivysaur - cry Cry_Venusaur - cry Cry_Charmander - cry Cry_Charmeleon - cry Cry_Charizard - cry Cry_Squirtle - cry Cry_Wartortle - cry Cry_Blastoise - cry Cry_Caterpie - cry Cry_Metapod - cry Cry_Butterfree - cry Cry_Weedle - cry Cry_Kakuna - cry Cry_Beedrill - cry Cry_Pidgey - cry Cry_Pidgeotto - cry Cry_Pidgeot - cry Cry_Rattata - cry Cry_Raticate - cry Cry_Spearow - cry Cry_Fearow - cry Cry_Ekans - cry Cry_Arbok - cry Cry_Pikachu - cry Cry_Raichu - cry Cry_Sandshrew - cry Cry_Sandslash - cry Cry_NidoranF - cry Cry_Nidorina - cry Cry_Nidoqueen - cry Cry_NidoranM - cry Cry_Nidorino - cry Cry_Nidoking - cry Cry_Clefairy - cry Cry_Clefable - cry Cry_Vulpix - cry Cry_Ninetales - cry Cry_Jigglypuff - cry Cry_Wigglytuff - cry Cry_Zubat - cry Cry_Golbat - cry Cry_Oddish - cry Cry_Gloom - cry Cry_Vileplume - cry Cry_Paras - cry Cry_Parasect - cry Cry_Venonat - cry Cry_Venomoth - cry Cry_Diglett - cry Cry_Dugtrio - cry Cry_Meowth - cry Cry_Persian - cry Cry_Psyduck - cry Cry_Golduck - cry Cry_Mankey - cry Cry_Primeape - cry Cry_Growlithe - cry Cry_Arcanine - cry Cry_Poliwag - cry Cry_Poliwhirl - cry Cry_Poliwrath - cry Cry_Abra - cry Cry_Kadabra - cry Cry_Alakazam - cry Cry_Machop - cry Cry_Machoke - cry Cry_Machamp - cry Cry_Bellsprout - cry Cry_Weepinbell - cry Cry_Victreebel - cry Cry_Tentacool - cry Cry_Tentacruel - cry Cry_Geodude - cry Cry_Graveler - cry Cry_Golem - cry Cry_Ponyta - cry Cry_Rapidash - cry Cry_Slowpoke - cry Cry_Slowbro - cry Cry_Magnemite - cry Cry_Magneton - cry Cry_Farfetchd - cry Cry_Doduo - cry Cry_Dodrio - cry Cry_Seel - cry Cry_Dewgong - cry Cry_Grimer - cry Cry_Muk - cry Cry_Shellder - cry Cry_Cloyster - cry Cry_Gastly - cry Cry_Haunter - cry Cry_Gengar - cry Cry_Onix - cry Cry_Drowzee - cry Cry_Hypno - cry Cry_Krabby - cry Cry_Kingler - cry Cry_Voltorb - cry Cry_Electrode - cry Cry_Exeggcute - cry Cry_Exeggutor - cry Cry_Cubone - cry Cry_Marowak - cry Cry_Hitmonlee - cry Cry_Hitmonchan - cry Cry_Lickitung - cry Cry_Koffing - cry Cry_Weezing - cry Cry_Rhyhorn - cry Cry_Rhydon - cry Cry_Chansey - cry Cry_Tangela - cry Cry_Kangaskhan - cry Cry_Horsea - cry Cry_Seadra - cry Cry_Goldeen - cry Cry_Seaking - cry Cry_Staryu - cry Cry_Starmie - cry Cry_MrMime - cry Cry_Scyther - cry Cry_Jynx - cry Cry_Electabuzz - cry Cry_Magmar - cry Cry_Pinsir - cry Cry_Tauros - cry Cry_Magikarp - cry Cry_Gyarados - cry Cry_Lapras - cry Cry_Ditto - cry Cry_Eevee - cry Cry_Vaporeon - cry Cry_Jolteon - cry Cry_Flareon - cry Cry_Porygon - cry Cry_Omanyte - cry Cry_Omastar - cry Cry_Kabuto - cry Cry_Kabutops - cry Cry_Aerodactyl - cry Cry_Snorlax - cry Cry_Articuno - cry Cry_Zapdos - cry Cry_Moltres - cry Cry_Dratini - cry Cry_Dragonair - cry Cry_Dragonite - cry Cry_Mewtwo - cry Cry_Mew - cry Cry_Chikorita - cry Cry_Bayleef - cry Cry_Meganium - cry Cry_Cyndaquil - cry Cry_Quilava - cry Cry_Typhlosion - cry Cry_Totodile - cry Cry_Croconaw - cry Cry_Feraligatr - cry Cry_Sentret - cry Cry_Furret - cry Cry_Hoothoot - cry Cry_Noctowl - cry Cry_Ledyba - cry Cry_Ledian - cry Cry_Spinarak - cry Cry_Ariados - cry Cry_Crobat - cry Cry_Chinchou - cry Cry_Lanturn - cry Cry_Pichu - cry Cry_Cleffa - cry Cry_Igglybuff - cry Cry_Togepi - cry Cry_Togetic - cry Cry_Natu - cry Cry_Xatu - cry Cry_Mareep - cry Cry_Flaaffy - cry Cry_Ampharos - cry Cry_Bellossom - cry Cry_Marill - cry Cry_Azumarill - cry Cry_Sudowoodo - cry Cry_Politoed - cry Cry_Hoppip - cry Cry_Skiploom - cry Cry_Jumpluff - cry Cry_Aipom - cry Cry_Sunkern - cry Cry_Sunflora - cry Cry_Yanma - cry Cry_Wooper - cry Cry_Quagsire - cry Cry_Espeon - cry Cry_Umbreon - cry Cry_Murkrow - cry Cry_Slowking - cry Cry_Misdreavus - cry Cry_Unown - cry Cry_Wobbuffet - cry Cry_Girafarig - cry Cry_Pineco - cry Cry_Forretress - cry Cry_Dunsparce - cry Cry_Gligar - cry Cry_Steelix - cry Cry_Snubbull - cry Cry_Granbull - cry Cry_Qwilfish - cry Cry_Scizor - cry Cry_Shuckle - cry Cry_Heracross - cry Cry_Sneasel - cry Cry_Teddiursa - cry Cry_Ursaring - cry Cry_Slugma - cry Cry_Magcargo - cry Cry_Swinub - cry Cry_Piloswine - cry Cry_Corsola - cry Cry_Remoraid - cry Cry_Octillery - cry Cry_Delibird - cry Cry_Mantine - cry Cry_Skarmory - cry Cry_Houndour - cry Cry_Houndoom - cry Cry_Kingdra - cry Cry_Phanpy - cry Cry_Donphan - cry Cry_Porygon2 - cry Cry_Stantler - cry Cry_Smeargle - cry Cry_Tyrogue - cry Cry_Hitmontop - cry Cry_Smoochum - cry Cry_Elekid - cry Cry_Magby - cry Cry_Miltank - cry Cry_Blissey - cry Cry_Raikou - cry Cry_Entei - cry Cry_Suicune - cry Cry_Larvitar - cry Cry_Pupitar - cry Cry_Tyranitar - cry Cry_Lugia - cry Cry_HoOh - cry Cry_Celebi - cry Cry_Kecleon - cry Cry_Roselia - cry Cry_Torkoal - cry Cry_Electrike - cry Cry_Manectric - cry Cry_Duskull - cry Cry_Latias - cry Cry_Wynaut - cry Cry_Seviper - cry Cry_Sharpedo - cry Cry_Zangoose - cry Cry_Azurill - cry Cry_Swablu - cry Cry_Altaria - cry Cry_Unused265 - cry Cry_Taillow - cry Cry_Swellow - cry Cry_Unused268 - cry Cry_Spinda - cry Cry_Torchic - cry Cry_Combusken - cry Cry_Blaziken - cry Cry_Treecko - cry Cry_Grovyle - cry Cry_Sceptile - cry Cry_Mudkip - cry Cry_Marshtomp - cry Cry_Swampert - cry Cry_Pelipper - cry Cry_Wingull - cry Cry_Banette - cry Cry_Shuppet - cry Cry_Lotad - cry Cry_Lombre - cry Cry_Ludicolo - cry Cry_Seedot - cry Cry_Nuzleaf - cry Cry_Shiftry - cry Cry_Carvanha - cry Cry_Wurmple - cry Cry_Silcoon - cry Cry_Beautifly - cry Cry_Cascoon - cry Cry_Dustox - cry Cry_Ralts - cry Cry_Kirlia - cry Cry_Gardevoir - cry Cry_Slakoth - cry Cry_Vigoroth - cry Cry_Slaking - cry Cry_Nincada - cry Cry_Ninjask - cry Cry_Shedinja - cry Cry_Makuhita - cry Cry_Hariyama - cry Cry_Nosepass - cry Cry_Glalie - cry Cry_Plusle - cry Cry_Minun - cry Cry_Surskit - cry Cry_Masquerain - cry Cry_Skitty - cry Cry_Delcatty - cry Cry_Gulpin - cry Cry_Swalot - cry Cry_Numel - cry Cry_Camerupt - cry Cry_Barboach - cry Cry_Whiscash - cry Cry_Corphish - cry Cry_Crawdaunt - cry Cry_Spoink - cry Cry_Grumpig - cry Cry_Trapinch - cry Cry_Vibrava - cry Cry_Flygon - cry Cry_Cacnea - cry Cry_Cacturne - cry Cry_Baltoy - cry Cry_Claydol - cry Cry_Lunatone - cry Cry_Solrock - cry Cry_Feebas - cry Cry_Milotic - cry Cry_Absol - cry Cry_Meditite - cry Cry_Medicham - cry Cry_Spheal - cry Cry_Sealeo - cry Cry_Walrein - cry Cry_Clamperl - cry Cry_Huntail - cry Cry_Gorebyss - cry Cry_Lileep - cry Cry_Cradily - cry Cry_Anorith - cry Cry_Armaldo - cry Cry_Beldum - cry Cry_Metang - cry Cry_Metagross - cry Cry_Bagon - cry Cry_Shelgon - cry Cry_Regirock - cry Cry_Regice - cry Cry_Registeel - cry Cry_Castform - cry Cry_Volbeat - cry Cry_Illumise - cry Cry_Poochyena - cry Cry_Mightyena - cry Cry_Dusclops - cry Cry_Sableye - cry Cry_Mawile - cry Cry_Aron - cry Cry_Lairon - cry Cry_Aggron - cry Cry_Relicanth - cry Cry_Luvdisc - cry Cry_Groudon - cry Cry_Kyogre - cry Cry_Rayquaza - cry Cry_Salamence - cry Cry_Breloom - cry Cry_Shroomish - cry Cry_Linoone - cry Cry_Tropius - cry Cry_Wailmer - cry Cry_Zigzagoon - cry Cry_Exploud - cry Cry_Loudred - cry Cry_Wailord - cry Cry_Whismur - cry Cry_Snorunt - cry Cry_Latios - cry Cry_Jirachi - cry Cry_Deoxys - cry Cry_Chimecho - -gCryTable_Reverse:: - cry_reverse Cry_Bulbasaur - cry_reverse Cry_Ivysaur - cry_reverse Cry_Venusaur - cry_reverse Cry_Charmander - cry_reverse Cry_Charmeleon - cry_reverse Cry_Charizard - cry_reverse Cry_Squirtle - cry_reverse Cry_Wartortle - cry_reverse Cry_Blastoise - cry_reverse Cry_Caterpie - cry_reverse Cry_Metapod - cry_reverse Cry_Butterfree - cry_reverse Cry_Weedle - cry_reverse Cry_Kakuna - cry_reverse Cry_Beedrill - cry_reverse Cry_Pidgey - cry_reverse Cry_Pidgeotto - cry_reverse Cry_Pidgeot - cry_reverse Cry_Rattata - cry_reverse Cry_Raticate - cry_reverse Cry_Spearow - cry_reverse Cry_Fearow - cry_reverse Cry_Ekans - cry_reverse Cry_Arbok - cry_reverse Cry_Pikachu - cry_reverse Cry_Raichu - cry_reverse Cry_Sandshrew - cry_reverse Cry_Sandslash - cry_reverse Cry_NidoranF - cry_reverse Cry_Nidorina - cry_reverse Cry_Nidoqueen - cry_reverse Cry_NidoranM - cry_reverse Cry_Nidorino - cry_reverse Cry_Nidoking - cry_reverse Cry_Clefairy - cry_reverse Cry_Clefable - cry_reverse Cry_Vulpix - cry_reverse Cry_Ninetales - cry_reverse Cry_Jigglypuff - cry_reverse Cry_Wigglytuff - cry_reverse Cry_Zubat - cry_reverse Cry_Golbat - cry_reverse Cry_Oddish - cry_reverse Cry_Gloom - cry_reverse Cry_Vileplume - cry_reverse Cry_Paras - cry_reverse Cry_Parasect - cry_reverse Cry_Venonat - cry_reverse Cry_Venomoth - cry_reverse Cry_Diglett - cry_reverse Cry_Dugtrio - cry_reverse Cry_Meowth - cry_reverse Cry_Persian - cry_reverse Cry_Psyduck - cry_reverse Cry_Golduck - cry_reverse Cry_Mankey - cry_reverse Cry_Primeape - cry_reverse Cry_Growlithe - cry_reverse Cry_Arcanine - cry_reverse Cry_Poliwag - cry_reverse Cry_Poliwhirl - cry_reverse Cry_Poliwrath - cry_reverse Cry_Abra - cry_reverse Cry_Kadabra - cry_reverse Cry_Alakazam - cry_reverse Cry_Machop - cry_reverse Cry_Machoke - cry_reverse Cry_Machamp - cry_reverse Cry_Bellsprout - cry_reverse Cry_Weepinbell - cry_reverse Cry_Victreebel - cry_reverse Cry_Tentacool - cry_reverse Cry_Tentacruel - cry_reverse Cry_Geodude - cry_reverse Cry_Graveler - cry_reverse Cry_Golem - cry_reverse Cry_Ponyta - cry_reverse Cry_Rapidash - cry_reverse Cry_Slowpoke - cry_reverse Cry_Slowbro - cry_reverse Cry_Magnemite - cry_reverse Cry_Magneton - cry_reverse Cry_Farfetchd - cry_reverse Cry_Doduo - cry_reverse Cry_Dodrio - cry_reverse Cry_Seel - cry_reverse Cry_Dewgong - cry_reverse Cry_Grimer - cry_reverse Cry_Muk - cry_reverse Cry_Shellder - cry_reverse Cry_Cloyster - cry_reverse Cry_Gastly - cry_reverse Cry_Haunter - cry_reverse Cry_Gengar - cry_reverse Cry_Onix - cry_reverse Cry_Drowzee - cry_reverse Cry_Hypno - cry_reverse Cry_Krabby - cry_reverse Cry_Kingler - cry_reverse Cry_Voltorb - cry_reverse Cry_Electrode - cry_reverse Cry_Exeggcute - cry_reverse Cry_Exeggutor - cry_reverse Cry_Cubone - cry_reverse Cry_Marowak - cry_reverse Cry_Hitmonlee - cry_reverse Cry_Hitmonchan - cry_reverse Cry_Lickitung - cry_reverse Cry_Koffing - cry_reverse Cry_Weezing - cry_reverse Cry_Rhyhorn - cry_reverse Cry_Rhydon - cry_reverse Cry_Chansey - cry_reverse Cry_Tangela - cry_reverse Cry_Kangaskhan - cry_reverse Cry_Horsea - cry_reverse Cry_Seadra - cry_reverse Cry_Goldeen - cry_reverse Cry_Seaking - cry_reverse Cry_Staryu - cry_reverse Cry_Starmie - cry_reverse Cry_MrMime - cry_reverse Cry_Scyther - cry_reverse Cry_Jynx - cry_reverse Cry_Electabuzz - cry_reverse Cry_Magmar - cry_reverse Cry_Pinsir - cry_reverse Cry_Tauros - cry_reverse Cry_Magikarp - cry_reverse Cry_Gyarados - cry_reverse Cry_Lapras - cry_reverse Cry_Ditto - cry_reverse Cry_Eevee - cry_reverse Cry_Vaporeon - cry_reverse Cry_Jolteon - cry_reverse Cry_Flareon - cry_reverse Cry_Porygon - cry_reverse Cry_Omanyte - cry_reverse Cry_Omastar - cry_reverse Cry_Kabuto - cry_reverse Cry_Kabutops - cry_reverse Cry_Aerodactyl - cry_reverse Cry_Snorlax - cry_reverse Cry_Articuno - cry_reverse Cry_Zapdos - cry_reverse Cry_Moltres - cry_reverse Cry_Dratini - cry_reverse Cry_Dragonair - cry_reverse Cry_Dragonite - cry_reverse Cry_Mewtwo - cry_reverse Cry_Mew - cry_reverse Cry_Chikorita - cry_reverse Cry_Bayleef - cry_reverse Cry_Meganium - cry_reverse Cry_Cyndaquil - cry_reverse Cry_Quilava - cry_reverse Cry_Typhlosion - cry_reverse Cry_Totodile - cry_reverse Cry_Croconaw - cry_reverse Cry_Feraligatr - cry_reverse Cry_Sentret - cry_reverse Cry_Furret - cry_reverse Cry_Hoothoot - cry_reverse Cry_Noctowl - cry_reverse Cry_Ledyba - cry_reverse Cry_Ledian - cry_reverse Cry_Spinarak - cry_reverse Cry_Ariados - cry_reverse Cry_Crobat - cry_reverse Cry_Chinchou - cry_reverse Cry_Lanturn - cry_reverse Cry_Pichu - cry_reverse Cry_Cleffa - cry_reverse Cry_Igglybuff - cry_reverse Cry_Togepi - cry_reverse Cry_Togetic - cry_reverse Cry_Natu - cry_reverse Cry_Xatu - cry_reverse Cry_Mareep - cry_reverse Cry_Flaaffy - cry_reverse Cry_Ampharos - cry_reverse Cry_Bellossom - cry_reverse Cry_Marill - cry_reverse Cry_Azumarill - cry_reverse Cry_Sudowoodo - cry_reverse Cry_Politoed - cry_reverse Cry_Hoppip - cry_reverse Cry_Skiploom - cry_reverse Cry_Jumpluff - cry_reverse Cry_Aipom - cry_reverse Cry_Sunkern - cry_reverse Cry_Sunflora - cry_reverse Cry_Yanma - cry_reverse Cry_Wooper - cry_reverse Cry_Quagsire - cry_reverse Cry_Espeon - cry_reverse Cry_Umbreon - cry_reverse Cry_Murkrow - cry_reverse Cry_Slowking - cry_reverse Cry_Misdreavus - cry_reverse Cry_Unown - cry_reverse Cry_Wobbuffet - cry_reverse Cry_Girafarig - cry_reverse Cry_Pineco - cry_reverse Cry_Forretress - cry_reverse Cry_Dunsparce - cry_reverse Cry_Gligar - cry_reverse Cry_Steelix - cry_reverse Cry_Snubbull - cry_reverse Cry_Granbull - cry_reverse Cry_Qwilfish - cry_reverse Cry_Scizor - cry_reverse Cry_Shuckle - cry_reverse Cry_Heracross - cry_reverse Cry_Sneasel - cry_reverse Cry_Teddiursa - cry_reverse Cry_Ursaring - cry_reverse Cry_Slugma - cry_reverse Cry_Magcargo - cry_reverse Cry_Swinub - cry_reverse Cry_Piloswine - cry_reverse Cry_Corsola - cry_reverse Cry_Remoraid - cry_reverse Cry_Octillery - cry_reverse Cry_Delibird - cry_reverse Cry_Mantine - cry_reverse Cry_Skarmory - cry_reverse Cry_Houndour - cry_reverse Cry_Houndoom - cry_reverse Cry_Kingdra - cry_reverse Cry_Phanpy - cry_reverse Cry_Donphan - cry_reverse Cry_Porygon2 - cry_reverse Cry_Stantler - cry_reverse Cry_Smeargle - cry_reverse Cry_Tyrogue - cry_reverse Cry_Hitmontop - cry_reverse Cry_Smoochum - cry_reverse Cry_Elekid - cry_reverse Cry_Magby - cry_reverse Cry_Miltank - cry_reverse Cry_Blissey - cry_reverse Cry_Raikou - cry_reverse Cry_Entei - cry_reverse Cry_Suicune - cry_reverse Cry_Larvitar - cry_reverse Cry_Pupitar - cry_reverse Cry_Tyranitar - cry_reverse Cry_Lugia - cry_reverse Cry_HoOh - cry_reverse Cry_Celebi - cry_reverse Cry_Kecleon - cry_reverse Cry_Roselia - cry_reverse Cry_Torkoal - cry_reverse Cry_Electrike - cry_reverse Cry_Manectric - cry_reverse Cry_Duskull - cry_reverse Cry_Latias - cry_reverse Cry_Wynaut - cry_reverse Cry_Seviper - cry_reverse Cry_Sharpedo - cry_reverse Cry_Zangoose - cry_reverse Cry_Azurill - cry_reverse Cry_Swablu - cry_reverse Cry_Altaria - cry_reverse Cry_Unused265 - cry_reverse Cry_Taillow - cry_reverse Cry_Swellow - cry_reverse Cry_Unused268 - cry_reverse Cry_Spinda - cry_reverse Cry_Torchic - cry_reverse Cry_Combusken - cry_reverse Cry_Blaziken - cry_reverse Cry_Treecko - cry_reverse Cry_Grovyle - cry_reverse Cry_Sceptile - cry_reverse Cry_Mudkip - cry_reverse Cry_Marshtomp - cry_reverse Cry_Swampert - cry_reverse Cry_Pelipper - cry_reverse Cry_Wingull - cry_reverse Cry_Banette - cry_reverse Cry_Shuppet - cry_reverse Cry_Lotad - cry_reverse Cry_Lombre - cry_reverse Cry_Ludicolo - cry_reverse Cry_Seedot - cry_reverse Cry_Nuzleaf - cry_reverse Cry_Shiftry - cry_reverse Cry_Carvanha - cry_reverse Cry_Wurmple - cry_reverse Cry_Silcoon - cry_reverse Cry_Beautifly - cry_reverse Cry_Cascoon - cry_reverse Cry_Dustox - cry_reverse Cry_Ralts - cry_reverse Cry_Kirlia - cry_reverse Cry_Gardevoir - cry_reverse Cry_Slakoth - cry_reverse Cry_Vigoroth - cry_reverse Cry_Slaking - cry_reverse Cry_Nincada - cry_reverse Cry_Ninjask - cry_reverse Cry_Shedinja - cry_reverse Cry_Makuhita - cry_reverse Cry_Hariyama - cry_reverse Cry_Nosepass - cry_reverse Cry_Glalie - cry_reverse Cry_Plusle - cry_reverse Cry_Minun - cry_reverse Cry_Surskit - cry_reverse Cry_Masquerain - cry_reverse Cry_Skitty - cry_reverse Cry_Delcatty - cry_reverse Cry_Gulpin - cry_reverse Cry_Swalot - cry_reverse Cry_Numel - cry_reverse Cry_Camerupt - cry_reverse Cry_Barboach - cry_reverse Cry_Whiscash - cry_reverse Cry_Corphish - cry_reverse Cry_Crawdaunt - cry_reverse Cry_Spoink - cry_reverse Cry_Grumpig - cry_reverse Cry_Trapinch - cry_reverse Cry_Vibrava - cry_reverse Cry_Flygon - cry_reverse Cry_Cacnea - cry_reverse Cry_Cacturne - cry_reverse Cry_Baltoy - cry_reverse Cry_Claydol - cry_reverse Cry_Lunatone - cry_reverse Cry_Solrock - cry_reverse Cry_Feebas - cry_reverse Cry_Milotic - cry_reverse Cry_Absol - cry_reverse Cry_Meditite - cry_reverse Cry_Medicham - cry_reverse Cry_Spheal - cry_reverse Cry_Sealeo - cry_reverse Cry_Walrein - cry_reverse Cry_Clamperl - cry_reverse Cry_Huntail - cry_reverse Cry_Gorebyss - cry_reverse Cry_Lileep - cry_reverse Cry_Cradily - cry_reverse Cry_Anorith - cry_reverse Cry_Armaldo - cry_reverse Cry_Beldum - cry_reverse Cry_Metang - cry_reverse Cry_Metagross - cry_reverse Cry_Bagon - cry_reverse Cry_Shelgon - cry_reverse Cry_Regirock - cry_reverse Cry_Regice - cry_reverse Cry_Registeel - cry_reverse Cry_Castform - cry_reverse Cry_Volbeat - cry_reverse Cry_Illumise - cry_reverse Cry_Poochyena - cry_reverse Cry_Mightyena - cry_reverse Cry_Dusclops - cry_reverse Cry_Sableye - cry_reverse Cry_Mawile - cry_reverse Cry_Aron - cry_reverse Cry_Lairon - cry_reverse Cry_Aggron - cry_reverse Cry_Relicanth - cry_reverse Cry_Luvdisc - cry_reverse Cry_Groudon - cry_reverse Cry_Kyogre - cry_reverse Cry_Rayquaza - cry_reverse Cry_Salamence - cry_reverse Cry_Breloom - cry_reverse Cry_Shroomish - cry_reverse Cry_Linoone - cry_reverse Cry_Tropius - cry_reverse Cry_Wailmer - cry_reverse Cry_Zigzagoon - cry_reverse Cry_Exploud - cry_reverse Cry_Loudred - cry_reverse Cry_Wailord - cry_reverse Cry_Whismur - cry_reverse Cry_Snorunt - cry_reverse Cry_Latios - cry_reverse Cry_Jirachi - cry_reverse Cry_Deoxys - cry_reverse Cry_Chimecho +.include "sound/cry_tables.inc" .align 2 voicegroup129:: From fa9808f79d646437efc632e366355f8a66bddc15 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 23 Sep 2022 15:42:53 -0400 Subject: [PATCH 071/105] Document intro functions --- include/gba/io_reg.h | 9 +- include/sprite.h | 7 +- src/bg.c | 184 ++-- src/intro.c | 1812 ++++++++++++++++++++++---------------- src/minigame_countdown.c | 3 +- src/sprite.c | 69 +- 6 files changed, 1168 insertions(+), 916 deletions(-) diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index 548e27163..53b60d5b6 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -552,6 +552,7 @@ #define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) #define WININ_WIN0_OBJ (1 << 4) #define WININ_WIN0_CLR (1 << 5) +#define WININ_WIN0_ALL (WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR) #define WININ_WIN1_BG0 (1 << 8) #define WININ_WIN1_BG1 (1 << 9) #define WININ_WIN1_BG2 (1 << 10) @@ -559,6 +560,7 @@ #define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3) #define WININ_WIN1_OBJ (1 << 12) #define WININ_WIN1_CLR (1 << 13) +#define WININ_WIN1_ALL (WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR) #define WINOUT_WIN01_BG0 (1 << 0) #define WINOUT_WIN01_BG1 (1 << 1) @@ -567,6 +569,7 @@ #define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3) #define WINOUT_WIN01_OBJ (1 << 4) #define WINOUT_WIN01_CLR (1 << 5) +#define WINOUT_WIN01_ALL (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR) #define WINOUT_WINOBJ_BG0 (1 << 8) #define WINOUT_WINOBJ_BG1 (1 << 9) #define WINOUT_WINOBJ_BG2 (1 << 10) @@ -574,6 +577,7 @@ #define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3) #define WINOUT_WINOBJ_OBJ (1 << 12) #define WINOUT_WINOBJ_CLR (1 << 13) +#define WINOUT_WINOBJ_ALL (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR) #define WIN_RANGE(a, b) (((a) << 8) | (b)) #define WIN_RANGE2(a, b) ((b) | ((a) << 8)) @@ -584,8 +588,10 @@ #define BLDCNT_TGT1_BG1 (1 << 1) #define BLDCNT_TGT1_BG2 (1 << 2) #define BLDCNT_TGT1_BG3 (1 << 3) +#define BLDCNT_TGT1_BG_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3) #define BLDCNT_TGT1_OBJ (1 << 4) #define BLDCNT_TGT1_BD (1 << 5) +#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG_ALL | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD) // Bits 6-7 select the special effect #define BLDCNT_EFFECT_NONE (0 << 6) // no special effect #define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) @@ -596,9 +602,10 @@ #define BLDCNT_TGT2_BG1 (1 << 9) #define BLDCNT_TGT2_BG2 (1 << 10) #define BLDCNT_TGT2_BG3 (1 << 11) +#define BLDCNT_TGT2_BG_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3) #define BLDCNT_TGT2_OBJ (1 << 12) #define BLDCNT_TGT2_BD (1 << 13) -#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) +#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG_ALL | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) // BLDALPHA #define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1)) diff --git a/include/sprite.h b/include/sprite.h index eed582775..6a1b27211 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -7,6 +7,9 @@ #define SPRITE_NONE 0xFF #define TAG_NONE 0xFFFF +// Given to SetSpriteMatrixAnchor to skip anchoring one of the coords. +#define NO_ANCHOR 0x800 + struct SpriteSheet { const void *data; // Raw uncompressed pixel data @@ -228,7 +231,7 @@ struct Sprite u16 animEnded:1; //0x10 u16 affineAnimEnded:1; //0x20 u16 usingSheet:1; //0x40 - u16 flags_f:1; //0x80 + u16 anchored:1; //0x80 /*0x40*/ u16 sheetTileStart; @@ -316,6 +319,6 @@ void ClearSpriteCopyRequests(void); void ResetAffineAnimData(void); void FreeSpriteTilesIfNotUsingSheet(struct Sprite *sprite); s16 AllocSpriteTiles(u16 tileCount); -void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod); +void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 xmod, s16 ymod); #endif //GUARD_SPRITE_H diff --git a/src/bg.c b/src/bg.c index 287569fa6..251f42616 100644 --- a/src/bg.c +++ b/src/bg.c @@ -600,58 +600,58 @@ u32 ChangeBgX(u8 bg, u32 value, u8 op) switch (op) { - case 0: - default: - sGpuBgConfigs2[bg].bg_x = value; - break; - case 1: - sGpuBgConfigs2[bg].bg_x += value; - break; - case 2: - sGpuBgConfigs2[bg].bg_x -= value; - break; + case BG_COORD_SET: + default: + sGpuBgConfigs2[bg].bg_x = value; + break; + case BG_COORD_ADD: + sGpuBgConfigs2[bg].bg_x += value; + break; + case BG_COORD_SUB: + sGpuBgConfigs2[bg].bg_x -= value; + break; } mode = GetBgMode(); switch (bg) { - case 0: - temp1 = sGpuBgConfigs2[0].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG0HOFS, temp1); - break; - case 1: - temp1 = sGpuBgConfigs2[1].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG1HOFS, temp1); - break; - case 2: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[2].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG2HOFS, temp1); - } - else - { - temp1 = sGpuBgConfigs2[2].bg_x >> 0x10; - temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF; - SetGpuReg(REG_OFFSET_BG2X_H, temp1); - SetGpuReg(REG_OFFSET_BG2X_L, temp2); - } - break; - case 3: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[3].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG3HOFS, temp1); - } - else if (mode == 2) - { - temp1 = sGpuBgConfigs2[3].bg_x >> 0x10; - temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF; - SetGpuReg(REG_OFFSET_BG3X_H, temp1); - SetGpuReg(REG_OFFSET_BG3X_L, temp2); - } - break; + case 0: + temp1 = sGpuBgConfigs2[0].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG0HOFS, temp1); + break; + case 1: + temp1 = sGpuBgConfigs2[1].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG1HOFS, temp1); + break; + case 2: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[2].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG2HOFS, temp1); + } + else + { + temp1 = sGpuBgConfigs2[2].bg_x >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF; + SetGpuReg(REG_OFFSET_BG2X_H, temp1); + SetGpuReg(REG_OFFSET_BG2X_L, temp2); + } + break; + case 3: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[3].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG3HOFS, temp1); + } + else if (mode == 2) + { + temp1 = sGpuBgConfigs2[3].bg_x >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF; + SetGpuReg(REG_OFFSET_BG3X_H, temp1); + SetGpuReg(REG_OFFSET_BG3X_L, temp2); + } + break; } return sGpuBgConfigs2[bg].bg_x; @@ -679,58 +679,58 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op) switch (op) { - case 0: - default: - sGpuBgConfigs2[bg].bg_y = value; - break; - case 1: - sGpuBgConfigs2[bg].bg_y += value; - break; - case 2: - sGpuBgConfigs2[bg].bg_y -= value; - break; + case BG_COORD_SET: + default: + sGpuBgConfigs2[bg].bg_y = value; + break; + case BG_COORD_ADD: + sGpuBgConfigs2[bg].bg_y += value; + break; + case BG_COORD_SUB: + sGpuBgConfigs2[bg].bg_y -= value; + break; } mode = GetBgMode(); switch (bg) { - case 0: - temp1 = sGpuBgConfigs2[0].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG0VOFS, temp1); - break; - case 1: - temp1 = sGpuBgConfigs2[1].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG1VOFS, temp1); - break; - case 2: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[2].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG2VOFS, temp1); - } - else - { - temp1 = sGpuBgConfigs2[2].bg_y >> 0x10; - temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF; - SetGpuReg(REG_OFFSET_BG2Y_H, temp1); - SetGpuReg(REG_OFFSET_BG2Y_L, temp2); - } - break; - case 3: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[3].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG3VOFS, temp1); - } - else if (mode == 2) - { - temp1 = sGpuBgConfigs2[3].bg_y >> 0x10; - temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF; - SetGpuReg(REG_OFFSET_BG3Y_H, temp1); - SetGpuReg(REG_OFFSET_BG3Y_L, temp2); - } - break; + case 0: + temp1 = sGpuBgConfigs2[0].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG0VOFS, temp1); + break; + case 1: + temp1 = sGpuBgConfigs2[1].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG1VOFS, temp1); + break; + case 2: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[2].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG2VOFS, temp1); + } + else + { + temp1 = sGpuBgConfigs2[2].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF; + SetGpuReg(REG_OFFSET_BG2Y_H, temp1); + SetGpuReg(REG_OFFSET_BG2Y_L, temp2); + } + break; + case 3: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[3].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG3VOFS, temp1); + } + else if (mode == 2) + { + temp1 = sGpuBgConfigs2[3].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF; + SetGpuReg(REG_OFFSET_BG3Y_H, temp1); + SetGpuReg(REG_OFFSET_BG3Y_L, temp2); + } + break; } return sGpuBgConfigs2[bg].bg_y; diff --git a/src/intro.c b/src/intro.c index d3f5fe1e4..f3621b143 100644 --- a/src/intro.c +++ b/src/intro.c @@ -73,6 +73,9 @@ enum { BG_SCENE1_UNUSED2 }; +#define PALSLOT_SCENE1_GRASS 1 +#define PALSLOT_SCENE1_BG 2 + // Background IDs for Scene 2 enum { BG_SCENE2_PLANTS, @@ -89,6 +92,35 @@ enum { BG_SCENE3_UNUSED2 }; +enum { + ANIM_NIDORINO_NORMAL, + ANIM_NIDORINO_CRY, + ANIM_NIDORINO_CROUCH, + ANIM_NIDORINO_HOP, + ANIM_NIDORINO_ATTACK, +}; + +enum { + ANIM_SPARKLE_LOOP, + ANIM_SPARKLE_ONCE, +}; + +enum { + ANIM_SWIPE_TOP, + ANIM_SWIPE_BOTTOM, +}; + +enum { + AFFINEANIM_NORMAL, + AFFINEANIM_ZOOM, +}; + +// Window ids for sWindowTemplates (only one) +enum { + WIN_GF_TEXT_LOGO, + WIN_COUNT +}; + #define NUM_GENGAR_BACK_SPRITES 4 #define COLOSSEUM_GAME_CODE 0x65366347 // "Gc6e" in ASCII @@ -103,13 +135,14 @@ struct IntroSequenceData u8 state; u8 taskId; bool8 gengarAttackLanded; - u16 data[6]; + u16 data[5]; // [0] and [1] are set but never read, the rest are unused + u16 timer; struct Sprite *gameFreakLogoArtSprite; - struct Sprite *nidorinoAnimSprite; - struct Sprite *gengarStaticSprite; - struct Sprite *nidorinoStaticSprite; - struct Sprite *grassSprite; - struct Sprite *gengarBackSprites[NUM_GENGAR_BACK_SPRITES]; + struct Sprite *scene3NidorinoSprite; + struct Sprite *scene2GengarSprite; + struct Sprite *scene2NidorinoSprite; + struct Sprite *scene3GrassSprite; + struct Sprite *scene3GengarSprites[NUM_GENGAR_BACK_SPRITES]; u8 unused0[4]; u8 gameFreakLogoGfx[0x400]; u8 gameFreakTextGfx[0x400]; @@ -117,26 +150,27 @@ struct IntroSequenceData }; // size: 0x28BC static EWRAM_DATA struct GcmbStruct sGcmb = {0}; -static EWRAM_DATA u16 gUnknown_203AB00 = 0; -static EWRAM_DATA u16 gUnknown_203AB02 = 0; -static EWRAM_DATA u16 gUnknown_203AB04 = 0; -static EWRAM_DATA u16 gUnknown_203AB06 = 0; -static EWRAM_DATA u16 gUnknown_203AB08 = 0; -static EWRAM_DATA u16 gUnknown_203AB0A = 0; -static EWRAM_DATA u16 gUnknown_203AB0C = 0; -static EWRAM_DATA u16 sLargeStarXSpeed = 0; -static EWRAM_DATA u16 sLargeStarYSpeed = 0; -static EWRAM_DATA u16 sTrailingSparklesXmodMask = 0; -static EWRAM_DATA u16 sUnusedVarRelatedToGameFreakStars = 0; -static EWRAM_DATA u16 sTrailingSparklesSpawnRate = 0; -static EWRAM_DATA u16 sTrailingSparklesFlickerStartTime = 0; -static EWRAM_DATA u16 sTrailingSparklesDestroySpriteTime = 0; -static EWRAM_DATA u16 sTrailingSparklesGravityShift = 0; -static EWRAM_DATA u16 sTrailingSparklesXspeed = 0; -static EWRAM_DATA u16 sTrailingSparklesYspeed = 0; -static EWRAM_DATA u16 sTrailingSparklesXprecision = 0; -static EWRAM_DATA u16 sTrailingSparklesYprecision = 0; +static EWRAM_DATA u16 sUnusedScene3Var0 = 0; // Set but never read +static EWRAM_DATA u16 sUnusedScene3Var1 = 0; // Set but never read +static EWRAM_DATA u16 sNidorinoJumpMult = 0; +static EWRAM_DATA u16 sNidorinoAnimDelayTime = 0; +static EWRAM_DATA u16 sNidorinoJumpDiv = 0; +static EWRAM_DATA u16 sNidorinoRecoilReturnTime = 0; +static EWRAM_DATA u16 sNidorinoUnusedVar = 0; // Set but never read +static EWRAM_DATA u16 sStarSpeedX = 0; +static EWRAM_DATA u16 sStarSpeedY = 0; +static EWRAM_DATA u16 sStarSparklesXmodMask = 0; +static EWRAM_DATA u16 sStarSparklesUnusedVar = 0; // Set but never read +static EWRAM_DATA u16 sStarSparklesSpawnRate = 0; +static EWRAM_DATA u16 sStarSparklesFlickerStartTime = 0; +static EWRAM_DATA u16 sStarSparklesDestroySpriteTime = 0; +static EWRAM_DATA u16 sStarSparklesGravityShift = 0; +static EWRAM_DATA u16 sStarSparklesXspeed = 0; +static EWRAM_DATA u16 sStarSparklesYspeed = 0; +static EWRAM_DATA u16 sStarSparklesXprecision = 0; +static EWRAM_DATA u16 sStarSparklesYprecision = 0; +// General static void CB2_SetUpIntro(void); static void CB2_Intro(void); static void VBlankCB_Intro(void); @@ -145,67 +179,76 @@ static void StartIntroSequence(void); static void Task_CallIntroCallback(u8 taskId); static void SetIntroCB(struct IntroSequenceData * ptr, IntroCallback cb); static void IntroCB_Init(struct IntroSequenceData * ptr); -static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * ptr); -static void IntroCB_GameFreakStar(struct IntroSequenceData * ptr); -static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData * ptr); -static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData * ptr); -static void IntroCB_FightScene(struct IntroSequenceData * ptr); -static void Task_FightScene1_GrassyFieldAnim(u8 taskId); -static void FightScene1_SignalEndGrassyFieldAnim(void); -static void Task_FightScene1_ZoomEffect(u8 taskId); -static void IntroCB_FightScene2(struct IntroSequenceData * ptr); -static void Task_FightScene2_CameraHorizPanEffect(u8 taskId); -static void Task_FightScene2_CameraVertPanEffect(u8 taskId); -static void CreateMonStaticSprites(struct IntroSequenceData * ptr); -static void DestroyStaticMonSprites(struct IntroSequenceData * ptr); -static void IntroCB_FightScene3(struct IntroSequenceData * ptr); -static void FightScene3_StartBg1Scroll(void); -static void Task_FightScene3_ForestBgScroll(u8 taskId); -static void CreateGrassSprite(struct IntroSequenceData * ptr); +static void LoadFightSceneSpriteGraphics(void); +static void IntroCB_ExitToTitleScreen(struct IntroSequenceData * ptr); + +// GF scene +static void IntroCB_GF_OpenWindow(struct IntroSequenceData * ptr); +static void IntroCB_GF_Star(struct IntroSequenceData * ptr); +static void IntroCB_GF_RevealName(struct IntroSequenceData * ptr); +static void IntroCB_GF_RevealLogo(struct IntroSequenceData * ptr); +static void GFScene_LoadGfxCreateStar(void); +static void GFScene_StartNameSparklesSmall(void); +static void GFScene_StartNameSparklesBig(void); +static void GFScene_Task_NameSparklesSmall(u8 taskId); +static void GFScene_Task_NameSparklesBig(u8 taskId); +static struct Sprite *GFScene_CreateLogoSprite(void); +static void GFScene_CreatePresentsSprite(void); +static void SpriteCB_Star(struct Sprite *sprite); +static void SpriteCB_SparklesSmall_Star(struct Sprite *sprite); +static void SpriteCB_SparklesSmall_Name(struct Sprite *sprite); +static void SpriteCB_SparklesBig(struct Sprite *sprite); + +// Scene 1 +static void IntroCB_Scene1(struct IntroSequenceData * ptr); +static void Scene1_Task_AnimateGrass(u8 taskId); +static void Scene1_StartGrassScrolling(void); +static void Scene1_Task_BgZoom(u8 taskId); + +// Scene 2 +static void IntroCB_Scene2(struct IntroSequenceData * ptr); +static void Scene2_Task_PanForest(u8 taskId); +static void Scene2_Task_PanMons(u8 taskId); +static void Scene2_CreateMonSprites(struct IntroSequenceData * ptr); +static void Scene2_DestroyMonSprites(struct IntroSequenceData * ptr); + +// Scene 3 +static void IntroCB_Scene3_Entrance(struct IntroSequenceData * ptr); +static void IntroCB_Scene3_Fight(struct IntroSequenceData * ptr); +static void Scene3_StartBgScroll(void); +static void Scene3_Task_GengarBounce(u8 taskId); +static void Scene3_CreateGrassSprite(struct IntroSequenceData * ptr); +static void Scene3_CreateGengarSprite(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoCry(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoHop(struct Sprite *sprite, u16 time, s16 targetX, u8 heightShift); +static void Scene3_StartGengarAttack(struct IntroSequenceData * ptr); +static void Scene3_Task_GengarAttack(u8 taskId); +static void Scene3_NidorinoZoom(struct IntroSequenceData * ptr); +static void Scene3_GengarZoom(struct IntroSequenceData * ptr); +static void Scene3_CreateGengarSwipeSprites(void); +static void Scene3_Task_GengarEnter(u8 taskId); +static void Scene3_CreateNidorinoSprite(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoEntrance(struct Sprite *sprite, s16 xStart, s16 xEnd, u16 speed); +static void Scene3_SpriteCB_NidorinoEnter(struct Sprite *sprite); +static bool32 Scene3_IsNidorinoEntering(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoRecoil(struct IntroSequenceData * ptr); +static bool8 Scene3_NidorinoAnimIsRunning(struct IntroSequenceData * ptr); +static void CreateNidorinoRecoilDustSprites(s16 x, s16 y, s16 seed); +static void Scene3_StartNidorinoAttack(struct IntroSequenceData * ptr); static void SpriteCB_Grass(struct Sprite *sprite); -static void IntroCB_FightScene4(struct IntroSequenceData * ptr); -static void CreateGengarBackSprite(struct IntroSequenceData * ptr); -static void FightScene4_StartNidorinoAffineAnim(struct IntroSequenceData * ptr); -static void FightScene4_StartGengarAffineAnim(struct IntroSequenceData * ptr); -static void IntroCB_CleanUp(struct IntroSequenceData * ptr); -static void GameFreakScene_LoadGfxCreateStar(void); -static void GameFreakScene_StartTrailingSparkleSpawner(void); -static void Task_GameFreakScene_TrailingSparkleSpawner(u8 taskId); -static void GameFreakScene_StartRevealGameFreakTextSparklesSpawner(void); -static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId); -static struct Sprite *CreateGameFreakLogoArtSprite(void); -static void FightScene4_StartGengarAttack(struct IntroSequenceData * ptr); -static void Task_FightScene4_GengarAttack(u8 taskId); -static void FightScene4_CreateGengarSwipeSprites(void); static void SpriteCB_GengarSwipe(struct Sprite *sprite); -static void Task_FightScene3_Bg0Scroll(u8 taskId); -static void SpriteCB_LargeStar(struct Sprite *sprite); -static void SpriteCB_SparklesSmall(struct Sprite *sprite); -static void SpriteCB_SparklesSmall2(struct Sprite *sprite); -static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite); -static void CreateNidorinoAnimSprite(struct IntroSequenceData * ptr); -static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed); -static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite); -static bool32 IsNidorinoAnimSpriteSlideInRunning(struct IntroSequenceData * ptr); -static void FightScene4_NidorinoRearsUp(struct IntroSequenceData * ptr); -static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite); -static void FightScene4_StartNidorinoRecoilAnim(struct IntroSequenceData * ptr); +static void SpriteCB_RecoilDust(struct Sprite *sprite); +static void SpriteCB_NidorinoCry(struct Sprite *sprite); static void SpriteCB_NidorinoRecoil(struct Sprite *sprite); -static bool8 FightScene4_NidorinoAnimIsRunning(struct IntroSequenceData * ptr); -static void CreateNidorinoRecoilDustSprites(s16 a1, s16 a2, s16 a3); -static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite); -static void StartSpriteHopToPosAnim(struct Sprite *sprite, u16 a1, s16 a2, u8 a3); -static void SpriteCB_HopToPos(struct Sprite *sprite); -static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData * ptr); -static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite); -static void LoadFightSceneSpriteTilesAndPals(void); -static void CreateGameFreakPresentsText(void); +static void SpriteCB_NidorinoHop(struct Sprite *sprite); +static void SpriteCB_NidorinoAttack(struct Sprite *sprite); extern const u32 gMultiBootProgram_PokemonColosseum_Start[]; +extern const u32 gMultiBootProgram_PokemonColosseum_End[]; static const u16 sCopyright_Pal[] = INCBIN_U16("graphics/intro/copyright.gbapal"); -static const u8 sCopyright_Gfx[] = INCBIN_U8("graphics/intro/copyright.4bpp.lz"); -static const u8 sCopyright_Map[] = INCBIN_U8("graphics/intro/copyright.bin.lz"); +static const u8 sCopyright_Gfx[] = INCBIN_U8( "graphics/intro/copyright.4bpp.lz"); +static const u8 sCopyright_Map[] = INCBIN_U8( "graphics/intro/copyright.bin.lz"); // Game Freak static const u16 sGameFreakBg_Pal[] = INCBIN_U16("graphics/intro/game_freak/bg.gbapal"); @@ -243,7 +286,7 @@ static const u16 sScene2_NidorinoClose_Pal[] = INCBIN_U16("graphics/intro/scene_ static const u8 sScene2_NidorinoClose_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/nidorino_close.4bpp.lz"); static const u8 sScene2_NidorinoClose_Map[] = INCBIN_U8( "graphics/intro/scene_2/nidorino_close.bin.lz"); static const u16 sScene3_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_3/bg.gbapal"); -static const u8 sScene3_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/bg.4bpp.lz"); // give -width 16 +static const u8 sScene3_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/bg.4bpp.lz"); static const u8 sScene3_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_3/bg.bin.lz"); static const u8 sScene3_GengarAnim_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/gengar_anim.4bpp.lz"); static const u8 sScene3_GengarAnim_Map[] = INCBIN_U8( "graphics/intro/scene_3/gengar_anim.bin.lz"); @@ -355,8 +398,8 @@ static const struct BgTemplate sBgTemplates_Scene3[] = { } }; -static const struct WindowTemplate sWindowTemplate_GameFreakTextLogo[] = { - { +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { + [WIN_GF_TEXT_LOGO] = { .bg = BG_GF_TEXT_LOGO, .tilemapLeft = 6, .tilemapTop = 4, @@ -364,14 +407,15 @@ static const struct WindowTemplate sWindowTemplate_GameFreakTextLogo[] = { .height = 9, .paletteNum = 0xD, .baseBlock = 0x000 - }, DUMMY_WIN_TEMPLATE + }, + [WIN_COUNT] = DUMMY_WIN_TEMPLATE }; -static const u8 sGengarBackSpritePos2UpdateMods[NUM_GENGAR_BACK_SPRITES][2] = { - {0x3f, 0x3f}, - {0x00, 0x3f}, - {0x3f, 0x00}, - {0x00, 0x00} +static const u8 sGengarZoomMatrixAnchors[NUM_GENGAR_BACK_SPRITES][2] = { + {63, 63}, + { 0, 63}, + {63, 0}, + { 0, 0} }; static const struct CompressedSpriteSheet sSpriteSheets_GameFreakScene[] = { @@ -389,7 +433,7 @@ static const struct SpritePalette sSpritePalettes_GameFreakScene[] = { {0} }; -static const struct Coords16 sTrailingSparkleCoords[] = { +static const struct Coords16 sTextSparkleCoords[] = { { 72, 80}, {136, 74}, {168, 80}, @@ -406,9 +450,9 @@ static const struct OamData sOam_Star = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .matrixNum = 0, - .size = ST_OAM_SIZE_1, + .size = SPRITE_SIZE(16x16), .tileNum = 0x000, .priority = 2, .paletteNum = 0 @@ -419,15 +463,15 @@ static const struct OamData sOam_SparklesSmall = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .matrixNum = 0, - .size = ST_OAM_SIZE_0, + .size = SPRITE_SIZE(8x8), .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; -static const union AnimCmd sAnim_SparklesSmall_0[] = { +static const union AnimCmd sAnim_SparklesSmall_Loop[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(2, 4), @@ -435,7 +479,7 @@ static const union AnimCmd sAnim_SparklesSmall_0[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd sAnim_SparklesSmall_1[] = { +static const union AnimCmd sAnim_SparklesSmall_Once[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(2, 4), @@ -444,8 +488,8 @@ static const union AnimCmd sAnim_SparklesSmall_1[] = { }; static const union AnimCmd *const sAnims_SparklesSmall[] = { - sAnim_SparklesSmall_0, - sAnim_SparklesSmall_1 + [ANIM_SPARKLE_LOOP] = sAnim_SparklesSmall_Loop, + [ANIM_SPARKLE_ONCE] = sAnim_SparklesSmall_Once }; static const struct SpriteTemplate sSpriteTemplate_Star = { @@ -455,7 +499,7 @@ static const struct SpriteTemplate sSpriteTemplate_Star = { .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_LargeStar + .callback = SpriteCB_Star }; static const struct SpriteTemplate sSpriteTemplate_SparklesSmall = { @@ -465,7 +509,7 @@ static const struct SpriteTemplate sSpriteTemplate_SparklesSmall = { .anims = sAnims_SparklesSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_SparklesSmall + .callback = SpriteCB_SparklesSmall_Star }; static const struct OamData sOam_SparklesBig = { @@ -473,9 +517,9 @@ static const struct OamData sOam_SparklesBig = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(32x32), .matrixNum = 0, - .size = ST_OAM_SIZE_2, + .size = SPRITE_SIZE(32x32), .tileNum = 0x000, .priority = 2, .paletteNum = 0 @@ -500,7 +544,7 @@ static const struct SpriteTemplate sSpriteTemplate_SparklesBig = { .anims = sAnims_SparklesBig, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_RevealGameFreakTextSparkles + .callback = SpriteCB_SparklesBig }; static const struct OamData sOam_GameFreakLogo = { @@ -508,9 +552,9 @@ static const struct OamData sOam_GameFreakLogo = { .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(32x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(32x64), .tileNum = 0x000, .priority = 3, .paletteNum = 0 @@ -531,15 +575,15 @@ static const struct OamData sOam_PresentsText = { .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(32x8), .matrixNum = 0, - .size = ST_OAM_SIZE_1, + .size = SPRITE_SIZE(32x8), .tileNum = 0x000, .priority = 3, .paletteNum = 0 }; -static const struct SpriteTemplate sSpriteTemplate_PresentsText = { +static const struct SpriteTemplate sSpriteTemplate_Presents = { .tileTag = GFXTAG_PRESENTS, .paletteTag = PALTAG_GF, .oam = &sOam_PresentsText, @@ -554,61 +598,61 @@ static const struct OamData sOam_Scene3_Nidorino = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd sAnim_Scene3_Nidorino_0[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Normal[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Nidorino_1[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Cry[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Nidorino_2[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Crouch[] = { ANIMCMD_FRAME(128, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Nidorino_3[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Hop[] = { ANIMCMD_FRAME(192, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Nidorino_4[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Attack[] = { ANIMCMD_FRAME(256, 1), ANIMCMD_END }; static const union AnimCmd *const sAnims_Scene3_Nidorino[] = { - sAnim_Scene3_Nidorino_0, - sAnim_Scene3_Nidorino_1, - sAnim_Scene3_Nidorino_2, - sAnim_Scene3_Nidorino_3, - sAnim_Scene3_Nidorino_4 + [ANIM_NIDORINO_NORMAL] = sAnim_Scene3_Nidorino_Normal, + [ANIM_NIDORINO_CRY] = sAnim_Scene3_Nidorino_Cry, + [ANIM_NIDORINO_CROUCH] = sAnim_Scene3_Nidorino_Crouch, + [ANIM_NIDORINO_HOP] = sAnim_Scene3_Nidorino_Hop, + [ANIM_NIDORINO_ATTACK] = sAnim_Scene3_Nidorino_Attack }; -static const union AffineAnimCmd sAffineAnim_Scene3_Mons_0[] = { +static const union AffineAnimCmd sAffineAnim_Scene3_Mons_Normal[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sAffineAnim_Scene3_Mons_1[] = { +static const union AffineAnimCmd sAffineAnim_Scene3_Mons_Zoom[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(32, 32, 0, 8), AFFINEANIMCMD_END }; static const union AffineAnimCmd *const sAffineAnims_Scene3_Mons[] = { - sAffineAnim_Scene3_Mons_0, - sAffineAnim_Scene3_Mons_1 + [AFFINEANIM_NORMAL] = sAffineAnim_Scene3_Mons_Normal, + [AFFINEANIM_ZOOM] = sAffineAnim_Scene3_Mons_Zoom }; static const struct SpriteTemplate sSpriteTemplate_Scene3_Nidorino = { @@ -626,9 +670,9 @@ static const struct OamData sOam_Scene2_Mons = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 @@ -659,28 +703,28 @@ static const struct OamData sOam_Grass = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x32), .tileNum = 0x000, .priority = 0, .paletteNum = 0 }; -static const union AnimCmd sAnim_Grass_0[] = { +static const union AnimCmd sAnim_Grass_Static[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_Grass_1[] = { +static const union AnimCmd sAnim_Grass_Rustle[] = { ANIMCMD_FRAME(32, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_END }; static const union AnimCmd *const sAnims_Grass[] = { - sAnim_Grass_0, - sAnim_Grass_1 + sAnim_Grass_Static, + sAnim_Grass_Rustle // Unused }; static const struct SpriteTemplate sSpriteTemplate_Grass = { @@ -698,39 +742,39 @@ static const struct OamData sOam_Scene3_Gengar = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd sAnim_Scene3_Gengar_0[] = { +static const union AnimCmd sAnim_Scene3_Gengar_TopLeft[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Gengar_1[] = { +static const union AnimCmd sAnim_Scene3_Gengar_TopRight[] = { ANIMCMD_FRAME(64, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Gengar_2[] = { +static const union AnimCmd sAnim_Scene3_Gengar_BottomLeft[] = { ANIMCMD_FRAME(96, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_Scene3_Gengar_3[] = { +static const union AnimCmd sAnim_Scene3_Gengar_BottomRight[] = { ANIMCMD_FRAME(160, 0), ANIMCMD_END }; static const union AnimCmd *const sAnims_Scene3_Gengar[NUM_GENGAR_BACK_SPRITES] = { - sAnim_Scene3_Gengar_0, - sAnim_Scene3_Gengar_1, - sAnim_Scene3_Gengar_2, - sAnim_Scene3_Gengar_3 + sAnim_Scene3_Gengar_TopLeft, + sAnim_Scene3_Gengar_TopRight, + sAnim_Scene3_Gengar_BottomLeft, + sAnim_Scene3_Gengar_BottomRight }; static const struct SpriteTemplate sSpriteTemplate_Scene3_Gengar = { @@ -748,29 +792,29 @@ static const struct OamData sOam_Swipe = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(32x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(32x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd sAnim_Swipe_0[] = { +static const union AnimCmd sAnim_Swipe_Top[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(32, 4), ANIMCMD_END }; -static const union AnimCmd sAnim_Swipe_1[] = { +static const union AnimCmd sAnim_Swipe_Bottom[] = { ANIMCMD_FRAME(64, 8), ANIMCMD_FRAME(72, 4), ANIMCMD_END }; static const union AnimCmd *const sAnims_Swipe[] = { - sAnim_Swipe_0, - sAnim_Swipe_1 + [ANIM_SWIPE_TOP] = sAnim_Swipe_Top, + [ANIM_SWIPE_BOTTOM] = sAnim_Swipe_Bottom }; static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = { @@ -788,9 +832,9 @@ static const struct OamData sOam_RecoilDust = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .matrixNum = 0, - .size = ST_OAM_SIZE_1, + .size = SPRITE_SIZE(16x16), .tileNum = 0x000, .priority = 1, .paletteNum = 0 @@ -815,7 +859,7 @@ static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = { .anims = sAnims_RecoilDust, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_NidorinoRecoilDust + .callback = SpriteCB_RecoilDust }; static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = { @@ -829,15 +873,15 @@ static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = { }; // POTENTIAL UB -// This array is passed to LoadSpritePalettes in LoadFightSceneSpriteTilesAndPals. +// This array is passed to LoadSpritePalettes in LoadFightSceneSpriteGraphics. // LoadSpritePalettes uses a {0} entry to signal end of array. // Because such an entry is absent in this case, the function // continues reading into the next .rodata section. static const struct SpritePalette sFightSceneSpritePalettes[] = { - {sGengar_Pal, PALTAG_GENGAR}, - {sNidorino_Pal, PALTAG_NIDORINO}, - {sScene3_Grass_Pal, PALTAG_SCENE3_GRASS}, - {sScene3_Swipe_Pal, PALTAG_SCENE3_SWIPE}, + {sGengar_Pal, PALTAG_GENGAR}, + {sNidorino_Pal, PALTAG_NIDORINO}, + {sScene3_Grass_Pal, PALTAG_SCENE3_GRASS}, + {sScene3_Swipe_Pal, PALTAG_SCENE3_SWIPE}, {sScene3_RecoilDust_Pal, PALTAG_SCENE3_RECOIL_DUST}, #ifdef BUGFIX {0} @@ -861,7 +905,7 @@ static void LoadCopyrightGraphics(u16 charBase, u16 screenBase, u16 palOffset) { LZ77UnCompVram(sCopyright_Gfx, (void *)BG_VRAM + charBase); LZ77UnCompVram(sCopyright_Map, (void *)BG_VRAM + screenBase); - LoadPalette(sCopyright_Pal, palOffset, 0x20); + LoadPalette(sCopyright_Pal, palOffset, sizeof(sCopyright_Pal)); } static void SerialCB_CopyrightScreen(void) @@ -983,13 +1027,13 @@ static void CB2_SetUpIntro(void) DmaFill16(3, 0, PLTT, PLTT_SIZE); FillPalette(RGB_BLACK, 0, 0x400); ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, NELEMS(sBgTemplates_GameFreakScene)); + InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, ARRAY_COUNT(sBgTemplates_GameFreakScene)); break; case 1: - LoadPalette(sGameFreakBg_Pal, 0x00, 0x20); + LoadPalette(sGameFreakBg_Pal, 0x00, sizeof(sGameFreakBg_Pal)); DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Map, 0, 0, 1); - LoadPalette(sGameFreakLogo_Pal, 0xD0, 0x20); + LoadPalette(sGameFreakLogo_Pal, 0xD0, sizeof(sGameFreakLogo_Pal)); break; case 2: if (!FreeTempTileDataBuffersIfPossible()) @@ -1038,7 +1082,7 @@ static void Intro_ResetGpuRegs(void) static void StartIntroSequence(void) { - struct IntroSequenceData * ptr = Alloc(sizeof(struct IntroSequenceData)); + struct IntroSequenceData * ptr = Alloc(sizeof(*ptr)); SetIntroCB(ptr, IntroCB_Init); ptr->taskId = CreateTask(Task_CallIntroCallback, 3); SetWordTaskArg(ptr->taskId, 0, (uintptr_t)ptr); @@ -1053,8 +1097,11 @@ static void SetIntroCB(struct IntroSequenceData * ptr, IntroCallback cb) static void Task_CallIntroCallback(u8 taskId) { struct IntroSequenceData * ptr = (void *)GetWordTaskArg(taskId, 0); - if (JOY_NEW(A_BUTTON | START_BUTTON | SELECT_BUTTON) && ptr->callback != IntroCB_CleanUp) - SetIntroCB(ptr, IntroCB_CleanUp); + + // End intro early if player presses A/Start/Select + if (JOY_NEW(A_BUTTON | START_BUTTON | SELECT_BUTTON) && ptr->callback != IntroCB_ExitToTitleScreen) + SetIntroCB(ptr, IntroCB_ExitToTitleScreen); + ptr->callback(ptr); } @@ -1063,138 +1110,138 @@ static void IntroCB_Init(struct IntroSequenceData * this) switch (this->state) { case 0: - InitWindows(sWindowTemplate_GameFreakTextLogo); + InitWindows(sWindowTemplates); LZ77UnCompWram(sGameFreakText_Gfx, this->gameFreakTextGfx); LZ77UnCompWram(sGameFreakLogo_Gfx, this->gameFreakLogoGfx); FillBgTilemapBufferRect(BG_GF_TEXT_LOGO, 0x000, 0, 0, 32, 32, 0x11); - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - BlitBitmapToWindow(0, this->gameFreakTextGfx, 0, 40, 144, 16); - PutWindowTilemap(0); - CopyWindowToVram(0, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_GF_TEXT_LOGO, PIXEL_FILL(0)); + BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakTextGfx, 0, 40, 144, 16); + PutWindowTilemap(WIN_GF_TEXT_LOGO); + CopyWindowToVram(WIN_GF_TEXT_LOGO, COPYWIN_FULL); this->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) - SetIntroCB(this, IntroCB_OpenWin1ToTheaterDimensions); + SetIntroCB(this, IntroCB_GF_OpenWindow); break; } } -static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * this) +static void IntroCB_GF_OpenWindow(struct IntroSequenceData * this) { switch (this->state) { case 0: SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); - SetGpuReg(REG_OFFSET_WININ, 0x3F00); - SetGpuReg(REG_OFFSET_WINOUT, 0x0000); - SetGpuReg(REG_OFFSET_WIN1H, 0x00F0); - SetGpuReg(REG_OFFSET_WIN1V, 0x0000); - this->data[5] = 0; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_ALL); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN1H, DISPLAY_WIDTH); + SetGpuReg(REG_OFFSET_WIN1V, 0); + this->timer = 0; this->state++; break; case 1: - ShowBg(3); - BlendPalettes(PALETTES_ALL, 0x00, RGB_BLACK); + ShowBg(BG_GF_BACKGROUND); + BlendPalettes(PALETTES_ALL, 0, RGB_BLACK); this->state++; break; case 2: - this->data[5] += 8; - if (this->data[5] >= 0x30) - this->data[5] = 0x30; - SetGpuReg(REG_OFFSET_WIN1V, ((0x50 - this->data[5]) << 8) | (0x50 + this->data[5])); - if (this->data[5] == 0x30) - SetIntroCB(this, IntroCB_GameFreakStar); + // Extend window height in both directions from midpoint until it reaches a narrow "theatric" view + this->timer += 8; + if (this->timer >= 48) + this->timer = 48; + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(DISPLAY_HEIGHT / 2 - this->timer, DISPLAY_HEIGHT / 2 + this->timer)); + if (this->timer == 48) + SetIntroCB(this, IntroCB_GF_Star); break; } } -static void IntroCB_GameFreakStar(struct IntroSequenceData * this) +static void IntroCB_GF_Star(struct IntroSequenceData * this) { switch (this->state) { case 0: PlaySE(MUS_GAME_FREAK); - GameFreakScene_LoadGfxCreateStar(); - this->data[5] = 0; + GFScene_LoadGfxCreateStar(); + this->timer = 0; this->state++; break; case 1: - this->data[5]++; - if (this->data[5] == 30) + if (++this->timer == 30) { - GameFreakScene_StartTrailingSparkleSpawner(); - this->data[5] = 0; + GFScene_StartNameSparklesSmall(); + this->timer = 0; this->state++; } break; case 2: - this->data[5]++; - if (this->data[5] == 90) - SetIntroCB(this, IntroCB_GameFreakScene_RevealGameFreakText); + this->timer++; + if (this->timer == 90) + SetIntroCB(this, IntroCB_GF_RevealName); break; } } -static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData * this) +static void IntroCB_GF_RevealName(struct IntroSequenceData * this) { switch (this->state) { case 0: - GameFreakScene_StartRevealGameFreakTextSparklesSpawner(); - this->data[5] = 0; + GFScene_StartNameSparklesBig(); + this->timer = 0; this->state++; break; case 1: - if (++this->data[5] >= 40) + if (++this->timer >= 40) this->state++; break; case 2: - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); StartBlendTask(0, 16, 16, 0, 48, 0); this->state++; break; case 3: - ShowBg(2); + ShowBg(BG_GF_TEXT_LOGO); this->state++; break; case 4: if (!IsBlendTaskActive()) { SetGpuReg(REG_OFFSET_BLDCNT, 0); - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 5: - if (++this->data[5] > 50) - SetIntroCB(this, IntroCB_GameFreakScene_CreateGameFreakLogo); + if (++this->timer > 50) + SetIntroCB(this, IntroCB_GF_RevealLogo); break; } } -static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData * this) +static void IntroCB_GF_RevealLogo(struct IntroSequenceData * this) { switch (this->state) { case 0: - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); StartBlendTask(0, 16, 16, 0, 16, 0); - this->data[0] = 0; - this->data[1] = 16; - this->data[5] = 0; + this->data[0] = 0; // Never read + this->data[1] = 16; // Never read + this->timer = 0; this->state++; break; case 1: - this->gameFreakLogoArtSprite = CreateGameFreakLogoArtSprite(); + this->gameFreakLogoArtSprite = GFScene_CreateLogoSprite(); this->state++; break; case 2: if (!IsBlendTaskActive()) { - BlitBitmapToWindow(0, this->gameFreakLogoGfx, 0x38, 0x06, 0x20, 0x40); - BlitBitmapToWindow(0, this->gameFreakTextGfx, 0x00, 0x28, 0x90, 0x10); - CopyWindowToVram(0, COPYWIN_GFX); + BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakLogoGfx, 0x38, 0x06, 0x20, 0x40); + BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakTextGfx, 0x00, 0x28, 0x90, 0x10); + CopyWindowToVram(WIN_GF_TEXT_LOGO, COPYWIN_GFX); this->state++; } break; @@ -1203,14 +1250,14 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData { DestroySprite(this->gameFreakLogoArtSprite); #if REVISION >= 1 - CreateGameFreakPresentsText(); + GFScene_CreatePresentsSprite(); #endif - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 4: - if (++this->data[5] > 90) + if (++this->timer > 90) { SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2); StartBlendTask(16, 0, 0, 16, 20, 0); @@ -1227,36 +1274,36 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 6: ResetSpriteData(); FreeAllSpritePalettes(); - this->data[5] = 0; + this->timer = 0; this->state++; break; case 7: - if (++this->data[5] > 20) + if (++this->timer > 20) { SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetIntroCB(this, IntroCB_FightScene); + SetIntroCB(this, IntroCB_Scene1); } break; } } -static void IntroCB_FightScene(struct IntroSequenceData * this) +static void IntroCB_Scene1(struct IntroSequenceData * this) { switch (this->state) { case 0: SetVBlankCallback(NULL); - LoadPalette(sScene1_Grass_Pal, 0x10, 0x20); - LoadPalette(sScene1_Bg_Pal, 0x20, 0x20); - BlendPalettes(0x00000006, 0x10, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_Scene1, NELEMS(sBgTemplates_Scene1)); + LoadPalette(sScene1_Grass_Pal, 16 * PALSLOT_SCENE1_GRASS, sizeof(sScene1_Grass_Pal)); + LoadPalette(sScene1_Bg_Pal, 16 * PALSLOT_SCENE1_BG, sizeof(sScene1_Bg_Pal)); + BlendPalettes((1 << PALSLOT_SCENE1_GRASS) | (1 << PALSLOT_SCENE1_BG), 16, RGB_WHITE); + InitBgsFromTemplates(0, sBgTemplates_Scene1, ARRAY_COUNT(sBgTemplates_Scene1)); DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Map, 0, 0, 1); ShowBg(BG_SCENE1_BACKGROUND); HideBg(BG_SCENE1_GRASS); HideBg(BG_SCENE1_UNUSED1); HideBg(BG_SCENE1_UNUSED2); - LoadFightSceneSpriteTilesAndPals(); + LoadFightSceneSpriteGraphics(); SetVBlankCallback(VBlankCB_Intro); this->state++; break; @@ -1274,8 +1321,8 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) if (!FreeTempTileDataBuffersIfPossible()) { ShowBg(BG_SCENE1_GRASS); - CreateTask(Task_FightScene1_GrassyFieldAnim, 0); - BeginNormalPaletteFade(0x00000006, -2, 16, 0, RGB_WHITE); + CreateTask(Scene1_Task_AnimateGrass, 0); + BeginNormalPaletteFade((1 << PALSLOT_SCENE1_GRASS) | (1 << PALSLOT_SCENE1_BG), -2, 16, 0, RGB_WHITE); this->state++; } break; @@ -1283,80 +1330,106 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) if (!gPaletteFade.active) { m4aSongNumStart(MUS_INTRO_FIGHT); - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 4: - this->data[5]++; - if (this->data[5] == 20) + if (++this->timer == 20) { - CreateTask(Task_FightScene1_ZoomEffect, 0); - FightScene1_SignalEndGrassyFieldAnim(); + // Start animation for transitioning to the next scene + CreateTask(Scene1_Task_BgZoom, 0); + Scene1_StartGrassScrolling(); } - if (this->data[5] >= 30) + if (this->timer >= 30) { - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - DestroyTask(FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim)); - DestroyTask(FindTaskIdByFunc(Task_FightScene1_ZoomEffect)); - SetIntroCB(this, IntroCB_FightScene2); + // End scene + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + DestroyTask(FindTaskIdByFunc(Scene1_Task_AnimateGrass)); + DestroyTask(FindTaskIdByFunc(Scene1_Task_BgZoom)); + SetIntroCB(this, IntroCB_Scene2); } break; case 5: + // Never reached if (!gPaletteFade.active) { - DestroyTask(FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim)); - DestroyTask(FindTaskIdByFunc(Task_FightScene1_ZoomEffect)); - SetIntroCB(this, IntroCB_FightScene2); + DestroyTask(FindTaskIdByFunc(Scene1_Task_AnimateGrass)); + DestroyTask(FindTaskIdByFunc(Scene1_Task_BgZoom)); + SetIntroCB(this, IntroCB_Scene2); } break; } } -static void Task_FightScene1_GrassyFieldAnim(u8 taskId) +#define tTimer data[0] +#define tFrame data[1] +#define tExiting data[2] +#define tScroll data[3] + +static void Scene1_Task_AnimateGrass(u8 taskId) { s16 * data = gTasks[taskId].data; - if (++data[0] > 5) + // Each of the 3 frames of the bg grass animation is separated vertically on the tilemap. + // The conditional below changes the frame by setting the y coordinate of the bg. + if (++tTimer > 5) { - data[0] = 0; - if (++data[1] > 2) - data[1] = 0; - ChangeBgY(BG_SCENE1_GRASS, data[1] << 15, 0); + tTimer = 0; + if (++tFrame >= 3) + tFrame = 0; + ChangeBgY(BG_SCENE1_GRASS, tFrame << 15, BG_COORD_SET); } - if (data[2]) + + // When it's time to progress to the next scene, the grass is meant to scroll downward offscreen. + // This scrolling is overwritten by the coord change above, and so the grass "stutters" back upward. + // They don't mask the bg, so if it were to continue scrolling offscreen it would reveal the frame above on the tilemap. + if (tExiting) { - data[3] += 0x120; - ChangeBgY(BG_SCENE1_GRASS, data[3], 2); + tScroll += 0x120; + ChangeBgY(BG_SCENE1_GRASS, tScroll, BG_COORD_SUB); } } -static void FightScene1_SignalEndGrassyFieldAnim(void) +static void Scene1_StartGrassScrolling(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim); - gTasks[taskId].data[2] = TRUE; + u8 taskId = FindTaskIdByFunc(Scene1_Task_AnimateGrass); + gTasks[taskId].tExiting = TRUE; } -static void Task_FightScene1_ZoomEffect(u8 taskId) +#undef tTimer +#undef tFrame +#undef tExiting +#undef tScroll + +#define tTimer data[0] +#define tFrame data[1] + +// Have the silhouetted forest background "zoom in" during the transition to the next scene. +// Same as the grass animation above, this achieved by separating frames vertically on the bg tilemap. +static void Scene1_Task_BgZoom(u8 taskId) { s16 * data = gTasks[taskId].data; - if (++data[0] > 3) + if (++tTimer > 3) { - data[0] = 0; - if (data[1] < 2) - data[1]++; - ChangeBgY(BG_SCENE1_BACKGROUND, data[1] << 15, 0); + tTimer = 0; + if (tFrame < 2) + tFrame++; + ChangeBgY(BG_SCENE1_BACKGROUND, tFrame << 15, BG_COORD_SET); } } -static void IntroCB_FightScene2(struct IntroSequenceData * this) +#undef tTimer +#undef tFrame + +static void IntroCB_Scene2(struct IntroSequenceData * this) { switch (this->state) { case 0: - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_Scene2, NELEMS(sBgTemplates_Scene2)); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + InitBgsFromTemplates(0, sBgTemplates_Scene2, ARRAY_COUNT(sBgTemplates_Scene2)); DecompressAndCopyTileDataToVram(BG_SCENE2_BACKGROUND, sScene2_Bg_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENE2_BACKGROUND, sScene2_Bg_Map, 0, 0, 1); ShowBg(BG_SCENE2_BACKGROUND); @@ -1366,10 +1439,10 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) if (!FreeTempTileDataBuffersIfPossible()) { SetVBlankCallback(NULL); - LoadPalette(sScene2_Bg_Pal, 0x10, 0x60); - LoadPalette(sGengar_Pal, 0x50, 0x20); - LoadPalette(sScene2_NidorinoClose_Pal, 0x60, 0x20); - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); + LoadPalette(sScene2_Bg_Pal, 0x10, sizeof(sScene2_Bg_Pal)); + LoadPalette(sGengar_Pal, 0x50, sizeof(sGengar_Pal)); + LoadPalette(sScene2_NidorinoClose_Pal, 0x60, sizeof(sScene2_NidorinoClose_Pal)); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Map, 0, 0, 1); DecompressAndCopyTileDataToVram(BG_SCENE2_NIDORINO, sScene2_NidorinoClose_Gfx, 0, 0, 0); @@ -1378,13 +1451,13 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) DecompressAndCopyTileDataToVram(BG_SCENE2_GENGAR, sScene2_GengarClose_Map, 0, 0, 1); ResetBgPositions(); ShowBg(BG_SCENE2_PLANTS); - HideBg(BG_SCENE2_NIDORINO); // Hide bgs for scene 3 + HideBg(BG_SCENE2_NIDORINO); // Hide bgs for the close up shot HideBg(BG_SCENE2_GENGAR); - ChangeBgY(BG_SCENE2_GENGAR, 0x0001CE00, 0); - ChangeBgY(BG_SCENE2_NIDORINO, 0x00002800, 0); - CreateTask(Task_FightScene2_CameraHorizPanEffect, 0); - CreateMonStaticSprites(this); - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); + ChangeBgY(BG_SCENE2_GENGAR, 0x0001CE00, BG_COORD_SET); + ChangeBgY(BG_SCENE2_NIDORINO, 0x00002800, BG_COORD_SET); + CreateTask(Scene2_Task_PanForest, 0); + Scene2_CreateMonSprites(this); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); SetVBlankCallback(VBlankCB_Intro); this->state++; } @@ -1392,25 +1465,25 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) case 2: if (!FreeTempTileDataBuffersIfPossible()) { - BeginNormalPaletteFade(0xFFFFFFFE, -2, 16, 0, RGB_WHITE); + BeginNormalPaletteFade(PALETTES_ALL & ~1, -2, 16, 0, RGB_WHITE); this->state++; } break; case 3: if (!gPaletteFade.active) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 4: - if (++this->data[5] >= 60) + if (++this->timer >= 60) { - this->data[5] = 0; - DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraHorizPanEffect)); - DestroyStaticMonSprites(this); - CreateTask(Task_FightScene2_CameraVertPanEffect, 0); - ChangeBgY(BG_SCENE2_BACKGROUND, 0x00010000, 0); // Move background from upper half (wide shot) to lower half (close up) + this->timer = 0; + DestroyTask(FindTaskIdByFunc(Scene2_Task_PanForest)); + Scene2_DestroyMonSprites(this); + CreateTask(Scene2_Task_PanMons, 0); + ChangeBgY(BG_SCENE2_BACKGROUND, 0x00010000, BG_COORD_SET); // Move background from upper half (wide shot) to lower half (close up) HideBg(BG_SCENE2_PLANTS); ShowBg(BG_SCENE2_BACKGROUND); ShowBg(BG_SCENE2_NIDORINO); @@ -1421,65 +1494,69 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) case 5: if (!IsDma3ManagerBusyWithBgCopy()) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 6: - if (++this->data[5] >= 60) + if (++this->timer >= 60) { - DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraVertPanEffect)); - SetIntroCB(this, IntroCB_FightScene3); + DestroyTask(FindTaskIdByFunc(Scene2_Task_PanMons)); + SetIntroCB(this, IntroCB_Scene3_Entrance); } break; } } -static void Task_FightScene2_CameraHorizPanEffect(u8 taskId) +// Pan the background trees right and the foreground plants left in the wide shot +static void Scene2_Task_PanForest(u8 taskId) { - ChangeBgX(BG_SCENE2_BACKGROUND, 0x0E0, 2); - ChangeBgX(BG_SCENE2_PLANTS, 0x110, 1); + ChangeBgX(BG_SCENE2_BACKGROUND, 0x0E0, BG_COORD_SUB); + ChangeBgX(BG_SCENE2_PLANTS, 0x110, BG_COORD_ADD); } -static void Task_FightScene2_CameraVertPanEffect(u8 taskId) +// Pan Gengar up and Nidorino down in the close up shot +static void Scene2_Task_PanMons(u8 taskId) { - ChangeBgY(BG_SCENE2_GENGAR, 0x020, 1); - ChangeBgY(BG_SCENE2_NIDORINO, 0x024, 2); + ChangeBgY(BG_SCENE2_GENGAR, 0x020, BG_COORD_ADD); + ChangeBgY(BG_SCENE2_NIDORINO, 0x024, BG_COORD_SUB); } -static void CreateMonStaticSprites(struct IntroSequenceData * this) +// Create the Gengar/Nidorino sprites for the wide shot in scene 2 +static void Scene2_CreateMonSprites(struct IntroSequenceData * this) { u8 spriteId; - this->gengarStaticSprite = NULL; - this->nidorinoStaticSprite = NULL; + this->scene2GengarSprite = NULL; + this->scene2NidorinoSprite = NULL; spriteId = CreateSprite(&sSpriteTemplate_Scene2_Nidorino, 168, 80, 11); if (spriteId != MAX_SPRITES) - this->nidorinoStaticSprite = &gSprites[spriteId]; + this->scene2NidorinoSprite = &gSprites[spriteId]; spriteId = CreateSprite(&sSpriteTemplate_Scene2_Gengar, 72, 80, 12); if (spriteId != MAX_SPRITES) - this->gengarStaticSprite = &gSprites[spriteId]; + this->scene2GengarSprite = &gSprites[spriteId]; } -static void DestroyStaticMonSprites(struct IntroSequenceData * this) +static void Scene2_DestroyMonSprites(struct IntroSequenceData * this) { - if (this->gengarStaticSprite != NULL) - DestroySprite(this->gengarStaticSprite); - if (this->nidorinoStaticSprite != NULL) - DestroySprite(this->nidorinoStaticSprite); + if (this->scene2GengarSprite != NULL) + DestroySprite(this->scene2GengarSprite); + if (this->scene2NidorinoSprite != NULL) + DestroySprite(this->scene2NidorinoSprite); } -static void IntroCB_FightScene3(struct IntroSequenceData * this) +// Set up the scene 3 graphics, then start the scrolling to get Gengar and Nidorino in their fight positions +static void IntroCB_Scene3_Entrance(struct IntroSequenceData * this) { switch (this->state) { case 0: - LoadPalette(sScene3_Bg_Pal, 0x10, 0x40); - LoadPalette(sGengar_Pal, 0x50, 0x20); - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_Scene3, NELEMS(sBgTemplates_Scene3)); + LoadPalette(sScene3_Bg_Pal, 0x10, sizeof(sScene3_Bg_Pal)); + LoadPalette(sGengar_Pal, 0x50, sizeof(sGengar_Pal)); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + InitBgsFromTemplates(0, sBgTemplates_Scene3, ARRAY_COUNT(sBgTemplates_Scene3)); DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Map, 0, 0, 1); ShowBg(BG_SCENE3_BACKGROUND); @@ -1489,280 +1566,306 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) ResetBgPositions(); this->state++; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuRegBits(REG_OFFSET_WININ, 0x12); - ClearGpuRegBits(REG_OFFSET_WININ, 0x01); - SetGpuRegBits(REG_OFFSET_WINOUT, 0x00); - SetGpuReg(REG_OFFSET_WIN0V, 0x2080); - SetGpuReg(REG_OFFSET_WIN0H, 0x0078); + SetGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_OBJ); + ClearGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_BG0); + SetGpuRegBits(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(32, DISPLAY_HEIGHT - 32)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH / 2)); break; case 1: if (!FreeTempTileDataBuffersIfPossible()) { DecompressAndCopyTileDataToVram(BG_SCENE3_GENGAR, sScene3_GengarAnim_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENE3_GENGAR, sScene3_GengarAnim_Map, 0, 0, 1); - gUnknown_203AB00 = 4; - gUnknown_203AB02 = 52; - ChangeBgX(BG_SCENE3_GENGAR, 0x00001800, 0); - ChangeBgY(BG_SCENE3_GENGAR, 0x0001F000, 0); + sUnusedScene3Var0 = 4; + sUnusedScene3Var1 = 52; + ChangeBgX(BG_SCENE3_GENGAR, 0x00001800, BG_COORD_SET); + ChangeBgY(BG_SCENE3_GENGAR, 0x0001F000, BG_COORD_SET); this->state++; } break; case 2: if (!FreeTempTileDataBuffersIfPossible()) { - BlendPalettes(0xFFFFFFFE, 0, RGB_WHITE); + BlendPalettes(PALETTES_ALL & ~1, 0, RGB_WHITE); ShowBg(BG_SCENE3_GENGAR); - CreateTask(Task_FightScene3_ForestBgScroll, 0); - CreateNidorinoAnimSprite(this); - StartNidorinoAnimSpriteSlideIn(this->nidorinoAnimSprite, 0, 0xB4, 0x34); - CreateTask(Task_FightScene3_Bg0Scroll, 0); - FightScene3_StartBg1Scroll(); - this->data[5] = 0; + CreateTask(Scene3_Task_GengarBounce, 0); + Scene3_CreateNidorinoSprite(this); + Scene3_StartNidorinoEntrance(this->scene3NidorinoSprite, 0, 180, 52); + CreateTask(Scene3_Task_GengarEnter, 0); + Scene3_StartBgScroll(); + this->timer = 0; this->state++; } break; case 3: - if (++this->data[5] == 16) - CreateGrassSprite(this); - if (!IsNidorinoAnimSpriteSlideInRunning(this) && !FuncIsActiveTask(Task_FightScene3_Bg0Scroll)) - SetIntroCB(this, IntroCB_FightScene4); + if (++this->timer == 16) + Scene3_CreateGrassSprite(this); + if (!Scene3_IsNidorinoEntering(this) && !FuncIsActiveTask(Scene3_Task_GengarEnter)) + SetIntroCB(this, IntroCB_Scene3_Fight); break; } } -static void Task_FightScene3_Bg1Scroll(u8 taskId) +#define tSlow data[0] + +// Pan the background trees right during the fight scene. +// It pans quickly while Gengar/Nidorino are sliding onscreen, and it pans slowly thereafter. +static void Scene3_Task_BgScroll(u8 taskId) { - if (gTasks[taskId].data[0] == 0) - ChangeBgX(BG_SCENE3_BACKGROUND, 0x400, 2); + if (!gTasks[taskId].tSlow) + ChangeBgX(BG_SCENE3_BACKGROUND, 0x400, BG_COORD_SUB); else - ChangeBgX(BG_SCENE3_BACKGROUND, 0x020, 2); + ChangeBgX(BG_SCENE3_BACKGROUND, 0x020, BG_COORD_SUB); } -static void FightScene3_StartBg1Scroll(void) +static void Scene3_StartBgScroll(void) { - CreateTask(Task_FightScene3_Bg1Scroll, 0); + CreateTask(Scene3_Task_BgScroll, 0); } -static void FightScene3_SlowBg1Scroll(void) +static void Scene3_SlowBgScroll(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_Bg1Scroll); - gTasks[taskId].data[0] = 1; + u8 taskId = FindTaskIdByFunc(Scene3_Task_BgScroll); + gTasks[taskId].tSlow = TRUE; } -static void Task_FightScene3_ForestBgScroll(u8 taskId) +#undef tSlow + +#define tPaused data[0] +#define tTimer data[1] +#define tState data[2] + +// Gengar has an "idle" animation where it bounces a little +static void Scene3_Task_GengarBounce(u8 taskId) { s16 * data = gTasks[taskId].data; - if (data[0] == 0) + if (!tPaused) { - if (++data[1] >= 30) + if (++tTimer >= 30) { - data[1] = 0; - data[2] ^= 1; - ChangeBgY(BG_SCENE3_GENGAR, (data[2] << 15) + 0x1F000, 0); + tTimer = 0; + tState ^= 1; // Alternate between the 0th (normal) and 1st (slightly crouched) bg frames + ChangeBgY(BG_SCENE3_GENGAR, (tState << 15) + 0x1F000, BG_COORD_SET); } } } -static void FightScene3_PauseForestBgScroll(void) +static void Scene3_PauseGengarBounce(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_ForestBgScroll); - gTasks[taskId].data[0] = 1; + u8 taskId = FindTaskIdByFunc(Scene3_Task_GengarBounce); + gTasks[taskId].tPaused = TRUE; } -static void FightScene3_ResumeForestBgScroll(void) +static void Scene3_ResumeGengarBounce(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_ForestBgScroll); - gTasks[taskId].data[0] = 0; + u8 taskId = FindTaskIdByFunc(Scene3_Task_GengarBounce); + gTasks[taskId].tPaused = FALSE; } -static bool8 FightScene3_GetForestBgScrollState(void) +static bool8 Scene3_IsGengarMidBounce(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_ForestBgScroll); - return gTasks[taskId].data[2]; + u8 taskId = FindTaskIdByFunc(Scene3_Task_GengarBounce); + return gTasks[taskId].tState; } -static void CreateGrassSprite(struct IntroSequenceData * this) +#undef tPaused +#undef tTimer +#undef tState + +// The small clump of grass that passes by in the foreground during the fight +static void Scene3_CreateGrassSprite(struct IntroSequenceData * this) { u8 spriteId = CreateSprite(&sSpriteTemplate_Grass, 296, 112, 7); if (spriteId != MAX_SPRITES) { - this->grassSprite = &gSprites[spriteId]; - this->grassSprite->callback = SpriteCB_Grass; + this->scene3GrassSprite = &gSprites[spriteId]; + this->scene3GrassSprite->callback = SpriteCB_Grass; } else - this->grassSprite = NULL; + this->scene3GrassSprite = NULL; } +#define sState data[0] +#define sBaseX data[1] +#define sVeloc data[2] + static void SpriteCB_Grass(struct Sprite *sprite) { s16 * data = sprite->data; - switch (data[0]) + switch (sState) { case 0: - data[1] = sprite->x << 5; - data[2] = 160; - data[0]++; + sBaseX = sprite->x << 5; + sVeloc = 160; + sState++; // fallthrough case 1: - data[1] -= data[2]; - sprite->x = data[1] >> 5; + sBaseX -= sVeloc; + sprite->x = sBaseX >> 5; if (sprite->x <= 52) { - FightScene3_SlowBg1Scroll(); - data[0]++; + Scene3_SlowBgScroll(); + sState++; } break; case 2: - data[1] -= 32; - sprite->x = data[1] >> 5; + sBaseX -= 32; + sprite->x = sBaseX >> 5; if (sprite->x <= -32) { sprite->invisible = TRUE; - sprite->data[0]++; + sprite->sState++; DestroySprite(sprite); } break; } } -static void IntroCB_FightScene4(struct IntroSequenceData * this) +#undef sState +#undef sBaseX +#undef sVeloc + +static void IntroCB_Scene3_Fight(struct IntroSequenceData * this) { switch (this->state) { case 0: - this->data[5] = 0; + this->timer = 0; this->state++; break; case 1: - if (++this->data[5] > 30) + if (++this->timer > 30) { - FightScene4_NidorinoRearsUp(this); + Scene3_StartNidorinoCry(this); this->state++; } break; case 2: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 3: - if (++this->data[5] > 30) + if (++this->timer > 30) { - FightScene3_PauseForestBgScroll(); - FightScene4_StartGengarAttack(this); - this->data[5] = 0; + Scene3_PauseGengarBounce(); + Scene3_StartGengarAttack(this); + this->timer = 0; this->state++; } break; case 4: if (this->gengarAttackLanded) { - FightScene4_StartNidorinoRecoilAnim(this); + Scene3_StartNidorinoRecoil(this); this->state++; } break; case 5: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - FightScene3_ResumeForestBgScroll(); - this->data[5] = 0; + Scene3_ResumeGengarBounce(); + this->timer = 0; this->state++; } break; case 6: - if (++this->data[5] > 16) + if (++this->timer > 16) { - StartSpriteHopToPosAnim(this->nidorinoAnimSprite, 8, 12, 5); + // Nidorino's 1st hop backwards in preparation to attack + Scene3_StartNidorinoHop(this->scene3NidorinoSprite, 8, 12, 5); this->state++; } break; case 7: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - StartSpriteHopToPosAnim(this->nidorinoAnimSprite, 8, 12, 5); + // Nidorino's 2nd hop backwards in preparation to attack + Scene3_StartNidorinoHop(this->scene3NidorinoSprite, 8, 12, 5); this->state++; } break; case 8: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 9: - if (++this->data[5] > 20) + if (++this->timer > 20) { - StartNidorinoAnim_LaunchSelfAtGengarAnim(this); - this->data[5] = 0; + Scene3_StartNidorinoAttack(this); + this->timer = 0; this->state++; } break; case 10: - if (!FightScene3_GetForestBgScrollState()) + if (!Scene3_IsGengarMidBounce()) { - FightScene3_PauseForestBgScroll(); - CreateGengarBackSprite(this); + Scene3_PauseGengarBounce(); + Scene3_CreateGengarSprite(this); this->state++; } break; case 11: HideBg(BG_SCENE3_GENGAR); - this->data[5] = 0; + this->timer = 0; this->state++; break; case 12: - if (++this->data[5] == 48) - BeginNormalPaletteFade(0x00000006, 2, 0, 16, RGB_WHITE); - if (this->data[5] > 120) + if (++this->timer == 48) + BeginNormalPaletteFade((1 << 1) | (1 << 2), 2, 0, 16, RGB_WHITE); + if (this->timer > 120) { - FightScene4_StartNidorinoAffineAnim(this); - FightScene4_StartGengarAffineAnim(this); + Scene3_NidorinoZoom(this); + Scene3_GengarZoom(this); this->state++; - this->data[5] = 0; + this->timer = 0; } break; case 13: - if (++this->data[5] > 8) + if (++this->timer > 8) { CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64); - BeginNormalPaletteFade(0xFFFFFFFE, -2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~1, -2, 0, 16, RGB_BLACK); this->state++; } break; case 14: if (!gPaletteFade.active) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 15: - if (++this->data[5] > 60) - SetIntroCB(this, IntroCB_CleanUp); + if (++this->timer > 60) + SetIntroCB(this, IntroCB_ExitToTitleScreen); break; default: if (JOY_NEW(R_BUTTON)) { - BlendPalettes(0xFFFF0064, 0, RGB_WHITE); - this->nidorinoAnimSprite->x2 = 0; - this->nidorinoAnimSprite->x = 0xB4; + BlendPalettes(PALETTES_OBJECTS | (1 << 2) | (1 << 5) | (1 << 6), 0, RGB_WHITE); + this->scene3NidorinoSprite->x2 = 0; + this->scene3NidorinoSprite->x = 180; this->state = 1; - this->data[5] = 30; + this->timer = 30; } break; } } -static void FightScene_CalcCenterToCornerVec(struct Sprite *sprite) +static void Scene3_CalcCenterToCornerVec(struct Sprite *sprite) { CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); } -static void CreateGengarBackSprite(struct IntroSequenceData * this) +static void Scene3_CreateGengarSprite(struct IntroSequenceData * this) { int i; @@ -1775,40 +1878,40 @@ static void CreateGengarBackSprite(struct IntroSequenceData * this) if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); - this->gengarBackSprites[i] = &gSprites[spriteId]; + this->scene3GengarSprites[i] = &gSprites[spriteId]; if (i & 1) - this->gengarBackSprites[i]->oam.shape = ST_OAM_V_RECTANGLE; - FightScene_CalcCenterToCornerVec(this->gengarBackSprites[i]); + this->scene3GengarSprites[i]->oam.shape = ST_OAM_V_RECTANGLE; + Scene3_CalcCenterToCornerVec(this->scene3GengarSprites[i]); } } } -static void FightScene4_StartNidorinoAffineAnim(struct IntroSequenceData * this) +static void Scene3_NidorinoZoom(struct IntroSequenceData * this) { - this->nidorinoAnimSprite->x += this->nidorinoAnimSprite->x2; - this->nidorinoAnimSprite->y += this->nidorinoAnimSprite->y2; - obj_pos2_update_enable(this->nidorinoAnimSprite, 0, 0x2A); - this->nidorinoAnimSprite->callback = SpriteCallbackDummy; - StartSpriteAffineAnim(this->nidorinoAnimSprite, 1); + this->scene3NidorinoSprite->x += this->scene3NidorinoSprite->x2; + this->scene3NidorinoSprite->y += this->scene3NidorinoSprite->y2; + SetSpriteMatrixAnchor(this->scene3NidorinoSprite, 0, 42); + this->scene3NidorinoSprite->callback = SpriteCallbackDummy; + StartSpriteAffineAnim(this->scene3NidorinoSprite, AFFINEANIM_ZOOM); } -static void SpriteCB_DummyButNotDummy(struct Sprite *sprite) +static void SpriteCB_Idle(struct Sprite *sprite) { } -static void FightScene4_StartGengarAffineAnim(struct IntroSequenceData * this) +static void Scene3_GengarZoom(struct IntroSequenceData * this) { int i; for (i = 0; i < NUM_GENGAR_BACK_SPRITES; i++) { - StartSpriteAffineAnim(this->gengarBackSprites[i], 1); - this->gengarBackSprites[i]->callback = SpriteCB_DummyButNotDummy; - obj_pos2_update_enable(this->gengarBackSprites[i], sGengarBackSpritePos2UpdateMods[i][0], sGengarBackSpritePos2UpdateMods[i][1]); + StartSpriteAffineAnim(this->scene3GengarSprites[i], AFFINEANIM_ZOOM); + this->scene3GengarSprites[i]->callback = SpriteCB_Idle; + SetSpriteMatrixAnchor(this->scene3GengarSprites[i], sGengarZoomMatrixAnchors[i][0], sGengarZoomMatrixAnchors[i][1]); } } -static void IntroCB_CleanUp(struct IntroSequenceData * this) +static void IntroCB_ExitToTitleScreen(struct IntroSequenceData * this) { switch (this->state) { @@ -1829,45 +1932,63 @@ static void IntroCB_CleanUp(struct IntroSequenceData * this) } } -static void GameFreakScene_LoadGfxCreateStar(void) +// Sprite data for SpriteCB_Star +#define sStar_BaseX data[0] +#define sStar_BaseY data[1] +#define sStar_SpeedX data[2] +#define sStar_SpeedY data[3] +#define sStar_SinIdx data[4] +#define sStar_SparkleTimer data[5] +#define sStar_SparkleRngSeed data[6] + +static void GFScene_LoadGfxCreateStar(void) { int i; u8 spriteId; - static EWRAM_DATA u32 sTrailingSparklesRngSeed = 0; + static EWRAM_DATA u32 sStarSparklesRngSeed = 0; - for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++) + for (i = 0; i < ARRAY_COUNT(sSpriteSheets_GameFreakScene); i++) LoadCompressedSpriteSheet(&sSpriteSheets_GameFreakScene[i]); LoadSpritePalettes(sSpritePalettes_GameFreakScene); - sLargeStarXSpeed = 0x60; - sLargeStarYSpeed = 0x10; - sTrailingSparklesXmodMask = 0x07; - sUnusedVarRelatedToGameFreakStars = 5; - sTrailingSparklesSpawnRate = 8; - sTrailingSparklesFlickerStartTime = 90; - sTrailingSparklesDestroySpriteTime = 120; - sTrailingSparklesXspeed = 1; - sTrailingSparklesYspeed = 1; - sTrailingSparklesXprecision = 5; - sTrailingSparklesYprecision = 5; - if (sTrailingSparklesRngSeed == 0) - sTrailingSparklesRngSeed = 354128453; - spriteId = CreateSprite(&sSpriteTemplate_Star, 0xF8, 0x37, 0); + sStarSpeedX = 96; + sStarSpeedY = 16; + sStarSparklesXmodMask = 0x07; + sStarSparklesUnusedVar = 5; + sStarSparklesSpawnRate = 8; + sStarSparklesFlickerStartTime = 90; + sStarSparklesDestroySpriteTime = 120; + sStarSparklesXspeed = 1; + sStarSparklesYspeed = 1; + sStarSparklesXprecision = 5; + sStarSparklesYprecision = 5; + if (sStarSparklesRngSeed == 0) + sStarSparklesRngSeed = 354128453; + spriteId = CreateSprite(&sSpriteTemplate_Star, 248, 55, 0); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = 0xF80; - gSprites[spriteId].data[1] = 0x370; - gSprites[spriteId].data[2] = sLargeStarXSpeed; - gSprites[spriteId].data[3] = sLargeStarYSpeed; - StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].data[6], sTrailingSparklesRngSeed); + gSprites[spriteId].sStar_BaseX = 248 << 4; + gSprites[spriteId].sStar_BaseY = 55 << 4; + gSprites[spriteId].sStar_SpeedX = sStarSpeedX; + gSprites[spriteId].sStar_SpeedY = sStarSpeedY; + StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].sStar_SparkleRngSeed, sStarSparklesRngSeed); } } -static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2) +// Sprite data for SpriteCB_SparklesSmall_Star +#define sSmSparkleStar_BaseX data[0] +#define sSmSparkleStar_BaseY data[1] +#define sSmSparkleStar_SpeedX data[2] +#define sSmSparkleStar_SpeedY data[3] +#define sSmSparkleStar_FallSpeed data[4] +#define sSmSparkleStar_FallDist data[5] +#define sSmSparkleStar_Timer data[7] + +static void GFScene_CreateStarSparkle(s16 x, s16 y, u16 random) { static EWRAM_DATA s16 sYmod = 0; u8 spriteId; - s16 xMod = (a2 & sTrailingSparklesXmodMask) + 2; + s16 xMod = (random & sStarSparklesXmodMask) + 2; s16 yMod = sYmod; if (++sYmod > 3) sYmod = -3; @@ -1878,285 +1999,342 @@ static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2) spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, x, y, 1); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = x << sTrailingSparklesXprecision; - gSprites[spriteId].data[1] = y << sTrailingSparklesYprecision; - gSprites[spriteId].data[2] = sTrailingSparklesXspeed * xMod; - gSprites[spriteId].data[3] = sTrailingSparklesYspeed * yMod; + gSprites[spriteId].sSmSparkleStar_BaseX = x << sStarSparklesXprecision; + gSprites[spriteId].sSmSparkleStar_BaseY = y << sStarSparklesYprecision; + gSprites[spriteId].sSmSparkleStar_SpeedX = sStarSparklesXspeed * xMod; + gSprites[spriteId].sSmSparkleStar_SpeedY = sStarSparklesYspeed * yMod; } } } -static void GameFreakScene_StartTrailingSparkleSpawner(void) +#define tSparkleIdx data[0] +#define tNumLoops data[1] +#define tTimer data[2] + +static void GFScene_StartNameSparklesSmall(void) { - CreateTask(Task_GameFreakScene_TrailingSparkleSpawner, 1); + CreateTask(GFScene_Task_NameSparklesSmall, 1); } -static void Task_GameFreakScene_TrailingSparkleSpawner(u8 taskId) +// Sprite data for SpriteCB_SparklesSmall_Name +#define sSmSparkleName_State data[0] +#define sSmSparkleName_BaseY data[1] +#define sSmSparkleName_AnimTimer data[2] +#define sSmSparkleName_NumLoops data[3] +#define sSmSparkleName_DestroyTimer data[4] + +static void GFScene_Task_NameSparklesSmall(u8 taskId) { s16 * data = gTasks[taskId].data; - u8 r6; + u8 i; u8 spriteId; - data[2]++, data[3]++; - if (data[2] > 6) + tTimer++; + data[3]++; // Unused + if (tTimer > 6) { - data[2] = 0; - r6 = data[0]; - spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, sTrailingSparkleCoords[r6].x, sTrailingSparkleCoords[r6].y, 2); - StartSpriteAnim(&gSprites[spriteId], 1); - gSprites[spriteId].callback = SpriteCB_SparklesSmall2; - gSprites[spriteId].data[1] = sTrailingSparkleCoords[r6].y << 4; - gSprites[spriteId].data[2] = 120; - gSprites[spriteId].data[3] = data[1]; - if (gSprites[spriteId].data[3] < 0) - gSprites[spriteId].data[3] = 1; - if (++data[0] >= NELEMS(sTrailingSparkleCoords)) + tTimer = 0; + i = tSparkleIdx; + spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, sTextSparkleCoords[i].x, sTextSparkleCoords[i].y, 2); + StartSpriteAnim(&gSprites[spriteId], ANIM_SPARKLE_ONCE); + gSprites[spriteId].callback = SpriteCB_SparklesSmall_Name; + gSprites[spriteId].sSmSparkleName_BaseY = sTextSparkleCoords[i].y << 4; + gSprites[spriteId].sSmSparkleName_AnimTimer = 120; + gSprites[spriteId].sSmSparkleName_NumLoops = tNumLoops; + if (gSprites[spriteId].sSmSparkleName_NumLoops < 0) + gSprites[spriteId].sSmSparkleName_NumLoops = 1; + if (++tSparkleIdx >= ARRAY_COUNT(sTextSparkleCoords)) { - if (++data[1] > 1) + if (++tNumLoops > 1) DestroyTask(taskId); else - data[0] = 0; + tSparkleIdx = 0; } } } -static void GameFreakScene_StartRevealGameFreakTextSparklesSpawner(void) +#undef tSparkleIdx +#undef tNumLoops +#undef tTimer + +#define tTimer data[0] +#define tSparkleIdx data[1] +#define tNumSparkles data[2] + +static void GFScene_StartNameSparklesBig(void) { - CreateTask(Task_RevealGameFreakTextSparklesSpawner, 2); + CreateTask(GFScene_Task_NameSparklesBig, 2); } -static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId) +static void GFScene_Task_NameSparklesBig(u8 taskId) { s16 * data = gTasks[taskId].data; - u8 r2; + u8 i; - if (data[0] == 0) + if (tTimer == 0) { - r2 = data[1]; - data[1] += 4; - if (data[1] >= NELEMS(sTrailingSparkleCoords)) - data[1] -= NELEMS(sTrailingSparkleCoords); - CreateSprite(&sSpriteTemplate_SparklesBig, sTrailingSparkleCoords[r2].x, sTrailingSparkleCoords[r2].y, 3); - if (++data[2] > 8) + i = tSparkleIdx; + tSparkleIdx += 4; + if (tSparkleIdx >= ARRAY_COUNT(sTextSparkleCoords)) + tSparkleIdx -= ARRAY_COUNT(sTextSparkleCoords); + CreateSprite(&sSpriteTemplate_SparklesBig, sTextSparkleCoords[i].x, sTextSparkleCoords[i].y, 3); + if (++tNumSparkles >= (int)ARRAY_COUNT(sTextSparkleCoords)) DestroyTask(taskId); } - if (++data[0] > 9) - data[0] = 0; + if (++tTimer > 9) + tTimer = 0; } -static struct Sprite *CreateGameFreakLogoArtSprite(void) +#undef tTimer +#undef tSparkleIdx +#undef tNumSparkles + +static struct Sprite *GFScene_CreateLogoSprite(void) { u8 spriteId = CreateSprite(&sSpriteTemplate_GameFreakLogoArt, 120, 70, 4); return &gSprites[spriteId]; } #if REVISION >= 1 -static void CreateGameFreakPresentsText(void) +static void GFScene_CreatePresentsSprite(void) { int i; for (i = 0; i < 2; i++) - gSprites[CreateSprite(&sSpriteTemplate_PresentsText, 0x68 + 32 * i, 0x6c, 5)].oam.tileNum += i * 4; + gSprites[CreateSprite(&sSpriteTemplate_Presents, 104 + 32 * i, 108, 5)].oam.tileNum += i * 4; } #endif -static void FightScene4_StartGengarAttack(struct IntroSequenceData * this) +#define tState data[0] +#define tTimer data[1] +#define tSinIdx data[3] +#define tBaseX data[4] +#define IDX_INTRO_DATA 5 // A pointer to the IntroSequenceData will be stored at data[5] and data[6] +#define tFrame data[7] +#define tMultY data[8] +#define tMultX data[9] + +static void Scene3_StartGengarAttack(struct IntroSequenceData * this) { u8 taskId; this->gengarAttackLanded = FALSE; - taskId = CreateTask(Task_FightScene4_GengarAttack, 4); - SetWordTaskArg(taskId, 5, (uintptr_t)this); - gTasks[taskId].data[3] = 64; - gTasks[taskId].data[4] = GetBgX(BG_SCENE3_GENGAR); + taskId = CreateTask(Scene3_Task_GengarAttack, 4); + SetWordTaskArg(taskId, IDX_INTRO_DATA, (uintptr_t)this); + gTasks[taskId].tSinIdx = 64; + gTasks[taskId].tBaseX = GetBgX(BG_SCENE3_GENGAR); } -static void FightScene4_ApplyGengarAnim(int a, int b, int c, int d) +static void Scene3_ApplyGengarAnim(int frame, int xSub, int ySub, int xBase) { - ChangeBgY(BG_SCENE3_GENGAR, (a << 15) + 0x1F000, 0); - ChangeBgX(BG_SCENE3_GENGAR, d, 0); - ChangeBgX(BG_SCENE3_GENGAR, b << 8, 2); - ChangeBgY(BG_SCENE3_GENGAR, c << 8, 2); + ChangeBgY(BG_SCENE3_GENGAR, (frame << 15) + 0x1F000, BG_COORD_SET); + ChangeBgX(BG_SCENE3_GENGAR, xBase, BG_COORD_SET); + ChangeBgX(BG_SCENE3_GENGAR, xSub << 8, BG_COORD_SUB); + ChangeBgY(BG_SCENE3_GENGAR, ySub << 8, BG_COORD_SUB); } -static void Task_FightScene4_GengarAttack(u8 taskId) +static void Scene3_Task_GengarAttack(u8 taskId) { s16 * data = gTasks[taskId].data; - int b, c; - int angle; - switch (data[0]) + s32 xSub, ySub; + s32 sinIdx; + switch (tState) { case 0: - data[7] = 2; - data[1] = 0; - data[8] = 6; - data[9] = 32; - data[0]++; + tFrame = 2; // Gengar raises arm up + tTimer = 0; + tMultY = 6; + tMultX = 32; + tState++; break; case 1: - data[3] -= 2; - if (++data[1] > 15) + // Gengar moves in a backward arc + tSinIdx -= 2; + if (++tTimer > 15) { - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 2: - if (++data[1] == 14) - ((struct IntroSequenceData *)GetWordTaskArg(taskId, 5))->gengarAttackLanded = TRUE; - if (data[1] > 15) + // Gengar pauses at end of backward arc + if (++tTimer == 14) + ((struct IntroSequenceData *)GetWordTaskArg(taskId, IDX_INTRO_DATA))->gengarAttackLanded = TRUE; + if (tTimer > 15) { - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 3: - data[3] += 8; - if (++data[1] == 4) + // Gengar moves in a forward arc + tSinIdx += 8; + if (++tTimer == 4) { - FightScene4_CreateGengarSwipeSprites(); - data[8] = 32; - data[9] = 48; - data[7] = 3; + Scene3_CreateGengarSwipeSprites(); + tMultY = 32; + tMultX = 48; + tFrame = 3; // Gengar swipes arm down } - if (data[1] > 7) + if (tTimer > 7) { - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 4: - data[3] -= 8; - if (++data[1] > 3) + // Gengar moves in a backward arc to its original position + tSinIdx -= 8; + if (++tTimer > 3) { - data[7] = 0; - data[3] = 64; - data[1] = 0; - data[0]++; + tFrame = 0; // Gengar returns to normal posture + tSinIdx = 64; + tTimer = 0; + tState++; } break; case 5: DestroyTask(taskId); return; } - angle = data[3]; - b = -((gSineTable[angle + 0x40] * data[9]) >> 8); - c = data[8] - ((gSineTable[angle] * data[8]) >> 8); - FightScene4_ApplyGengarAnim(data[7], b, c, data[4]); + + // Animate current movement arc / frame change + sinIdx = tSinIdx; + xSub = -((gSineTable[sinIdx + 64] * tMultX) >> 8); + ySub = tMultY - ((gSineTable[sinIdx] * tMultY) >> 8); + Scene3_ApplyGengarAnim(tFrame, xSub, ySub, tBaseX); } -static void FightScene4_CreateGengarSwipeSprites(void) +#undef tState +#undef tTimer +#undef tSinIdx +#undef tBaseX +#undef IDX_INTRO_DATA +#undef tFrame +#undef tMultY +#undef tMultX + +static void Scene3_CreateGengarSwipeSprites(void) { - u8 spriteId; - - spriteId = CreateSprite(&sSpriteTemplate_GengarSwipe, 132, 78, 6); + u8 spriteId = CreateSprite(&sSpriteTemplate_GengarSwipe, 132, 78, 6); // Implicitly ANIM_SWIPE_TOP spriteId = CreateSprite(&sSpriteTemplate_GengarSwipe, 132, 118, 6); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].oam.shape = ST_OAM_H_RECTANGLE; - gSprites[spriteId].oam.size = ST_OAM_SIZE_2; - FightScene_CalcCenterToCornerVec(&gSprites[spriteId]); - StartSpriteAnim(&gSprites[spriteId], 1); + gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16); + gSprites[spriteId].oam.size = SPRITE_SIZE(32x16); + Scene3_CalcCenterToCornerVec(&gSprites[spriteId]); + StartSpriteAnim(&gSprites[spriteId], ANIM_SWIPE_BOTTOM); } } static void SpriteCB_GengarSwipe(struct Sprite *sprite) { - sprite->invisible ^= TRUE; + sprite->invisible ^= 1; if (sprite->animEnded) DestroySprite(sprite); } -static void Task_FightScene3_Bg0Scroll(u8 taskId) +#define tState data[0] +#define tSpeed data[1] +#define tMoves data[2] + +// Scroll Gengar into position for the fight +static void Scene3_Task_GengarEnter(u8 taskId) { s16 * data = gTasks[taskId].data; - static EWRAM_DATA u32 gUnknown_203AB30 = 0; + static EWRAM_DATA u32 sGengarScroll = 0; - switch (data[0]) + switch (tState) { case 0: - data[1] = 0x400; - data[0]++; + tSpeed = 0x400; + tState++; // fallthrough case 1: - if (++data[2] > 39 && data[1] > 16) - data[1] -= 16; - gUnknown_203AB30 = ChangeBgX(BG_SCENE3_GENGAR, data[1], 1); - if (gUnknown_203AB30 >= 0x8000) + // Don't decelerate for the first 40 movements + if (++tMoves >= 40 && tSpeed > 16) + tSpeed -= 16; + sGengarScroll = ChangeBgX(BG_SCENE3_GENGAR, tSpeed, BG_COORD_ADD); + + if (sGengarScroll >= 0x8000) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - if (gUnknown_203AB30 >= 0xEF00) + + if (sGengarScroll >= 0xEF00) { - ChangeBgX(BG_SCENE3_GENGAR, 0xEF00, 0); + ChangeBgX(BG_SCENE3_GENGAR, 0xEF00, BG_COORD_SET); DestroyTask(taskId); } break; } } -static void SpriteCB_LargeStar(struct Sprite *sprite) +#undef tState +#undef tSpeed +#undef tMoves + +static void SpriteCB_Star(struct Sprite *sprite) { - unsigned v; - sprite->data[0] -= sprite->data[2]; - sprite->data[1] += sprite->data[3]; - sprite->data[4] += 48; - sprite->x = sprite->data[0] >> 4; - sprite->y = sprite->data[1] >> 4; - sprite->y2 = gSineTable[(sprite->data[4] >> 4) + 0x40] >> 5; - sprite->data[5]++; - if (sprite->data[5] % sTrailingSparklesSpawnRate) + u32 random; + sprite->sStar_BaseX -= sprite->sStar_SpeedX; + sprite->sStar_BaseY += sprite->sStar_SpeedY; + sprite->sStar_SinIdx += 48; + sprite->x = sprite->sStar_BaseX >> 4; + sprite->y = sprite->sStar_BaseY >> 4; + sprite->y2 = gSineTable[(sprite->sStar_SinIdx >> 4) + 64] >> 5; + sprite->sStar_SparkleTimer++; + if (sprite->sStar_SparkleTimer % sStarSparklesSpawnRate) { - LoadWordFromTwoHalfwords(&sprite->data[6], &v); - v = ISO_RANDOMIZE1(v); - StoreWordInTwoHalfwords(&sprite->data[6], v); - v >>= 16; - GameFreakScene_TrailingSparklesGen(sprite->x, sprite->y + sprite->y2, v); + LoadWordFromTwoHalfwords(&sprite->sStar_SparkleRngSeed, &random); + random = ISO_RANDOMIZE1(random); + StoreWordInTwoHalfwords(&sprite->sStar_SparkleRngSeed, random); + random >>= 16; + GFScene_CreateStarSparkle(sprite->x, sprite->y + sprite->y2, random); } if (sprite->x < -8) DestroySprite(sprite); } -static void SpriteCB_SparklesSmall(struct Sprite *sprite) +// Callback for the sparkles that trail behind the star +static void SpriteCB_SparklesSmall_Star(struct Sprite *sprite) { - u32 v; - - sprite->data[0] += sprite->data[2]; - sprite->data[1] += sprite->data[3]; - sprite->data[4]++; - sprite->data[5] += sprite->data[4]; - sprite->data[7]++; - sprite->x = (u16)sprite->data[0] >> sTrailingSparklesXprecision; - sprite->y = sprite->data[1] >> sTrailingSparklesYprecision; - if (sTrailingSparklesGravityShift && sprite->data[3] < 0) - sprite->y2 = sprite->data[5] >> sTrailingSparklesGravityShift; - if (sprite->data[7] > sTrailingSparklesFlickerStartTime) + sprite->sSmSparkleStar_BaseX += sprite->sSmSparkleStar_SpeedX; + sprite->sSmSparkleStar_BaseY += sprite->sSmSparkleStar_SpeedY; + sprite->sSmSparkleStar_FallDist += ++sprite->sSmSparkleStar_FallSpeed; + sprite->sSmSparkleStar_Timer++; + sprite->x = (u16)sprite->sSmSparkleStar_BaseX >> sStarSparklesXprecision; + sprite->y = sprite->sSmSparkleStar_BaseY >> sStarSparklesYprecision; + if (sStarSparklesGravityShift && sprite->sSmSparkleStar_SpeedY < 0) + sprite->y2 = sprite->sSmSparkleStar_FallDist >> sStarSparklesGravityShift; + if (sprite->sSmSparkleStar_Timer > sStarSparklesFlickerStartTime) { sprite->invisible = !sprite->invisible; - if (sprite->data[7] > sTrailingSparklesDestroySpriteTime) + if (sprite->sSmSparkleStar_Timer > sStarSparklesDestroySpriteTime) DestroySprite(sprite); } - if (sprite->y + sprite->y2 < 0 || sprite->y + sprite->y2 > 160) + if (sprite->y + sprite->y2 < 0 || sprite->y + sprite->y2 > DISPLAY_HEIGHT) DestroySprite(sprite); } -static void SpriteCB_SparklesSmall2(struct Sprite *sprite) +// Callback for the small sparkles during the "Game Freak" text reveal +static void SpriteCB_SparklesSmall_Name(struct Sprite *sprite) { - if (sprite->data[2]) + if (sprite->sSmSparkleName_AnimTimer) { - sprite->data[2]--; - sprite->data[1]++; - sprite->y = sprite->data[1] >> 4; - if (sprite->y > 0x56) + sprite->sSmSparkleName_AnimTimer--; + sprite->sSmSparkleName_BaseY++; + sprite->y = sprite->sSmSparkleName_BaseY >> 4; + if (sprite->y > 86) { - sprite->y = 0x4A; - sprite->data[1] = 0x4A0; + sprite->y = 74; + sprite->sSmSparkleName_BaseY = 74 << 4; } if (sprite->animEnded) { - if (sprite->data[0] == 0) + if (sprite->sSmSparkleName_State == 0) { sprite->x += 26; if (sprite->x > 188) { - sprite->x = 376 - sprite->x; - sprite->data[0] = 1; + sprite->x = (188 * 2) - sprite->x; + sprite->sSmSparkleName_State = 1; } } else @@ -2164,106 +2342,126 @@ static void SpriteCB_SparklesSmall2(struct Sprite *sprite) sprite->x -= 26; if (sprite->x < 52) { - sprite->x = 104 - sprite->x; - sprite->data[0] = 0; + sprite->x = (52 * 2) - sprite->x; + sprite->sSmSparkleName_State = 0; } } - StartSpriteAnim(sprite, 1); + StartSpriteAnim(sprite, ANIM_SPARKLE_ONCE); } } else { - if (sprite->data[3]) + if (sprite->sSmSparkleName_NumLoops) DestroySprite(sprite); if (sprite->animEnded) - StartSpriteAnim(sprite, 0); - sprite->data[1] += 4; - sprite->y = sprite->data[1] >> 4; - if (++sprite->data[4] > 50) + StartSpriteAnim(sprite, ANIM_SPARKLE_LOOP); + sprite->sSmSparkleName_BaseY += 4; + sprite->y = sprite->sSmSparkleName_BaseY >> 4; + if (++sprite->sSmSparkleName_DestroyTimer > 50) DestroySprite(sprite); } } -static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite) +// Callback for the big sparkles during the "Game Freak" text reveal +static void SpriteCB_SparklesBig(struct Sprite *sprite) { if (sprite->animEnded) DestroySprite(sprite); } -static void CreateNidorinoAnimSprite(struct IntroSequenceData * this) +static void Scene3_CreateNidorinoSprite(struct IntroSequenceData * this) { u8 spriteId = CreateSprite(&sSpriteTemplate_Scene3_Nidorino, 0, 0, 9); - this->nidorinoAnimSprite = &gSprites[spriteId]; + this->scene3NidorinoSprite = &gSprites[spriteId]; } -static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed) +#define sX data[0] +#define sSpeed data[1] +#define sTime data[2] // Not read +#define sTargetX data[3] +#define sTimer data[4] + +static void Scene3_StartNidorinoEntrance(struct Sprite *sprite, s16 xStart, s16 x1, u16 time) { - sprite->data[0] = x0 << 4; - sprite->data[1] = ((x1 - x0) << 4) / speed; - sprite->data[2] = speed; - sprite->data[3] = x1; - sprite->data[4] = 0; - sprite->x = x0; + sprite->sX = xStart << 4; + sprite->sSpeed = ((x1 - xStart) << 4) / time; + sprite->sTime = time; + sprite->sTargetX = x1; + sprite->sTimer = 0; + sprite->x = xStart; sprite->y = 100; - sprite->callback = SpriteCB_NidorinoAnimSpriteSlideIn; + sprite->callback = Scene3_SpriteCB_NidorinoEnter; } -static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite) +static void Scene3_SpriteCB_NidorinoEnter(struct Sprite *sprite) { - if (++sprite->data[4] >= 40) + if (++sprite->sTimer >= 40) { - if (sprite->data[1] > 1) - sprite->data[1]--; + // Start decelerating after 40 frames + if (sprite->sSpeed > 1) + sprite->sSpeed--; } - sprite->data[0] += sprite->data[1]; - sprite->x = sprite->data[0] >> 4; - if (sprite->x >= sprite->data[3]) + sprite->sX += sprite->sSpeed; + sprite->x = sprite->sX >> 4; + if (sprite->x >= sprite->sTargetX) { - sprite->x = sprite->data[3]; + // Reached final position + sprite->x = sprite->sTargetX; sprite->callback = SpriteCallbackDummy; } } -static bool32 IsNidorinoAnimSpriteSlideInRunning(struct IntroSequenceData * ptr) +static bool32 Scene3_IsNidorinoEntering(struct IntroSequenceData * ptr) { - return ptr->nidorinoAnimSprite->callback == SpriteCB_NidorinoAnimSpriteSlideIn ? TRUE : FALSE; + return ptr->scene3NidorinoSprite->callback == Scene3_SpriteCB_NidorinoEnter ? TRUE : FALSE; } -static void FightScene4_NidorinoRearsUp(struct IntroSequenceData * ptr) +#undef sX +#undef sSpeed +#undef sTime +#undef sTargetX +#undef sTimer + +#define sState data[0] +#define sStateTimer data[1] +#define sBounceTimer data[2] + +static void Scene3_StartNidorinoCry(struct IntroSequenceData * ptr) { - StartSpriteAnim(ptr->nidorinoAnimSprite, 2); - ptr->nidorinoAnimSprite->data[0] = 0; - ptr->nidorinoAnimSprite->data[1] = 0; - ptr->nidorinoAnimSprite->y2 = 3; - ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoRearsUp; + StartSpriteAnim(ptr->scene3NidorinoSprite, ANIM_NIDORINO_CROUCH); + ptr->scene3NidorinoSprite->sState = 0; + ptr->scene3NidorinoSprite->sStateTimer = 0; + ptr->scene3NidorinoSprite->y2 = 3; + ptr->scene3NidorinoSprite->callback = SpriteCB_NidorinoCry; } -static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite) +static void SpriteCB_NidorinoCry(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (++sprite->data[1] > 8) + if (++sprite->sStateTimer > 8) { - StartSpriteAnim(sprite, 1); + StartSpriteAnim(sprite, ANIM_NIDORINO_CRY); sprite->y2 = 0; - sprite->data[0]++; + sprite->sState++; } break; case 1: PlayCry_ByMode(SPECIES_NIDORINO, 0x3F, CRY_MODE_DOUBLES); - sprite->data[1] = 0; - sprite->data[0]++; + sprite->sStateTimer = 0; + sprite->sState++; break; case 2: - if (++sprite->data[2] > 1) + if (++sprite->sBounceTimer > 1) { - sprite->data[2] = 0; + // Nidorino bounces slightly while crying + sprite->sBounceTimer = 0; sprite->y2 = sprite->y2 == 0 ? 1 : 0; } - if (++sprite->data[1] > 48) + if (++sprite->sStateTimer > 48) { - StartSpriteAnim(sprite, 0); + StartSpriteAnim(sprite, ANIM_NIDORINO_NORMAL); sprite->y2 = 0; sprite->callback = SpriteCallbackDummy; } @@ -2271,256 +2469,328 @@ static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite) } } -static void FightScene4_StartNidorinoRecoilAnim(struct IntroSequenceData * ptr) +#undef sState +#undef sStateTimer +#undef sBounceTimer + +#define sState data[0] +#define sStateTimer data[1] +#define sOffsetX data[2] +#define sSinIdx data[3] +#define sLandTimer data[4] +#define sSlowdownTimer data[5] +#define sRandSeed data[6] +#define sSpeedX data[7] + +static void Scene3_StartNidorinoRecoil(struct IntroSequenceData * ptr) { - gUnknown_203AB0A = 16; - gUnknown_203AB04 = 3; - gUnknown_203AB08 = 5; - gUnknown_203AB06 = 0; - StartSpriteAnim(ptr->nidorinoAnimSprite, 2); - ptr->nidorinoAnimSprite->data[0] = 0; - ptr->nidorinoAnimSprite->data[1] = 0; - ptr->nidorinoAnimSprite->data[2] = 0; - ptr->nidorinoAnimSprite->data[3] = 0; - ptr->nidorinoAnimSprite->data[4] = 0; - ptr->nidorinoAnimSprite->data[7] = 40; - ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoRecoil; + sNidorinoRecoilReturnTime = 16; + sNidorinoJumpMult = 3; + sNidorinoJumpDiv = 5; + sNidorinoAnimDelayTime = 0; + StartSpriteAnim(ptr->scene3NidorinoSprite, ANIM_NIDORINO_CROUCH); + ptr->scene3NidorinoSprite->sState = 0; + ptr->scene3NidorinoSprite->sStateTimer = 0; + ptr->scene3NidorinoSprite->sOffsetX = 0; + ptr->scene3NidorinoSprite->sSinIdx = 0; + ptr->scene3NidorinoSprite->sLandTimer = 0; + ptr->scene3NidorinoSprite->sSpeedX = 40; + ptr->scene3NidorinoSprite->callback = SpriteCB_NidorinoRecoil; } static void SpriteCB_NidorinoRecoil(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1]++; - if (sprite->data[1] > 4) + if (++sprite->sStateTimer > 4) { - StartSpriteAnim(sprite, 3); - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_HOP); + sprite->sState++; } break; case 1: - sprite->data[2] += sprite->data[7]; - sprite->data[3] += 8; - sprite->x2 = sprite->data[2] >> 4; - sprite->y2 = -((gSineTable[sprite->data[3]] * gUnknown_203AB04) >> gUnknown_203AB08); - sprite->data[5]++; - if (sprite->data[5] > gUnknown_203AB06) + // Nidorino jumping backwards in the air + sprite->sOffsetX += sprite->sSpeedX; + sprite->sSinIdx += 8; + sprite->x2 = sprite->sOffsetX >> 4; + sprite->y2 = -((gSineTable[sprite->sSinIdx] * sNidorinoJumpMult) >> sNidorinoJumpDiv); + sprite->sSlowdownTimer++; + if (sprite->sSlowdownTimer > sNidorinoAnimDelayTime) { - sprite->data[5] = 0; - sprite->data[7]--; + sprite->sSlowdownTimer = 0; + sprite->sSpeedX--; } - sprite->data[4]++; - if (sprite->data[4] > 15) + if (++sprite->sLandTimer > 15) { - StartSpriteAnim(sprite, 2); - sprite->data[1] = 0; - sprite->data[6] = 0x4757; - sprite->data[7] = 28; - sprite->data[0]++; + // Nidorino hits the ground + StartSpriteAnim(sprite, ANIM_NIDORINO_CROUCH); + sprite->sStateTimer = 0; + sprite->sRandSeed = 0x4757; + sprite->sSpeedX = 28; + sprite->sState++; } break; case 2: - sprite->data[2] += sprite->data[7]; - sprite->x2 = sprite->data[2] >> 4; - sprite->data[1]++; - if (sprite->data[1] > 6) + // Nidorino sliding on the ground + sprite->sOffsetX += sprite->sSpeedX; + sprite->x2 = sprite->sOffsetX >> 4; + if (++sprite->sStateTimer > 6) { - CreateNidorinoRecoilDustSprites(sprite->x + sprite->x2, sprite->y + sprite->y2, sprite->data[6]); - sprite->data[6] *= RAND_MULT; + // The position of each subsequent dust sprite is "random", but with a fixed + // initial seed so that they'll be in the same positions between intro runs + CreateNidorinoRecoilDustSprites(sprite->x + sprite->x2, sprite->y + sprite->y2, sprite->sRandSeed); + sprite->sRandSeed *= RAND_MULT; } - if (sprite->data[1] > 12) + if (sprite->sStateTimer > 12) { - StartSpriteAnim(sprite, 0); - sprite->data[1] = 0; - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_NORMAL); + sprite->sStateTimer = 0; + sprite->sState++; } break; case 3: - sprite->data[1]++; - if (sprite->data[1] > 16) - StartSpriteHopToPosAnim(sprite, gUnknown_203AB0A, -sprite->x2, 4); + // Nidorino hops back to its original position + if (++sprite->sStateTimer > 16) + Scene3_StartNidorinoHop(sprite, sNidorinoRecoilReturnTime, -sprite->x2, 4); break; } } -static bool8 FightScene4_NidorinoAnimIsRunning(struct IntroSequenceData * ptr) +#undef sState +#undef sStateTimer +#undef sOffsetX +#undef sSinIdx +#undef sLandTimer +#undef sSlowdownTimer +#undef sRandSeed +#undef sSpeedX + +static bool8 Scene3_NidorinoAnimIsRunning(struct IntroSequenceData * ptr) { - return ptr->nidorinoAnimSprite->callback == SpriteCallbackDummy ? FALSE : TRUE; + return ptr->scene3NidorinoSprite->callback == SpriteCallbackDummy ? FALSE : TRUE; } +#define sState data[0] +#define sX data[1] +#define sY data[2] +#define sSpeedX data[3] +#define sSpeedY data[4] +#define sInvisibleTimer data[7] + static void CreateNidorinoRecoilDustSprites(s16 x, s16 y, s16 seed) { int i; u8 spriteId; + // Recoil dust sprites are created in pairs at the same initial position but with different speeds. + // Only one of each pair will be visible at a time. for (i = 0; i < 2; i++) { spriteId = CreateSprite(&sSpriteTemplate_NidorinoRecoilDust, x - 22, y + 24, 10); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[3] = (seed % 13) + 8; - gSprites[spriteId].data[4] = seed % 3; - gSprites[spriteId].data[7] = i; + gSprites[spriteId].sSpeedX = (seed % 13) + 8; + gSprites[spriteId].sSpeedY = seed % 3; + gSprites[spriteId].sInvisibleTimer = i; seed *= RAND_MULT; } } } -static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite) +static void SpriteCB_RecoilDust(struct Sprite *sprite) { s16 * data = sprite->data; - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - data[1] = sprite->x << 4; - data[2] = sprite->y << 4; - sprite->data[0]++; + sX = sprite->x << 4; + sY = sprite->y << 4; + sprite->sState++; // fallthrough case 1: - data[1] -= data[3]; - data[2] += data[4]; - sprite->x = data[1] >> 4; - sprite->y = data[2] >> 4; + sX -= sSpeedX; + sY += sSpeedY; + sprite->x = sX >> 4; + sprite->y = sY >> 4; if (sprite->animEnded) DestroySprite(sprite); break; } - if (++data[7] > 1) + + // Recoil dust flashes in and out + if (++sInvisibleTimer > 1) { - data[7] = 0; - sprite->invisible ^= TRUE; + sInvisibleTimer = 0; + sprite->invisible ^= 1; } } -static void StartSpriteHopToPosAnim(struct Sprite *sprite, u16 a1, s16 a2, u8 a3) +#undef sState +#undef sX +#undef sY +#undef sSpeedX +#undef sSpeedY +#undef sInvisibleTimer + +#define sState data[0] +#define sAirTime data[1] +#define sOffsetX data[2] +#define sSpeedX data[3] +#define sSinIdx data[4] +#define sSpeedY data[5] +#define sTimer data[6] +#define sHeightShift data[7] + +static void Scene3_StartNidorinoHop(struct Sprite *sprite, u16 time, s16 targetX, u8 heightShift) { - sprite->data[0] = 0; - sprite->data[1] = a1; - sprite->data[2] = sprite->x2 << 4; - sprite->data[3] = (a2 << 4) / a1; - sprite->data[4] = 0; - sprite->data[5] = 0x800 / a1; - sprite->data[6] = 0; - sprite->data[7] = a3; - StartSpriteAnim(sprite, 2); - sprite->callback = SpriteCB_HopToPos; + sprite->sState = 0; + sprite->sAirTime = time; + sprite->sOffsetX = sprite->x2 << 4; + sprite->sSpeedX = (targetX << 4) / time; + sprite->sSinIdx = 0; + sprite->sSpeedY = 0x800 / time; + sprite->sTimer = 0; + sprite->sHeightShift = heightShift; + StartSpriteAnim(sprite, ANIM_NIDORINO_CROUCH); + sprite->callback = SpriteCB_NidorinoHop; } -static void SpriteCB_HopToPos(struct Sprite *sprite) +static void SpriteCB_NidorinoHop(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (++sprite->data[6] > 4) + if (++sprite->sTimer > 4) { - StartSpriteAnim(sprite, 3); - sprite->data[6] = 0; - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_HOP); + sprite->sTimer = 0; + sprite->sState++; } break; case 1: - sprite->data[1]--; - if (sprite->data[1]) + if (--sprite->sAirTime) { - sprite->data[2] += sprite->data[3]; - sprite->data[4] += sprite->data[5]; - sprite->x2 = sprite->data[2] >> 4; - sprite->y2 = -(gSineTable[sprite->data[4] >> 4] >> sprite->data[7]); + // Nidorino moving through the air + sprite->sOffsetX += sprite->sSpeedX; + sprite->sSinIdx += sprite->sSpeedY; + sprite->x2 = sprite->sOffsetX >> 4; + sprite->y2 = -(gSineTable[sprite->sSinIdx >> 4] >> sprite->sHeightShift); } else { - sprite->x2 = (u16)sprite->data[2] >> 4; + // Nidorino lands + sprite->x2 = (u16)sprite->sOffsetX >> 4; sprite->y2 = 0; - StartSpriteAnim(sprite, 2); - if (sprite->data[7] == 5) + StartSpriteAnim(sprite, ANIM_NIDORINO_CROUCH); + if (sprite->sHeightShift == 5) + { + // This is used by the short hops before Nidorino's attack. + // The last state is skipped so that Nidorino will stay in the crouched animation. sprite->callback = SpriteCallbackDummy; + } else { - sprite->data[6] = 0; - sprite->data[0]++; + sprite->sTimer = 0; + sprite->sState++; } } break; case 2: - if (++sprite->data[6] > 4) + if (++sprite->sTimer > 4) { - StartSpriteAnim(sprite, 0); + StartSpriteAnim(sprite, ANIM_NIDORINO_NORMAL); sprite->callback = SpriteCallbackDummy; } break; } } -static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData * ptr) +#undef sState +#undef sAirTime +#undef sOffsetX +#undef sSpeedX +#undef sSinIdx +#undef sSpeedY +#undef sTimer +#undef sHeightShift + +#define sState data[0] +#define sTimer data[1] +#define sShakeTimer data[2] +#define sSpeed data[7] + +static void Scene3_StartNidorinoAttack(struct IntroSequenceData * ptr) { - ptr->nidorinoAnimSprite->data[0] = 0; - ptr->nidorinoAnimSprite->data[1] = 0; - ptr->nidorinoAnimSprite->data[2] = 0; - ptr->nidorinoAnimSprite->data[3] = 0; - ptr->nidorinoAnimSprite->data[4] = 0; - ptr->nidorinoAnimSprite->data[5] = 0; - ptr->nidorinoAnimSprite->x += ptr->nidorinoAnimSprite->x2; - ptr->nidorinoAnimSprite->x2 = 0; - gUnknown_203AB0C = 0x24; - gUnknown_203AB06 = 0x28; - gUnknown_203AB04 = 0x03; - gUnknown_203AB08 = 0x04; - ptr->nidorinoAnimSprite->data[7] = 36; - StartSpriteAnim(ptr->nidorinoAnimSprite, 2); - ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoAnim_LaunchSelfAtGengar; + ptr->scene3NidorinoSprite->sState = 0; + ptr->scene3NidorinoSprite->sTimer = 0; + ptr->scene3NidorinoSprite->sShakeTimer = 0; + ptr->scene3NidorinoSprite->data[3] = 0; // Unused + ptr->scene3NidorinoSprite->data[4] = 0; // Unused + ptr->scene3NidorinoSprite->data[5] = 0; // Unused + ptr->scene3NidorinoSprite->x += ptr->scene3NidorinoSprite->x2; + ptr->scene3NidorinoSprite->x2 = 0; + sNidorinoUnusedVar = 36; + sNidorinoAnimDelayTime = 40; + sNidorinoJumpMult = 3; + sNidorinoJumpDiv = 4; + ptr->scene3NidorinoSprite->sSpeed = 36; + StartSpriteAnim(ptr->scene3NidorinoSprite, ANIM_NIDORINO_CROUCH); + ptr->scene3NidorinoSprite->callback = SpriteCB_NidorinoAttack; } -static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite) +static void SpriteCB_NidorinoAttack(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (++sprite->data[1] & 1) + if (++sprite->sTimer & 1) { - if (++sprite->data[2] & 1) + // Nidorino shakes horizontally before attacking + if (++sprite->sShakeTimer & 1) sprite->x2++; else sprite->x2--; } - if (sprite->data[1] > 17) + if (sprite->sTimer > 17) { - sprite->data[1] = 0; - sprite->data[0]++; + sprite->sTimer = 0; + sprite->sState++; } break; case 1: - if (++sprite->data[1] >= gUnknown_203AB06) + if (++sprite->sTimer >= sNidorinoAnimDelayTime) { - StartSpriteAnim(sprite, 4); - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_ATTACK); + sprite->sTimer = 0; + sprite->sShakeTimer = 0; + sprite->sState++; } break; case 2: - sprite->data[1] += sprite->data[7]; - sprite->x2 = -(sprite->data[1] >> 4); - sprite->y2 = -((gSineTable[sprite->data[1] >> 4] * gUnknown_203AB04) >> gUnknown_203AB08); - sprite->data[2]++; - if (sprite->data[7] > 12) - sprite->data[7]--; - if ((sprite->data[1] >> 4) > 0x3F) + // Nidorino jumps at Gengar + sprite->sTimer += sprite->sSpeed; + sprite->x2 = -(sprite->sTimer >> 4); + sprite->y2 = -((gSineTable[sprite->sTimer >> 4] * sNidorinoJumpMult) >> sNidorinoJumpDiv); + sprite->sShakeTimer++; // Does nothing + if (sprite->sSpeed > 12) + sprite->sSpeed--; // Decelerate as jump progresses + if ((sprite->sTimer >> 4) > 63) sprite->callback = SpriteCallbackDummy; break; } } -static void LoadFightSceneSpriteTilesAndPals(void) +#undef sState +#undef sTimer +#undef sShakeTimer +#undef sSpeed + +static void LoadFightSceneSpriteGraphics(void) { int i; - - for (i = 0; i < NELEMS(sFightSceneSpriteSheets); i++) - { + for (i = 0; i < ARRAY_COUNT(sFightSceneSpriteSheets); i++) LoadCompressedSpriteSheet(&sFightSceneSpriteSheets[i]); - } - // sFightSceneSpritePalettes is not properly terminated, so this - // call exhibits undefined behavior. LoadSpritePalettes(sFightSceneSpritePalettes); } diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c index 278a0c0de..b7495c328 100644 --- a/src/minigame_countdown.c +++ b/src/minigame_countdown.c @@ -80,8 +80,7 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) switch (sprite->data[0]) { case 0: - // some sort of affine transform; x transform disabled - obj_pos2_update_enable(sprite, 0x800, 0x1A); + SetSpriteMatrixAnchor(sprite, NO_ANCHOR, 26); sprite->data[0]++; // fallthrough case 1: diff --git a/src/sprite.c b/src/sprite.c index 482003a5f..5b1ea5e4b 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -5,6 +5,9 @@ #define OAM_MATRIX_COUNT 32 +#define sAnchorX data[6] +#define sAnchorY data[7] + #define SET_SPRITE_TILE_RANGE(index, start, count) \ { \ sSpriteTileRanges[index * 2] = start; \ @@ -83,7 +86,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC static u8 IndexOfSpriteTileTag(u16 tag); static void AllocSpriteTileRange(u16 tag, u16 start, u16 count); static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset); -static void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2); +static void UpdateSpriteMatrixAnchorPos(struct Sprite* sprite, s32 a1, s32 a2); typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); @@ -161,41 +164,11 @@ static const struct Sprite sDummySprite = { .oam = DUMMY_OAM_DATA, .anims = gDummySpriteAnimTable, - .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .template = &gDummySpriteTemplate, - .subspriteTables = NULL, .callback = SpriteCallbackDummy, - .x = 304, .y = 160, - .x2 = 0, .y2 = 0, - .centerToCornerVecX = 0, - .centerToCornerVecY = 0, - .animNum = 0, - .animCmdIndex = 0, - .animDelayCounter = 0, - .animPaused = 0, - .affineAnimPaused = 0, - .animLoopCounter = 0, - .data = {0, 0, 0, 0, 0, 0, 0}, - .inUse = 0, - .coordOffsetEnabled = 0, - .invisible = 0, - .flags_3 = 0, - .flags_4 = 0, - .flags_5 = 0, - .flags_6 = 0, - .flags_7 = 0, - .hFlip = 0, - .vFlip = 0, - .animBeginning = 0, - .affineAnimBeginning = 0, - .animEnded = 0, - .affineAnimEnded = 0, - .usingSheet = 0, - .flags_f = 0, - .sheetTileStart = 0, - .subspriteTableNum = 0, - .subspriteMode = 0, + .x = DISPLAY_WIDTH + 64, + .y = DISPLAY_HEIGHT, .subpriority = 0xFF }; @@ -212,7 +185,7 @@ const union AffineAnimCmd * const gDummySpriteAffineAnimTable[] = { &sDummyAffin const struct SpriteTemplate gDummySpriteTemplate = { .tileTag = 0, - .paletteTag = 0xFFFF, + .paletteTag = TAG_NONE, .oam = &gDummyOamData, .anims = gDummySpriteAnimTable, .images = NULL, @@ -1099,8 +1072,8 @@ void BeginAffineAnim(struct Sprite *sprite) sprite->affineAnimEnded = FALSE; ApplyAffineAnimFrame(matrixNum, &frameCmd); sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration; - if (sprite->flags_f) - obj_update_pos2(sprite, sprite->data[6], sprite->data[7]); + if (sprite->anchored) + UpdateSpriteMatrixAnchorPos(sprite, sprite->sAnchorX, sprite->sAnchorY); } } @@ -1125,8 +1098,8 @@ void ContinueAffineAnim(struct Sprite *sprite) funcIndex = type - 32765; sAffineAnimCmdFuncs[funcIndex](matrixNum, sprite); } - if (sprite->flags_f) - obj_update_pos2(sprite, sprite->data[6], sprite->data[7]); + if (sprite->anchored) + UpdateSpriteMatrixAnchorPos(sprite, sprite->sAnchorX, sprite->sAnchorY); } } @@ -1220,14 +1193,14 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite) return matrixNum; } -void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod) +void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y) { - sprite->data[6] = xmod; - sprite->data[7] = ymod; - sprite->flags_f = 1; + sprite->sAnchorX = x; + sprite->sAnchorY = y; + sprite->anchored = TRUE; } -static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier) +static s32 GetAnchorCoord(s32 baseDim, s32 xformed, s32 modifier) { s32 subResult, shiftResult; @@ -1239,24 +1212,24 @@ static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier) return modifier - ((u32)(modifier * xformed) / (u32)(baseDim) + shiftResult); } -static void obj_update_pos2(struct Sprite *sprite, s32 xmod, s32 ymod) +static void UpdateSpriteMatrixAnchorPos(struct Sprite *sprite, s32 x, s32 y) { s32 dim, baseDim, xFormed; u32 matrixNum = sprite->oam.matrixNum; - if (xmod != 0x800) + if (x != NO_ANCHOR) { dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][0]; baseDim = dim << 8; xFormed = (dim << 16) / gOamMatrices[matrixNum].a; - sprite->x2 = affine_get_new_pos2(baseDim, xFormed, xmod); + sprite->x2 = GetAnchorCoord(baseDim, xFormed, x); } - if (ymod != 0x800) + if (y != NO_ANCHOR) { dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][1]; baseDim = dim << 8; xFormed = (dim << 16) / gOamMatrices[matrixNum].d; - sprite->y2 = affine_get_new_pos2(baseDim, xFormed, ymod); + sprite->y2 = GetAnchorCoord(baseDim, xFormed, y); } } From 7ee4e1d14054a00ad10272c435b93b324c0510d7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 24 Sep 2022 17:44:51 -0400 Subject: [PATCH 072/105] Document remainder of diploma --- src/diploma.c | 199 +++++++++++++++++++++++++------------------------- 1 file changed, 100 insertions(+), 99 deletions(-) diff --git a/src/diploma.c b/src/diploma.c index 160540ccd..3edd1836a 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -12,40 +12,54 @@ struct Diploma { - u8 state; - u8 gfxStep; - u8 callbackStep; + u8 mainState; + u8 gfxState; + u8 initState; u16 tilemapBuffer[0x800]; }; -static EWRAM_DATA struct Diploma *gDiploma = NULL; +enum { + WIN_TEXT, + WIN_COUNT +}; -static void DiplomaBgInit(void); +enum { + BG_TEXT, + BG_DIPLOMA, +}; + +static EWRAM_DATA struct Diploma *sDiploma = NULL; + +static void DiplomaReset(void); static void DiplomaPrintText(void); -static u8 DiplomaLoadGfx(void); -static void DiplomaVblankHandler(void); +static bool8 DiplomaLoadGfx(void); +static void DiplomaInitScreen(void); static void CB2_Diploma(void); -static void Task_WaitForExit(u8); +static void Task_HandleDiplomaInput(u8); static void Task_DiplomaInit(u8); -static void Task_DiplomaReturnToOverworld(u8); +static void Task_DiplomaExit(u8); static const u32 sDiplomaGfx[] = INCBIN_U32("graphics/diploma/diploma.4bpp.lz"); static const u32 sDiplomaTilemap[] = INCBIN_U32("graphics/diploma/diploma.bin.lz"); static const u16 sDiplomaPal[] = INCBIN_U16("graphics/diploma/diploma.gbapal"); -static const u8 gUnknown_8415994[] = _("{HIGHLIGHT TRANSPARENT}プレイヤー"); -static const u8 gUnknown_841599D[] = _("{HIGHLIGHT TRANSPARENT}ã•ã¾"); -static const u8 gUnknown_84159A3[] = _("{HIGHLIGHT TRANSPARENT}ホウエン"); -static const u8 gUnknown_84159AB[] = _("{HIGHLIGHT TRANSPARENT}ãœã‚“ã“ã"); -static const u8 gUnknown_84159B3[] = _("{HIGHLIGHT TRANSPARENT}     ãƒã‚±ãƒ¢ãƒ³ãšã‹ã‚“ã‚’\nã¿ã”ã¨ã€€ã‹ã‚“ã›ã„ ã•ã›ãŸ\nã„ã ã„ãªã“ã†ã›ãを ãŸãŸãˆ\nã“ã“ã«ã€€ã—ょã†ã‚ã„ ã—ã¾ã™"); -static const u8 gUnknown_84159ED[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}ゲームフリーク"); -static const u8 gUnknown_84159FB[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}"); +// Leftover text from RSE (some of which is also unused there) +static const u8 sText_Player[] = _("{HIGHLIGHT TRANSPARENT}プレイヤー"); +static const u8 sText_Sama[] = _("{HIGHLIGHT TRANSPARENT}ã•ã¾"); +static const u8 sText_Hoenn[] = _("{HIGHLIGHT TRANSPARENT}ホウエン"); +static const u8 sText_National[] = _("{HIGHLIGHT TRANSPARENT}ãœã‚“ã“ã"); +static const u8 sText_CertifiesPokedexComplete[] = _("{HIGHLIGHT TRANSPARENT}     ãƒã‚±ãƒ¢ãƒ³ãšã‹ã‚“ã‚’\n" + "ã¿ã”ã¨ã€€ã‹ã‚“ã›ã„ ã•ã›ãŸ\n" + "ã„ã ã„ãªã“ã†ã›ãを ãŸãŸãˆ\n" + "ã“ã“ã«ã€€ã—ょã†ã‚ã„ ã—ã¾ã™"); +static const u8 sText_GameFreak[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}ゲームフリーク"); +static const u8 sText_Empty[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}"); -static const ALIGNED(4) u8 gUnknown_8415A04[3] = {0, 2, 3}; +static const ALIGNED(4) u8 sTextColors[3] = {0, 2, 3}; -static const struct BgTemplate gUnknown_8415A08[] = { +static const struct BgTemplate sBgTemplates[] = { { - .bg = 0, + .bg = BG_TEXT, .charBaseIndex = 0, .mapBaseIndex = 31, .screenSize = 0, @@ -53,7 +67,7 @@ static const struct BgTemplate gUnknown_8415A08[] = { .priority = 0, .baseTile = 1, }, { - .bg = 1, + .bg = BG_DIPLOMA, .charBaseIndex = 1, .mapBaseIndex = 29, .screenSize = 1, @@ -63,19 +77,20 @@ static const struct BgTemplate gUnknown_8415A08[] = { } }; -static const struct WindowTemplate gUnknown_8415A10[] = { - { - .bg = 0, +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { + [WIN_TEXT] = { + .bg = BG_TEXT, .tilemapLeft = 0, .tilemapTop = 2, .width = 29, .height = 16, .paletteNum = 15, .baseBlock = 0x000 - }, DUMMY_WIN_TEMPLATE + }, + [WIN_COUNT] = DUMMY_WIN_TEMPLATE }; -static void VCBC_DiplomaOam(void) +static void VBlankCB_Diploma(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -84,11 +99,11 @@ static void VCBC_DiplomaOam(void) void CB2_ShowDiploma(void) { - gDiploma = AllocZeroed(sizeof(*gDiploma)); - gDiploma->state = 0; - gDiploma->gfxStep = 0; - gDiploma->callbackStep = 0; - DiplomaBgInit(); + sDiploma = AllocZeroed(sizeof(*sDiploma)); + sDiploma->mainState = 0; + sDiploma->gfxState = 0; + sDiploma->initState = 0; + DiplomaReset(); CreateTask(Task_DiplomaInit, 0); SetMainCallback2(CB2_Diploma); } @@ -103,91 +118,81 @@ static void CB2_Diploma(void) static void Task_DiplomaInit(u8 taskId) { - switch (gDiploma->callbackStep) + switch (sDiploma->initState) { case 0: SetVBlankCallback(NULL); break; case 1: - DiplomaVblankHandler(); + DiplomaInitScreen(); break; case 2: if (!DiplomaLoadGfx()) - { return; - } break; case 3: - CopyToBgTilemapBuffer(1, sDiplomaTilemap, 0, 0); + CopyToBgTilemapBuffer(BG_DIPLOMA, sDiplomaTilemap, 0, 0); break; case 4: if (HasAllMons()) - { SetGpuReg(REG_OFFSET_BG1HOFS, 0x100); - } else - { SetGpuReg(REG_OFFSET_BG1HOFS, 0); - } break; case 5: DiplomaPrintText(); break; case 6: - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(BG_TEXT); + CopyBgTilemapBufferToVram(BG_DIPLOMA); break; case 7: BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; case 8: - SetVBlankCallback(VCBC_DiplomaOam); + SetVBlankCallback(VBlankCB_Diploma); break; default: if (gPaletteFade.active) - { break; - } PlayFanfareByFanfareNum(FANFARE_OBTAIN_BADGE); - gTasks[taskId].func = Task_WaitForExit; + gTasks[taskId].func = Task_HandleDiplomaInput; } - gDiploma->callbackStep++; + sDiploma->initState++; } -static void Task_WaitForExit(u8 taskId) +static void Task_HandleDiplomaInput(u8 taskId) { - switch (gDiploma->state) + switch (sDiploma->mainState) { case 0: - if (WaitFanfare(0)) - { - gDiploma->state++; - } + if (WaitFanfare(FALSE)) + sDiploma->mainState++; break; case 1: if (JOY_NEW(A_BUTTON)) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gDiploma->state++; + sDiploma->mainState++; } break; case 2: - Task_DiplomaReturnToOverworld(taskId); + Task_DiplomaExit(taskId); break; } } -static void Task_DiplomaReturnToOverworld(u8 taskId) +static void Task_DiplomaExit(u8 taskId) { if (gPaletteFade.active) return; DestroyTask(taskId); FreeAllWindowBuffers(); - FREE_AND_SET_NULL(gDiploma); + FREE_AND_SET_NULL(sDiploma); SetMainCallback2(CB2_ReturnToFieldFromDiploma); } -static void DiplomaBgInit(void) +static void DiplomaReset(void) { ResetSpriteData(); ResetPaletteFade(); @@ -196,7 +201,7 @@ static void DiplomaBgInit(void) ScanlineEffect_Stop(); } -static void DiplomaVblankHandler(void) +static void DiplomaInitScreen(void) { void *vram = (void *)VRAM; DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); @@ -204,71 +209,67 @@ static void DiplomaVblankHandler(void) DmaClear16(3, (void *)PLTT, PLTT_SIZE); SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_8415A08, 2); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 0, 0); - InitWindows(gUnknown_8415A10); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); + ChangeBgX(1, 0, BG_COORD_SET); + ChangeBgY(1, 0, BG_COORD_SET); + ChangeBgX(2, 0, BG_COORD_SET); + ChangeBgY(2, 0, BG_COORD_SET); + ChangeBgX(3, 0, BG_COORD_SET); + ChangeBgY(3, 0, BG_COORD_SET); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); - SetBgTilemapBuffer(1, gDiploma->tilemapBuffer); - ShowBg(0); - ShowBg(1); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 20); + SetBgTilemapBuffer(BG_DIPLOMA, sDiploma->tilemapBuffer); + ShowBg(BG_TEXT); + ShowBg(BG_DIPLOMA); + FillBgTilemapBufferRect_Palette0(BG_TEXT, 0, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(BG_DIPLOMA, 0, 0, 0, 30, 20); } -static u8 DiplomaLoadGfx(void) +static bool8 DiplomaLoadGfx(void) { - switch (gDiploma->gfxStep) + switch (sDiploma->gfxState) { case 0: ResetTempTileDataBuffers(); break; case 1: - DecompressAndCopyTileDataToVram(1, sDiplomaGfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_DIPLOMA, sDiplomaGfx, 0, 0, 0); break; case 2: - if (!(FreeTempTileDataBuffersIfPossible() == 1)) - { - break; - } - return 0; + if (FreeTempTileDataBuffersIfPossible() == TRUE) + return FALSE; + break; case 3: - LoadPalette(sDiplomaPal, 0, 0x40); + LoadPalette(sDiplomaPal, 0, sizeof(sDiplomaPal)); + // fallthrough default: - return 1; + // Finished + return TRUE; } - gDiploma->gfxStep++; - return 0; + sDiploma->gfxState++; + return FALSE; } static void DiplomaPrintText(void) { - u8 arr[160]; + u8 str[160]; u32 width; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); if (HasAllMons()) - { DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gText_Diploma_National); - } else - { DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gText_Diploma_Kanto); - } - FillWindowPixelBuffer(0, 0); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gText_Diploma_Player); - width = GetStringWidth(FONT_2, arr, -1); - AddTextPrinterParameterized3(0, FONT_2, 120 - (width / 2), 4, gUnknown_8415A04, -1, arr); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gText_Diploma_ThisDocument); - width = GetStringWidth(FONT_2, arr, -1); - AddTextPrinterParameterized3(0, FONT_2, 120 - (width / 2), 0x1E, gUnknown_8415A04, -1, arr); - AddTextPrinterParameterized3(0, FONT_2, 120, 105, gUnknown_8415A04, 0, gText_Diploma_GameFreak); - PutWindowTilemap(0); + FillWindowPixelBuffer(WIN_TEXT, PIXEL_FILL(0)); + DynamicPlaceholderTextUtil_ExpandPlaceholders(str, gText_Diploma_Player); + width = GetStringWidth(FONT_2, str, -1); + AddTextPrinterParameterized3(WIN_TEXT, FONT_2, 120 - (width / 2), 4, sTextColors, TEXT_SKIP_DRAW, str); + DynamicPlaceholderTextUtil_ExpandPlaceholders(str, gText_Diploma_ThisDocument); + width = GetStringWidth(FONT_2, str, -1); + AddTextPrinterParameterized3(WIN_TEXT, FONT_2, 120 - (width / 2), 30, sTextColors, TEXT_SKIP_DRAW, str); + AddTextPrinterParameterized3(WIN_TEXT, FONT_2, 120, 105, sTextColors, 0, gText_Diploma_GameFreak); + PutWindowTilemap(WIN_TEXT); } From 4a3ef4f9b2a3c488d35315f2046e0de6dd4cb0cc Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 24 Sep 2022 18:22:49 -0400 Subject: [PATCH 073/105] Ignore Porymap's prefabs file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 35e3dd14b..9d4874b61 100644 --- a/.gitignore +++ b/.gitignore @@ -55,6 +55,7 @@ types_*.taghl !sound/programmable_wave_samples/*.pcm _Deparsed_XSubs.pm porymap.project.cfg +prefabs.json .vscode/*.* *.js *.sym From 7807b198d333c3c4e21443b53d411ff7d9123302 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 25 Sep 2022 18:35:25 -0400 Subject: [PATCH 074/105] Ignore new Porymap config --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9d4874b61..d0e0fbe18 100644 --- a/.gitignore +++ b/.gitignore @@ -54,7 +54,7 @@ types_*.taghl !.github/calcrom/calcrom.pl !sound/programmable_wave_samples/*.pcm _Deparsed_XSubs.pm -porymap.project.cfg +porymap.*.cfg prefabs.json .vscode/*.* *.js From 8fb7eebfb9310ab22edf222293d81203c638259d Mon Sep 17 00:00:00 2001 From: lioniac <80606013+lioniac@users.noreply.github.com> Date: Mon, 26 Sep 2022 10:29:31 -0300 Subject: [PATCH 075/105] Naming Mystery Gift Vars --- src/event_data.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/event_data.c b/src/event_data.c index f5ec179e0..ac227177d 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -141,13 +141,13 @@ void ResetMysteryEventFlags(void) void ResetMysteryEventVars(void) { VarSet(VAR_EVENT_PICHU_SLOT, 0); - VarSet(VAR_0x40B6, 0); - VarSet(VAR_0x40B7, 0); - VarSet(VAR_0x40B8, 0); - VarSet(VAR_0x40B9, 0); - VarSet(VAR_0x40BA, 0); - VarSet(VAR_0x40BB, 0); - VarSet(VAR_0x40BC, 0); + VarSet(VAR_MYSTERY_GIFT_1, 0); + VarSet(VAR_MYSTERY_GIFT_2, 0); + VarSet(VAR_MYSTERY_GIFT_3, 0); + VarSet(VAR_MYSTERY_GIFT_4, 0); + VarSet(VAR_MYSTERY_GIFT_5, 0); + VarSet(VAR_MYSTERY_GIFT_6, 0); + VarSet(VAR_MYSTERY_GIFT_7, 0); VarSet(VAR_ALTERING_CAVE_WILD_SET, 0); } From fe757ff8aeac4b8b43a3fc353d0f7cef09c57d11 Mon Sep 17 00:00:00 2001 From: lioniac <80606013+lioniac@users.noreply.github.com> Date: Mon, 26 Sep 2022 10:31:44 -0300 Subject: [PATCH 076/105] Updated vars.h --- include/constants/vars.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/constants/vars.h b/include/constants/vars.h index 0db01238c..0a88f6508 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -230,13 +230,13 @@ #define VAR_0x40B3 0x40B3 #define VAR_PORTHOLE 0x40B4 #define VAR_EVENT_PICHU_SLOT 0x40B5 -#define VAR_0x40B6 0x40B6 -#define VAR_0x40B7 0x40B7 -#define VAR_0x40B8 0x40B8 -#define VAR_0x40B9 0x40B9 -#define VAR_0x40BA 0x40BA -#define VAR_0x40BB 0x40BB -#define VAR_0x40BC 0x40BC +#define VAR_MYSTERY_GIFT_1 0x40B6 +#define VAR_MYSTERY_GIFT_2 0x40B7 +#define VAR_MYSTERY_GIFT_3 0x40B8 +#define VAR_MYSTERY_GIFT_4 0x40B9 +#define VAR_MYSTERY_GIFT_5 0x40BA +#define VAR_MYSTERY_GIFT_6 0x40BB +#define VAR_MYSTERY_GIFT_7 0x40BC #define VAR_0x40BD 0x40BD #define VAR_0x40BE 0x40BE #define VAR_0x40BF 0x40BF From c26afe5e1b415413e745def7c5d6389c4b8fb5ba Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Mon, 26 Sep 2022 22:33:56 +0800 Subject: [PATCH 077/105] Remove include/tilesets.h --- include/tilesets.h | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 include/tilesets.h diff --git a/include/tilesets.h b/include/tilesets.h deleted file mode 100644 index 03274be60..000000000 --- a/include/tilesets.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef GUARD_tilesets_H -#define GUARD_tilesets_H - -#include "global.h" - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations - -extern struct Tileset *gTilesetPointer_SecretBase; -extern struct Tileset *gTilesetPointer_SecretBaseRedCave; - -#endif //GUARD_tilesets_H From 4e3dedd6fad6688dc422b882a07cf7abfa3f3b3d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 1 Oct 2022 20:55:59 -0400 Subject: [PATCH 078/105] Sync palette --- include/palette.h | 11 +- src/palette.c | 386 +++++++++++++++++++++++---------------------- src/quest_log.c | 4 +- src/title_screen.c | 22 +-- 4 files changed, 214 insertions(+), 209 deletions(-) diff --git a/include/palette.h b/include/palette.h index c510a5d2f..4d4477b13 100644 --- a/include/palette.h +++ b/include/palette.h @@ -74,11 +74,10 @@ void TintPalette_GrayScale(u16 *palette, u16 count); void TintPalette_GrayScale2(u16 *palette, u16 count); void TintPalette_SepiaTone(u16 *palette, u16 count); void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone); -void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4); -void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7); -bool32 sub_807185C(u8 var); -void sub_8071898(void); -void PaletteStruct_ResetById(u16 a1); -void ResetPaletteStruct(u8 paletteNum); +void PaletteStruct_ResetById(u16 id); +void CopyPaletteInvertedTint(const u16 *src, u16 *dst, u16 count, u8 tone); +void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id); +bool32 IsBlendPalettesGraduallyTaskActive(u8 var); +void DestroyBlendPalettesGraduallyTask(void); #endif // GUARD_PALETTE_H diff --git a/src/palette.c b/src/palette.c index ebb64bb55..08c6111b7 100644 --- a/src/palette.c +++ b/src/palette.c @@ -11,46 +11,48 @@ enum HARDWARE_FADE, }; +// These are structs for some unused palette system. +// The full functionality of this system is unknown. + #define NUM_PALETTE_STRUCTS 16 -// unused palette struct struct PaletteStructTemplate { - u16 uid; + u16 id; u16 *src; - u16 pst_field_8_0:1; - u16 pst_field_8_1:9; + bool16 pst_field_8_0:1; + u16 unused:9; u16 size:5; - u16 pst_field_9_7:1; - u8 pst_field_A; + u8 time1; u8 srcCount:5; - u8 pst_field_B_5:3; - u8 pst_field_C; + u8 state:3; + u8 time2; }; struct PaletteStruct { - const struct PaletteStructTemplate *base; - u32 ps_field_4_0:1; - u16 ps_field_4_1:1; + const struct PaletteStructTemplate *template; + bool32 active:1; + bool32 flag:1; u32 baseDestOffset:9; u16 destOffset:10; u16 srcIndex:7; - u8 ps_field_8; - u8 ps_field_9; + u8 countdown1; + u8 countdown2; }; -static void sub_8070790(struct PaletteStruct *, u32 *); -static void sub_80708F4(struct PaletteStruct *, u32 *); -static void sub_80709B4(struct PaletteStruct *); -static u8 GetPaletteNumByUid(u16); +static void PaletteStruct_Copy(struct PaletteStruct *, u32 *); +static void PaletteStruct_Blend(struct PaletteStruct *, u32 *); +static void PaletteStruct_TryEnd(struct PaletteStruct *); +static void PaletteStruct_Reset(u8 paletteNum); +static u8 PaletteStruct_GetPalNum(u16); static u8 UpdateNormalPaletteFade(void); static void BeginFastPaletteFadeInternal(u8); static u8 UpdateFastPaletteFade(void); static u8 UpdateHardwarePaletteFade(void); static void UpdateBlendRegisters(void); static bool8 IsSoftwarePaletteFadeFinishing(void); -static void sub_80718B8(u8 taskId); +static void Task_BlendPalettesGradually(u8 taskId); ALIGNED(4) EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0}; ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0}; @@ -59,10 +61,10 @@ EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0}; static EWRAM_DATA u32 sPlttBufferTransferPending = 0; EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0}; -static const struct PaletteStructTemplate gDummyPaletteStructTemplate = +static const struct PaletteStructTemplate sDummyPaletteStructTemplate = { - .uid = 0xFFFF, - .pst_field_B_5 = 1 + .id = 0xFFFF, + .state = 1 }; static const u8 sRoundedDownGrayscaleMap[] = @@ -79,20 +81,20 @@ static const u8 sRoundedDownGrayscaleMap[] = void LoadCompressedPalette(const u32 *src, u16 offset, u16 size) { LZDecompressWram(src, gPaletteDecompressionBuffer); - CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size); - CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferFaded + offset, size); + CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferUnfaded[offset], size); + CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferFaded[offset], size); } void LoadPalette(const void *src, u16 offset, u16 size) { - CpuCopy16(src, gPlttBufferUnfaded + offset, size); - CpuCopy16(src, gPlttBufferFaded + offset, size); + CpuCopy16(src, &gPlttBufferUnfaded[offset], size); + CpuCopy16(src, &gPlttBufferFaded[offset], size); } void FillPalette(u16 value, u16 offset, u16 size) { - CpuFill16(value, gPlttBufferUnfaded + offset, size); - CpuFill16(value, gPlttBufferFaded + offset, size); + CpuFill16(value, &gPlttBufferUnfaded[offset], size); + CpuFill16(value, &gPlttBufferFaded[offset], size); } void TransferPlttBuffer(void) @@ -102,7 +104,7 @@ void TransferPlttBuffer(void) void *src = gPlttBufferFaded; void *dest = (void *)PLTT; DmaCopy16(3, src, dest, PLTT_SIZE); - sPlttBufferTransferPending = 0; + sPlttBufferTransferPending = FALSE; if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active) UpdateBlendRegisters(); } @@ -129,8 +131,8 @@ void ResetPaletteFade(void) { u8 i; - for (i = 0; i < 16; ++i) - ResetPaletteStruct(i); + for (i = 0; i < NUM_PALETTE_STRUCTS; ++i) + PaletteStruct_Reset(i); ResetPaletteFadeControl(); } @@ -179,7 +181,7 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe temp = gPaletteFade.bufferTransferDisabled; gPaletteFade.bufferTransferDisabled = FALSE; CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE); - sPlttBufferTransferPending = 0; + sPlttBufferTransferPending = FALSE; if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active) UpdateBlendRegisters(); gPaletteFade.bufferTransferDisabled = temp; @@ -187,15 +189,15 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe } } -// not used -static bool8 sub_80706D0(u32 a1, u8 a2, u8 a3, u8 a4, u16 a5) +// Unused +static bool8 BeginPlttFade(u32 selectedPalettes, u8 delay, u8 startY, u8 targetY, u16 blendColor) { ReadPlttIntoBuffers(); - return BeginNormalPaletteFade(a1, a2, a3, a4, a5); + return BeginNormalPaletteFade(selectedPalettes, delay, startY, targetY, blendColor); } -// not used -static void sub_8070718(u8 a1, u32 *a2) +// Unused +static void PaletteStruct_Run(u8 a1, u32 *unkFlags) { u8 i; @@ -203,82 +205,80 @@ static void sub_8070718(u8 a1, u32 *a2) { struct PaletteStruct *palstruct = &sPaletteStructs[i]; - if (palstruct->ps_field_4_0) + if (palstruct->active) { - if (palstruct->base->pst_field_8_0 == a1) + if (palstruct->template->pst_field_8_0 == a1) { - u8 val1 = palstruct->srcIndex; - u8 val2 = palstruct->base->srcCount; + u8 srcIndex = palstruct->srcIndex; + u8 srcCount = palstruct->template->srcCount; - if (val1 == val2) + if (srcIndex == srcCount) { - sub_80709B4(palstruct); - if (!palstruct->ps_field_4_0) + PaletteStruct_TryEnd(palstruct); + if (!palstruct->active) continue; } - if (palstruct->ps_field_8 == 0) - sub_8070790(palstruct, a2); + if (palstruct->countdown1 == 0) + PaletteStruct_Copy(palstruct, unkFlags); else - --palstruct->ps_field_8; - sub_80708F4(palstruct, a2); + palstruct->countdown1--; + PaletteStruct_Blend(palstruct, unkFlags); } } } } -// not used -static void sub_8070790(struct PaletteStruct *a1, u32 *a2) +static void PaletteStruct_Copy(struct PaletteStruct *palStruct, u32 *unkFlags) { s32 srcIndex; s32 srcCount; u8 i = 0; - u16 srcOffset = a1->srcIndex * a1->base->size; + u16 srcOffset = palStruct->srcIndex * palStruct->template->size; - if (!a1->base->pst_field_8_0) + if (!palStruct->template->pst_field_8_0) { - while (i < a1->base->size) + while (i < palStruct->template->size) { - gPlttBufferUnfaded[a1->destOffset] = a1->base->src[srcOffset]; - gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset]; - ++i; - ++a1->destOffset; - ++srcOffset; + gPlttBufferUnfaded[palStruct->destOffset] = palStruct->template->src[srcOffset]; + gPlttBufferFaded[palStruct->destOffset] = palStruct->template->src[srcOffset]; + i++; + palStruct->destOffset++; + srcOffset++; } } else { - while (i < a1->base->size) + while (i < palStruct->template->size) { - gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset]; - ++i; - ++a1->destOffset; - ++srcOffset; + gPlttBufferFaded[palStruct->destOffset] = palStruct->template->src[srcOffset]; + i++; + palStruct->destOffset++; + srcOffset++; } } - a1->destOffset = a1->baseDestOffset; - a1->ps_field_8 = a1->base->pst_field_A; - ++a1->srcIndex; - srcIndex = a1->srcIndex; - srcCount = a1->base->srcCount; + palStruct->destOffset = palStruct->baseDestOffset; + palStruct->countdown1 = palStruct->template->time1; + palStruct->srcIndex++; + srcIndex = palStruct->srcIndex; + srcCount = palStruct->template->srcCount; if (srcIndex >= srcCount) { - if (a1->ps_field_9) - --a1->ps_field_9; - a1->srcIndex = 0; + if (palStruct->countdown2) + palStruct->countdown2--; + palStruct->srcIndex = 0; } - *a2 |= 1 << (a1->baseDestOffset >> 4); + *unkFlags |= 1 << (palStruct->baseDestOffset >> 4); } -// not used -static void sub_80708F4(struct PaletteStruct *a1, u32 *a2) +static void PaletteStruct_Blend(struct PaletteStruct *palStruct, u32 *unkFlags) { - if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes)) + if (gPaletteFade.active && ((1 << (palStruct->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes)) { - if (!a1->base->pst_field_8_0) + if (!palStruct->template->pst_field_8_0) { if (gPaletteFade.delayCounter != gPaletteFade_delay) - BlendPalette(a1->baseDestOffset, - a1->base->size, + BlendPalette(palStruct->baseDestOffset, + palStruct->template->size, gPaletteFade.y, gPaletteFade.blendColor); } @@ -286,65 +286,64 @@ static void sub_80708F4(struct PaletteStruct *a1, u32 *a2) { if (!gPaletteFade.delayCounter) { - if (a1->ps_field_8 != a1->base->pst_field_A) + if (palStruct->countdown1 != palStruct->template->time1) { - u32 srcOffset = a1->srcIndex * a1->base->size; + u32 srcOffset = palStruct->srcIndex * palStruct->template->size; u8 i; - for (i = 0; i < a1->base->size; ++i) - gPlttBufferFaded[a1->baseDestOffset + i] = a1->base->src[srcOffset + i]; + for (i = 0; i < palStruct->template->size; i++) + gPlttBufferFaded[palStruct->baseDestOffset + i] = palStruct->template->src[srcOffset + i]; } } } } } -// not used -static void sub_80709B4(struct PaletteStruct *a1) +static void PaletteStruct_TryEnd(struct PaletteStruct *palStruct) { - if (!a1->ps_field_9) + if (!palStruct->countdown2) { - s32 val = a1->base->pst_field_B_5; + s32 state = palStruct->template->state; - if (!val) + if (state == 0) { - a1->srcIndex = 0; - a1->ps_field_8 = a1->base->pst_field_A; - a1->ps_field_9 = a1->base->pst_field_C; - a1->destOffset = a1->baseDestOffset; + palStruct->srcIndex = 0; + palStruct->countdown1 = palStruct->template->time1; + palStruct->countdown2 = palStruct->template->time2; + palStruct->destOffset = palStruct->baseDestOffset; } else { - if (val < 0) + if (state < 0) return; - if (val > 2) + if (state > 2) return; - PaletteStruct_ResetById(a1->base->uid); + PaletteStruct_ResetById(palStruct->template->id); } } else { - --a1->ps_field_9; + palStruct->countdown2--; } } -void PaletteStruct_ResetById(u16 a1) +void PaletteStruct_ResetById(u16 id) { - u8 paletteNum = GetPaletteNumByUid(a1); - if (paletteNum != 16) - ResetPaletteStruct(paletteNum); + u8 paletteNum = PaletteStruct_GetPalNum(id); + if (paletteNum != NUM_PALETTE_STRUCTS) + PaletteStruct_Reset(paletteNum); } -void ResetPaletteStruct(u8 paletteNum) +static void PaletteStruct_Reset(u8 paletteNum) { - sPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate; - sPaletteStructs[paletteNum].ps_field_4_0 = 0; + sPaletteStructs[paletteNum].template = &sDummyPaletteStructTemplate; + sPaletteStructs[paletteNum].active = FALSE; sPaletteStructs[paletteNum].baseDestOffset = 0; sPaletteStructs[paletteNum].destOffset = 0; sPaletteStructs[paletteNum].srcIndex = 0; - sPaletteStructs[paletteNum].ps_field_4_1 = 0; - sPaletteStructs[paletteNum].ps_field_8 = 0; - sPaletteStructs[paletteNum].ps_field_9 = 0; + sPaletteStructs[paletteNum].flag = FALSE; + sPaletteStructs[paletteNum].countdown1 = 0; + sPaletteStructs[paletteNum].countdown2 = 0; } void ResetPaletteFadeControl(void) @@ -367,31 +366,28 @@ void ResetPaletteFadeControl(void) gPaletteFade.deltaY = 2; } -// not used -static void sub_8070AFC(u16 uid) +static void PaletteStruct_SetUnusedFlag(u16 id) { - u8 paletteNum = GetPaletteNumByUid(uid); - if (paletteNum != 16) - sPaletteStructs[paletteNum].ps_field_4_1 = 1; + u8 paletteNum = PaletteStruct_GetPalNum(id); + if (paletteNum != NUM_PALETTE_STRUCTS) + sPaletteStructs[paletteNum].flag = TRUE; } -// not used -static void sub_8070B28(u16 uid) +static void PaletteStruct_ClearUnusedFlag(u16 id) { - u8 paletteNum = GetPaletteNumByUid(uid); - if (paletteNum != 16) - sPaletteStructs[paletteNum].ps_field_4_1 = 0; + u8 paletteNum = PaletteStruct_GetPalNum(id); + if (paletteNum != NUM_PALETTE_STRUCTS) + sPaletteStructs[paletteNum].flag = FALSE; } -// not used -static u8 GetPaletteNumByUid(u16 uid) +static u8 PaletteStruct_GetPalNum(u16 id) { u8 i; - for (i = 0; i < NUM_PALETTE_STRUCTS; ++i) - if (sPaletteStructs[i].base->uid == uid) + for (i = 0; i < NUM_PALETTE_STRUCTS; i++) + if (sPaletteStructs[i].template->id == id) return i; - return 16; + return NUM_PALETTE_STRUCTS; } static u8 UpdateNormalPaletteFade(void) @@ -411,7 +407,7 @@ static u8 UpdateNormalPaletteFade(void) { if (gPaletteFade.delayCounter < gPaletteFade_delay) { - ++gPaletteFade.delayCounter; + gPaletteFade.delayCounter++; return 2; } gPaletteFade.delayCounter = 0; @@ -708,25 +704,25 @@ static u8 UpdateHardwarePaletteFade(void) return PALETTE_FADE_STATUS_DONE; if (gPaletteFade.delayCounter < gPaletteFade_delay) { - ++gPaletteFade.delayCounter; + gPaletteFade.delayCounter++; return PALETTE_FADE_STATUS_DELAY; } gPaletteFade.delayCounter = 0; if (!gPaletteFade.yDec) { - ++gPaletteFade.y; + gPaletteFade.y++; if (gPaletteFade.y > gPaletteFade.targetY) { - ++gPaletteFade.hardwareFadeFinishing; - --gPaletteFade.y; + gPaletteFade.hardwareFadeFinishing++; + gPaletteFade.y--; } } else { if (gPaletteFade.y-- - 1 < gPaletteFade.targetY) { - ++gPaletteFade.hardwareFadeFinishing; - ++gPaletteFade.y; + gPaletteFade.hardwareFadeFinishing++; + gPaletteFade.y++; } } @@ -770,7 +766,7 @@ static bool8 IsSoftwarePaletteFadeFinishing(void) } else { - ++gPaletteFade.softwareFadeFinishingCounter; + gPaletteFade.softwareFadeFinishingCounter++; } return TRUE; } @@ -806,11 +802,11 @@ void TintPalette_GrayScale(u16 *palette, u16 count) for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - *palette++ = (gray << 10) | (gray << 5) | (gray << 0); + *palette++ = RGB2(gray, gray, gray); } } @@ -821,15 +817,15 @@ void TintPalette_GrayScale2(u16 *palette, u16 count) for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - if (gray > 0x1F) - gray = 0x1F; + if (gray > 31) + gray = 31; gray = sRoundedDownGrayscaleMap[gray]; - *palette++ = (gray << 10) | (gray << 5) | (gray << 0); + *palette++ = RGB2(gray, gray, gray); } } @@ -840,16 +836,16 @@ void TintPalette_SepiaTone(u16 *palette, u16 count) for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; r = (u16)((Q_8_8(1.2) * gray)) >> 8; g = (u16)((Q_8_8(1.0) * gray)) >> 8; b = (u16)((Q_8_8(0.94) * gray)) >> 8; if (r > 31) r = 31; - *palette++ = (b << 10) | (g << 5) | (r << 0); + *palette++ = RGB2(r, g, b); } } @@ -860,9 +856,9 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; r = (u16)((rTone * gray)) >> 8; g = (u16)((gTone * gray)) >> 8; @@ -873,116 +869,126 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b g = 31; if (b > 31) b = 31; - *palette++ = (b << 10) | (g << 5) | (r << 0); + *palette++ = RGB2(r, g, b); } } -void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4) +void CopyPaletteInvertedTint(const u16 *src, u16 *dst, u16 count, u8 tone) { s32 r, g, b, i; u32 gray; - if (!a4) + if (!tone) { - for (i = 0; i < count; ++i) + for (i = 0; i < count; i++) *dst++ = *src++; } else { - for (i = 0; i < count; ++src, ++dst, ++i) + for (i = 0; i < count; src++, dst++, i++) { - r = (*src >> 0) & 0x1F; - g = (*src >> 5) & 0x1F; - b = (*src >> 10) & 0x1F; + r = GET_R(*src); + g = GET_G(*src); + b = GET_B(*src); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - r += (a4 * (gray - r) >> 4); - g += (a4 * (gray - g) >> 4); - b += (a4 * (gray - b) >> 4); - *dst = (b << 10) | (g << 5) | (r << 0); + r += (tone * (gray - r) >> 4); + g += (tone * (gray - g) >> 4); + b += (tone * (gray - b) >> 4); + *dst = RGB2(r, g, b); } } } -void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7) +#define tCoeff data[0] +#define tCoeffTarget data[1] +#define tCoeffDelta data[2] +#define tDelay data[3] +#define tDelayTimer data[4] +#define IDX_PALETTES 5 // data[5] and data[6], set/get via Set/GetWordTaskArg +#define tColor data[7] +#define tId data[8] + +// Blend the selected palettes in a series of steps toward or away from the color. +void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id) { u8 taskId; - taskId = CreateTask(sub_80718B8, a6); - gTasks[taskId].data[0] = a3; - gTasks[taskId].data[1] = a4; - if (a2 >= 0) + taskId = CreateTask(Task_BlendPalettesGradually, priority); + gTasks[taskId].tCoeff = coeff; + gTasks[taskId].tCoeffTarget = coeffTarget; + if (delay >= 0) { - gTasks[taskId].data[3] = a2; - gTasks[taskId].data[2] = 1; + gTasks[taskId].tDelay = delay; + gTasks[taskId].tCoeffDelta = 1; } else { - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[2] = -a2 + 1; + gTasks[taskId].tDelay = 0; + gTasks[taskId].tCoeffDelta = -delay + 1; } - if (a4 < a3) - gTasks[taskId].data[2] *= -1; - SetWordTaskArg(taskId, 5, a1); - gTasks[taskId].data[7] = a5; - gTasks[taskId].data[8] = a7; + if (coeffTarget < coeff) + gTasks[taskId].tCoeffDelta *= -1; + SetWordTaskArg(taskId, IDX_PALETTES, selectedPalettes); + gTasks[taskId].tColor = color; + gTasks[taskId].tId = id; gTasks[taskId].func(taskId); } -bool32 sub_807185C(u8 var) +bool32 IsBlendPalettesGraduallyTaskActive(u8 id) { s32 i; for (i = 0; i < NUM_TASKS; ++i) if (gTasks[i].isActive == TRUE - && gTasks[i].func == sub_80718B8 - && gTasks[i].data[8] == var) + && gTasks[i].func == Task_BlendPalettesGradually + && gTasks[i].tId == id) return TRUE; return FALSE; } -void sub_8071898(void) +void DestroyBlendPalettesGraduallyTask(void) { u8 taskId; while (TRUE) { - taskId = FindTaskIdByFunc(sub_80718B8); - if (taskId == TAIL_SENTINEL) + taskId = FindTaskIdByFunc(Task_BlendPalettesGradually); + if (taskId == TASK_NONE) break; DestroyTask(taskId); } } -static void sub_80718B8(u8 taskId) +static void Task_BlendPalettesGradually(u8 taskId) { - u32 wordVar; + u32 palettes; s16 *data; - s16 temp; + s16 target; data = gTasks[taskId].data; - wordVar = GetWordTaskArg(taskId, 5); - if (++data[4] > data[3]) + palettes = GetWordTaskArg(taskId, IDX_PALETTES); + if (++tDelayTimer > tDelay) { - data[4] = 0; - BlendPalettes(wordVar, data[0], data[7]); - temp = data[1]; - if (data[0] == temp) + tDelayTimer = 0; + BlendPalettes(palettes, tCoeff, tColor); + target = tCoeffTarget; + if (tCoeff == target) { DestroyTask(taskId); } else { - data[0] += data[2]; - if (data[2] >= 0) + tCoeff += tCoeffDelta; + if (tCoeffDelta >= 0) { - if (data[0] < temp) + if (tCoeff < target) return; } - else if (data[0] > temp) + else if (tCoeff > target) { return; } - data[0] = temp; + tCoeff = target; } } } diff --git a/src/quest_log.c b/src/quest_log.c index 8a6a835fa..35a3e43c8 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1199,8 +1199,8 @@ static bool8 sub_81121D8(u8 taskId) if (data[1] > 15) return TRUE; - sub_80716F8(gPlttBufferUnfaded + 0x01, gPlttBufferFaded + 0x01, 0xDF, 0x0F - data[1]); - sub_80716F8(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]); + CopyPaletteInvertedTint(gPlttBufferUnfaded + 0x01, gPlttBufferFaded + 0x01, 0xDF, 0x0F - data[1]); + CopyPaletteInvertedTint(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]); FillWindowPixelRect(sQuestLogHeaderWindowIds[0], 0x00, 0, sQuestLogHeaderWindowTemplates[0].height * 8 - 1 - data[1], sQuestLogHeaderWindowTemplates[0].width * 8, 1); FillWindowPixelRect(sQuestLogHeaderWindowIds[1], 0x00, 0, data[1], sQuestLogHeaderWindowTemplates[1].width * 8, 1); CopyWindowToVram(sQuestLogHeaderWindowIds[0], COPYWIN_GFX); diff --git a/src/title_screen.c b/src/title_screen.c index 0ca5a10d1..c8164236a 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -519,15 +519,15 @@ static void SetTitleScreenScene_FadeIn(s16 * data) if (data[2] > 36) { CreateTask(Task_TitleScreen_SlideWin0, 3); - sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); data[2] = 0; data[1]++; } break; case 4: - if (!sub_807185C(0)) + if (!IsBlendPalettesGraduallyTaskActive(0)) { - sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } break; @@ -536,14 +536,14 @@ static void SetTitleScreenScene_FadeIn(s16 * data) if (data[2] > 20) { data[2] = 0; - sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); data[1]++; } break; case 6: - if (!sub_807185C(0)) + if (!IsBlendPalettesGraduallyTaskActive(0)) { - sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } break; @@ -552,12 +552,12 @@ static void SetTitleScreenScene_FadeIn(s16 * data) if (data[2] > 20) { data[2] = 0; - sub_80717A8(0x2000, -3, 0x00, 0x10, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -3, 0x00, 0x10, RGB(30, 30, 31), 0, 0); data[1]++; } break; case 8: - if (!sub_807185C(0)) + if (!IsBlendPalettesGraduallyTaskActive(0)) { data[5] = 1; r4 = (0x10000 << CreateBlankSprite()) | 0x00001FFF; @@ -565,12 +565,12 @@ static void SetTitleScreenScene_FadeIn(s16 * data) BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31)); ShowBg(0); CpuCopy16(gGraphics_TitleScreen_BoxArtMonPals, gPlttBufferUnfaded + 0xD0, 0x20); - sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } break; case 9: - if (!sub_807185C(0) && !gPaletteFade.active) + if (!IsBlendPalettesGraduallyTaskActive(0) && !gPaletteFade.active) { SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } @@ -872,7 +872,7 @@ static void LoadMainTitleScreenPalsAndResetBgs(void) if (taskId != 0xFF) DestroyTask(taskId); - sub_8071898(); + DestroyBlendPalettesGraduallyTask(); ResetPaletteFadeControl(); LoadPalette(gGraphics_TitleScreen_GameTitleLogoPals, 0x00, 0x1A0); LoadPalette(gGraphics_TitleScreen_BoxArtMonPals, 0xD0, 0x20); From a247433e20b45c398dfbc02c620eb35239ead13a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 1 Oct 2022 23:26:32 -0400 Subject: [PATCH 079/105] Sync/document item_menu_icons.c --- .../interface/{unk_8E84560.pal => bag.pal} | 0 .../{unk_8E83DBC.png => bag_female.png} | Bin .../{unk_8E8362C.png => bag_male.png} | Bin include/constants/items.h | 6 +- include/graphics.h | 10 +- include/item_menu_icons.h | 16 +- src/berry_pouch.c | 4 +- src/data/item_icon_table.h | 379 ++++++++++ src/graphics.c | 10 +- src/item.c | 2 +- src/item_menu.c | 22 +- src/item_menu_icons.c | 645 ++++-------------- src/item_pc.c | 14 +- src/shop.c | 2 +- 14 files changed, 568 insertions(+), 542 deletions(-) rename graphics/interface/{unk_8E84560.pal => bag.pal} (100%) rename graphics/interface/{unk_8E83DBC.png => bag_female.png} (100%) rename graphics/interface/{unk_8E8362C.png => bag_male.png} (100%) create mode 100644 src/data/item_icon_table.h diff --git a/graphics/interface/unk_8E84560.pal b/graphics/interface/bag.pal similarity index 100% rename from graphics/interface/unk_8E84560.pal rename to graphics/interface/bag.pal diff --git a/graphics/interface/unk_8E83DBC.png b/graphics/interface/bag_female.png similarity index 100% rename from graphics/interface/unk_8E83DBC.png rename to graphics/interface/bag_female.png diff --git a/graphics/interface/unk_8E8362C.png b/graphics/interface/bag_male.png similarity index 100% rename from graphics/interface/unk_8E8362C.png rename to graphics/interface/bag_male.png diff --git a/include/constants/items.h b/include/constants/items.h index 4ee7e3014..b2dfeccb7 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -438,11 +438,7 @@ #define ITEM_RUBY 373 #define ITEM_SAPPHIRE 374 -#define ITEM_N_A 375 - -// Emerald -#define ITEM_MAGMA_EMBLEM 375 -#define ITEM_OLD_SEA_MAP 376 +#define ITEMS_COUNT 375 #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY #define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY diff --git a/include/graphics.h b/include/graphics.h index 02cc0082e..c486aa058 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2916,11 +2916,11 @@ extern const u32 gItemPcBgPals[]; extern const u8 gItemPcTilemap[]; // item_menu_icons -extern const u32 gUnknown_8E8362C[]; -extern const u32 gUnknown_8E83DBC[]; -extern const u32 gUnknown_8E84560[]; -extern const u32 gFile_graphics_interface_bag_swap_sheet[]; -extern const u32 gFile_graphics_interface_bag_swap_palette[]; +extern const u32 gBagMale_Gfx[]; +extern const u32 gBagFemale_Gfx[]; +extern const u32 gBag_Pal[]; +extern const u32 gSwapLine_Gfx[]; +extern const u32 gSwapLine_Pal[]; extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; extern const u8 gFile_graphics_items_icons_master_ball_sheet[]; diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 01e481080..57f03422a 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -3,26 +3,26 @@ #include "global.h" -extern const struct CompressedSpriteSheet gSpriteSheet_Backpack; -extern const struct CompressedSpriteSheet gSpriteSheet_Satchel; -extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel; +extern const struct CompressedSpriteSheet gSpriteSheet_BagMale; +extern const struct CompressedSpriteSheet gSpriteSheet_BagFemale; +extern const struct CompressedSpritePalette gSpritePalette_Bag; extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; extern const struct CompressedSpritePalette gBagSwapSpritePalette; void ResetItemMenuIconState(void); -void ItemMenuIcons_CreateInsertIndicatorBarHidden(void); +void CreateSwapLine(void); void DestroyItemMenuIcon(bool8 a0); void CreateItemMenuIcon(u16 itemId, bool8 a0); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId); u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); -void sub_80989A0(u16 itemId, u8 idx); -void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y); -void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible); +void CreateBerryPouchItemIcon(u16 itemId, u8 idx); +void UpdateSwapLinePos(s16 x, u16 y); +void SetSwapLineInvisibility(bool8 invisible); void SetBagVisualPocketId(u8); void ShakeBagSprite(void); const void *GetItemIconGfxPtr(u16 itemId, u8 ptrId); -void CreateBagOrSatchelSprite(u8 animNum); +void CreateBagSprite(u8 animNum); #endif // GUARD_ITEM_MENU_ICONS diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 5e5c95067..87796fad4 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -709,9 +709,9 @@ static void BerryPouchMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen } DestroyItemMenuIcon(sResources->itemMenuIconId ^ 1); if (sResources->listMenuNumItems != itemIndex) - sub_80989A0(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemIndex), sResources->itemMenuIconId); + CreateBerryPouchItemIcon(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemIndex), sResources->itemMenuIconId); else - sub_80989A0(ITEM_N_A, sResources->itemMenuIconId); + CreateBerryPouchItemIcon(ITEMS_COUNT, sResources->itemMenuIconId); sResources->itemMenuIconId ^= 1; PrintSelectedBerryDescription(itemIndex); } diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h new file mode 100644 index 000000000..1fd403366 --- /dev/null +++ b/src/data/item_icon_table.h @@ -0,0 +1,379 @@ +static const void *const sItemIconTable[ITEMS_COUNT + 1][2] = +{ + [ITEM_NONE] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_MASTER_BALL] = {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, + [ITEM_ULTRA_BALL] = {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, + [ITEM_GREAT_BALL] = {gFile_graphics_items_icons_great_ball_sheet, gFile_graphics_items_icon_palettes_great_ball_palette}, + [ITEM_POKE_BALL] = {gFile_graphics_items_icons_poke_ball_sheet, gFile_graphics_items_icon_palettes_poke_ball_palette}, + [ITEM_SAFARI_BALL] = {gFile_graphics_items_icons_safari_ball_sheet, gFile_graphics_items_icon_palettes_safari_ball_palette}, + [ITEM_NET_BALL] = {gFile_graphics_items_icons_net_ball_sheet, gFile_graphics_items_icon_palettes_net_ball_palette}, + [ITEM_DIVE_BALL] = {gFile_graphics_items_icons_dive_ball_sheet, gFile_graphics_items_icon_palettes_dive_ball_palette}, + [ITEM_NEST_BALL] = {gFile_graphics_items_icons_nest_ball_sheet, gFile_graphics_items_icon_palettes_nest_ball_palette}, + [ITEM_REPEAT_BALL] = {gFile_graphics_items_icons_repeat_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, + [ITEM_TIMER_BALL] = {gFile_graphics_items_icons_timer_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, + [ITEM_LUXURY_BALL] = {gFile_graphics_items_icons_luxury_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, + [ITEM_PREMIER_BALL] = {gFile_graphics_items_icons_premier_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, + [ITEM_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_potion_palette}, + [ITEM_ANTIDOTE] = {gFile_graphics_items_icons_antidote_sheet, gFile_graphics_items_icon_palettes_antidote_palette}, + [ITEM_BURN_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_burn_heal_palette}, + [ITEM_ICE_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_ice_heal_palette}, + [ITEM_AWAKENING] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_awakening_palette}, + [ITEM_PARALYZE_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_paralyze_heal_palette}, + [ITEM_FULL_RESTORE] = {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_full_restore_palette}, + [ITEM_MAX_POTION] = {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_max_potion_palette}, + [ITEM_HYPER_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_hyper_potion_palette}, + [ITEM_SUPER_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_super_potion_palette}, + [ITEM_FULL_HEAL] = {gFile_graphics_items_icons_full_heal_sheet, gFile_graphics_items_icon_palettes_full_heal_palette}, + [ITEM_REVIVE] = {gFile_graphics_items_icons_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, + [ITEM_MAX_REVIVE] = {gFile_graphics_items_icons_max_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, + [ITEM_FRESH_WATER] = {gFile_graphics_items_icons_fresh_water_sheet, gFile_graphics_items_icon_palettes_fresh_water_palette}, + [ITEM_SODA_POP] = {gFile_graphics_items_icons_soda_pop_sheet, gFile_graphics_items_icon_palettes_soda_pop_palette}, + [ITEM_LEMONADE] = {gFile_graphics_items_icons_lemonade_sheet, gFile_graphics_items_icon_palettes_lemonade_palette}, + [ITEM_MOOMOO_MILK] = {gFile_graphics_items_icons_moomoo_milk_sheet, gFile_graphics_items_icon_palettes_moomoo_milk_palette}, + [ITEM_ENERGY_POWDER] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_energy_powder_palette}, + [ITEM_ENERGY_ROOT] = {gFile_graphics_items_icons_energy_root_sheet, gFile_graphics_items_icon_palettes_energy_root_palette}, + [ITEM_HEAL_POWDER] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_heal_powder_palette}, + [ITEM_REVIVAL_HERB] = {gFile_graphics_items_icons_revival_herb_sheet, gFile_graphics_items_icon_palettes_revival_herb_palette}, + [ITEM_ETHER] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_ether_palette}, + [ITEM_MAX_ETHER] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_ether_palette}, + [ITEM_ELIXIR] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_elixir_palette}, + [ITEM_MAX_ELIXIR] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_elixir_palette}, + [ITEM_LAVA_COOKIE] = {gFile_graphics_items_icons_lava_cookie_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, + [ITEM_BLUE_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_blue_flute_palette}, + [ITEM_YELLOW_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_yellow_flute_palette}, + [ITEM_RED_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_red_flute_palette}, + [ITEM_BLACK_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_black_flute_palette}, + [ITEM_WHITE_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_white_flute_palette}, + [ITEM_BERRY_JUICE] = {gFile_graphics_items_icons_berry_juice_sheet, gFile_graphics_items_icon_palettes_berry_juice_palette}, + [ITEM_SACRED_ASH] = {gFile_graphics_items_icons_sacred_ash_sheet, gFile_graphics_items_icon_palettes_sacred_ash_palette}, + [ITEM_SHOAL_SALT] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_shoal_salt_palette}, + [ITEM_SHOAL_SHELL] = {gFile_graphics_items_icons_shoal_shell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, + [ITEM_RED_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_red_shard_palette}, + [ITEM_BLUE_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_blue_shard_palette}, + [ITEM_YELLOW_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_yellow_shard_palette}, + [ITEM_GREEN_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_green_shard_palette}, + [ITEM_034] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_035] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_036] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_037] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_038] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_039] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03A] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03D] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03E] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_HP_UP] = {gFile_graphics_items_icons_hp_up_sheet, gFile_graphics_items_icon_palettes_hp_up_palette}, + [ITEM_PROTEIN] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_protein_palette}, + [ITEM_IRON] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_iron_palette}, + [ITEM_CARBOS] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_carbos_palette}, + [ITEM_CALCIUM] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_calcium_palette}, + [ITEM_RARE_CANDY] = {gFile_graphics_items_icons_rare_candy_sheet, gFile_graphics_items_icon_palettes_rare_candy_palette}, + [ITEM_PP_UP] = {gFile_graphics_items_icons_pp_up_sheet, gFile_graphics_items_icon_palettes_pp_up_palette}, + [ITEM_ZINC] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_zinc_palette}, + [ITEM_PP_MAX] = {gFile_graphics_items_icons_pp_max_sheet, gFile_graphics_items_icon_palettes_pp_max_palette}, + [ITEM_048] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_GUARD_SPEC] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_guard_spec_palette}, + [ITEM_DIRE_HIT] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_dire_hit_palette}, + [ITEM_X_ATTACK] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_attack_palette}, + [ITEM_X_DEFEND] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_defend_palette}, + [ITEM_X_SPEED] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_speed_palette}, + [ITEM_X_ACCURACY] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_accuracy_palette}, + [ITEM_X_SPECIAL] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_special_palette}, + [ITEM_POKE_DOLL] = {gFile_graphics_items_icons_poke_doll_sheet, gFile_graphics_items_icon_palettes_poke_doll_palette}, + [ITEM_FLUFFY_TAIL] = {gFile_graphics_items_icons_fluffy_tail_sheet, gFile_graphics_items_icon_palettes_fluffy_tail_palette}, + [ITEM_052] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_SUPER_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_super_repel_palette}, + [ITEM_MAX_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_max_repel_palette}, + [ITEM_ESCAPE_ROPE] = {gFile_graphics_items_icons_escape_rope_sheet, gFile_graphics_items_icon_palettes_escape_rope_palette}, + [ITEM_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_repel_palette}, + [ITEM_057] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_058] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_059] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_05A] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_05B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_05C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_SUN_STONE] = {gFile_graphics_items_icons_sun_stone_sheet, gFile_graphics_items_icon_palettes_sun_stone_palette}, + [ITEM_MOON_STONE] = {gFile_graphics_items_icons_moon_stone_sheet, gFile_graphics_items_icon_palettes_moon_stone_palette}, + [ITEM_FIRE_STONE] = {gFile_graphics_items_icons_fire_stone_sheet, gFile_graphics_items_icon_palettes_fire_stone_palette}, + [ITEM_THUNDER_STONE] = {gFile_graphics_items_icons_thunder_stone_sheet, gFile_graphics_items_icon_palettes_thunder_stone_palette}, + [ITEM_WATER_STONE] = {gFile_graphics_items_icons_water_stone_sheet, gFile_graphics_items_icon_palettes_water_stone_palette}, + [ITEM_LEAF_STONE] = {gFile_graphics_items_icons_leaf_stone_sheet, gFile_graphics_items_icon_palettes_leaf_stone_palette}, + [ITEM_063] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_064] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_065] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_066] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_TINY_MUSHROOM] = {gFile_graphics_items_icons_tiny_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, + [ITEM_BIG_MUSHROOM] = {gFile_graphics_items_icons_big_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, + [ITEM_069] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_PEARL] = {gFile_graphics_items_icons_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, + [ITEM_BIG_PEARL] = {gFile_graphics_items_icons_big_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, + [ITEM_STARDUST] = {gFile_graphics_items_icons_stardust_sheet, gFile_graphics_items_icon_palettes_star_palette}, + [ITEM_STAR_PIECE] = {gFile_graphics_items_icons_star_piece_sheet, gFile_graphics_items_icon_palettes_star_palette}, + [ITEM_NUGGET] = {gFile_graphics_items_icons_nugget_sheet, gFile_graphics_items_icon_palettes_nugget_palette}, + [ITEM_HEART_SCALE] = {gFile_graphics_items_icons_heart_scale_sheet, gFile_graphics_items_icon_palettes_heart_scale_palette}, + [ITEM_070] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_071] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_072] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_073] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_074] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_075] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_076] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_077] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_078] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_ORANGE_MAIL] = {gFile_graphics_items_icons_orange_mail_sheet, gFile_graphics_items_icon_palettes_orange_mail_palette}, + [ITEM_HARBOR_MAIL] = {gFile_graphics_items_icons_harbor_mail_sheet, gFile_graphics_items_icon_palettes_harbor_mail_palette}, + [ITEM_GLITTER_MAIL] = {gFile_graphics_items_icons_glitter_mail_sheet, gFile_graphics_items_icon_palettes_glitter_mail_palette}, + [ITEM_MECH_MAIL] = {gFile_graphics_items_icons_mech_mail_sheet, gFile_graphics_items_icon_palettes_mech_mail_palette}, + [ITEM_WOOD_MAIL] = {gFile_graphics_items_icons_wood_mail_sheet, gFile_graphics_items_icon_palettes_wood_mail_palette}, + [ITEM_WAVE_MAIL] = {gFile_graphics_items_icons_wave_mail_sheet, gFile_graphics_items_icon_palettes_wave_mail_palette}, + [ITEM_BEAD_MAIL] = {gFile_graphics_items_icons_bead_mail_sheet, gFile_graphics_items_icon_palettes_bead_mail_palette}, + [ITEM_SHADOW_MAIL] = {gFile_graphics_items_icons_shadow_mail_sheet, gFile_graphics_items_icon_palettes_shadow_mail_palette}, + [ITEM_TROPIC_MAIL] = {gFile_graphics_items_icons_tropic_mail_sheet, gFile_graphics_items_icon_palettes_tropic_mail_palette}, + [ITEM_DREAM_MAIL] = {gFile_graphics_items_icons_dream_mail_sheet, gFile_graphics_items_icon_palettes_dream_mail_palette}, + [ITEM_FAB_MAIL] = {gFile_graphics_items_icons_fab_mail_sheet, gFile_graphics_items_icon_palettes_fab_mail_palette}, + [ITEM_RETRO_MAIL] = {gFile_graphics_items_icons_retro_mail_sheet, gFile_graphics_items_icon_palettes_retro_mail_palette}, + [ITEM_CHERI_BERRY] = {gFile_graphics_items_icons_cheri_berry_sheet, gFile_graphics_items_icon_palettes_cheri_berry_palette}, + [ITEM_CHESTO_BERRY] = {gFile_graphics_items_icons_chesto_berry_sheet, gFile_graphics_items_icon_palettes_chesto_berry_palette}, + [ITEM_PECHA_BERRY] = {gFile_graphics_items_icons_pecha_berry_sheet, gFile_graphics_items_icon_palettes_pecha_berry_palette}, + [ITEM_RAWST_BERRY] = {gFile_graphics_items_icons_rawst_berry_sheet, gFile_graphics_items_icon_palettes_rawst_berry_palette}, + [ITEM_ASPEAR_BERRY] = {gFile_graphics_items_icons_aspear_berry_sheet, gFile_graphics_items_icon_palettes_aspear_berry_palette}, + [ITEM_LEPPA_BERRY] = {gFile_graphics_items_icons_leppa_berry_sheet, gFile_graphics_items_icon_palettes_leppa_berry_palette}, + [ITEM_ORAN_BERRY] = {gFile_graphics_items_icons_oran_berry_sheet, gFile_graphics_items_icon_palettes_oran_berry_palette}, + [ITEM_PERSIM_BERRY] = {gFile_graphics_items_icons_persim_berry_sheet, gFile_graphics_items_icon_palettes_persim_berry_palette}, + [ITEM_LUM_BERRY] = {gFile_graphics_items_icons_lum_berry_sheet, gFile_graphics_items_icon_palettes_lum_berry_palette}, + [ITEM_SITRUS_BERRY] = {gFile_graphics_items_icons_sitrus_berry_sheet, gFile_graphics_items_icon_palettes_sitrus_berry_palette}, + [ITEM_FIGY_BERRY] = {gFile_graphics_items_icons_figy_berry_sheet, gFile_graphics_items_icon_palettes_figy_berry_palette}, + [ITEM_WIKI_BERRY] = {gFile_graphics_items_icons_wiki_berry_sheet, gFile_graphics_items_icon_palettes_wiki_berry_palette}, + [ITEM_MAGO_BERRY] = {gFile_graphics_items_icons_mago_berry_sheet, gFile_graphics_items_icon_palettes_mago_berry_palette}, + [ITEM_AGUAV_BERRY] = {gFile_graphics_items_icons_aguav_berry_sheet, gFile_graphics_items_icon_palettes_aguav_berry_palette}, + [ITEM_IAPAPA_BERRY] = {gFile_graphics_items_icons_iapapa_berry_sheet, gFile_graphics_items_icon_palettes_iapapa_berry_palette}, + [ITEM_RAZZ_BERRY] = {gFile_graphics_items_icons_razz_berry_sheet, gFile_graphics_items_icon_palettes_razz_berry_palette}, + [ITEM_BLUK_BERRY] = {gFile_graphics_items_icons_bluk_berry_sheet, gFile_graphics_items_icon_palettes_bluk_berry_palette}, + [ITEM_NANAB_BERRY] = {gFile_graphics_items_icons_nanab_berry_sheet, gFile_graphics_items_icon_palettes_nanab_berry_palette}, + [ITEM_WEPEAR_BERRY] = {gFile_graphics_items_icons_wepear_berry_sheet, gFile_graphics_items_icon_palettes_wepear_berry_palette}, + [ITEM_PINAP_BERRY] = {gFile_graphics_items_icons_pinap_berry_sheet, gFile_graphics_items_icon_palettes_pinap_berry_palette}, + [ITEM_POMEG_BERRY] = {gFile_graphics_items_icons_pomeg_berry_sheet, gFile_graphics_items_icon_palettes_pomeg_berry_palette}, + [ITEM_KELPSY_BERRY] = {gFile_graphics_items_icons_kelpsy_berry_sheet, gFile_graphics_items_icon_palettes_kelpsy_berry_palette}, + [ITEM_QUALOT_BERRY] = {gFile_graphics_items_icons_qualot_berry_sheet, gFile_graphics_items_icon_palettes_qualot_berry_palette}, + [ITEM_HONDEW_BERRY] = {gFile_graphics_items_icons_hondew_berry_sheet, gFile_graphics_items_icon_palettes_hondew_berry_palette}, + [ITEM_GREPA_BERRY] = {gFile_graphics_items_icons_grepa_berry_sheet, gFile_graphics_items_icon_palettes_grepa_berry_palette}, + [ITEM_TAMATO_BERRY] = {gFile_graphics_items_icons_tamato_berry_sheet, gFile_graphics_items_icon_palettes_tamato_berry_palette}, + [ITEM_CORNN_BERRY] = {gFile_graphics_items_icons_cornn_berry_sheet, gFile_graphics_items_icon_palettes_cornn_berry_palette}, + [ITEM_MAGOST_BERRY] = {gFile_graphics_items_icons_magost_berry_sheet, gFile_graphics_items_icon_palettes_magost_berry_palette}, + [ITEM_RABUTA_BERRY] = {gFile_graphics_items_icons_rabuta_berry_sheet, gFile_graphics_items_icon_palettes_rabuta_berry_palette}, + [ITEM_NOMEL_BERRY] = {gFile_graphics_items_icons_nomel_berry_sheet, gFile_graphics_items_icon_palettes_nomel_berry_palette}, + [ITEM_SPELON_BERRY] = {gFile_graphics_items_icons_spelon_berry_sheet, gFile_graphics_items_icon_palettes_spelon_berry_palette}, + [ITEM_PAMTRE_BERRY] = {gFile_graphics_items_icons_pamtre_berry_sheet, gFile_graphics_items_icon_palettes_pamtre_berry_palette}, + [ITEM_WATMEL_BERRY] = {gFile_graphics_items_icons_watmel_berry_sheet, gFile_graphics_items_icon_palettes_watmel_berry_palette}, + [ITEM_DURIN_BERRY] = {gFile_graphics_items_icons_durin_berry_sheet, gFile_graphics_items_icon_palettes_durin_berry_palette}, + [ITEM_BELUE_BERRY] = {gFile_graphics_items_icons_belue_berry_sheet, gFile_graphics_items_icon_palettes_belue_berry_palette}, + [ITEM_LIECHI_BERRY] = {gFile_graphics_items_icons_liechi_berry_sheet, gFile_graphics_items_icon_palettes_liechi_berry_palette}, + [ITEM_GANLON_BERRY] = {gFile_graphics_items_icons_ganlon_berry_sheet, gFile_graphics_items_icon_palettes_ganlon_berry_palette}, + [ITEM_SALAC_BERRY] = {gFile_graphics_items_icons_salac_berry_sheet, gFile_graphics_items_icon_palettes_salac_berry_palette}, + [ITEM_PETAYA_BERRY] = {gFile_graphics_items_icons_petaya_berry_sheet, gFile_graphics_items_icon_palettes_petaya_berry_palette}, + [ITEM_APICOT_BERRY] = {gFile_graphics_items_icons_apicot_berry_sheet, gFile_graphics_items_icon_palettes_apicot_berry_palette}, + [ITEM_LANSAT_BERRY] = {gFile_graphics_items_icons_lansat_berry_sheet, gFile_graphics_items_icon_palettes_lansat_berry_palette}, + [ITEM_STARF_BERRY] = {gFile_graphics_items_icons_starf_berry_sheet, gFile_graphics_items_icon_palettes_starf_berry_palette}, + [ITEM_ENIGMA_BERRY] = {gFile_graphics_items_icons_enigma_berry_sheet, gFile_graphics_items_icon_palettes_enigma_berry_palette}, + [ITEM_0B0] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0B1] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0B2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_BRIGHT_POWDER] = {gFile_graphics_items_icons_bright_powder_sheet, gFile_graphics_items_icon_palettes_bright_powder_palette}, + [ITEM_WHITE_HERB] = {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_white_herb_palette}, + [ITEM_MACHO_BRACE] = {gFile_graphics_items_icons_macho_brace_sheet, gFile_graphics_items_icon_palettes_macho_brace_palette}, + [ITEM_EXP_SHARE] = {gFile_graphics_items_icons_exp_share_sheet, gFile_graphics_items_icon_palettes_exp_share_palette}, + [ITEM_QUICK_CLAW] = {gFile_graphics_items_icons_quick_claw_sheet, gFile_graphics_items_icon_palettes_quick_claw_palette}, + [ITEM_SOOTHE_BELL] = {gFile_graphics_items_icons_soothe_bell_sheet, gFile_graphics_items_icon_palettes_soothe_bell_palette}, + [ITEM_MENTAL_HERB] = {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_mental_herb_palette}, + [ITEM_CHOICE_BAND] = {gFile_graphics_items_icons_choice_band_sheet, gFile_graphics_items_icon_palettes_choice_band_palette}, + [ITEM_KINGS_ROCK] = {gFile_graphics_items_icons_kings_rock_sheet, gFile_graphics_items_icon_palettes_kings_rock_palette}, + [ITEM_SILVER_POWDER] = {gFile_graphics_items_icons_silver_powder_sheet, gFile_graphics_items_icon_palettes_silver_powder_palette}, + [ITEM_AMULET_COIN] = {gFile_graphics_items_icons_amulet_coin_sheet, gFile_graphics_items_icon_palettes_amulet_coin_palette}, + [ITEM_CLEANSE_TAG] = {gFile_graphics_items_icons_cleanse_tag_sheet, gFile_graphics_items_icon_palettes_cleanse_tag_palette}, + [ITEM_SOUL_DEW] = {gFile_graphics_items_icons_soul_dew_sheet, gFile_graphics_items_icon_palettes_soul_dew_palette}, + [ITEM_DEEP_SEA_TOOTH] = {gFile_graphics_items_icons_deep_sea_tooth_sheet, gFile_graphics_items_icon_palettes_deep_sea_tooth_palette}, + [ITEM_DEEP_SEA_SCALE] = {gFile_graphics_items_icons_deep_sea_scale_sheet, gFile_graphics_items_icon_palettes_deep_sea_scale_palette}, + [ITEM_SMOKE_BALL] = {gFile_graphics_items_icons_smoke_ball_sheet, gFile_graphics_items_icon_palettes_smoke_ball_palette}, + [ITEM_EVERSTONE] = {gFile_graphics_items_icons_everstone_sheet, gFile_graphics_items_icon_palettes_everstone_palette}, + [ITEM_FOCUS_BAND] = {gFile_graphics_items_icons_focus_band_sheet, gFile_graphics_items_icon_palettes_focus_band_palette}, + [ITEM_LUCKY_EGG] = {gFile_graphics_items_icons_lucky_egg_sheet, gFile_graphics_items_icon_palettes_lucky_egg_palette}, + [ITEM_SCOPE_LENS] = {gFile_graphics_items_icons_scope_lens_sheet, gFile_graphics_items_icon_palettes_scope_lens_palette}, + [ITEM_METAL_COAT] = {gFile_graphics_items_icons_metal_coat_sheet, gFile_graphics_items_icon_palettes_metal_coat_palette}, + [ITEM_LEFTOVERS] = {gFile_graphics_items_icons_leftovers_sheet, gFile_graphics_items_icon_palettes_leftovers_palette}, + [ITEM_DRAGON_SCALE] = {gFile_graphics_items_icons_dragon_scale_sheet, gFile_graphics_items_icon_palettes_dragon_scale_palette}, + [ITEM_LIGHT_BALL] = {gFile_graphics_items_icons_light_ball_sheet, gFile_graphics_items_icon_palettes_light_ball_palette}, + [ITEM_SOFT_SAND] = {gFile_graphics_items_icons_soft_sand_sheet, gFile_graphics_items_icon_palettes_soft_sand_palette}, + [ITEM_HARD_STONE] = {gFile_graphics_items_icons_hard_stone_sheet, gFile_graphics_items_icon_palettes_hard_stone_palette}, + [ITEM_MIRACLE_SEED] = {gFile_graphics_items_icons_miracle_seed_sheet, gFile_graphics_items_icon_palettes_miracle_seed_palette}, + [ITEM_BLACK_GLASSES] = {gFile_graphics_items_icons_black_glasses_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, + [ITEM_BLACK_BELT] = {gFile_graphics_items_icons_black_belt_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, + [ITEM_MAGNET] = {gFile_graphics_items_icons_magnet_sheet, gFile_graphics_items_icon_palettes_magnet_palette}, + [ITEM_MYSTIC_WATER] = {gFile_graphics_items_icons_mystic_water_sheet, gFile_graphics_items_icon_palettes_mystic_water_palette}, + [ITEM_SHARP_BEAK] = {gFile_graphics_items_icons_sharp_beak_sheet, gFile_graphics_items_icon_palettes_sharp_beak_palette}, + [ITEM_POISON_BARB] = {gFile_graphics_items_icons_poison_barb_sheet, gFile_graphics_items_icon_palettes_poison_barb_palette}, + [ITEM_NEVER_MELT_ICE] = {gFile_graphics_items_icons_never_melt_ice_sheet, gFile_graphics_items_icon_palettes_never_melt_ice_palette}, + [ITEM_SPELL_TAG] = {gFile_graphics_items_icons_spell_tag_sheet, gFile_graphics_items_icon_palettes_spell_tag_palette}, + [ITEM_TWISTED_SPOON] = {gFile_graphics_items_icons_twisted_spoon_sheet, gFile_graphics_items_icon_palettes_twisted_spoon_palette}, + [ITEM_CHARCOAL] = {gFile_graphics_items_icons_charcoal_sheet, gFile_graphics_items_icon_palettes_charcoal_palette}, + [ITEM_DRAGON_FANG] = {gFile_graphics_items_icons_dragon_fang_sheet, gFile_graphics_items_icon_palettes_dragon_fang_palette}, + [ITEM_SILK_SCARF] = {gFile_graphics_items_icons_silk_scarf_sheet, gFile_graphics_items_icon_palettes_silk_scarf_palette}, + [ITEM_UP_GRADE] = {gFile_graphics_items_icons_up_grade_sheet, gFile_graphics_items_icon_palettes_up_grade_palette}, + [ITEM_SHELL_BELL] = {gFile_graphics_items_icons_shell_bell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, + [ITEM_SEA_INCENSE] = {gFile_graphics_items_icons_sea_incense_sheet, gFile_graphics_items_icon_palettes_sea_incense_palette}, + [ITEM_LAX_INCENSE] = {gFile_graphics_items_icons_lax_incense_sheet, gFile_graphics_items_icon_palettes_lax_incense_palette}, + [ITEM_LUCKY_PUNCH] = {gFile_graphics_items_icons_lucky_punch_sheet, gFile_graphics_items_icon_palettes_lucky_punch_palette}, + [ITEM_METAL_POWDER] = {gFile_graphics_items_icons_metal_powder_sheet, gFile_graphics_items_icon_palettes_metal_powder_palette}, + [ITEM_THICK_CLUB] = {gFile_graphics_items_icons_thick_club_sheet, gFile_graphics_items_icon_palettes_thick_club_palette}, + [ITEM_STICK] = {gFile_graphics_items_icons_stick_sheet, gFile_graphics_items_icon_palettes_stick_palette}, + [ITEM_0E2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E3] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E4] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E5] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E6] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E7] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E8] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E9] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EA] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EB] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EC] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0ED] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EE] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EF] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F0] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F1] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F3] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F4] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F5] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F6] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F7] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F8] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F9] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FA] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FB] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FC] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FD] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_RED_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_red_scarf_palette}, + [ITEM_BLUE_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_blue_scarf_palette}, + [ITEM_PINK_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_pink_scarf_palette}, + [ITEM_GREEN_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_green_scarf_palette}, + [ITEM_YELLOW_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_yellow_scarf_palette}, + [ITEM_MACH_BIKE] = {gFile_graphics_items_icons_mach_bike_sheet, gFile_graphics_items_icon_palettes_mach_bike_palette}, + [ITEM_COIN_CASE] = {gFile_graphics_items_icons_coin_case_sheet, gFile_graphics_items_icon_palettes_coin_case_palette}, + [ITEM_ITEMFINDER] = {gFile_graphics_items_icons_itemfinder_sheet, gFile_graphics_items_icon_palettes_itemfinder_palette}, + [ITEM_OLD_ROD] = {gFile_graphics_items_icons_old_rod_sheet, gFile_graphics_items_icon_palettes_old_rod_palette}, + [ITEM_GOOD_ROD] = {gFile_graphics_items_icons_good_rod_sheet, gFile_graphics_items_icon_palettes_good_rod_palette}, + [ITEM_SUPER_ROD] = {gFile_graphics_items_icons_super_rod_sheet, gFile_graphics_items_icon_palettes_super_rod_palette}, + [ITEM_SS_TICKET] = {gFile_graphics_items_icons_ss_ticket_sheet, gFile_graphics_items_icon_palettes_ss_ticket_palette}, + [ITEM_CONTEST_PASS] = {gFile_graphics_items_icons_contest_pass_sheet, gFile_graphics_items_icon_palettes_contest_pass_palette}, + [ITEM_10B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_WAILMER_PAIL] = {gFile_graphics_items_icons_wailmer_pail_sheet, gFile_graphics_items_icon_palettes_wailmer_pail_palette}, + [ITEM_DEVON_GOODS] = {gFile_graphics_items_icons_devon_goods_sheet, gFile_graphics_items_icon_palettes_devon_goods_palette}, + [ITEM_SOOT_SACK] = {gFile_graphics_items_icons_soot_sack_sheet, gFile_graphics_items_icon_palettes_soot_sack_palette}, + [ITEM_BASEMENT_KEY] = {gFile_graphics_items_icons_basement_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, + [ITEM_ACRO_BIKE] = {gFile_graphics_items_icons_acro_bike_sheet, gFile_graphics_items_icon_palettes_acro_bike_palette}, + [ITEM_POKEBLOCK_CASE] = {gFile_graphics_items_icons_pokeblock_case_sheet, gFile_graphics_items_icon_palettes_pokeblock_case_palette}, + [ITEM_LETTER] = {gFile_graphics_items_icons_letter_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, + [ITEM_EON_TICKET] = {gFile_graphics_items_icons_eon_ticket_sheet, gFile_graphics_items_icon_palettes_eon_ticket_palette}, + [ITEM_RED_ORB] = {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_red_orb_palette}, + [ITEM_BLUE_ORB] = {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_blue_orb_palette}, + [ITEM_SCANNER] = {gFile_graphics_items_icons_scanner_sheet, gFile_graphics_items_icon_palettes_scanner_palette}, + [ITEM_GO_GOGGLES] = {gFile_graphics_items_icons_go_goggles_sheet, gFile_graphics_items_icon_palettes_go_goggles_palette}, + [ITEM_METEORITE] = {gFile_graphics_items_icons_meteorite_sheet, gFile_graphics_items_icon_palettes_meteorite_palette}, + [ITEM_ROOM_1_KEY] = {gFile_graphics_items_icons_room1_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_ROOM_2_KEY] = {gFile_graphics_items_icons_room2_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_ROOM_4_KEY] = {gFile_graphics_items_icons_room4_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_ROOM_6_KEY] = {gFile_graphics_items_icons_room6_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_STORAGE_KEY] = {gFile_graphics_items_icons_storage_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, + [ITEM_ROOT_FOSSIL] = {gFile_graphics_items_icons_root_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, + [ITEM_CLAW_FOSSIL] = {gFile_graphics_items_icons_claw_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, + [ITEM_DEVON_SCOPE] = {gFile_graphics_items_icons_devon_scope_sheet, gFile_graphics_items_icon_palettes_devon_scope_palette}, + [ITEM_TM01] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_TM02] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dragon_tm_hm_palette}, + [ITEM_TM03] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_TM04] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM05] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM06] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, + [ITEM_TM07] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + [ITEM_TM08] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_TM09] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + [ITEM_TM10] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM11] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_TM12] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM13] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + [ITEM_TM14] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + [ITEM_TM15] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM16] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM17] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM18] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_TM19] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + [ITEM_TM20] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM21] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM22] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + [ITEM_TM23] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, + [ITEM_TM24] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + [ITEM_TM25] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + [ITEM_TM26] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, + [ITEM_TM27] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM28] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, + [ITEM_TM29] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM30] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ghost_tm_hm_palette}, + [ITEM_TM31] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_TM32] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM33] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM34] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + [ITEM_TM35] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_TM36] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, + [ITEM_TM37] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, + [ITEM_TM38] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_TM39] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, + [ITEM_TM40] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, + [ITEM_TM41] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM42] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM43] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM44] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM45] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM46] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM47] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, + [ITEM_TM48] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM49] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM50] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_HM01] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_HM02] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, + [ITEM_HM03] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_HM04] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_HM05] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_HM06] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_HM07] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_HM08] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_15B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_15C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_OAKS_PARCEL] = {gFile_graphics_items_icons_oaks_parcel_sheet, gFile_graphics_items_icon_palettes_oaks_parcel_palette}, + [ITEM_POKE_FLUTE] = {gFile_graphics_items_icons_poke_flute_sheet, gFile_graphics_items_icon_palettes_poke_flute_palette}, + [ITEM_SECRET_KEY] = {gFile_graphics_items_icons_secret_key_sheet, gFile_graphics_items_icon_palettes_secret_key_palette}, + [ITEM_BIKE_VOUCHER] = {gFile_graphics_items_icons_bike_voucher_sheet, gFile_graphics_items_icon_palettes_bike_voucher_palette}, + [ITEM_GOLD_TEETH] = {gFile_graphics_items_icons_gold_teeth_sheet, gFile_graphics_items_icon_palettes_gold_teeth_palette}, + [ITEM_OLD_AMBER] = {gFile_graphics_items_icons_old_amber_sheet, gFile_graphics_items_icon_palettes_old_amber_palette}, + [ITEM_CARD_KEY] = {gFile_graphics_items_icons_card_key_sheet, gFile_graphics_items_icon_palettes_card_key_palette}, + [ITEM_LIFT_KEY] = {gFile_graphics_items_icons_lift_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_HELIX_FOSSIL] = {gFile_graphics_items_icons_helix_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, + [ITEM_DOME_FOSSIL] = {gFile_graphics_items_icons_dome_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, + [ITEM_SILPH_SCOPE] = {gFile_graphics_items_icons_silph_scope_sheet, gFile_graphics_items_icon_palettes_silph_scope_palette}, + [ITEM_BICYCLE] = {gFile_graphics_items_icons_bicycle_sheet, gFile_graphics_items_icon_palettes_bicycle_palette}, + [ITEM_TOWN_MAP] = {gFile_graphics_items_icons_town_map_sheet, gFile_graphics_items_icon_palettes_town_map_palette}, + [ITEM_VS_SEEKER] = {gFile_graphics_items_icons_vs_seeker_sheet, gFile_graphics_items_icon_palettes_vs_seeker_palette}, + [ITEM_FAME_CHECKER] = {gFile_graphics_items_icons_fame_checker_sheet, gFile_graphics_items_icon_palettes_fame_checker_palette}, + [ITEM_TM_CASE] = {gFile_graphics_items_icons_tm_case_sheet, gFile_graphics_items_icon_palettes_tm_case_palette}, + [ITEM_BERRY_POUCH] = {gFile_graphics_items_icons_berry_pouch_sheet, gFile_graphics_items_icon_palettes_berry_pouch_palette}, + [ITEM_TEACHY_TV] = {gFile_graphics_items_icons_teachy_tv_sheet, gFile_graphics_items_icon_palettes_teachy_tv_palette}, + [ITEM_TRI_PASS] = {gFile_graphics_items_icons_tri_pass_sheet, gFile_graphics_items_icon_palettes_tri_pass_palette}, + [ITEM_RAINBOW_PASS] = {gFile_graphics_items_icons_rainbow_pass_sheet, gFile_graphics_items_icon_palettes_rainbow_pass_palette}, + [ITEM_TEA] = {gFile_graphics_items_icons_tea_sheet, gFile_graphics_items_icon_palettes_tea_palette}, + [ITEM_MYSTIC_TICKET] = {gFile_graphics_items_icons_mystic_ticket_sheet, gFile_graphics_items_icon_palettes_mystic_ticket_palette}, + [ITEM_AURORA_TICKET] = {gFile_graphics_items_icons_aurora_ticket_sheet, gFile_graphics_items_icon_palettes_aurora_ticket_palette}, + [ITEM_POWDER_JAR] = {gFile_graphics_items_icons_powder_jar_sheet, gFile_graphics_items_icon_palettes_powder_jar_palette}, + [ITEM_RUBY] = {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_ruby_palette}, + [ITEM_SAPPHIRE] = {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_sapphire_palette}, + [ITEMS_COUNT] = {gFile_graphics_items_icons_return_to_field_arrow_sheet, gFile_graphics_items_icon_palettes_return_to_field_arrow_palette} +}; diff --git a/src/graphics.c b/src/graphics.c index d677561de..440083539 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1116,12 +1116,12 @@ const u32 gUnknown_8E83444[] = INCBIN_U32("graphics/item_menu/bag_tilemap2.bin.l const u32 gBagBgPalette[] = INCBIN_U32("graphics/item_menu/bag_pal1.gbapal.lz"); // palette 1 (Boy + misc Pal) const u32 gBagBgPalette_FemaleOverride[] = INCBIN_U32("graphics/item_menu/bag_pal2.gbapal.lz"); // palette 2 (Girl) -const u32 gUnknown_8E8362C[] = INCBIN_U32("graphics/interface/unk_8E8362C.4bpp.lz"); -const u32 gUnknown_8E83DBC[] = INCBIN_U32("graphics/interface/unk_8E83DBC.4bpp.lz"); -const u32 gUnknown_8E84560[] = INCBIN_U32("graphics/interface/unk_8E84560.gbapal.lz"); +const u32 gBagMale_Gfx[] = INCBIN_U32("graphics/interface/bag_male.4bpp.lz"); +const u32 gBagFemale_Gfx[] = INCBIN_U32("graphics/interface/bag_female.4bpp.lz"); +const u32 gBag_Pal[] = INCBIN_U32("graphics/interface/bag.gbapal.lz"); -const u32 gFile_graphics_interface_bag_swap_sheet[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz"); -const u32 gFile_graphics_interface_bag_swap_palette[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz"); +const u32 gSwapLine_Gfx[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz"); +const u32 gSwapLine_Pal[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz"); const u32 gUnknown_8E845D8[] = INCBIN_U32("graphics/tm_case/unk_8E845D8.4bpp.lz"); const u32 gUnknown_8E84A24[] = INCBIN_U32("graphics/tm_case/unk_8E84A24.bin.lz"); diff --git a/src/item.c b/src/item.c index 037993e1b..763838133 100644 --- a/src/item.c +++ b/src/item.c @@ -611,7 +611,7 @@ void TrySetObtainedItemQuestLogEvent(u16 itemId) u16 SanitizeItemId(u16 itemId) { - if (itemId >= ITEM_N_A) + if (itemId >= ITEMS_COUNT) return ITEM_NONE; return itemId; } diff --git a/src/item_menu.c b/src/item_menu.c index f04ac59d5..fb12cc9f6 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -478,7 +478,7 @@ static bool8 LoadBagMenuGraphics(void) gMain.state++; break; case 15: - CreateBagOrSatchelSprite(gBagMenuState.pocket); + CreateBagSprite(gBagMenuState.pocket); gMain.state++; break; case 16: @@ -487,7 +487,7 @@ static bool8 LoadBagMenuGraphics(void) gMain.state++; break; case 17: - ItemMenuIcons_CreateInsertIndicatorBarHidden(); + CreateSwapLine(); gMain.state++; break; case 18: @@ -583,13 +583,13 @@ static bool8 DoLoadBagGraphics(void) break; case 3: if (BagIsTutorial() == TRUE || gSaveBlock2Ptr->playerGender == MALE) - LoadCompressedSpriteSheet(&gSpriteSheet_Backpack); + LoadCompressedSpriteSheet(&gSpriteSheet_BagMale); else - LoadCompressedSpriteSheet(&gSpriteSheet_Satchel); + LoadCompressedSpriteSheet(&gSpriteSheet_BagFemale); sBagMenuDisplay->data[0]++; break; case 4: - LoadCompressedSpritePalette(&gSpritePalette_BagOrSatchel); + LoadCompressedSpritePalette(&gSpritePalette_Bag); sBagMenuDisplay->data[0]++; break; case 5: @@ -692,7 +692,7 @@ static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMe if (sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemIndex) CreateItemMenuIcon(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon); else - CreateItemMenuIcon(ITEM_N_A, sBagMenuDisplay->itemMenuIcon); + CreateItemMenuIcon(ITEMS_COUNT, sBagMenuDisplay->itemMenuIcon); sBagMenuDisplay->itemMenuIcon ^= 1; if (!sBagMenuDisplay->inhibitItemDescriptionPrint) PrintItemDescriptionOnMessageWindow(itemIndex); @@ -1231,8 +1231,8 @@ static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagPrintTextOnWindow(1, FONT_2, gStringVar4, 0, 3, 2, 0, 0, 0); - ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); + UpdateSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + SetSwapLineInvisibility(FALSE); BagDestroyPocketSwitchArrowPair(); bag_menu_print_cursor_(data[0], 2); gTasks[taskId].func = Task_MoveItemInPocket_HandleInput; @@ -1248,7 +1248,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId) return; input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); - ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + UpdateSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -1290,7 +1290,7 @@ static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex) gBagMenuState.itemsAbove[gBagMenuState.pocket]--; Bag_BuildListMenuTemplate(gBagMenuState.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } @@ -1304,7 +1304,7 @@ static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex) gBagMenuState.itemsAbove[gBagMenuState.pocket]--; Bag_BuildListMenuTemplate(gBagMenuState.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 09fe4675d..89e0e0346 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -5,51 +5,80 @@ #include "item_menu_icons.h" #include "constants/items.h" -static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0}; +enum { + TAG_BAG = 100, + TAG_SWAP_LINE, + TAG_ITEM_ICON, + TAG_ITEM_ICON_ALT, +}; + +#define NUM_SWAP_LINE_SPRITES 9 + +// Indexes for sItemMenuIconSpriteIds +enum { + SPR_BAG, + SPR_SWAP_LINE_START, + SPR_ITEM_ICON = SPR_SWAP_LINE_START + NUM_SWAP_LINE_SPRITES, + SPR_ITEM_ICON_ALT, + SPR_COUNT +}; + +enum { + ANIM_SWAP_LINE_START, + ANIM_SWAP_LINE_MID, + ANIM_SWAP_LINE_END, +}; + +enum { + AFFINEANIM_BAG_IDLE, + AFFINEANIM_BAG_SHAKE, +}; + +static EWRAM_DATA u8 sItemMenuIconSpriteIds[SPR_COUNT] = {0}; static EWRAM_DATA void *sItemIconTilesBuffer = NULL; static EWRAM_DATA void *sItemIconTilesBufferPadded = NULL; static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite); static void SpriteCB_ShakeBagSprite(struct Sprite *sprite); -static const struct OamData sOamData_BagOrSatchel = { +static const struct OamData sOamData_Bag = { .affineMode = ST_OAM_AFFINE_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 1, .paletteNum = 0 }; -static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = { +static const union AnimCmd sAnim_Bag_OpenItemPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x40, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = { +static const union AnimCmd sAnim_Bag_OpenKeyItemPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x80, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = { +static const union AnimCmd sAnim_Bag_OpenPokeBallsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0xc0, 0), ANIMCMD_END }; -static const union AnimCmd *const sAnimTable_BagOrSatchel[] = { - sAnim_BagOrSatchel_OpenKeyItemPocket, - sAnim_BagOrSatchel_OpenPokeBallsPocket, - sAnim_BagOrSatchel_OpenItemPocket +static const union AnimCmd *const sAnims_Bag[] = { + sAnim_Bag_OpenKeyItemPocket, + sAnim_Bag_OpenPokeBallsPocket, + sAnim_Bag_OpenItemPocket }; -static const union AffineAnimCmd sAffineAnim_Idle[] = { +static const union AffineAnimCmd sAffineAnim_BagIdle[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sAffineAnim_Wobble[] = { +static const union AffineAnimCmd sAffineAnim_BagShake[] = { AFFINEANIMCMD_FRAME(0, 0, -2, 2), AFFINEANIMCMD_FRAME(0, 0, 2, 4), AFFINEANIMCMD_FRAME(0, 0, -2, 4), @@ -57,511 +86,134 @@ static const union AffineAnimCmd sAffineAnim_Wobble[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = { - sAffineAnim_Idle, - sAffineAnim_Wobble +static const union AffineAnimCmd *const sAffineAnimTable_Bag[] = { + [AFFINEANIM_BAG_IDLE] = sAffineAnim_BagIdle, + [AFFINEANIM_BAG_SHAKE] = sAffineAnim_BagShake }; -const struct CompressedSpriteSheet gSpriteSheet_Backpack = { - gUnknown_8E8362C, - 0x2000, - 100 +const struct CompressedSpriteSheet gSpriteSheet_BagMale = { + .data = gBagMale_Gfx, + .size = 0x2000, + .tag = TAG_BAG }; -const struct CompressedSpriteSheet gSpriteSheet_Satchel = { - gUnknown_8E83DBC, - 0x2000, - 100 +const struct CompressedSpriteSheet gSpriteSheet_BagFemale = { + .data = gBagFemale_Gfx, + .size = 0x2000, + .tag = TAG_BAG }; -const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = { - gUnknown_8E84560, - 100 +const struct CompressedSpritePalette gSpritePalette_Bag = { + .data = gBag_Pal, + .tag = TAG_BAG }; -static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = { - 100, - 100, - &sOamData_BagOrSatchel, - sAnimTable_BagOrSatchel, - NULL, - sAffineAnimTable_BagOrSatchel, - SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_Bag = { + .tileTag = TAG_BAG, + .paletteTag = TAG_BAG, + .oam = &sOamData_Bag, + .anims = sAnims_Bag, + .images = NULL, + .affineAnims = sAffineAnimTable_Bag, + .callback = SpriteCallbackDummy }; -static const struct OamData gUnknown_83D4214 = { +static const struct OamData sOamData_SwapLine = { .affineMode = ST_OAM_AFFINE_OFF, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1, .paletteNum = 1 }; -static const union AnimCmd gUnknown_83D421C[] = { +static const union AnimCmd sAnim_SwapLine_Start[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D4224[] = { +static const union AnimCmd sAnim_SwapLine_Mid[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D422C[] = { +static const union AnimCmd sAnim_SwapLine_End[] = { ANIMCMD_FRAME(0, 0, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83D4234[] = { - gUnknown_83D421C, - gUnknown_83D4224, - gUnknown_83D422C +static const union AnimCmd *const sAnims_SwapLine[] = { + [ANIM_SWAP_LINE_START] = sAnim_SwapLine_Start, + [ANIM_SWAP_LINE_MID] = sAnim_SwapLine_Mid, + [ANIM_SWAP_LINE_END] = sAnim_SwapLine_End }; const struct CompressedSpriteSheet gBagSwapSpriteSheet = { - gFile_graphics_interface_bag_swap_sheet, - 0x100, - 101 + .data = gSwapLine_Gfx, + .size = 0x100, + .tag = TAG_SWAP_LINE }; const struct CompressedSpritePalette gBagSwapSpritePalette = { - gFile_graphics_interface_bag_swap_palette, - 101 + .data = gSwapLine_Pal, + .tag = TAG_SWAP_LINE }; -static const struct SpriteTemplate gUnknown_83D4250 = { - 101, - 101, - &gUnknown_83D4214, - gUnknown_83D4234, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_SwapLine = { + .tileTag = TAG_SWAP_LINE, + .paletteTag = TAG_SWAP_LINE, + .oam = &sOamData_SwapLine, + .anims = sAnims_SwapLine, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; static const struct OamData sOamData_ItemIcon = { .affineMode = ST_OAM_AFFINE_OFF, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1, .paletteNum = 2 }; -static const union AnimCmd sAnim_ItemIcon_0[] = { +static const union AnimCmd sAnim_ItemIcon[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const sAnimTable_ItemIcon[] = { - sAnim_ItemIcon_0 +static const union AnimCmd *const sAnims_ItemIcon[] = { + sAnim_ItemIcon }; static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { - 102, - 102, - &sOamData_ItemIcon, - sAnimTable_ItemIcon, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = TAG_ITEM_ICON, + .paletteTag = TAG_ITEM_ICON, + .oam = &sOamData_ItemIcon, + .anims = sAnims_ItemIcon, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; -static const void *const sItemIconGfxPtrs[][2] = { - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, - {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, - {gFile_graphics_items_icons_great_ball_sheet, gFile_graphics_items_icon_palettes_great_ball_palette}, - {gFile_graphics_items_icons_poke_ball_sheet, gFile_graphics_items_icon_palettes_poke_ball_palette}, - {gFile_graphics_items_icons_safari_ball_sheet, gFile_graphics_items_icon_palettes_safari_ball_palette}, - {gFile_graphics_items_icons_net_ball_sheet, gFile_graphics_items_icon_palettes_net_ball_palette}, - {gFile_graphics_items_icons_dive_ball_sheet, gFile_graphics_items_icon_palettes_dive_ball_palette}, - {gFile_graphics_items_icons_nest_ball_sheet, gFile_graphics_items_icon_palettes_nest_ball_palette}, - {gFile_graphics_items_icons_repeat_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, - {gFile_graphics_items_icons_timer_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, - {gFile_graphics_items_icons_luxury_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, - {gFile_graphics_items_icons_premier_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, - {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_potion_palette}, - {gFile_graphics_items_icons_antidote_sheet, gFile_graphics_items_icon_palettes_antidote_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_burn_heal_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_ice_heal_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_awakening_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_paralyze_heal_palette}, - {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_full_restore_palette}, - {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_max_potion_palette}, - {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_hyper_potion_palette}, - {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_super_potion_palette}, - {gFile_graphics_items_icons_full_heal_sheet, gFile_graphics_items_icon_palettes_full_heal_palette}, - {gFile_graphics_items_icons_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, - {gFile_graphics_items_icons_max_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, - {gFile_graphics_items_icons_fresh_water_sheet, gFile_graphics_items_icon_palettes_fresh_water_palette}, - {gFile_graphics_items_icons_soda_pop_sheet, gFile_graphics_items_icon_palettes_soda_pop_palette}, - {gFile_graphics_items_icons_lemonade_sheet, gFile_graphics_items_icon_palettes_lemonade_palette}, - {gFile_graphics_items_icons_moomoo_milk_sheet, gFile_graphics_items_icon_palettes_moomoo_milk_palette}, - {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_energy_powder_palette}, - {gFile_graphics_items_icons_energy_root_sheet, gFile_graphics_items_icon_palettes_energy_root_palette}, - {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_heal_powder_palette}, - {gFile_graphics_items_icons_revival_herb_sheet, gFile_graphics_items_icon_palettes_revival_herb_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_ether_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_ether_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_elixir_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_elixir_palette}, - {gFile_graphics_items_icons_lava_cookie_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_blue_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_yellow_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_red_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_black_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_white_flute_palette}, - {gFile_graphics_items_icons_berry_juice_sheet, gFile_graphics_items_icon_palettes_berry_juice_palette}, - {gFile_graphics_items_icons_sacred_ash_sheet, gFile_graphics_items_icon_palettes_sacred_ash_palette}, - {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_shoal_salt_palette}, - {gFile_graphics_items_icons_shoal_shell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_red_shard_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_blue_shard_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_yellow_shard_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_green_shard_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_hp_up_sheet, gFile_graphics_items_icon_palettes_hp_up_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_protein_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_iron_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_carbos_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_calcium_palette}, - {gFile_graphics_items_icons_rare_candy_sheet, gFile_graphics_items_icon_palettes_rare_candy_palette}, - {gFile_graphics_items_icons_pp_up_sheet, gFile_graphics_items_icon_palettes_pp_up_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_zinc_palette}, - {gFile_graphics_items_icons_pp_max_sheet, gFile_graphics_items_icon_palettes_pp_max_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_guard_spec_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_dire_hit_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_attack_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_defend_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_speed_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_accuracy_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_special_palette}, - {gFile_graphics_items_icons_poke_doll_sheet, gFile_graphics_items_icon_palettes_poke_doll_palette}, - {gFile_graphics_items_icons_fluffy_tail_sheet, gFile_graphics_items_icon_palettes_fluffy_tail_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_super_repel_palette}, - {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_max_repel_palette}, - {gFile_graphics_items_icons_escape_rope_sheet, gFile_graphics_items_icon_palettes_escape_rope_palette}, - {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_repel_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_sun_stone_sheet, gFile_graphics_items_icon_palettes_sun_stone_palette}, - {gFile_graphics_items_icons_moon_stone_sheet, gFile_graphics_items_icon_palettes_moon_stone_palette}, - {gFile_graphics_items_icons_fire_stone_sheet, gFile_graphics_items_icon_palettes_fire_stone_palette}, - {gFile_graphics_items_icons_thunder_stone_sheet, gFile_graphics_items_icon_palettes_thunder_stone_palette}, - {gFile_graphics_items_icons_water_stone_sheet, gFile_graphics_items_icon_palettes_water_stone_palette}, - {gFile_graphics_items_icons_leaf_stone_sheet, gFile_graphics_items_icon_palettes_leaf_stone_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_tiny_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, - {gFile_graphics_items_icons_big_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, - {gFile_graphics_items_icons_big_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, - {gFile_graphics_items_icons_stardust_sheet, gFile_graphics_items_icon_palettes_star_palette}, - {gFile_graphics_items_icons_star_piece_sheet, gFile_graphics_items_icon_palettes_star_palette}, - {gFile_graphics_items_icons_nugget_sheet, gFile_graphics_items_icon_palettes_nugget_palette}, - {gFile_graphics_items_icons_heart_scale_sheet, gFile_graphics_items_icon_palettes_heart_scale_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_orange_mail_sheet, gFile_graphics_items_icon_palettes_orange_mail_palette}, - {gFile_graphics_items_icons_harbor_mail_sheet, gFile_graphics_items_icon_palettes_harbor_mail_palette}, - {gFile_graphics_items_icons_glitter_mail_sheet, gFile_graphics_items_icon_palettes_glitter_mail_palette}, - {gFile_graphics_items_icons_mech_mail_sheet, gFile_graphics_items_icon_palettes_mech_mail_palette}, - {gFile_graphics_items_icons_wood_mail_sheet, gFile_graphics_items_icon_palettes_wood_mail_palette}, - {gFile_graphics_items_icons_wave_mail_sheet, gFile_graphics_items_icon_palettes_wave_mail_palette}, - {gFile_graphics_items_icons_bead_mail_sheet, gFile_graphics_items_icon_palettes_bead_mail_palette}, - {gFile_graphics_items_icons_shadow_mail_sheet, gFile_graphics_items_icon_palettes_shadow_mail_palette}, - {gFile_graphics_items_icons_tropic_mail_sheet, gFile_graphics_items_icon_palettes_tropic_mail_palette}, - {gFile_graphics_items_icons_dream_mail_sheet, gFile_graphics_items_icon_palettes_dream_mail_palette}, - {gFile_graphics_items_icons_fab_mail_sheet, gFile_graphics_items_icon_palettes_fab_mail_palette}, - {gFile_graphics_items_icons_retro_mail_sheet, gFile_graphics_items_icon_palettes_retro_mail_palette}, - {gFile_graphics_items_icons_cheri_berry_sheet, gFile_graphics_items_icon_palettes_cheri_berry_palette}, - {gFile_graphics_items_icons_chesto_berry_sheet, gFile_graphics_items_icon_palettes_chesto_berry_palette}, - {gFile_graphics_items_icons_pecha_berry_sheet, gFile_graphics_items_icon_palettes_pecha_berry_palette}, - {gFile_graphics_items_icons_rawst_berry_sheet, gFile_graphics_items_icon_palettes_rawst_berry_palette}, - {gFile_graphics_items_icons_aspear_berry_sheet, gFile_graphics_items_icon_palettes_aspear_berry_palette}, - {gFile_graphics_items_icons_leppa_berry_sheet, gFile_graphics_items_icon_palettes_leppa_berry_palette}, - {gFile_graphics_items_icons_oran_berry_sheet, gFile_graphics_items_icon_palettes_oran_berry_palette}, - {gFile_graphics_items_icons_persim_berry_sheet, gFile_graphics_items_icon_palettes_persim_berry_palette}, - {gFile_graphics_items_icons_lum_berry_sheet, gFile_graphics_items_icon_palettes_lum_berry_palette}, - {gFile_graphics_items_icons_sitrus_berry_sheet, gFile_graphics_items_icon_palettes_sitrus_berry_palette}, - {gFile_graphics_items_icons_figy_berry_sheet, gFile_graphics_items_icon_palettes_figy_berry_palette}, - {gFile_graphics_items_icons_wiki_berry_sheet, gFile_graphics_items_icon_palettes_wiki_berry_palette}, - {gFile_graphics_items_icons_mago_berry_sheet, gFile_graphics_items_icon_palettes_mago_berry_palette}, - {gFile_graphics_items_icons_aguav_berry_sheet, gFile_graphics_items_icon_palettes_aguav_berry_palette}, - {gFile_graphics_items_icons_iapapa_berry_sheet, gFile_graphics_items_icon_palettes_iapapa_berry_palette}, - {gFile_graphics_items_icons_razz_berry_sheet, gFile_graphics_items_icon_palettes_razz_berry_palette}, - {gFile_graphics_items_icons_bluk_berry_sheet, gFile_graphics_items_icon_palettes_bluk_berry_palette}, - {gFile_graphics_items_icons_nanab_berry_sheet, gFile_graphics_items_icon_palettes_nanab_berry_palette}, - {gFile_graphics_items_icons_wepear_berry_sheet, gFile_graphics_items_icon_palettes_wepear_berry_palette}, - {gFile_graphics_items_icons_pinap_berry_sheet, gFile_graphics_items_icon_palettes_pinap_berry_palette}, - {gFile_graphics_items_icons_pomeg_berry_sheet, gFile_graphics_items_icon_palettes_pomeg_berry_palette}, - {gFile_graphics_items_icons_kelpsy_berry_sheet, gFile_graphics_items_icon_palettes_kelpsy_berry_palette}, - {gFile_graphics_items_icons_qualot_berry_sheet, gFile_graphics_items_icon_palettes_qualot_berry_palette}, - {gFile_graphics_items_icons_hondew_berry_sheet, gFile_graphics_items_icon_palettes_hondew_berry_palette}, - {gFile_graphics_items_icons_grepa_berry_sheet, gFile_graphics_items_icon_palettes_grepa_berry_palette}, - {gFile_graphics_items_icons_tamato_berry_sheet, gFile_graphics_items_icon_palettes_tamato_berry_palette}, - {gFile_graphics_items_icons_cornn_berry_sheet, gFile_graphics_items_icon_palettes_cornn_berry_palette}, - {gFile_graphics_items_icons_magost_berry_sheet, gFile_graphics_items_icon_palettes_magost_berry_palette}, - {gFile_graphics_items_icons_rabuta_berry_sheet, gFile_graphics_items_icon_palettes_rabuta_berry_palette}, - {gFile_graphics_items_icons_nomel_berry_sheet, gFile_graphics_items_icon_palettes_nomel_berry_palette}, - {gFile_graphics_items_icons_spelon_berry_sheet, gFile_graphics_items_icon_palettes_spelon_berry_palette}, - {gFile_graphics_items_icons_pamtre_berry_sheet, gFile_graphics_items_icon_palettes_pamtre_berry_palette}, - {gFile_graphics_items_icons_watmel_berry_sheet, gFile_graphics_items_icon_palettes_watmel_berry_palette}, - {gFile_graphics_items_icons_durin_berry_sheet, gFile_graphics_items_icon_palettes_durin_berry_palette}, - {gFile_graphics_items_icons_belue_berry_sheet, gFile_graphics_items_icon_palettes_belue_berry_palette}, - {gFile_graphics_items_icons_liechi_berry_sheet, gFile_graphics_items_icon_palettes_liechi_berry_palette}, - {gFile_graphics_items_icons_ganlon_berry_sheet, gFile_graphics_items_icon_palettes_ganlon_berry_palette}, - {gFile_graphics_items_icons_salac_berry_sheet, gFile_graphics_items_icon_palettes_salac_berry_palette}, - {gFile_graphics_items_icons_petaya_berry_sheet, gFile_graphics_items_icon_palettes_petaya_berry_palette}, - {gFile_graphics_items_icons_apicot_berry_sheet, gFile_graphics_items_icon_palettes_apicot_berry_palette}, - {gFile_graphics_items_icons_lansat_berry_sheet, gFile_graphics_items_icon_palettes_lansat_berry_palette}, - {gFile_graphics_items_icons_starf_berry_sheet, gFile_graphics_items_icon_palettes_starf_berry_palette}, - {gFile_graphics_items_icons_enigma_berry_sheet, gFile_graphics_items_icon_palettes_enigma_berry_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_bright_powder_sheet, gFile_graphics_items_icon_palettes_bright_powder_palette}, - {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_white_herb_palette}, - {gFile_graphics_items_icons_macho_brace_sheet, gFile_graphics_items_icon_palettes_macho_brace_palette}, - {gFile_graphics_items_icons_exp_share_sheet, gFile_graphics_items_icon_palettes_exp_share_palette}, - {gFile_graphics_items_icons_quick_claw_sheet, gFile_graphics_items_icon_palettes_quick_claw_palette}, - {gFile_graphics_items_icons_soothe_bell_sheet, gFile_graphics_items_icon_palettes_soothe_bell_palette}, - {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_mental_herb_palette}, - {gFile_graphics_items_icons_choice_band_sheet, gFile_graphics_items_icon_palettes_choice_band_palette}, - {gFile_graphics_items_icons_kings_rock_sheet, gFile_graphics_items_icon_palettes_kings_rock_palette}, - {gFile_graphics_items_icons_silver_powder_sheet, gFile_graphics_items_icon_palettes_silver_powder_palette}, - {gFile_graphics_items_icons_amulet_coin_sheet, gFile_graphics_items_icon_palettes_amulet_coin_palette}, - {gFile_graphics_items_icons_cleanse_tag_sheet, gFile_graphics_items_icon_palettes_cleanse_tag_palette}, - {gFile_graphics_items_icons_soul_dew_sheet, gFile_graphics_items_icon_palettes_soul_dew_palette}, - {gFile_graphics_items_icons_deep_sea_tooth_sheet, gFile_graphics_items_icon_palettes_deep_sea_tooth_palette}, - {gFile_graphics_items_icons_deep_sea_scale_sheet, gFile_graphics_items_icon_palettes_deep_sea_scale_palette}, - {gFile_graphics_items_icons_smoke_ball_sheet, gFile_graphics_items_icon_palettes_smoke_ball_palette}, - {gFile_graphics_items_icons_everstone_sheet, gFile_graphics_items_icon_palettes_everstone_palette}, - {gFile_graphics_items_icons_focus_band_sheet, gFile_graphics_items_icon_palettes_focus_band_palette}, - {gFile_graphics_items_icons_lucky_egg_sheet, gFile_graphics_items_icon_palettes_lucky_egg_palette}, - {gFile_graphics_items_icons_scope_lens_sheet, gFile_graphics_items_icon_palettes_scope_lens_palette}, - {gFile_graphics_items_icons_metal_coat_sheet, gFile_graphics_items_icon_palettes_metal_coat_palette}, - {gFile_graphics_items_icons_leftovers_sheet, gFile_graphics_items_icon_palettes_leftovers_palette}, - {gFile_graphics_items_icons_dragon_scale_sheet, gFile_graphics_items_icon_palettes_dragon_scale_palette}, - {gFile_graphics_items_icons_light_ball_sheet, gFile_graphics_items_icon_palettes_light_ball_palette}, - {gFile_graphics_items_icons_soft_sand_sheet, gFile_graphics_items_icon_palettes_soft_sand_palette}, - {gFile_graphics_items_icons_hard_stone_sheet, gFile_graphics_items_icon_palettes_hard_stone_palette}, - {gFile_graphics_items_icons_miracle_seed_sheet, gFile_graphics_items_icon_palettes_miracle_seed_palette}, - {gFile_graphics_items_icons_black_glasses_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, - {gFile_graphics_items_icons_black_belt_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, - {gFile_graphics_items_icons_magnet_sheet, gFile_graphics_items_icon_palettes_magnet_palette}, - {gFile_graphics_items_icons_mystic_water_sheet, gFile_graphics_items_icon_palettes_mystic_water_palette}, - {gFile_graphics_items_icons_sharp_beak_sheet, gFile_graphics_items_icon_palettes_sharp_beak_palette}, - {gFile_graphics_items_icons_poison_barb_sheet, gFile_graphics_items_icon_palettes_poison_barb_palette}, - {gFile_graphics_items_icons_never_melt_ice_sheet, gFile_graphics_items_icon_palettes_never_melt_ice_palette}, - {gFile_graphics_items_icons_spell_tag_sheet, gFile_graphics_items_icon_palettes_spell_tag_palette}, - {gFile_graphics_items_icons_twisted_spoon_sheet, gFile_graphics_items_icon_palettes_twisted_spoon_palette}, - {gFile_graphics_items_icons_charcoal_sheet, gFile_graphics_items_icon_palettes_charcoal_palette}, - {gFile_graphics_items_icons_dragon_fang_sheet, gFile_graphics_items_icon_palettes_dragon_fang_palette}, - {gFile_graphics_items_icons_silk_scarf_sheet, gFile_graphics_items_icon_palettes_silk_scarf_palette}, - {gFile_graphics_items_icons_up_grade_sheet, gFile_graphics_items_icon_palettes_up_grade_palette}, - {gFile_graphics_items_icons_shell_bell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, - {gFile_graphics_items_icons_sea_incense_sheet, gFile_graphics_items_icon_palettes_sea_incense_palette}, - {gFile_graphics_items_icons_lax_incense_sheet, gFile_graphics_items_icon_palettes_lax_incense_palette}, - {gFile_graphics_items_icons_lucky_punch_sheet, gFile_graphics_items_icon_palettes_lucky_punch_palette}, - {gFile_graphics_items_icons_metal_powder_sheet, gFile_graphics_items_icon_palettes_metal_powder_palette}, - {gFile_graphics_items_icons_thick_club_sheet, gFile_graphics_items_icon_palettes_thick_club_palette}, - {gFile_graphics_items_icons_stick_sheet, gFile_graphics_items_icon_palettes_stick_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_red_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_blue_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_pink_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_green_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_yellow_scarf_palette}, - {gFile_graphics_items_icons_mach_bike_sheet, gFile_graphics_items_icon_palettes_mach_bike_palette}, - {gFile_graphics_items_icons_coin_case_sheet, gFile_graphics_items_icon_palettes_coin_case_palette}, - {gFile_graphics_items_icons_itemfinder_sheet, gFile_graphics_items_icon_palettes_itemfinder_palette}, - {gFile_graphics_items_icons_old_rod_sheet, gFile_graphics_items_icon_palettes_old_rod_palette}, - {gFile_graphics_items_icons_good_rod_sheet, gFile_graphics_items_icon_palettes_good_rod_palette}, - {gFile_graphics_items_icons_super_rod_sheet, gFile_graphics_items_icon_palettes_super_rod_palette}, - {gFile_graphics_items_icons_ss_ticket_sheet, gFile_graphics_items_icon_palettes_ss_ticket_palette}, - {gFile_graphics_items_icons_contest_pass_sheet, gFile_graphics_items_icon_palettes_contest_pass_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_wailmer_pail_sheet, gFile_graphics_items_icon_palettes_wailmer_pail_palette}, - {gFile_graphics_items_icons_devon_goods_sheet, gFile_graphics_items_icon_palettes_devon_goods_palette}, - {gFile_graphics_items_icons_soot_sack_sheet, gFile_graphics_items_icon_palettes_soot_sack_palette}, - {gFile_graphics_items_icons_basement_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, - {gFile_graphics_items_icons_acro_bike_sheet, gFile_graphics_items_icon_palettes_acro_bike_palette}, - {gFile_graphics_items_icons_pokeblock_case_sheet, gFile_graphics_items_icon_palettes_pokeblock_case_palette}, - {gFile_graphics_items_icons_letter_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, - {gFile_graphics_items_icons_eon_ticket_sheet, gFile_graphics_items_icon_palettes_eon_ticket_palette}, - {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_red_orb_palette}, - {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_blue_orb_palette}, - {gFile_graphics_items_icons_scanner_sheet, gFile_graphics_items_icon_palettes_scanner_palette}, - {gFile_graphics_items_icons_go_goggles_sheet, gFile_graphics_items_icon_palettes_go_goggles_palette}, - {gFile_graphics_items_icons_meteorite_sheet, gFile_graphics_items_icon_palettes_meteorite_palette}, - {gFile_graphics_items_icons_room1_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_room2_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_room4_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_room6_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_storage_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, - {gFile_graphics_items_icons_root_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, - {gFile_graphics_items_icons_claw_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, - {gFile_graphics_items_icons_devon_scope_sheet, gFile_graphics_items_icon_palettes_devon_scope_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dragon_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ghost_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_oaks_parcel_sheet, gFile_graphics_items_icon_palettes_oaks_parcel_palette}, - {gFile_graphics_items_icons_poke_flute_sheet, gFile_graphics_items_icon_palettes_poke_flute_palette}, - {gFile_graphics_items_icons_secret_key_sheet, gFile_graphics_items_icon_palettes_secret_key_palette}, - {gFile_graphics_items_icons_bike_voucher_sheet, gFile_graphics_items_icon_palettes_bike_voucher_palette}, - {gFile_graphics_items_icons_gold_teeth_sheet, gFile_graphics_items_icon_palettes_gold_teeth_palette}, - {gFile_graphics_items_icons_old_amber_sheet, gFile_graphics_items_icon_palettes_old_amber_palette}, - {gFile_graphics_items_icons_card_key_sheet, gFile_graphics_items_icon_palettes_card_key_palette}, - {gFile_graphics_items_icons_lift_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_helix_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, - {gFile_graphics_items_icons_dome_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, - {gFile_graphics_items_icons_silph_scope_sheet, gFile_graphics_items_icon_palettes_silph_scope_palette}, - {gFile_graphics_items_icons_bicycle_sheet, gFile_graphics_items_icon_palettes_bicycle_palette}, - {gFile_graphics_items_icons_town_map_sheet, gFile_graphics_items_icon_palettes_town_map_palette}, - {gFile_graphics_items_icons_vs_seeker_sheet, gFile_graphics_items_icon_palettes_vs_seeker_palette}, - {gFile_graphics_items_icons_fame_checker_sheet, gFile_graphics_items_icon_palettes_fame_checker_palette}, - {gFile_graphics_items_icons_tm_case_sheet, gFile_graphics_items_icon_palettes_tm_case_palette}, - {gFile_graphics_items_icons_berry_pouch_sheet, gFile_graphics_items_icon_palettes_berry_pouch_palette}, - {gFile_graphics_items_icons_teachy_tv_sheet, gFile_graphics_items_icon_palettes_teachy_tv_palette}, - {gFile_graphics_items_icons_tri_pass_sheet, gFile_graphics_items_icon_palettes_tri_pass_palette}, - {gFile_graphics_items_icons_rainbow_pass_sheet, gFile_graphics_items_icon_palettes_rainbow_pass_palette}, - {gFile_graphics_items_icons_tea_sheet, gFile_graphics_items_icon_palettes_tea_palette}, - {gFile_graphics_items_icons_mystic_ticket_sheet, gFile_graphics_items_icon_palettes_mystic_ticket_palette}, - {gFile_graphics_items_icons_aurora_ticket_sheet, gFile_graphics_items_icon_palettes_aurora_ticket_palette}, - {gFile_graphics_items_icons_powder_jar_sheet, gFile_graphics_items_icon_palettes_powder_jar_palette}, - {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_ruby_palette}, - {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_sapphire_palette}, - {gFile_graphics_items_icons_return_to_field_arrow_sheet, gFile_graphics_items_icon_palettes_return_to_field_arrow_palette} -}; +#include "data/item_icon_table.h" void ResetItemMenuIconState(void) { u16 i; - for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++) - sItemMenuIconSpriteIds[i] = 0xFF; + for (i = 0; i < SPR_COUNT; i++) + sItemMenuIconSpriteIds[i] = SPRITE_NONE; } -void CreateBagOrSatchelSprite(u8 animNum) +void CreateBagSprite(u8 animNum) { - sItemMenuIconSpriteIds[0] = CreateSprite(&sSpriteTemplate_BagOrSatchel, 40, 68, 0); + sItemMenuIconSpriteIds[SPR_BAG] = CreateSprite(&sSpriteTemplate_Bag, 40, 68, 0); SetBagVisualPocketId(animNum); } void SetBagVisualPocketId(u8 animNum) { - struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[0]]; + struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[SPR_BAG]]; sprite->y2 = -5; sprite->callback = SpriteCB_BagVisualSwitchingPockets; StartSpriteAnim(sprite, animNum); @@ -577,10 +229,10 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite) void ShakeBagSprite(void) { - struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[0]]; + struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[SPR_BAG]]; if (sprite->affineAnimEnded) { - StartSpriteAffineAnim(sprite, 1); + StartSpriteAffineAnim(sprite, AFFINEANIM_BAG_SHAKE); sprite->callback = SpriteCB_ShakeBagSprite; } } @@ -589,54 +241,53 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - StartSpriteAffineAnim(sprite, 0); + StartSpriteAffineAnim(sprite, AFFINEANIM_BAG_IDLE); sprite->callback = SpriteCallbackDummy; } } -void ItemMenuIcons_CreateInsertIndicatorBarHidden(void) +void CreateSwapLine(void) { u8 i; - u8 * ptr = &sItemMenuIconSpriteIds[1]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; - for (i = 0; i < 9; i++) + for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) { - ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0); + spriteIds[i] = CreateSprite(&sSpriteTemplate_SwapLine, i * 16 + 96, 7, 0); switch (i) { case 0: + // ANIM_SWAP_LINE_START, by default break; - case 8: - StartSpriteAnim(&gSprites[ptr[i]], 2); + case NUM_SWAP_LINE_SPRITES - 1: + StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_END); break; default: - StartSpriteAnim(&gSprites[ptr[i]], 1); + StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_MID); break; } - gSprites[ptr[i]].invisible = TRUE; + gSprites[spriteIds[i]].invisible = TRUE; } } -void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible) +void SetSwapLineInvisibility(bool8 invisible) { u8 i; - u8 * ptr = &sItemMenuIconSpriteIds[1]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; - for (i = 0; i < 9; i++) - { - gSprites[ptr[i]].invisible = invisible; - } + for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) + gSprites[spriteIds[i]].invisible = invisible; } -void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y) +void UpdateSwapLinePos(s16 x, u16 y) { u8 i; - u8 * ptr = &sItemMenuIconSpriteIds[1]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; - for (i = 0; i < 9; i++) + for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) { - gSprites[ptr[i]].x2 = x; - gSprites[ptr[i]].y = y + 7; + gSprites[spriteIds[i]].x2 = x; + gSprites[spriteIds[i]].y = y + 7; } } @@ -663,9 +314,7 @@ void CopyItemIconPicTo4x4Buffer(const void *src, void *dest) u8 i; for (i = 0; i < 3; i++) - { CpuCopy16(src + 0x60 * i, dest + 0x80 * i, 0x60); - } } u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) @@ -732,17 +381,18 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT void CreateItemMenuIcon(u16 itemId, u8 idx) { - u8 * ptr = &sItemMenuIconSpriteIds[10]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; u8 spriteId; - if (ptr[idx] == 0xFF) + if (spriteIds[idx] == SPRITE_NONE) { - FreeSpriteTilesByTag(102 + idx); - FreeSpritePaletteByTag(102 + idx); - spriteId = AddItemIconObject(102 + idx, 102 + idx, itemId); + // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(TAG_ITEM_ICON + idx); + FreeSpritePaletteByTag(TAG_ITEM_ICON + idx); + spriteId = AddItemIconObject(TAG_ITEM_ICON + idx, TAG_ITEM_ICON + idx, itemId); if (spriteId != MAX_SPRITES) { - ptr[idx] = spriteId; + spriteIds[idx] = spriteId; gSprites[spriteId].x2 = 24; gSprites[spriteId].y2 = 140; } @@ -751,37 +401,38 @@ void CreateItemMenuIcon(u16 itemId, u8 idx) void DestroyItemMenuIcon(u8 idx) { - u8 * ptr = &sItemMenuIconSpriteIds[10]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; - if (ptr[idx] != 0xFF) + if (spriteIds[idx] != SPRITE_NONE) { - DestroySpriteAndFreeResources(&gSprites[ptr[idx]]); - ptr[idx] = 0xFF; + DestroySpriteAndFreeResources(&gSprites[spriteIds[idx]]); + spriteIds[idx] = SPRITE_NONE; } } const void *GetItemIconGfxPtr(u16 itemId, u8 attrId) { - if (itemId > ITEM_N_A) + if (itemId > ITEMS_COUNT) itemId = ITEM_NONE; - return sItemIconGfxPtrs[itemId][attrId]; + return sItemIconTable[itemId][attrId]; } -void sub_80989A0(u16 itemId, u8 idx) +void CreateBerryPouchItemIcon(u16 itemId, u8 idx) { - u8 * ptr = &sItemMenuIconSpriteIds[10]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; u8 spriteId; - if (ptr[idx] == 0xFF) + if (spriteIds[idx] == SPRITE_NONE) { - FreeSpriteTilesByTag(102 + idx); - FreeSpritePaletteByTag(102 + idx); - spriteId = AddItemIconObject(102 + idx, 102 + idx, itemId); + // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(TAG_ITEM_ICON + idx); + FreeSpritePaletteByTag(TAG_ITEM_ICON + idx); + spriteId = AddItemIconObject(TAG_ITEM_ICON + idx, TAG_ITEM_ICON + idx, itemId); if (spriteId != MAX_SPRITES) { - ptr[idx] = spriteId; + spriteIds[idx] = spriteId; gSprites[spriteId].x2 = 24; - gSprites[spriteId].y2 = 147; + gSprites[spriteId].y2 = 147; // This value is the only difference from CreateItemMenuIcon } } } diff --git a/src/item_pc.c b/src/item_pc.c index e6d65d9c8..f40eb1758 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -342,7 +342,7 @@ static bool8 ItemPc_DoGfxSetup(void) gMain.state++; break; case 14: - ItemMenuIcons_CreateInsertIndicatorBarHidden(); + CreateSwapLine(); gMain.state++; break; case 15: @@ -529,7 +529,7 @@ static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * } else { - CreateItemMenuIcon(ITEM_N_A, sStateDataPtr->itemMenuIconSlot); + CreateItemMenuIcon(ITEMS_COUNT, sStateDataPtr->itemMenuIconSlot); desc = gText_ReturnToPC; } sStateDataPtr->itemMenuIconSlot ^= 1; @@ -774,8 +774,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, 0x00); ItemPc_AddTextPrinterParameterized(1, FONT_2, gStringVar4, 0, 3, 2, 3, 0, 0); - ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); + UpdateSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + SetSwapLineInvisibility(FALSE); ItemPc_PrintOrRemoveCursor(data[0], 2); gTasks[taskId].func = Task_ItemPcMoveItemModeRun; } @@ -786,7 +786,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId) ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); - ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + UpdateSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -814,7 +814,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } } @@ -828,7 +828,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } diff --git a/src/shop.c b/src/shop.c index 51ee68ebe..7327874ca 100644 --- a/src/shop.c +++ b/src/shop.c @@ -594,7 +594,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s if (item != INDEX_CANCEL) CreateItemMenuIcon(item, gShopData.itemSlot); else - CreateItemMenuIcon(ITEM_N_A, gShopData.itemSlot); + CreateItemMenuIcon(ITEMS_COUNT, gShopData.itemSlot); gShopData.itemSlot ^= 1; BuyMenuPrint(5, FONT_2, description, 0, 3, 2, 1, 0, 0); From 54f9b62eded05c6896f9f553843c4e4b227c8e67 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 1 Oct 2022 23:47:18 -0400 Subject: [PATCH 080/105] Label minigame_digits --- .../misc/{unk_8479688.png => minigame_digits.png} | Bin .../{unk_8479748.png => minigame_digits_unused.png} | Bin include/digit_obj_util.h | 5 ++--- src/digit_obj_util.c | 6 +++--- src/pokemon_jump.c | 4 ++-- 5 files changed, 7 insertions(+), 8 deletions(-) rename graphics/misc/{unk_8479688.png => minigame_digits.png} (100%) rename graphics/misc/{unk_8479748.png => minigame_digits_unused.png} (100%) diff --git a/graphics/misc/unk_8479688.png b/graphics/misc/minigame_digits.png similarity index 100% rename from graphics/misc/unk_8479688.png rename to graphics/misc/minigame_digits.png diff --git a/graphics/misc/unk_8479748.png b/graphics/misc/minigame_digits_unused.png similarity index 100% rename from graphics/misc/unk_8479748.png rename to graphics/misc/minigame_digits_unused.png diff --git a/include/digit_obj_util.h b/include/digit_obj_util.h index 5674f201f..e2a445320 100644 --- a/include/digit_obj_util.h +++ b/include/digit_obj_util.h @@ -19,9 +19,8 @@ struct DigitObjUtilTemplate const struct SpritePalette * spritePal; }; -extern const u16 gUnknown_8479668[]; -extern const u32 gUnknown_8479688[]; -extern const u32 gUnknown_8479748[]; +extern const u16 gMinigameDigits_Pal[]; +extern const u32 gMinigameDigits_Gfx[]; bool32 DigitObjUtil_Init(u32 count); void DigitObjUtil_Free(void); diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c index 3f7128513..d012896bd 100644 --- a/src/digit_obj_util.c +++ b/src/digit_obj_util.c @@ -64,9 +64,9 @@ static const u8 sTilesPerImage[4][4] = } }; -const u16 gUnknown_8479668[] = INCBIN_U16("graphics/misc/unk_8479688.gbapal"); -const u32 gUnknown_8479688[] = INCBIN_U32("graphics/misc/unk_8479688.4bpp.lz"); -const u32 gUnknown_8479748[] = INCBIN_U32("graphics/misc/unk_8479748.4bpp.lz"); +const u16 gMinigameDigits_Pal[] = INCBIN_U16("graphics/misc/minigame_digits.gbapal"); +const u32 gMinigameDigits_Gfx[] = INCBIN_U32("graphics/misc/minigame_digits.4bpp.lz"); +static const u32 sUnusedMinigameDigits_Gfx[] = INCBIN_U32("graphics/misc/minigame_digits_unused.4bpp.lz"); // code bool32 DigitObjUtil_Init(u32 count) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 4ea4e1d1b..b0d466704 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -3532,8 +3532,8 @@ static const u8 sVenusaurStates[] = { [VINE_UPSWING_HIGHER] = VENUSAUR_UP, }; -static const struct CompressedSpriteSheet sSpriteSheet_Digits = {gUnknown_8479688, 0, TAG_DIGITS}; -static const struct SpritePalette sSpritePalette_Digits = {gUnknown_8479668, TAG_DIGITS}; +static const struct CompressedSpriteSheet sSpriteSheet_Digits = {gMinigameDigits_Gfx, 0, TAG_DIGITS}; +static const struct SpritePalette sSpritePalette_Digits = {gMinigameDigits_Pal, TAG_DIGITS}; static const u16 sPlayerNameWindowCoords_2Players[] = { 6, 8, From ab2aacc9d58dbe916962e4c58379f878867de0e4 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 2 Oct 2022 00:10:53 -0400 Subject: [PATCH 081/105] Sync berry_fix_program --- common_syms/berry_fix_program.txt | 8 +- include/berry_fix_program.h | 2 +- src/berry_fix_program.c | 181 ++++++++++++++++-------------- src/title_screen.c | 2 +- 4 files changed, 105 insertions(+), 88 deletions(-) diff --git a/common_syms/berry_fix_program.txt b/common_syms/berry_fix_program.txt index 63b3de271..f04247492 100644 --- a/common_syms/berry_fix_program.txt +++ b/common_syms/berry_fix_program.txt @@ -1,4 +1,4 @@ -gUnknown_3005EF0 -gUnknown_3005EF4 -gUnknown_3005EF8 -gUnknown_3005F00 +gMultibootStart +gMultibootStatus +gMultibootSize +gMultibootParam diff --git a/include/berry_fix_program.h b/include/berry_fix_program.h index fc0748fd9..b91a23553 100644 --- a/include/berry_fix_program.h +++ b/include/berry_fix_program.h @@ -1,6 +1,6 @@ #ifndef GUARD_BERRY_FIX_PROGRAM_H #define GUARD_BERRY_FIX_PROGRAM_H -void mb_berry_fix_serve(void); +void CB2_InitBerryFixProgram(void); #endif //GUARD_BERRY_FIX_PROGRAM_H diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 5eb053ec5..67aece9a1 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -9,51 +9,64 @@ #include "help_system.h" #include "m4a.h" -// Static type declarations +enum { + SCENE_ENSURE_CONNECT, + SCENE_TURN_OFF_POWER, + SCENE_TRANSMITTING, + SCENE_FOLLOW_INSTRUCT, + SCENE_TRANSMIT_FAILED, + SCENE_BEGIN, +}; -typedef struct { - u8 state; - u8 unk1; - u16 unk2; - struct MultiBootParam mb; -} berryfix_t; +enum { + STATE_BEGIN, + STATE_CONNECT, + STATE_TURN_OFF_POWER, + STATE_UNUSED, + STATE_INIT_MULTIBOOT, + STATE_MULTIBOOT, + STATE_TRANSMIT, + STATE_SUCCEEDED, + STATE_EXIT, + STATE_FAILED, + STATE_RETRY, +}; -// Static RAM declarations +const void *gMultibootStart; +int gMultibootStatus; +size_t gMultibootSize; +struct MultiBootParam gMultibootParam; -const void *gUnknown_3005EF0; -int gUnknown_3005EF4; -size_t gUnknown_3005EF8; -struct MultiBootParam gUnknown_3005F00; +static void CB2_BerryFix(void); +static void Task_BerryFixMain(u8 taskId); -// Static ROM declarations - -static void mb_berry_fix_maincb(void); -static void mb_berry_fix_task(u8 taskId); - -// .rodata - -static const void *const gUnknown_847A890[][3] = { - { +static const void *const sBerryFixGraphics[][3] = { + [SCENE_ENSURE_CONNECT] = { gBerryFixGameboy_Gfx, gBerryFixGameboy_Tilemap, gBerryFixGameboy_Pal - }, { + }, + [SCENE_TURN_OFF_POWER] = { gBerryFixGameboyLogo_Gfx, gBerryFixGameboyLogo_Tilemap, gBerryFixGameboyLogo_Pal - }, { + }, + [SCENE_TRANSMITTING] = { gBerryFixGbaTransfer_Gfx, gBerryFixGbaTransfer_Tilemap, gBerryFixGbaTransfer_Pal - }, { + }, + [SCENE_FOLLOW_INSTRUCT] = { gBerryFixGbaTransferHighlight_Gfx, gBerryFixGbaTransferHighlight_Tilemap, gBerryFixGbaTransferHighlight_Pal - }, { + }, + [SCENE_TRANSMIT_FAILED] = { gBerryFixGbaTransferError_Gfx, gBerryFixGbaTransferError_Tilemap, gBerryFixGbaTransferError_Pal - }, { + }, + [SCENE_BEGIN] = { gBerryFixWindow_Gfx, gBerryFixWindow_Tilemap, gBerryFixWindow_Pal @@ -63,22 +76,23 @@ static const void *const gUnknown_847A890[][3] = { extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4]; extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; -// .text - -static void mb_berry_fix_print(int scene) +static void SetScene(int scene) { REG_DISPCNT = 0; REG_BG0HOFS = 0; REG_BG0VOFS = 0; REG_BLDCNT = 0; - LZ77UnCompVram(gUnknown_847A890[scene][0], (void *)BG_CHAR_ADDR(0)); - LZ77UnCompVram(gUnknown_847A890[scene][1], (void *)BG_SCREEN_ADDR(31)); - CpuCopy16(gUnknown_847A890[scene][2], (void *)BG_PLTT, 0x200); + LZ77UnCompVram(sBerryFixGraphics[scene][0], (void *)BG_CHAR_ADDR(0)); + LZ77UnCompVram(sBerryFixGraphics[scene][1], (void *)BG_SCREEN_ADDR(31)); + CpuCopy16(sBerryFixGraphics[scene][2], (void *)BG_PLTT, 0x200); REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(31) | BGCNT_TXT256x256; REG_DISPCNT = DISPCNT_BG0_ON; } -void mb_berry_fix_serve(void) // noreturn +#define tState data[0] +#define tTimer data[1] + +void CB2_InitBerryFixProgram(void) { u8 taskId; DisableInterrupts(0xFFFF); @@ -91,96 +105,99 @@ void mb_berry_fix_serve(void) // noreturn ResetTasks(); ScanlineEffect_Stop(); gHelpSystemEnabled = FALSE; - taskId = CreateTask(mb_berry_fix_task, 0); - gTasks[taskId].data[0] = 0; - SetMainCallback2(mb_berry_fix_maincb); + taskId = CreateTask(Task_BerryFixMain, 0); + gTasks[taskId].tState = STATE_BEGIN; + SetMainCallback2(CB2_BerryFix); } -static void mb_berry_fix_maincb(void) +static void CB2_BerryFix(void) { RunTasks(); } -static void mb_berry_fix_task(u8 taskId) +static void Task_BerryFixMain(u8 taskId) { s16 * data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { - case 0: - mb_berry_fix_print(5); - data[0] = 1; + case STATE_BEGIN: + SetScene(SCENE_BEGIN); + tState = STATE_CONNECT; break; - case 1: + case STATE_CONNECT: if (JOY_NEW(A_BUTTON)) { - mb_berry_fix_print(0); - data[0] = 2; + SetScene(SCENE_ENSURE_CONNECT); + tState = STATE_TURN_OFF_POWER; } break; - case 2: + case STATE_TURN_OFF_POWER: if (JOY_NEW(A_BUTTON)) { - mb_berry_fix_print(1); - data[0] = 4; + SetScene(SCENE_TURN_OFF_POWER); + tState = STATE_INIT_MULTIBOOT; } break; - case 4: - gUnknown_3005EF0 = gMultiBootProgram_BerryGlitchFix_Start; - gUnknown_3005EF8 = gMultiBootProgram_BerryGlitchFix_End - gMultiBootProgram_BerryGlitchFix_Start; - gUnknown_3005F00.masterp = (void *)gMultiBootProgram_BerryGlitchFix_Start; - gUnknown_3005F00.server_type = MULTIBOOT_SERVER_TYPE_NORMAL; - MultiBootInit(&gUnknown_3005F00); - data[1] = 0; - data[0] = 5; + case STATE_INIT_MULTIBOOT: + gMultibootStart = gMultiBootProgram_BerryGlitchFix_Start; + gMultibootSize = gMultiBootProgram_BerryGlitchFix_End - gMultiBootProgram_BerryGlitchFix_Start; + gMultibootParam.masterp = (void *)gMultiBootProgram_BerryGlitchFix_Start; + gMultibootParam.server_type = MULTIBOOT_SERVER_TYPE_NORMAL; + MultiBootInit(&gMultibootParam); + tTimer = 0; + tState = STATE_MULTIBOOT; break; - case 5: - if (gUnknown_3005F00.probe_count == 0 && gUnknown_3005F00.response_bit & 0x2 && gUnknown_3005F00.client_bit & 0x2) + case STATE_MULTIBOOT: + if (gMultibootParam.probe_count == 0 && gMultibootParam.response_bit & 0x2 && gMultibootParam.client_bit & 0x2) { - data[1]++; - if (data[1] > 180) + if (++tTimer > 180) { - mb_berry_fix_print(2); - MultiBootStartMaster(&gUnknown_3005F00, gUnknown_3005EF0 + MULTIBOOT_HEADER_SIZE, gUnknown_3005EF8 - MULTIBOOT_HEADER_SIZE, 4, 1); - data[1] = 0; - data[0] = 6; + SetScene(SCENE_TRANSMITTING); + MultiBootStartMaster(&gMultibootParam, gMultibootStart + MULTIBOOT_HEADER_SIZE, gMultibootSize - MULTIBOOT_HEADER_SIZE, 4, 1); + tTimer = 0; + tState = STATE_TRANSMIT; } else - gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + { + gMultibootStatus = MultiBootMain(&gMultibootParam); + } } else { - data[1] = 0; - gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + tTimer = 0; + gMultibootStatus = MultiBootMain(&gMultibootParam); } break; - case 6: - gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); - if (MultiBootCheckComplete(&gUnknown_3005F00)) + case STATE_TRANSMIT: + gMultibootStatus = MultiBootMain(&gMultibootParam); + if (MultiBootCheckComplete(&gMultibootParam)) { - mb_berry_fix_print(3); - data[0] = 7; + SetScene(SCENE_FOLLOW_INSTRUCT); + tState = STATE_SUCCEEDED; + } + else if (!(gMultibootParam.client_bit & 2)) + { + tState = STATE_FAILED; } - else if (!(gUnknown_3005F00.client_bit & 2)) - data[0] = 9; break; - case 7: - data[0] = 8; + case STATE_SUCCEEDED: + tState = STATE_EXIT; break; - case 8: + case STATE_EXIT: if (JOY_NEW(A_BUTTON)) { DestroyTask(taskId); DoSoftReset(); } break; - case 9: - mb_berry_fix_print(4); - data[0] = 10; + case STATE_FAILED: + SetScene(SCENE_TRANSMIT_FAILED); + tState = STATE_RETRY; break; - case 10: + case STATE_RETRY: if (JOY_NEW(A_BUTTON)) - data[0] = 0; + tState = STATE_BEGIN; break; } } diff --git a/src/title_screen.c b/src/title_screen.c index c8164236a..eb65b00f7 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -897,7 +897,7 @@ static void CB2_FadeOutTransitionToBerryFix(void) if (!UpdatePaletteFade()) { m4aMPlayAllStop(); - SetMainCallback2(mb_berry_fix_serve); + SetMainCallback2(CB2_InitBerryFixProgram); } } From 77238d182d0ae2794ea41b644451142764c2e6fb Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 2 Oct 2022 07:58:27 -0400 Subject: [PATCH 082/105] Correct bag anim names --- src/item_menu_icons.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 89e0e0346..36997612f 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -49,28 +49,28 @@ static const struct OamData sOamData_Bag = { .paletteNum = 0 }; -static const union AnimCmd sAnim_Bag_OpenItemPocket[] = { +static const union AnimCmd sAnim_Bag_OpenPokeBallsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x40, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_Bag_OpenKeyItemPocket[] = { +static const union AnimCmd sAnim_Bag_OpenItemsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x80, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_Bag_OpenPokeBallsPocket[] = { +static const union AnimCmd sAnim_Bag_OpenKeyItemsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0xc0, 0), ANIMCMD_END }; static const union AnimCmd *const sAnims_Bag[] = { - sAnim_Bag_OpenKeyItemPocket, - sAnim_Bag_OpenPokeBallsPocket, - sAnim_Bag_OpenItemPocket + [POCKET_ITEMS - 1] = sAnim_Bag_OpenItemsPocket, + [POCKET_KEY_ITEMS - 1] = sAnim_Bag_OpenKeyItemsPocket, + [POCKET_POKE_BALLS - 1] = sAnim_Bag_OpenPokeBallsPocket, }; static const union AffineAnimCmd sAffineAnim_BagIdle[] = { From 32573b2ba98fb193d7627206724a49f8c7d9a894 Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Tue, 4 Oct 2022 00:51:38 +0800 Subject: [PATCH 083/105] Document item use --- include/constants/items.h | 5 + include/item.h | 13 +- include/item_use.h | 14 +- src/berry_pouch.c | 2 +- src/data/items.json | 792 +++++++++++++++++++------------------- src/fldeff_dig.c | 2 +- src/item_menu.c | 2 +- src/item_use.c | 246 ++++++------ src/wild_encounter.c | 7 - 9 files changed, 543 insertions(+), 540 deletions(-) diff --git a/include/constants/items.h b/include/constants/items.h index b2dfeccb7..a3242c13e 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -448,6 +448,11 @@ #define NUM_TECHNICAL_MACHINES 50 #define NUM_HIDDEN_MACHINES 8 +// Secondary IDs for rods +#define OLD_ROD 0 +#define GOOD_ROD 1 +#define SUPER_ROD 2 + // Check if the item is one that can be used on a Pokemon. #define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) diff --git a/include/item.h b/include/item.h index 5496bc869..e58348a78 100644 --- a/include/item.h +++ b/include/item.h @@ -16,11 +16,11 @@ struct Item u8 importance; u8 exitsBagOnUse; u8 pocket; - u8 type; + u8 type; // unused for balls ItemUseFunc fieldUseFunc; u8 battleUsage; ItemUseFunc battleUseFunc; - u8 secondaryId; + u8 secondaryId; // only used for fishing rods }; struct BagPocket @@ -29,6 +29,15 @@ struct BagPocket u8 capacity; }; +// Item type IDs (used to determine the exit callback) +enum { + ITEM_TYPE_MAIL, + ITEM_TYPE_PARTY_MENU, + ITEM_TYPE_FIELD, + ITEM_TYPE_UNUSED, // Used for Pokeblock case in RSE + ITEM_TYPE_BAG_MENU, // No exit callback, stays in bag menu +}; + extern const struct Item gItems[]; extern struct BagPocket gBagPockets[]; diff --git a/include/item_use.h b/include/item_use.h index d08878f72..77aed7820 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -6,9 +6,9 @@ void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8); void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16); -void FieldUseFunc_OrangeMail(u8 taskId); -void FieldUseFunc_MachBike(u8 taskId); -void FieldUseFunc_OldRod(u8 taskId); +void FieldUseFunc_Mail(u8 taskId); +void FieldUseFunc_Bike(u8 taskId); +void FieldUseFunc_Rod(u8 taskId); void FieldUseFunc_CoinCase(u8 taskId); void FieldUseFunc_PowderJar(u8 taskId); void FieldUseFunc_PokeFlute(u8 taskId); @@ -22,14 +22,14 @@ void FieldUseFunc_TmCase(u8 taskId); void FieldUseFunc_BerryPouch(u8 taskId); void BattleUseFunc_BerryPouch(u8 taskId); void FieldUseFunc_TeachyTv(u8 taskId); -void FieldUseFunc_SuperRepel(u8 taskId); -void FieldUseFunc_BlackFlute(u8 taskId); +void FieldUseFunc_Repel(u8 taskId); +void FieldUseFunc_BlackWhiteFlute(u8 taskId); void FieldUseFunc_TownMap(u8 taskId); void FieldUseFunc_FameChecker(u8 taskId); void FieldUseFunc_VsSeeker(u8 taskId); void BattleUseFunc_PokeBallEtc(u8 taskId); void BattleUseFunc_PokeFlute(u8 taskId); -void BattleUseFunc_GuardSpec(u8 taskId); +void BattleUseFunc_StatBooster(u8 taskId); void BattleUseFunc_Medicine(u8 taskId); void BattleUseFunc_Ether(u8 taskId); void BattleUseFunc_PokeDoll(u8 taskId); @@ -38,7 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId); void ItemUseOutOfBattle_EnigmaBerry(u8 taskId); void ItemUseInBattle_EnigmaBerry(u8 taskId); void ItemUseOutOfBattle_Itemfinder(u8 taskId); -void sub_80A1C44(u8 taskId); +void Task_UseDigEscapeRopeOnField(u8 taskId); u8 CanUseEscapeRopeOnCurrMap(void); u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 87796fad4..b18e0cd4a 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -1074,7 +1074,7 @@ static void Task_BerryPouch_Use(u8 taskId) else ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); } - else if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) + else if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == ITEM_TYPE_PARTY_MENU) Task_Give_PrintThereIsNoPokemon(taskId); else ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); diff --git a/src/data/items.json b/src/data/items.json index 48d614a80..9527febe7 100644 --- a/src/data/items.json +++ b/src/data/items.json @@ -10,7 +10,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -218,7 +218,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -234,7 +234,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -250,7 +250,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -266,7 +266,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -282,7 +282,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -298,7 +298,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -314,7 +314,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -330,7 +330,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -346,7 +346,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -362,7 +362,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -378,7 +378,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -394,7 +394,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -410,7 +410,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -426,7 +426,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -442,7 +442,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -458,7 +458,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -474,7 +474,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -490,7 +490,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -506,7 +506,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -522,7 +522,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -538,7 +538,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -554,7 +554,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -570,7 +570,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -586,7 +586,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -602,7 +602,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -618,7 +618,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -634,7 +634,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -650,7 +650,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -666,7 +666,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -682,8 +682,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, - "fieldUseFunc": "FieldUseFunc_BlackFlute", + "type": "ITEM_TYPE_PARTY_MENU", + "fieldUseFunc": "FieldUseFunc_BlackWhiteFlute", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -698,8 +698,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, - "fieldUseFunc": "FieldUseFunc_BlackFlute", + "type": "ITEM_TYPE_PARTY_MENU", + "fieldUseFunc": "FieldUseFunc_BlackWhiteFlute", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -714,7 +714,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -730,7 +730,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_SacredAsh", "battleUsage": 0, "battleUseFunc": "NULL", @@ -746,7 +746,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -762,7 +762,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -778,7 +778,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -794,7 +794,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -810,7 +810,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -826,7 +826,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -842,7 +842,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -858,7 +858,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -874,7 +874,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -890,7 +890,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -906,7 +906,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -922,7 +922,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -938,7 +938,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -954,7 +954,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -970,7 +970,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -986,7 +986,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1002,7 +1002,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1018,7 +1018,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1034,7 +1034,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1050,7 +1050,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1066,7 +1066,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1082,7 +1082,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1098,7 +1098,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_RareCandy", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1114,7 +1114,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_PpUp", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1130,7 +1130,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1146,7 +1146,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_PpUp", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1162,7 +1162,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1178,10 +1178,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1194,10 +1194,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1210,10 +1210,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1226,10 +1226,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1242,10 +1242,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1258,10 +1258,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1274,10 +1274,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1290,7 +1290,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, "battleUseFunc": "BattleUseFunc_PokeDoll", @@ -1306,7 +1306,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, "battleUseFunc": "BattleUseFunc_PokeDoll", @@ -1322,7 +1322,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1338,8 +1338,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, - "fieldUseFunc": "FieldUseFunc_SuperRepel", + "type": "ITEM_TYPE_BAG_MENU", + "fieldUseFunc": "FieldUseFunc_Repel", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1354,8 +1354,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, - "fieldUseFunc": "FieldUseFunc_SuperRepel", + "type": "ITEM_TYPE_BAG_MENU", + "fieldUseFunc": "FieldUseFunc_Repel", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1370,7 +1370,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "ItemUseOutOfBattle_EscapeRope", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1386,8 +1386,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, - "fieldUseFunc": "FieldUseFunc_SuperRepel", + "type": "ITEM_TYPE_BAG_MENU", + "fieldUseFunc": "FieldUseFunc_Repel", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1402,7 +1402,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1418,7 +1418,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1434,7 +1434,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1450,7 +1450,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1466,7 +1466,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1482,7 +1482,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1498,7 +1498,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1514,7 +1514,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1530,7 +1530,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1546,7 +1546,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1562,7 +1562,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1578,7 +1578,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1594,7 +1594,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1610,7 +1610,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1626,7 +1626,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1642,7 +1642,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1658,7 +1658,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1674,7 +1674,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1690,7 +1690,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1706,7 +1706,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1722,7 +1722,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1738,7 +1738,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1754,7 +1754,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1770,7 +1770,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1786,7 +1786,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1802,7 +1802,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1818,7 +1818,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1834,7 +1834,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1850,7 +1850,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1866,7 +1866,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1882,7 +1882,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1898,7 +1898,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1914,7 +1914,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1930,7 +1930,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1946,8 +1946,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1962,8 +1962,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 1 @@ -1978,8 +1978,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 2 @@ -1994,8 +1994,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 3 @@ -2010,8 +2010,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 4 @@ -2026,8 +2026,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 5 @@ -2042,8 +2042,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 6 @@ -2058,8 +2058,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 7 @@ -2074,8 +2074,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 8 @@ -2090,8 +2090,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 9 @@ -2106,8 +2106,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 10 @@ -2122,8 +2122,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 11 @@ -2138,7 +2138,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2154,7 +2154,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2170,7 +2170,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2186,7 +2186,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2202,7 +2202,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2218,7 +2218,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -2234,7 +2234,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2250,7 +2250,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2266,7 +2266,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2282,7 +2282,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2298,7 +2298,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2314,7 +2314,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2330,7 +2330,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2346,7 +2346,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2362,7 +2362,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2378,7 +2378,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2394,7 +2394,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2410,7 +2410,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2426,7 +2426,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2442,7 +2442,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2458,7 +2458,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2474,7 +2474,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2490,7 +2490,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2506,7 +2506,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2522,7 +2522,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2538,7 +2538,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2554,7 +2554,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2570,7 +2570,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2586,7 +2586,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2602,7 +2602,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2618,7 +2618,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2634,7 +2634,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2650,7 +2650,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2666,7 +2666,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2682,7 +2682,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2698,7 +2698,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2714,7 +2714,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2730,7 +2730,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2746,7 +2746,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2762,7 +2762,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2778,7 +2778,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2794,7 +2794,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2810,7 +2810,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "ItemUseOutOfBattle_EnigmaBerry", "battleUsage": 1, "battleUseFunc": "ItemUseInBattle_EnigmaBerry", @@ -2826,7 +2826,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2842,7 +2842,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2858,7 +2858,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2874,7 +2874,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2890,7 +2890,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2906,7 +2906,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2922,7 +2922,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2938,7 +2938,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2954,7 +2954,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2970,7 +2970,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2986,7 +2986,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3002,7 +3002,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3018,7 +3018,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3034,7 +3034,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3050,7 +3050,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3066,7 +3066,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3082,7 +3082,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3098,7 +3098,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3114,7 +3114,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3130,7 +3130,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3146,7 +3146,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3162,7 +3162,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3178,7 +3178,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3194,7 +3194,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3210,7 +3210,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3226,7 +3226,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3242,7 +3242,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3258,7 +3258,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3274,7 +3274,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3290,7 +3290,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3306,7 +3306,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3322,7 +3322,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3338,7 +3338,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3354,7 +3354,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3370,7 +3370,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3386,7 +3386,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3402,7 +3402,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3418,7 +3418,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3434,7 +3434,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3450,7 +3450,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3466,7 +3466,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3482,7 +3482,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3498,7 +3498,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3514,7 +3514,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3530,7 +3530,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3546,7 +3546,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3562,7 +3562,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3578,7 +3578,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3594,7 +3594,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3610,7 +3610,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3626,7 +3626,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3642,7 +3642,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3658,7 +3658,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3674,7 +3674,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3690,7 +3690,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3706,7 +3706,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3722,7 +3722,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3738,7 +3738,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3754,7 +3754,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3770,7 +3770,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3786,7 +3786,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3802,7 +3802,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3818,7 +3818,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3834,7 +3834,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3850,7 +3850,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3866,7 +3866,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3882,7 +3882,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3898,7 +3898,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3914,7 +3914,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3930,7 +3930,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3946,7 +3946,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3962,7 +3962,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3978,7 +3978,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3994,7 +3994,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4010,7 +4010,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4026,7 +4026,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4042,7 +4042,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4058,7 +4058,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4074,7 +4074,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4090,7 +4090,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4106,7 +4106,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4122,7 +4122,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4138,7 +4138,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4154,8 +4154,8 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_MachBike", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Bike", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -4170,7 +4170,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_CoinCase", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4186,7 +4186,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "ItemUseOutOfBattle_Itemfinder", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4202,11 +4202,11 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_OldRod", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Rod", "battleUsage": 0, "battleUseFunc": "NULL", - "secondaryId": 0 + "secondaryId": "OLD_ROD" }, { "english": "GOOD ROD", @@ -4218,11 +4218,11 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_OldRod", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Rod", "battleUsage": 0, "battleUseFunc": "NULL", - "secondaryId": 1 + "secondaryId": "GOOD_ROD" }, { "english": "SUPER ROD", @@ -4234,11 +4234,11 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_OldRod", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Rod", "battleUsage": 0, "battleUseFunc": "NULL", - "secondaryId": 2 + "secondaryId": "SUPER_ROD" }, { "english": "S.S. TICKET", @@ -4250,7 +4250,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4266,7 +4266,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4282,7 +4282,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4298,7 +4298,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4314,7 +4314,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4330,7 +4330,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4346,7 +4346,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4362,8 +4362,8 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_MachBike", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Bike", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 1 @@ -4378,7 +4378,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4394,7 +4394,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4410,7 +4410,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4426,7 +4426,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4442,7 +4442,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4458,7 +4458,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4474,7 +4474,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4490,7 +4490,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4506,7 +4506,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4522,7 +4522,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4538,7 +4538,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4554,7 +4554,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4570,7 +4570,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4586,7 +4586,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4602,7 +4602,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4618,7 +4618,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4634,7 +4634,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4651,7 +4651,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4668,7 +4668,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4685,7 +4685,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4702,7 +4702,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4719,7 +4719,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4736,7 +4736,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4753,7 +4753,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4770,7 +4770,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4787,7 +4787,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4804,7 +4804,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4821,7 +4821,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4838,7 +4838,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4855,7 +4855,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4872,7 +4872,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4889,7 +4889,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4906,7 +4906,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4923,7 +4923,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4940,7 +4940,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4957,7 +4957,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4974,7 +4974,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4991,7 +4991,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5008,7 +5008,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5025,7 +5025,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5042,7 +5042,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5059,7 +5059,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5076,7 +5076,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5093,7 +5093,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5110,7 +5110,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5127,7 +5127,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5144,7 +5144,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5161,7 +5161,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5178,7 +5178,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5195,7 +5195,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5212,7 +5212,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5229,7 +5229,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5246,7 +5246,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5263,7 +5263,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5280,7 +5280,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5297,7 +5297,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5314,7 +5314,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5331,7 +5331,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5348,7 +5348,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5365,7 +5365,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5382,7 +5382,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5399,7 +5399,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5416,7 +5416,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5433,7 +5433,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5450,7 +5450,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5467,7 +5467,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5484,7 +5484,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5501,7 +5501,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5518,7 +5518,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5535,7 +5535,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5552,7 +5552,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5569,7 +5569,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5586,7 +5586,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5603,7 +5603,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5620,7 +5620,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5636,7 +5636,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5652,7 +5652,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5668,7 +5668,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_PokeFlute", "battleUsage": 2, "battleUseFunc": "BattleUseFunc_PokeFlute", @@ -5684,7 +5684,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5700,7 +5700,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5716,7 +5716,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5732,7 +5732,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5748,7 +5748,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5764,7 +5764,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5780,7 +5780,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5796,7 +5796,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5812,7 +5812,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5828,8 +5828,8 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_MachBike", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Bike", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -5844,7 +5844,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_TownMap", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5860,7 +5860,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "FieldUseFunc_VsSeeker", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5876,7 +5876,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_FameChecker", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5892,7 +5892,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_TmCase", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5908,7 +5908,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_BerryPouch", "battleUsage": 3, "battleUseFunc": "BattleUseFunc_BerryPouch", @@ -5924,7 +5924,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "FieldUseFunc_TeachyTv", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5940,7 +5940,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5956,7 +5956,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5972,7 +5972,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5988,7 +5988,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6004,7 +6004,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6020,7 +6020,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_PowderJar", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6036,7 +6036,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6052,7 +6052,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index 0d25953af..4678c84bd 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -41,6 +41,6 @@ static void StartDigFieldEffect(void) u8 taskId; FieldEffectActiveListRemove(FLDEFF_USE_DIG); - taskId = CreateTask(sub_80A1C44, 8); + taskId = CreateTask(Task_UseDigEscapeRopeOnField, 8); gTasks[taskId].data[0] = 0; } diff --git a/src/item_menu.c b/src/item_menu.c index fb12cc9f6..3ee223343 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1475,7 +1475,7 @@ static void Task_ItemMenuAction_Use(u8 taskId) PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); - if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) + if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == ITEM_TYPE_PARTY_MENU) Task_PrintThereIsNoPokemon(taskId); else ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); diff --git a/src/item_use.c b/src/item_use.c index a7a22665f..7c5091ccd 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -33,6 +33,7 @@ #include "vs_seeker.h" #include "constants/sound.h" #include "constants/items.h" +#include "constants/item_effects.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/songs.h" @@ -43,14 +44,14 @@ static EWRAM_DATA void (*sItemUseOnFieldCB)(u8 taskId) = NULL; static void FieldCB_FadeInFromBlack(void); static void Task_WaitFadeIn_CallItemUseOnFieldCB(u8 taskId); static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId); -static void sub_80A11C0(u8 taskId); -static bool8 sub_80A1194(void); -static void sub_80A1208(void); +static void Task_ItemUseWaitForFade(u8 taskId); +static bool8 FieldCB2_UseItemFromField(void); +static void CB2_CheckMail(void); static void ItemUseOnFieldCB_Bicycle(u8 taskId); -static bool8 ItemUseCheckFunc_Rod(void); +static bool8 CanFish(void); static void ItemUseOnFieldCB_Rod(u8 taskId); -static void sub_80A1648(u8 taskId); -static void sub_80A1674(u8 taskId); +static void Task_PlayPokeFlute(u8 taskId); +static void Task_DisplayPokeFluteMessage(u8 taskId); static void InitTMCaseFromBag(void); static void Task_InitTMCaseFromField(u8 taskId); static void InitBerryPouchFromBag(void); @@ -58,14 +59,14 @@ static void Task_InitBerryPouchFromField(u8 taskId); static void InitBerryPouchFromBattle(void); static void InitTeachyTvFromBag(void); static void Task_InitTeachyTvFromField(u8 taskId); -static void sub_80A19E8(u8 taskId); -static void sub_80A1A44(void); -static void sub_80A1B48(u8 taskId); -static void sub_80A1C08(u8 taskId); -static void sub_80A1CAC(void); -static void sub_80A1CC0(u8 taskId); -static void sub_80A1D58(void); -static void sub_80A1D68(u8 taskId); +static void Task_UseRepel(u8 taskId); +static void RemoveUsedItem(void); +static void Task_UsedBlackWhiteFlute(u8 taskId); +static void ItemUseOnFieldCB_EscapeRope(u8 taskId); +static void UseTownMapFromBag(void); +static void Task_UseTownMapFromField(u8 taskId); +static void UseFameCheckerFromBag(void); +static void Task_UseFameCheckerFromField(u8 taskId); static void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId); static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId); @@ -126,13 +127,13 @@ static const u8 sUnref_83E27B4[] = { }; static void (*const sExitCallbackByItemType[])(void) = { - CB2_ShowPartyMenuForItemUse, - CB2_ReturnToField, - NULL, - NULL + [ITEM_TYPE_PARTY_MENU - 1] = CB2_ShowPartyMenuForItemUse, + [ITEM_TYPE_FIELD - 1] = CB2_ReturnToField, + [ITEM_TYPE_UNUSED - 1] = NULL, + [ITEM_TYPE_BAG_MENU - 1] = NULL, }; -static void Task_FadeOuFromBackToField(u8 taskId) +static void SetUpItemUseCallback(u8 taskId) { u8 itemType; if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY) @@ -147,18 +148,18 @@ static void Task_FadeOuFromBackToField(u8 taskId) else { ItemMenu_SetExitCallback(sExitCallbackByItemType[itemType]); - if (itemType == 1) + if (itemType == ITEM_TYPE_FIELD - 1) Bag_BeginCloseWin0Animation(); ItemMenu_StartFadeToExitCallback(taskId); } } -static void sub_80A103C(u8 taskId) +static void SetUpItemUseOnFieldCallback(u8 taskId) { if (gTasks[taskId].data[3] != 1) { gFieldCallback = FieldCB_FadeInFromBlack; - Task_FadeOuFromBackToField(taskId); + SetUpItemUseCallback(taskId); } else sItemUseOnFieldCB(taskId); @@ -173,12 +174,10 @@ static void FieldCB_FadeInFromBlack(void) static void Task_WaitFadeIn_CallItemUseOnFieldCB(u8 taskId) { if (IsWeatherNotFadingIn() == TRUE) - { sItemUseOnFieldCB(taskId); - } } -static void DisplayItemMessageInCurrentContext(u8 taskId, bool8 inField, u8 fontId, const u8 * str) +static void DisplayItemMessageInCurrentContext(u8 taskId, bool8 inField, u8 fontId, const u8 *str) { StringExpandPlaceholders(gStringVar4, str); if (inField == FALSE) @@ -210,22 +209,22 @@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) return 0; } -static void sub_80A1184(void) +static void SetFieldCallback2ForItemUse(void) { - gFieldCallback2 = sub_80A1194; + gFieldCallback2 = FieldCB2_UseItemFromField; } -static bool8 sub_80A1194(void) +static bool8 FieldCB2_UseItemFromField(void) { FreezeObjectEvents(); LockPlayerFieldControls(); FadeInFromBlack(); - CreateTask(sub_80A11C0, 10); + CreateTask(Task_ItemUseWaitForFade, 10); gExitStairsMovementDisabled = FALSE; return TRUE; } -static void sub_80A11C0(u8 taskId) +static void Task_ItemUseWaitForFade(u8 taskId) { if (IsWeatherNotFadingIn() == TRUE) { @@ -235,21 +234,21 @@ static void sub_80A11C0(u8 taskId) } } -void FieldUseFunc_OrangeMail(u8 taskId) +void FieldUseFunc_Mail(u8 taskId) { - ItemMenu_SetExitCallback(sub_80A1208); + ItemMenu_SetExitCallback(CB2_CheckMail); ItemMenu_StartFadeToExitCallback(taskId); } -static void sub_80A1208(void) +static void CB2_CheckMail(void) { struct Mail mail; mail.itemId = gSpecialVar_ItemId; - ReadMail(&mail, CB2_BagMenuFromStartMenu, 0); + ReadMail(&mail, CB2_BagMenuFromStartMenu, FALSE); } -void FieldUseFunc_MachBike(u8 taskId) +void FieldUseFunc_Bike(u8 taskId) { s16 x, y; u8 behavior; @@ -266,7 +265,7 @@ void FieldUseFunc_MachBike(u8 taskId) else if (Overworld_IsBikingAllowed() == TRUE && !IsBikingDisallowedByPlayer()) { sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } else PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); @@ -282,18 +281,18 @@ static void ItemUseOnFieldCB_Bicycle(u8 taskId) DestroyTask(taskId); } -void FieldUseFunc_OldRod(u8 taskId) +void FieldUseFunc_Rod(u8 taskId) { - if (ItemUseCheckFunc_Rod() == TRUE) + if (CanFish() == TRUE) { sItemUseOnFieldCB = ItemUseOnFieldCB_Rod; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } else PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -static bool8 ItemUseCheckFunc_Rod(void) +static bool8 CanFish(void) { s16 x, y; u16 behavior; @@ -330,7 +329,7 @@ void ItemUseOutOfBattle_Itemfinder(u8 taskId) { IncrementGameStat(GAME_STAT_USED_ITEMFINDER); sItemUseOnFieldCB = ItemUseOnFieldCB_Itemfinder; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } void FieldUseFunc_CoinCase(u8 taskId) @@ -362,7 +361,7 @@ void FieldUseFunc_PokeFlute(u8 taskId) for (i = 0; i < CalculatePlayerPartyCount(); i++) { - if (!ExecuteTableBasedItemEffect(&gPlayerParty[i], ITEM_AWAKENING, i, MOVE_NONE)) + if (!ExecuteTableBasedItemEffect(&gPlayerParty[i], ITEM_AWAKENING, i, 0)) wokeSomeoneUp = TRUE; } @@ -370,9 +369,9 @@ void FieldUseFunc_PokeFlute(u8 taskId) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gText_PlayedPokeFlute, sub_80A1648); + DisplayItemMessageInBag(taskId, FONT_2, gText_PlayedPokeFlute, Task_PlayPokeFlute); else - DisplayItemMessageOnField(taskId, FONT_2, gText_PlayedPokeFlute, sub_80A1648); + DisplayItemMessageOnField(taskId, FONT_2, gText_PlayedPokeFlute, Task_PlayPokeFlute); } else { @@ -383,13 +382,13 @@ void FieldUseFunc_PokeFlute(u8 taskId) } } -static void sub_80A1648(u8 taskId) +static void Task_PlayPokeFlute(u8 taskId) { PlayFanfareByFanfareNum(FANFARE_POKE_FLUTE); - gTasks[taskId].func = sub_80A1674; + gTasks[taskId].func = Task_DisplayPokeFluteMessage; } -static void sub_80A1674(u8 taskId) +static void Task_DisplayPokeFluteMessage(u8 taskId) { if (WaitFanfare(FALSE)) { @@ -400,45 +399,45 @@ static void sub_80A1674(u8 taskId) } } -static void sub_80A16D0(u8 taskId) +static void DoSetUpItemUseCallback(u8 taskId) { - Task_FadeOuFromBackToField(taskId); + SetUpItemUseCallback(taskId); } void FieldUseFunc_Medicine(u8 taskId) { gItemUseCB = ItemUseCB_Medicine; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_Ether(u8 taskId) { gItemUseCB = ItemUseCB_TryRestorePP; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_PpUp(u8 taskId) { gItemUseCB = ItemUseCB_PPUp; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_RareCandy(u8 taskId) { gItemUseCB = ItemUseCB_RareCandy; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_EvoItem(u8 taskId) { gItemUseCB = ItemUseCB_EvolutionStone; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_SacredAsh(u8 taskId) { gItemUseCB = ItemUseCB_SacredAsh; - Task_FadeOuFromBackToField(taskId); + SetUpItemUseCallback(taskId); } void FieldUseFunc_TmCase(u8 taskId) @@ -466,7 +465,7 @@ static void Task_InitTMCaseFromField(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitTMCase(0, CB2_ReturnToField, 1); DestroyTask(taskId); } @@ -497,7 +496,7 @@ static void Task_InitBerryPouchFromField(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitBerryPouch(BERRYPOUCH_FROMFIELD, CB2_ReturnToField, 1); DestroyTask(taskId); } @@ -540,36 +539,36 @@ static void Task_InitTeachyTvFromField(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitTeachyTvController(0, CB2_ReturnToField); DestroyTask(taskId); } } -void FieldUseFunc_SuperRepel(u8 taskId) +void FieldUseFunc_Repel(u8 taskId) { if (VarGet(VAR_REPEL_STEP_COUNT) == 0) { PlaySE(SE_REPEL); - gTasks[taskId].func = sub_80A19E8; + gTasks[taskId].func = Task_UseRepel; } else // An earlier repel is still in effect DisplayItemMessageInBag(taskId, FONT_2, gText_RepelEffectsLingered, Task_ReturnToBagFromContextMenu); } -static void sub_80A19E8(u8 taskId) +static void Task_UseRepel(u8 taskId) { if (!IsSEPlaying()) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); - sub_80A1A44(); + RemoveUsedItem(); DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, Task_ReturnToBagFromContextMenu); } } -static void sub_80A1A44(void) +static void RemoveUsedItem(void) { RemoveBagItem(gSpecialVar_ItemId, 1); Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId)); @@ -578,7 +577,7 @@ static void sub_80A1A44(void) StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2); } -void FieldUseFunc_BlackFlute(u8 taskId) +void FieldUseFunc_BlackWhiteFlute(u8 taskId) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE) @@ -587,7 +586,7 @@ void FieldUseFunc_BlackFlute(u8 taskId) FlagClear(FLAG_SYS_BLACK_FLUTE_ACTIVE); CopyItemName(gSpecialVar_ItemId, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildLured); - gTasks[taskId].func = sub_80A1B48; + gTasks[taskId].func = Task_UsedBlackWhiteFlute; gTasks[taskId].data[8] = 0; } else if (gSpecialVar_ItemId == ITEM_BLACK_FLUTE) @@ -596,12 +595,12 @@ void FieldUseFunc_BlackFlute(u8 taskId) FlagClear(FLAG_SYS_WHITE_FLUTE_ACTIVE); CopyItemName(gSpecialVar_ItemId, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled); - gTasks[taskId].func = sub_80A1B48; + gTasks[taskId].func = Task_UsedBlackWhiteFlute; gTasks[taskId].data[8] = 0; } } -static void sub_80A1B48(u8 taskId) +static void Task_UsedBlackWhiteFlute(u8 taskId) { if (++gTasks[taskId].data[8] > 7) { @@ -623,22 +622,22 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId) if (CanUseEscapeRopeOnCurrMap() == TRUE) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId); - sItemUseOnFieldCB = sub_80A1C08; - sub_80A103C(taskId); + sItemUseOnFieldCB = ItemUseOnFieldCB_EscapeRope; + SetUpItemUseOnFieldCallback(taskId); } else PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -static void sub_80A1C08(u8 taskId) +static void ItemUseOnFieldCB_EscapeRope(u8 taskId) { Overworld_ResetStateAfterDigEscRope(); - sub_80A1A44(); + RemoveUsedItem(); gTasks[taskId].data[0] = 0; - DisplayItemMessageOnField(taskId, FONT_2, gStringVar4, sub_80A1C44); + DisplayItemMessageOnField(taskId, FONT_2, gStringVar4, Task_UseDigEscapeRopeOnField); } -void sub_80A1C44(u8 taskId) +void Task_UseDigEscapeRopeOnField(u8 taskId) { ResetInitialPlayerAvatarState(); StartEscapeRopeFieldEffect(); @@ -649,28 +648,28 @@ void FieldUseFunc_TownMap(u8 taskId) { if (gTasks[taskId].data[3] == 0) { - ItemMenu_SetExitCallback(sub_80A1CAC); + ItemMenu_SetExitCallback(UseTownMapFromBag); ItemMenu_StartFadeToExitCallback(taskId); } else { StopPokemonLeagueLightingEffectTask(); FadeScreen(FADE_TO_BLACK, 0); - gTasks[taskId].func = sub_80A1CC0; + gTasks[taskId].func = Task_UseTownMapFromField; } } -static void sub_80A1CAC(void) +static void UseTownMapFromBag(void) { InitRegionMapWithExitCB(REGIONMAP_TYPE_NORMAL, CB2_BagMenuFromStartMenu); } -static void sub_80A1CC0(u8 taskId) +static void Task_UseTownMapFromField(u8 taskId) { if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitRegionMapWithExitCB(REGIONMAP_TYPE_NORMAL, CB2_ReturnToField); DestroyTask(taskId); } @@ -681,28 +680,28 @@ void FieldUseFunc_FameChecker(u8 taskId) ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) { - ItemMenu_SetExitCallback(sub_80A1D58); + ItemMenu_SetExitCallback(UseFameCheckerFromBag); ItemMenu_StartFadeToExitCallback(taskId); } else { StopPokemonLeagueLightingEffectTask(); FadeScreen(FADE_TO_BLACK, 0); - gTasks[taskId].func = sub_80A1D68; + gTasks[taskId].func = Task_UseFameCheckerFromField; } } -static void sub_80A1D58(void) +static void UseFameCheckerFromBag(void) { UseFameChecker(CB2_BagMenuFromStartMenu); } -static void sub_80A1D68(u8 taskId) +static void Task_UseFameCheckerFromField(u8 taskId) { if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); UseFameChecker(CB2_ReturnToField); DestroyTask(taskId); } @@ -724,7 +723,7 @@ void FieldUseFunc_VsSeeker(u8 taskId) else { sItemUseOnFieldCB = Task_VsSeeker_0; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } } @@ -742,9 +741,7 @@ void BattleUseFunc_PokeBallEtc(u8 taskId) ItemMenu_StartFadeToExitCallback(taskId); } else - { DisplayItemMessageInBag(taskId, FONT_2, gText_BoxFull, Task_ReturnToBagFromContextMenu); - } } void BattleUseFunc_PokeFlute(u8 taskId) @@ -753,12 +750,10 @@ void BattleUseFunc_PokeFlute(u8 taskId) ItemMenu_StartFadeToExitCallback(taskId); } -void BattleUseFunc_GuardSpec(u8 taskId) +void BattleUseFunc_StatBooster(u8 taskId) { if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0)) - { DisplayItemMessageInBag(taskId, FONT_2, gText_WontHaveEffect, Task_ReturnToBagFromContextMenu); - } else { gTasks[taskId].data[8] = 0; @@ -768,7 +763,7 @@ void BattleUseFunc_GuardSpec(u8 taskId) static void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId) { - s16 * data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (++data[8] > 7) { @@ -808,7 +803,8 @@ void BattleUseFunc_Medicine(u8 taskId) ItemUse_SwitchToPartyMenuInBattle(taskId); } -static void sub_80A1FD8(u8 taskId) +// Unused. Sacred Ash cannot be used in battle +static void BattleUseFunc_SacredAsh(u8 taskId) { gItemUseCB = ItemUseCB_SacredAsh; ItemUse_SwitchToPartyMenuInBattle(taskId); @@ -824,7 +820,7 @@ void BattleUseFunc_PokeDoll(u8 taskId) { if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { - sub_80A1A44(); + RemoveUsedItem(); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, 0, gSpecialVar_ItemId, 0xFFFF); DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, ItemMenu_StartFadeToExitCallback); } @@ -834,38 +830,38 @@ void BattleUseFunc_PokeDoll(u8 taskId) void ItemUseOutOfBattle_EnigmaBerry(u8 taskId) { - switch (GetItemEffectType(gSpecialVar_ItemId) - 1) + switch (GetItemEffectType(gSpecialVar_ItemId)) { - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: + case ITEM_EFFECT_HEAL_HP: + case ITEM_EFFECT_CURE_POISON: + case ITEM_EFFECT_CURE_SLEEP: + case ITEM_EFFECT_CURE_BURN: + case ITEM_EFFECT_CURE_FREEZE: + case ITEM_EFFECT_CURE_PARALYSIS: + case ITEM_EFFECT_CURE_ALL_STATUS: + case ITEM_EFFECT_ATK_EV: + case ITEM_EFFECT_HP_EV: + case ITEM_EFFECT_SPATK_EV: + case ITEM_EFFECT_SPDEF_EV: + case ITEM_EFFECT_SPEED_EV: + case ITEM_EFFECT_DEF_EV: gTasks[taskId].data[4] = 1; FieldUseFunc_Medicine(taskId); break; - case 9: + case ITEM_EFFECT_SACRED_ASH: gTasks[taskId].data[4] = 1; FieldUseFunc_SacredAsh(taskId); break; - case 0: + case ITEM_EFFECT_RAISE_LEVEL: gTasks[taskId].data[4] = 1; FieldUseFunc_RareCandy(taskId); break; - case 18: - case 19: + case ITEM_EFFECT_PP_UP: + case ITEM_EFFECT_PP_MAX: gTasks[taskId].data[4] = 1; FieldUseFunc_PpUp(taskId); break; - case 20: + case ITEM_EFFECT_HEAL_PP: gTasks[taskId].data[4] = 1; FieldUseFunc_Ether(taskId); break; @@ -879,21 +875,21 @@ void ItemUseInBattle_EnigmaBerry(u8 taskId) { switch (GetItemEffectType(gSpecialVar_ItemId)) { - case 0: - BattleUseFunc_GuardSpec(taskId); + case ITEM_EFFECT_X_ITEM: + BattleUseFunc_StatBooster(taskId); break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 11: + case ITEM_EFFECT_HEAL_HP: + case ITEM_EFFECT_CURE_POISON: + case ITEM_EFFECT_CURE_SLEEP: + case ITEM_EFFECT_CURE_BURN: + case ITEM_EFFECT_CURE_FREEZE: + case ITEM_EFFECT_CURE_PARALYSIS: + case ITEM_EFFECT_CURE_CONFUSION: + case ITEM_EFFECT_CURE_INFATUATION: + case ITEM_EFFECT_CURE_ALL_STATUS: BattleUseFunc_Medicine(taskId); break; - case 21: + case ITEM_EFFECT_HEAL_PP: BattleUseFunc_Ether(taskId); break; default: @@ -912,7 +908,7 @@ void FieldUseFunc_OakStopsYou(u8 taskId) PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, u16 param) +void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, u16 itemId, u16 param) { struct UnkStruct_ItemUseQuestLog { @@ -920,7 +916,7 @@ void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, u16 unk2; u16 species; u16 param; - } * questLog = Alloc(sizeof(*questLog)); + } *questLog = Alloc(sizeof(*questLog)); questLog->itemId = itemId; questLog->param = param; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 2e9eba3ec..288a6b235 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -110,13 +110,6 @@ static u8 ChooseWildMonIndex_WaterRock(void) return 4; } -enum -{ - OLD_ROD, - GOOD_ROD, - SUPER_ROD -}; - static u8 ChooseWildMonIndex_Fishing(u8 rod) { u8 wildMonIndex = 0; From 9fffa1fae2318724ba768c3a74aa0d2423051587 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 4 Oct 2022 19:21:28 -0400 Subject: [PATCH 084/105] Sync field_screen_effect --- src/field_screen_effect.c | 105 ++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 51 deletions(-) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 52dc0ba55..a451ffd1b 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -12,14 +12,14 @@ #include "event_object_movement.h" #include "field_fadetransition.h" #include "event_scripts.h" +#include "constants/heal_locations.h" +#include "constants/maps.h" -static const u16 sFlashLevelPixelRadii[] = { - 0x00c8, 0x0048, 0x0038, 0x0028, 0x0018 -}; +static const u16 sFlashLevelToRadius[] = { 200, 72, 56, 40, 24 }; +const s32 gMaxFlashLevel = ARRAY_COUNT(sFlashLevelToRadius) - 1; -const s32 gMaxFlashLevel = NELEMS(sFlashLevelPixelRadii) - 1; - -static const struct WindowTemplate gUnknown_83C68E4 = { +static const struct WindowTemplate sWindowTemplate_WhiteoutText = +{ .bg = 0, .tilemapLeft = 0, .tilemapTop = 5, @@ -29,7 +29,7 @@ static const struct WindowTemplate gUnknown_83C68E4 = { .baseBlock = 1, }; -static const u8 gUnknown_83C68EC[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; +static const u8 sWhiteoutTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; static void Task_EnableScriptAfterMusicFade(u8 taskId); static void Task_BarnDoorWipeChild(u8 taskId); @@ -150,7 +150,7 @@ static void UpdateFlashLevelEffect(u8 taskId) } } -static void sub_807EF7C(u8 taskId) +static void Task_WaitForFlashUpdate(u8 taskId) { if (!FuncIsActiveTask(UpdateFlashLevelEffect)) { @@ -159,13 +159,13 @@ static void sub_807EF7C(u8 taskId) } } -static void sub_807EFA4(void) +static void StartWaitForFlashUpdate(void) { - if (!FuncIsActiveTask(sub_807EF7C)) - CreateTask(sub_807EF7C, 80); + if (!FuncIsActiveTask(Task_WaitForFlashUpdate)) + CreateTask(Task_WaitForFlashUpdate, 80); } -static u8 sub_807EFC8(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, bool32 clearScanlineEffect, u8 delta) +static u8 StartUpdateFlashLevelEffect(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, bool32 clearScanlineEffect, u8 delta) { u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); s16 *data = gTasks[taskId].data; @@ -190,14 +190,15 @@ static u8 sub_807EFC8(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 dest #undef tFlashRadiusDelta #undef tClearScanlineEffect -void AnimateFlash(u8 flashLevel) +// A higher flash level is a smaller flash radius (more darkness). 0 is full brightness +void AnimateFlash(u8 newFlashLevel) { u8 curFlashLevel = Overworld_GetFlashLevel(); - bool32 value = FALSE; - if (!flashLevel) - value = TRUE; - sub_807EFC8(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 2); - sub_807EFA4(); + bool32 fullBrightness = FALSE; + if (newFlashLevel == 0) + fullBrightness = TRUE; + StartUpdateFlashLevelEffect(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelToRadius[curFlashLevel], sFlashLevelToRadius[newFlashLevel], fullBrightness, 2); + StartWaitForFlashUpdate(); LockPlayerFieldControls(); } @@ -205,7 +206,7 @@ void WriteFlashScanlineEffectBuffer(u8 flashLevel) { if (flashLevel) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelToRadius[flashLevel]); CpuFastCopy(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 240 * 8); } } @@ -283,15 +284,15 @@ void Task_BarnDoorWipe(u8 taskId) if (data[10] == 0) { SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(240, 255)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(DISPLAY_WIDTH, 255)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 255)); SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0, 255)); } else { - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 120)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH / 2)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 255)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(120, 255)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(DISPLAY_WIDTH / 2, 255)); SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0, 255)); } SetGpuReg(REG_OFFSET_WININ, 0); @@ -323,8 +324,8 @@ static void Task_BarnDoorWipeChild(u8 taskId) if (gTasks[parentTaskId].tDirection == DIR_WIPE_IN) { lhs = tChildOffset; - rhs = 240 - tChildOffset; - if (lhs > 120) + rhs = DISPLAY_WIDTH - tChildOffset; + if (lhs > DISPLAY_WIDTH / 2) { DestroyTask(taskId); return; @@ -332,8 +333,8 @@ static void Task_BarnDoorWipeChild(u8 taskId) } else { - lhs = 120 - tChildOffset; - rhs = 120 + tChildOffset; + lhs = DISPLAY_WIDTH / 2 - tChildOffset; + rhs = DISPLAY_WIDTH / 2 + tChildOffset; if (lhs < 0) { DestroyTask(taskId); @@ -341,15 +342,11 @@ static void Task_BarnDoorWipeChild(u8 taskId) } } SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, lhs)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(rhs, 240)); - if (lhs <= 89) - { + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(rhs, DISPLAY_WIDTH)); + if (lhs < 90) tChildOffset += 4; - } else - { tChildOffset += 2; - } } #undef tState @@ -358,24 +355,28 @@ static void Task_BarnDoorWipeChild(u8 taskId) #undef DIR_WIPE_OUT #undef tChildOffset +#define tState data[0] +#define tWindowId data[1] +#define tPrintState data[2] + static bool8 PrintWhiteOutRecoveryMessage(u8 taskId, const u8 *text, u8 x, u8 y) { - u8 windowId = gTasks[taskId].data[1]; + u8 windowId = gTasks[taskId].tWindowId; - switch (gTasks[taskId].data[2]) + switch (gTasks[taskId].tPrintState) { case 0: FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); StringExpandPlaceholders(gStringVar4, text); - AddTextPrinterParameterized4(windowId, FONT_2, x, y, 1, 0, gUnknown_83C68EC, 1, gStringVar4); + AddTextPrinterParameterized4(windowId, FONT_2, x, y, 1, 0, sWhiteoutTextColors, 1, gStringVar4); gTextFlags.canABSpeedUpPrint = FALSE; - gTasks[taskId].data[2] = 1; + gTasks[taskId].tPrintState = 1; break; case 1: RunTextPrinters(); if (!IsTextPrinterActive(windowId)) { - gTasks[taskId].data[2] = 0; + gTasks[taskId].tPrintState = 0; return TRUE; } break; @@ -388,48 +389,50 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId) u8 windowId; const struct HealLocation *loc; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - windowId = AddWindow(&gUnknown_83C68E4); - gTasks[taskId].data[1] = windowId; + windowId = AddWindow(&sWindowTemplate_WhiteoutText); + gTasks[taskId].tWindowId = windowId; Menu_LoadStdPalAt(0xF0); FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); PutWindowTilemap(windowId); CopyWindowToVram(windowId, COPYWIN_FULL); - loc = GetHealLocation(1); + + // Scene changes if last heal location was the player's house + loc = GetHealLocation(SPAWN_PALLET_TOWN); if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group && gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map - && gSaveBlock1Ptr->lastHealLocation.warpId == -1 + && gSaveBlock1Ptr->lastHealLocation.warpId == WARP_ID_NONE && gSaveBlock1Ptr->lastHealLocation.x == loc->x && gSaveBlock1Ptr->lastHealLocation.y == loc->y) - gTasks[taskId].data[0] = 4; + gTasks[taskId].tState = 4; else - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; break; case 1: if (PrintWhiteOutRecoveryMessage(taskId, gText_PlayerScurriedToCenter, 2, 8)) { - ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], 2); - ++gTasks[taskId].data[0]; + ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_NORTH); + gTasks[taskId].tState++; } break; case 4: if (PrintWhiteOutRecoveryMessage(taskId, gText_PlayerScurriedBackHome, 2, 8)) { - ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], 2); - ++gTasks[taskId].data[0]; + ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_NORTH); + gTasks[taskId].tState++; } break; case 2: case 5: - windowId = gTasks[taskId].data[1]; + windowId = gTasks[taskId].tWindowId; ClearWindowTilemap(windowId); CopyWindowToVram(windowId, COPYWIN_MAP); RemoveWindow(windowId); palette_bg_faded_fill_black(); FadeInFromBlack(); - ++gTasks[taskId].data[0]; + gTasks[taskId].tState++; break; case 3: if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) @@ -455,5 +458,5 @@ void FieldCB_RushInjuredPokemonToCenter(void) LockPlayerFieldControls(); palette_bg_faded_fill_black(); taskId = CreateTask(Task_RushInjuredPokemonToCenter, 10); - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; } From 3de70980e550ead4eb5025b7eaa2c20335044ba4 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 5 Oct 2022 13:10:26 -0400 Subject: [PATCH 085/105] Document text window --- graphics/help_system/msg_window.png | Bin 0 -> 160 bytes .../std_menu.pal} | 0 .../{unk_841F1C8.png => menu_message.png} | Bin .../{unk_8471B6C.png => quest_log.png} | Bin .../{unk_8470B0C.png => signpost.png} | Bin .../text_window/{unk_8471A4C.png => std.png} | Bin .../{unk_8470D6C.png => type1.png} | Bin .../{unk_84717CC.png => type10.png} | Bin .../{unk_8470E8C.png => type2.png} | Bin .../{unk_8470FCC.png => type3.png} | Bin .../{unk_84710EC.png => type4.png} | Bin .../{unk_847120C.png => type5.png} | Bin .../{unk_847132C.png => type6.png} | Bin .../{unk_847144C.png => type7.png} | Bin .../{unk_847156C.png => type8.png} | Bin .../{unk_84716AC.png => type9.png} | Bin .../unused.png} | Bin graphics/unknown/unknown_84566a8.bin | Bin 640 -> 0 bytes graphics_file_rules.mk | 2 +- include/graphics.h | 2 +- include/help_message.h | 2 + include/new_menu_helpers.h | 4 +- include/quest_log.h | 1 - include/script.h | 8 +- include/text_window.h | 20 ++-- include/text_window_graphics.h | 10 +- src/bag.c | 6 +- src/battle_bg.c | 6 +- src/battle_records.c | 2 +- src/berry_crush.c | 4 +- src/berry_pouch.c | 8 +- src/berry_powder.c | 2 +- src/buy_menu_helpers.c | 6 +- src/clear_save_data_screen.c | 4 +- src/coins.c | 2 +- src/daycare.c | 2 +- src/dodrio_berry_picking.c | 14 +-- src/easy_chat_3.c | 2 +- src/evolution_scene.c | 2 +- src/fame_checker.c | 2 +- src/field_control_avatar.c | 14 +-- src/field_message_box.c | 6 +- src/field_specials.c | 2 +- src/hall_of_fame.c | 2 +- src/help_message.c | 12 +-- src/item_pc.c | 10 +- src/learn_move.c | 2 +- src/link.c | 2 +- src/list_menu.c | 2 +- src/mail.c | 2 +- src/main_menu.c | 6 +- src/map_name_popup.c | 6 +- src/menu.c | 2 +- src/mon_markings.c | 2 +- src/money.c | 2 +- src/mystery_gift_menu.c | 6 +- src/naming_screen.c | 2 +- src/new_menu_helpers.c | 62 ++++++------ src/oak_speech.c | 8 +- src/option_menu.c | 12 +-- src/party_menu.c | 14 +-- src/pokemon_jump.c | 6 +- src/pokemon_special_anim_scene.c | 2 +- src/pokemon_storage_system_misc.c | 4 +- src/pokemon_storage_system_tasks.c | 4 +- src/quest_log.c | 6 +- src/scrcmd.c | 4 +- src/script.c | 18 ++-- src/seagallop.c | 2 +- src/slot_machine.c | 6 +- src/start_menu.c | 4 +- src/text.c | 2 +- src/text_window.c | 95 ++++++++++-------- src/text_window_graphics.c | 85 ++++++++-------- src/tm_case.c | 10 +- src/trade.c | 8 +- src/union_room_battle.c | 2 +- src/union_room_chat_display.c | 6 +- 78 files changed, 288 insertions(+), 263 deletions(-) create mode 100644 graphics/help_system/msg_window.png rename graphics/{tm_case/unk_841F408.pal => interface/std_menu.pal} (100%) rename graphics/text_window/{unk_841F1C8.png => menu_message.png} (100%) rename graphics/text_window/{unk_8471B6C.png => quest_log.png} (100%) rename graphics/text_window/{unk_8470B0C.png => signpost.png} (100%) rename graphics/text_window/{unk_8471A4C.png => std.png} (100%) rename graphics/text_window/{unk_8470D6C.png => type1.png} (100%) rename graphics/text_window/{unk_84717CC.png => type10.png} (100%) rename graphics/text_window/{unk_8470E8C.png => type2.png} (100%) rename graphics/text_window/{unk_8470FCC.png => type3.png} (100%) rename graphics/text_window/{unk_84710EC.png => type4.png} (100%) rename graphics/text_window/{unk_847120C.png => type5.png} (100%) rename graphics/text_window/{unk_847132C.png => type6.png} (100%) rename graphics/text_window/{unk_847144C.png => type7.png} (100%) rename graphics/text_window/{unk_847156C.png => type8.png} (100%) rename graphics/text_window/{unk_84716AC.png => type9.png} (100%) rename graphics/{unknown/unk_841EF48.png => text_window/unused.png} (100%) delete mode 100644 graphics/unknown/unknown_84566a8.bin diff --git a/graphics/help_system/msg_window.png b/graphics/help_system/msg_window.png new file mode 100644 index 0000000000000000000000000000000000000000..b03b4096ad102b174480959724aa8fa83536a65c GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0YEIk!VDyf)1Q6eaK) zI5__AEmoMrG3DD7!=STEj(!75d7XVHu;v~^P%%SsH$(N&6PMn#1NCZqx;TbtOibR< z&HCp!lSD^Y1snH)RRXggYzRBSz~mhG&{~IKwNp-Ki%KiQwYk3MFMkf`1ZrdOboFyt I=akR{0D?_F0ssI2 literal 0 HcmV?d00001 diff --git a/graphics/tm_case/unk_841F408.pal b/graphics/interface/std_menu.pal similarity index 100% rename from graphics/tm_case/unk_841F408.pal rename to graphics/interface/std_menu.pal diff --git a/graphics/text_window/unk_841F1C8.png b/graphics/text_window/menu_message.png similarity index 100% rename from graphics/text_window/unk_841F1C8.png rename to graphics/text_window/menu_message.png diff --git a/graphics/text_window/unk_8471B6C.png b/graphics/text_window/quest_log.png similarity index 100% rename from graphics/text_window/unk_8471B6C.png rename to graphics/text_window/quest_log.png diff --git a/graphics/text_window/unk_8470B0C.png b/graphics/text_window/signpost.png similarity index 100% rename from graphics/text_window/unk_8470B0C.png rename to graphics/text_window/signpost.png diff --git a/graphics/text_window/unk_8471A4C.png b/graphics/text_window/std.png similarity index 100% rename from graphics/text_window/unk_8471A4C.png rename to graphics/text_window/std.png diff --git a/graphics/text_window/unk_8470D6C.png b/graphics/text_window/type1.png similarity index 100% rename from graphics/text_window/unk_8470D6C.png rename to graphics/text_window/type1.png diff --git a/graphics/text_window/unk_84717CC.png b/graphics/text_window/type10.png similarity index 100% rename from graphics/text_window/unk_84717CC.png rename to graphics/text_window/type10.png diff --git a/graphics/text_window/unk_8470E8C.png b/graphics/text_window/type2.png similarity index 100% rename from graphics/text_window/unk_8470E8C.png rename to graphics/text_window/type2.png diff --git a/graphics/text_window/unk_8470FCC.png b/graphics/text_window/type3.png similarity index 100% rename from graphics/text_window/unk_8470FCC.png rename to graphics/text_window/type3.png diff --git a/graphics/text_window/unk_84710EC.png b/graphics/text_window/type4.png similarity index 100% rename from graphics/text_window/unk_84710EC.png rename to graphics/text_window/type4.png diff --git a/graphics/text_window/unk_847120C.png b/graphics/text_window/type5.png similarity index 100% rename from graphics/text_window/unk_847120C.png rename to graphics/text_window/type5.png diff --git a/graphics/text_window/unk_847132C.png b/graphics/text_window/type6.png similarity index 100% rename from graphics/text_window/unk_847132C.png rename to graphics/text_window/type6.png diff --git a/graphics/text_window/unk_847144C.png b/graphics/text_window/type7.png similarity index 100% rename from graphics/text_window/unk_847144C.png rename to graphics/text_window/type7.png diff --git a/graphics/text_window/unk_847156C.png b/graphics/text_window/type8.png similarity index 100% rename from graphics/text_window/unk_847156C.png rename to graphics/text_window/type8.png diff --git a/graphics/text_window/unk_84716AC.png b/graphics/text_window/type9.png similarity index 100% rename from graphics/text_window/unk_84716AC.png rename to graphics/text_window/type9.png diff --git a/graphics/unknown/unk_841EF48.png b/graphics/text_window/unused.png similarity index 100% rename from graphics/unknown/unk_841EF48.png rename to graphics/text_window/unused.png diff --git a/graphics/unknown/unknown_84566a8.bin b/graphics/unknown/unknown_84566a8.bin deleted file mode 100644 index 2fc4a648adea21c5ff1429ee9abe4792fc464705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 pcmcb67Xr=z!GA0ODt&jLresultsWindowId, PIXEL_FILL(0)); break; case 2: - TextWindow_SetStdFrame0_WithPal(spriteManager->resultsWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(spriteManager->resultsWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(spriteManager->resultsWindowId, FALSE, 541, 13); break; case 3: @@ -3105,7 +3105,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId) tWindowId = AddWindow(&sWindowTemplate_BerryCrushRankings); PutWindowTilemap(tWindowId); FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0)); - TextWindow_SetStdFrame0_WithPal(tWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(tWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 0x21D, 0xD); break; case 1: diff --git a/src/berry_pouch.c b/src/berry_pouch.c index b18e0cd4a..e113fd2d9 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -1411,10 +1411,10 @@ static void BerryPouchInitWindows(void) u8 i; InitWindows(sWindowTemplates_Main); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x001, 0xE0); - TextWindow_LoadResourcesStdFrame0(0, 0x013, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x00A, 0xC0); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); + LoadUserWindowGfx(0, 0x001, 0xE0); + LoadMenuMessageWindowGfx(0, 0x013, 0xD0); + LoadStdWindowGfx(0, 0x00A, 0xC0); + LoadPalette(gStandardMenuPalette, 0xF0, 0x20); for (i = 0; i < 3; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(0); diff --git a/src/berry_powder.c b/src/berry_powder.c index fdb94feae..9482d1a57 100644 --- a/src/berry_powder.c +++ b/src/berry_powder.c @@ -119,7 +119,7 @@ void DisplayBerryPowderVendorMenu(void) sBerryPowderVendorWindowId = AddWindow(&template); FillWindowPixelBuffer(sBerryPowderVendorWindowId, 0); PutWindowTilemap(sBerryPowderVendorWindowId); - TextWindow_SetStdFrame0_WithPal(sBerryPowderVendorWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sBerryPowderVendorWindowId, 0x21D, 0xD0); DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 0xD, GetBerryPowder()); } } diff --git a/src/buy_menu_helpers.c b/src/buy_menu_helpers.c index c0fef9fd8..ccf13ad45 100644 --- a/src/buy_menu_helpers.c +++ b/src/buy_menu_helpers.c @@ -162,9 +162,9 @@ void BuyMenuInitWindows(bool32 isSellingTM) else InitWindows(sShopBuyMenuWindowTemplatesTM); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x1, 0xD0); - TextWindow_LoadResourcesStdFrame0(0, 0x13, 0xE0); - TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xF0); + LoadUserWindowGfx(0, 0x1, 0xD0); + LoadMenuMessageWindowGfx(0, 0x13, 0xE0); + LoadStdWindowGfx(0, 0xA, 0xF0); PutWindowTilemap(0); PutWindowTilemap(4); PutWindowTilemap(5); diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 460f9c4d6..4cddf5f03 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -101,8 +101,8 @@ static void Task_DrawClearSaveDataScreen(u8 taskId) SaveClearScreen_GpuInit(); break; case 3: - TextWindow_SetStdFrame0_WithPal(0, 0x001, 0xF0); - TextWindow_SetStdFrame0_WithPal(1, 0x001, 0xF0); + LoadStdWindowGfx(0, 0x001, 0xF0); + LoadStdWindowGfx(1, 0x001, 0xF0); break; case 4: DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF); diff --git a/src/coins.c b/src/coins.c index 3a8019b75..c4d0819a8 100644 --- a/src/coins.c +++ b/src/coins.c @@ -83,7 +83,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) sCoinsWindowId = AddWindow(&template); FillWindowPixelBuffer(sCoinsWindowId, 0); PutWindowTilemap(sCoinsWindowId); - TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sCoinsWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x21D, 0xD); AddTextPrinterParameterized(sCoinsWindowId, FONT_2, gText_Coins_2, 0, 0, 0xFF, 0); PrintCoinsString(coinAmount); diff --git a/src/daycare.c b/src/daycare.c index 45f29a641..d7d2a8caa 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1956,7 +1956,7 @@ static void CB2_EggHatch_1(void) case 9: if (!IsTextPrinterActive(sEggHatchData->windowId)) { - LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0); + LoadUserWindowGfx2(sEggHatchData->windowId, 0x140, 0xE0); CreateYesNoMenu(&sYesNoWinTemplate, FONT_3, 0, 2, 0x140, 0xE, 0); sEggHatchData->CB2_state++; } diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 69b42f24a..d339a2277 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -3002,7 +3002,7 @@ static void PrintRecordsText(u8 windowId) recordNums[1] = gSaveBlock2Ptr->berryPick.bestScore; recordNums[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; - TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0); + LoadStdWindowGfx(windowId, 0x21D, 0xD0); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_2, sRecordsTexts[0], 1, 1, TEXT_SKIP_DRAW, NULL); @@ -4160,13 +4160,13 @@ static void ResetBerryAndStatusBarSprites(void) static void LoadWindowFrameGfx(u8 frameId) { - LoadBgTiles(BG_INTERFACE, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); - LoadPalette(GetWindowFrameTilesPal(frameId)->palette, 0xA0, 0x20); + LoadBgTiles(BG_INTERFACE, GetUserWindowGraphics(frameId)->tiles, 0x120, 1); + LoadPalette(GetUserWindowGraphics(frameId)->palette, 0xA0, 0x20); } -static void LoadUserWindowFrameGfx(void) +static void DBP_LoadStdWindowGfx(void) { - TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xB0); + LoadStdWindowGfx(0, 0xA, 0xB0); } static void ResetGfxState(void) @@ -4341,7 +4341,7 @@ static void LoadGfx(void) break; case 4: LoadWindowFrameGfx(gSaveBlock2Ptr->optionsWindowFrameType); - LoadUserWindowFrameGfx(); + DBP_LoadStdWindowGfx(); sGfx->state++; break; default: @@ -4942,7 +4942,7 @@ static bool32 LoadBgGfx(void) return FALSE; break; case 5: - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); break; default: sGfx->loadState = 0; diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c index 5cb4b741b..6b135cdf2 100644 --- a/src/easy_chat_3.c +++ b/src/easy_chat_3.c @@ -1347,7 +1347,7 @@ static void EC_AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *st static void PrintECInstructionsText(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); - TextWindow_SetUserSelectedFrame(1, 1, 0xE0); + LoadUserWindowGfx(1, 1, 0xE0); DrawTextBorderOuter(1, 1, 14); PrintECInterfaceTextById(0); PutWindowTilemap(1); diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 4b2a0fc70..2531cfc31 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -1331,7 +1331,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - LoadUserWindowBorderGfx(0, 0xA8, 0xE0); + LoadUserWindowGfx2(0, 0xA8, 0xE0); CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, FONT_3, 0, 2, 0xA8, 0xE, 0); sEvoCursorPos = 0; gTasks[taskId].tLearnMoveState++; diff --git a/src/fame_checker.c b/src/fame_checker.c index 3d7b15f2d..36516b986 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -667,7 +667,7 @@ static void MainCB2_LoadFameChecker(void) LoadPalette(gFameCheckerBgPals + 0x10, 0x10, 0x20); CopyToBgTilemapBufferRect(2, gFameCheckerBg2Tilemap, 0, 0, 32, 32); CopyToBgTilemapBufferRect_ChangePalette(1, sFameCheckerTilemap, 30, 0, 32, 32, 0x11); - LoadPalette(stdpal_get(2), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20); gMain.state++; break; case 4: diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 7e00cc778..e820c992e 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -197,7 +197,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) u16 metatileBehavior; u32 metatileAttributes; - ResetFacingNpcOrSignPostVars(); + ResetFacingNpcOrSignpostVars(); playerDirection = GetPlayerFacingDirection(); GetPlayerPosition(&position); metatileAttributes = MapGridGetMetatileAttributeAt(position.x, position.y, METATILE_ATTRIBUTES_ALL); @@ -507,7 +507,7 @@ static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position } if (signpostType != SIGNPOST_NA) - MsgSetSignPost(); + MsgSetSignpost(); gSpecialVar_Facing = direction; return bgEvent->bgUnion.script; } @@ -577,22 +577,22 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me return CableClub_EventScript_ShowBattleRecords; if (MetatileBehavior_IsIndigoPlateauSign1(metatileBehavior) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_Indigo_UltimateGoal; } if (MetatileBehavior_IsIndigoPlateauSign2(metatileBehavior) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_Indigo_HighestAuthority; } if (MetatileBehavior_IsPlayerFacingPokeMartSign(metatileBehavior, direction) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_PokemartSign; } if (MetatileBehavior_IsPlayerFacingPokemonCenterSign(metatileBehavior, direction) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_PokecenterSign; } return NULL; @@ -809,7 +809,7 @@ static void SetUpWalkIntoSignScript(const u8 *script, u8 playerDirection) gSpecialVar_Facing = playerDirection; ScriptContext_SetupScript(script); SetWalkingIntoSignVars(); - MsgSetSignPost(); + MsgSetSignpost(); } static const u8 *GetSignpostScriptAtMapPosition(struct MapPosition * position) diff --git a/src/field_message_box.c b/src/field_message_box.c index 8f75ce78d..74f441c88 100644 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -28,12 +28,12 @@ static void Task_DrawFieldMessageBox(u8 taskId) if (gQuestLogState == QL_STATE_PLAYBACK) { gTextFlags.autoScroll = TRUE; - TextWindow_LoadTilesStdFrame1(0, 0x200); + LoadQuestLogWindowTiles(0, 0x200); } - else if (!IsMsgSignPost()) + else if (!IsMsgSignpost()) LoadStdWindowFrameGfx(); else - LoadSignPostWindowFrameGfx(); + LoadSignpostWindowFrameGfx(); task->data[0]++; break; case 1: diff --git a/src/field_specials.c b/src/field_specials.c index 1884507ad..cf500e59f 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1096,7 +1096,7 @@ void DrawElevatorCurrentFloorWindow(void) if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE) { sElevatorCurrentFloorWindowId = AddWindow(&sElevatorCurrentFloorWindowTemplate); - TextWindow_SetStdFrame0_WithPal(sElevatorCurrentFloorWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sElevatorCurrentFloorWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(sElevatorCurrentFloorWindowId, FALSE, 0x21D, 0xD); AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, FONT_2, gText_NowOn, 0, 2, 0xFF, NULL); floorname = sFloorNamePointers[gSpecialVar_0x8005]; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 7d5423e09..92248ac4c 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -620,7 +620,7 @@ static void Task_Hof_SpawnPlayerPic(u8 taskId) ShowBg(3); gTasks[taskId].data[4] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 0x78, 0x48, 6, 0xFFFF); AddWindow(&sWindowTemplate); - TextWindow_SetStdFrame0_WithPal(1, 0x21D, 0xD0); + LoadStdWindowGfx(1, 0x21D, 0xD0); gTasks[taskId].data[3] = 120; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; } diff --git a/src/help_message.c b/src/help_message.c index 5f3af1668..bb8975844 100644 --- a/src/help_message.c +++ b/src/help_message.c @@ -5,7 +5,7 @@ static EWRAM_DATA u8 sHelpMessageWindowId = 0; -const u8 gUnknown_84566A8[] = INCBIN_U8("graphics/unknown/unknown_84566a8.bin"); +const u8 gHelpMessageWindow_Gfx[] = INCBIN_U8("graphics/help_system/msg_window.4bpp"); static const struct WindowTemplate sHelpMessageWindowTemplate = { .bg = 0, @@ -19,12 +19,12 @@ static const struct WindowTemplate sHelpMessageWindowTemplate = { void MapNamePopupWindowIdSetDummy(void) { - sHelpMessageWindowId = 0xFF; + sHelpMessageWindowId = WINDOW_NONE; } u8 CreateHelpMessageWindow(void) { - if (sHelpMessageWindowId == 0xFF) + if (sHelpMessageWindowId == WINDOW_NONE) { sHelpMessageWindowId = AddWindow(&sHelpMessageWindowTemplate); PutWindowTilemap(sHelpMessageWindowId); @@ -34,7 +34,7 @@ u8 CreateHelpMessageWindow(void) void DestroyHelpMessageWindow(u8 a0) { - if (sHelpMessageWindowId != 0xFF) + if (sHelpMessageWindowId != WINDOW_NONE) { FillWindowPixelBuffer(sHelpMessageWindowId, PIXEL_FILL(0)); ClearWindowTilemap(sHelpMessageWindowId); @@ -43,13 +43,13 @@ void DestroyHelpMessageWindow(u8 a0) CopyWindowToVram(sHelpMessageWindowId, a0); RemoveWindow(sHelpMessageWindowId); - sHelpMessageWindowId = 0xFF; + sHelpMessageWindowId = WINDOW_NONE; } } void sub_8112F18(u8 windowId) { - const u8 *ptr = gUnknown_84566A8; + const u8 *ptr = gHelpMessageWindow_Gfx; u8 *buffer; u8 i, j; u8 width, height; diff --git a/src/item_pc.c b/src/item_pc.c index f40eb1758..22ba74f04 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -1069,11 +1069,11 @@ static void ItemPc_InitWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0); - TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0); - TextWindow_LoadResourcesStdFrame0(0, 0x3AC, 0xB0); - LoadPalette(stdpal_get(2), 0xD0, 0x20); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); + LoadUserWindowGfx(0, 0x3C0, 0xE0); + LoadStdWindowGfx(0, 0x3A3, 0xC0); + LoadMenuMessageWindowGfx(0, 0x3AC, 0xB0); + LoadPalette(GetTextWindowPalette(2), 0xD0, 0x20); + LoadPalette(gStandardMenuPalette, 0xF0, 0x20); for (i = 0; i < 3; i++) { FillWindowPixelBuffer(i, 0x00); diff --git a/src/learn_move.c b/src/learn_move.c index 165b1adb4..7ebdcb27b 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -398,7 +398,7 @@ static void MoveRelearnerLoadBgGfx(void) FillWindowPixelBuffer(7, PIXEL_FILL(1)); FillBgTilemapBufferRect(0, 0x000, 0, 0, 30, 20, 0xF); SetBgTilemapBuffer(1, sMoveRelearner->bg1TilemapBuffer); - TextWindow_SetUserSelectedFrame(0, 1, 0xE0); + LoadUserWindowGfx(0, 1, 0xE0); ListMenuLoadStdPalAt(0xD0, 1); LoadPalette(gUnknown_8E97DDC, 0x00, 0x20); DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8E97DFC, 0, 0, 0); diff --git a/src/link.c b/src/link.c index 21565811a..6473de242 100644 --- a/src/link.c +++ b/src/link.c @@ -1487,7 +1487,7 @@ void CB2_LinkError(void) SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); - LoadPalette(gTMCaseMainWindowPalette, 0xf0, 0x20); + LoadPalette(gStandardMenuPalette, 0xf0, 0x20); gSoftResetDisabled = FALSE; CreateTask(Task_DestroySelf, 0); StopMapMusic(); diff --git a/src/list_menu.c b/src/list_menu.c index a914f8bc9..b18fd5151 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -91,7 +91,7 @@ u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str switch (arg2) { case 2: - TextWindow_SetUserSelectedFrame(sMysteryGiftLinkMenu.windowId, tileNum, palNum); + LoadUserWindowGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum); case 1: DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16); break; diff --git a/src/mail.c b/src/mail.c index ebe5e0312..121f5045b 100644 --- a/src/mail.c +++ b/src/mail.c @@ -560,7 +560,7 @@ static bool8 DoInitMailView(void) CopyBgTilemapBufferToVram(2); break; case 12: - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); gPlttBufferUnfaded[15 * 16 + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0]; gPlttBufferFaded[15 * 16 + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0]; gPlttBufferUnfaded[15 * 16 + 11] = sGfxHeaders[sMailViewResources->mailType].textpals[1]; diff --git a/src/main_menu.c b/src/main_menu.c index bfec4a7ad..011bc2308 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -677,14 +677,14 @@ static void PrintBadgeCount(void) static void LoadUserFrameToBg(u8 bgId) { - LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20); + LoadBgTiles(bgId, GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1); + LoadPalette(GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20); MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]); } static void SetStdFrame0OnBg(u8 bgId) { - TextWindow_SetStdFrame0_WithPal(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, 0x20); + LoadStdWindowGfx(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, 0x20); MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]); } diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 8d6219858..97a98678b 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -172,13 +172,13 @@ static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer) windowId = AddWindow(&windowTemplate); if (palintoFadedBuffer) { - LoadPalette(stdpal_get(3), 0xd0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xd0, 0x20); } else { - CpuCopy16(stdpal_get(3), &gPlttBufferUnfaded[0xd0], 0x20); + CpuCopy16(GetTextWindowPalette(3), &gPlttBufferUnfaded[0xd0], 0x20); } - sub_814FF6C(windowId, r6); + LoadStdWindowTiles(windowId, r6); DrawTextBorderOuter(windowId, r6, 0xD); PutWindowTilemap(windowId); MapNamePopupPrintMapNameOnWindow(windowId); diff --git a/src/menu.c b/src/menu.c index 23f047ea1..f09ef59df 100644 --- a/src/menu.c +++ b/src/menu.c @@ -180,7 +180,7 @@ u8 CreateTopBarWindowLoadPalette(u8 bg, u8 width, u8 yPos, u8 palette, u16 baseT palette = 15 * 16; else palette *= 16; - LoadPalette(stdpal_get(2), palette, 0x20); + LoadPalette(GetTextWindowPalette(2), palette, 0x20); return sTopBarWindowId; } diff --git a/src/mon_markings.c b/src/mon_markings.c index da633aacf..6be89222b 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -290,7 +290,7 @@ void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr) static void BufferMenuWindowTiles(void) { - const struct TextWindowGraphics *frame = GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType); + const struct TextWindowGraphics *frame = GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType); sMenu->frameTiles = frame->tiles; sMenu->framePalette = frame->palette; sMenu->tileLoadState = 0; diff --git a/src/money.c b/src/money.c index cff3d8d46..7ba5b6375 100644 --- a/src/money.c +++ b/src/money.c @@ -124,7 +124,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y) sMoneyBoxWindowId = AddWindow(&template); FillWindowPixelBuffer(sMoneyBoxWindowId, 0); PutWindowTilemap(sMoneyBoxWindowId); - TextWindow_SetStdFrame0_WithPal(sMoneyBoxWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sMoneyBoxWindowId, 0x21D, 0xD0); PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x21D, 13, amount); } diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 8ed6e80d4..e21cd6724 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -390,8 +390,8 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) SetBgTilemapBuffer(1, Alloc(0x800)); SetBgTilemapBuffer(0, Alloc(0x800)); - LoadUserWindowBorderGfx(0, 10, 0xE0); - DrawWindowBorderWithStdpal3(0, 1, 0xF0); + LoadUserWindowGfx2(0, 10, 0xE0); + LoadStdWindowGfxOnBg(0, 1, 0xF0); DecompressAndLoadBgGfxUsingHeap(3, gUnkTextboxBorderGfx, 0x100, 0, 0); InitWindows(sMainWindows); DeactivateAllTextPrinters(); @@ -403,7 +403,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) break; case 1: LoadPalette(gUnkTextboxBorderPal, 0, 0x20); - LoadPalette(stdpal_get(2), 0xd0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xd0, 0x20); FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); diff --git a/src/naming_screen.c b/src/naming_screen.c index 57560c3d7..514629ae4 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1874,7 +1874,7 @@ static void LoadPalettes(void) { LoadPalette(gNamingScreenMenu_Pal, 0, sizeof(gNamingScreenMenu_Pal)); LoadPalette(gNamingScreenKeyboard_Pal, 0xA0, 0x20); - LoadPalette(stdpal_get(2), 0xB0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xB0, 0x20); } static void DecompressToBgTilemapBuffer(u8 bg, const u32 *src) diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index 58952c3c0..8f60a8628 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -19,21 +19,26 @@ static EWRAM_DATA u16 sTempTileDataBufferCursor = {0}; static EWRAM_DATA void *sTempTileDataBuffers[0x20] = {NULL}; static EWRAM_DATA u8 sStartMenuWindowId = {0}; -static const u16 gUnknown_841EF48[] = INCBIN_U16("graphics/unknown/unk_841EF48.4bpp"); +static const u16 sUnusedWindow_Gfx[] = INCBIN_U16("graphics/text_window/unused.4bpp"); +const u16 gMenuMessageWindow_Gfx[] = INCBIN_U16("graphics/text_window/menu_message.4bpp"); -const u16 gUnknown_841F1C8[] = INCBIN_U16("graphics/text_window/unk_841F1C8.4bpp"); -const u16 gTMCaseMainWindowPalette[] = INCBIN_U16("graphics/tm_case/unk_841F408.gbapal"); +const u16 gStandardMenuPalette[] = INCBIN_U16("graphics/interface/std_menu.gbapal"); -static const u8 gUnknown_841F428[] = { 8, 4, 1 }; +static const u8 sTextSpeedFrameDelays[] = +{ + [OPTIONS_TEXT_SPEED_SLOW] = 8, + [OPTIONS_TEXT_SPEED_MID] = 4, + [OPTIONS_TEXT_SPEED_FAST] = 1 +}; static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = { { .bg = 0, - .tilemapLeft = 0x2, - .tilemapTop = 0xF, - .width = 0x1A, - .height = 0x4, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, .paletteNum = DLG_WINDOW_PALETTE_NUM, .baseBlock = 0x198, }, @@ -43,10 +48,10 @@ static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = static const struct WindowTemplate sYesNo_WindowTemplate = { .bg = 0, - .tilemapLeft = 0x15, - .tilemapTop = 0x9, - .width = 0x6, - .height = 0x4, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 6, + .height = 4, .paletteNum = DLG_WINDOW_PALETTE_NUM, .baseBlock = 0x125, }; @@ -455,14 +460,14 @@ void LoadStdWindowFrameGfx(void) if (gQuestLogState == QL_STATE_PLAYBACK) { gTextFlags.autoScroll = 1; - TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); + LoadQuestLogWindowTiles(0, DLG_WINDOW_BASE_TILE_NUM); } else { Menu_LoadStdPal(); - TextWindow_LoadResourcesStdFrame0(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + LoadMenuMessageWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); } - TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); + LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); } void DrawDialogueFrame(u8 windowId, bool8 copyToVram) @@ -522,7 +527,7 @@ static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - if (!IsMsgSignPost() || gQuestLogState == QL_STATE_PLAYBACK) + if (!IsMsgSignpost() || gQuestLogState == QL_STATE_PLAYBACK) { FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); @@ -609,35 +614,36 @@ void sub_80F7768(u8 windowId, bool8 copyToVram) if (gQuestLogState == QL_STATE_PLAYBACK) { gTextFlags.autoScroll = 1; - TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); + LoadQuestLogWindowTiles(0, DLG_WINDOW_BASE_TILE_NUM); } else { - TextWindow_LoadResourcesStdFrame0(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + LoadMenuMessageWindowGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); } DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM); } void Menu_LoadStdPal(void) { - LoadPalette(gTMCaseMainWindowPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); + LoadPalette(gStandardMenuPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); } void Menu_LoadStdPalAt(u16 offset) { - LoadPalette(gTMCaseMainWindowPalette, offset, 0x14); + LoadPalette(gStandardMenuPalette, offset, 0x14); } -static const u16 *GetTmCaseMainWindowPalette(void) +// Unused +static const u16 *GetStdMenuPalette(void) { - return gTMCaseMainWindowPalette; + return gStandardMenuPalette; } static u16 GetStdPalColor(u8 colorNum) { if (colorNum > 0xF) colorNum = 0; - return gTMCaseMainWindowPalette[colorNum]; + return gStandardMenuPalette[colorNum]; } void DisplayItemMessageOnField(u8 taskId, u8 fontId, const u8 *string, TaskFunc callback) @@ -662,7 +668,7 @@ u8 GetTextSpeedSetting(void) u32 speed; if (gSaveBlock2Ptr->optionsTextSpeed > OPTIONS_TEXT_SPEED_FAST) gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID; - return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed]; + return sTextSpeedFrameDelays[gSaveBlock2Ptr->optionsTextSpeed]; } u8 CreateStartMenuWindow(u8 height) @@ -702,7 +708,7 @@ u16 GetStdWindowBaseTileNum(void) void DrawHelpMessageWindowWithText(const u8 * text) { - sub_814FE6C(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + LoadHelpMessageWindowGfx(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); PrintTextOnHelpMessageWindow(text, 2); } @@ -711,11 +717,11 @@ void DestroyHelpMessageWindow_(void) DestroyHelpMessageWindow(2); } -void LoadSignPostWindowFrameGfx(void) +void LoadSignpostWindowFrameGfx(void) { Menu_LoadStdPal(); - sub_814FEEC(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); - TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM); + LoadSignpostWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM); } void SetDefaultFontsPointer(void) diff --git a/src/oak_speech.c b/src/oak_speech.c index 9dd2d5175..7fb20aa4e 100644 --- a/src/oak_speech.c +++ b/src/oak_speech.c @@ -548,7 +548,7 @@ static void Task_OaksSpeech1(u8 taskId) InitTextBoxGfxAndPrinters(); Menu_LoadStdPalAt(0xD0); LoadPalette(sHelpDocsPalette, 0x000, 0x080); - LoadPalette(stdpal_get(2) + 15, 0x000, 0x002); + LoadPalette(GetTextWindowPalette(2) + 15, 0x000, 0x002); break; case 5: sOakSpeechResources->textSpeed = GetTextSpeedSetting(); @@ -629,7 +629,7 @@ static void Task_OakSpeech4(u8 taskId) } CopyBgTilemapBufferToVram(1); } - BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]); + BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, GetTextWindowPalette(2)[15]); gTasks[taskId].func = Task_OaksSpeech2; } @@ -642,7 +642,7 @@ static void Task_OaksSpeech2(u8 taskId) gTasks[taskId].data[15] = 1; if (sOakSpeechResources->unk_0012 < 2) { - BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]); + BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, GetTextWindowPalette(2)[15]); } } else @@ -650,7 +650,7 @@ static void Task_OaksSpeech2(u8 taskId) if (sOakSpeechResources->unk_0012 != 0) { gTasks[taskId].data[15] = -1; - BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]); + BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, GetTextWindowPalette(2)[15]); } else return; diff --git a/src/option_menu.c b/src/option_menu.c index 6cbf9e18a..49de39a62 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -337,17 +337,17 @@ static bool8 LoadOptionMenuPalette(void) switch (sOptionMenuPtr->loadPaletteState) { case 0: - LoadBgTiles(1, GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadBgTiles(1, GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); break; case 1: - LoadPalette(GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); + LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); break; case 2: LoadPalette(sOptionMenuPalette, 0x10, 0x20); - LoadPalette(stdpal_get(2), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20); break; case 3: - DrawWindowBorderWithStdpal3(1, 0x1B3, 0x30); + LoadStdWindowGfxOnBg(1, 0x1B3, 0x30); break; default: return TRUE; @@ -381,8 +381,8 @@ static void Task_OptionMenu(u8 taskId) sOptionMenuPtr->loadState++; break; case 2: - LoadBgTiles(1, GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); - LoadPalette(GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); + LoadBgTiles(1, GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); BufferOptionMenuString(sOptionMenuPtr->cursorPos); break; case 3: diff --git a/src/party_menu.c b/src/party_menu.c index 33293ed9c..400761801 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -2006,8 +2006,8 @@ static void Task_FirstBattleEnterParty_WaitFadeNormal(u8 taskId) { if (!gPaletteFade.active) { - TextWindow_SetUserSelectedFrame(0, 0x4F, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x58, 0xF0); + LoadUserWindowGfx(0, 0x4F, 0xD0); + LoadStdWindowGfx(0, 0x58, 0xF0); if (gPartyMenu.action == PARTY_ACTION_USE_ITEM) DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); else @@ -2117,10 +2117,10 @@ static void InitPartyMenuWindows(u8 layout) DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; ++i) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - TextWindow_SetUserSelectedFrame(0, 0x4F, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x58, 0xF0); - LoadPalette(stdpal_get(2), 0xC0, 0x20); - LoadPalette(stdpal_get(0), 0xE0, 0x20); + LoadUserWindowGfx(0, 0x4F, 0xD0); + LoadStdWindowGfx(0, 0x58, 0xF0); + LoadPalette(GetTextWindowPalette(2), 0xC0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xE0, 0x20); } static void CreateCancelConfirmWindows(bool8 chooseMultiple) @@ -2603,7 +2603,7 @@ static bool8 FirstBattleEnterParty_CreateWindowAndMsg1Printer(void) { u8 windowId = AddWindow(&sWindowTemplate_FirstBattleOakVoiceover); - TextWindow_LoadResourcesStdFrame0(windowId, 0x4F, 0xE0); + LoadMenuMessageWindowGfx(windowId, 0x4F, 0xE0); DrawDialogFrameWithCustomTileAndPalette(windowId, 1, 0x4F, 0xE); PartyMenu_Oak_PrintText(windowId, gText_OakImportantToGetToKnowPokemonThroughly); return windowId; diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index b0d466704..39e13f786 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -3053,8 +3053,8 @@ static void LoadPokeJumpGfx(void) FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 0x20, 0x20); PrintScoreSuffixes(); PrintScore(0); - DrawWindowBorderWithStdpal3(0, 1, 0xE0); - LoadUserWindowBorderGfx(0, 0x00A, 0xD0); + LoadStdWindowGfxOnBg(0, 1, 0xE0); + LoadUserWindowGfx2(0, 0x00A, 0xD0); CopyBgTilemapBufferToVram(BG_INTERFACE); CopyBgTilemapBufferToVram(BG_VENUSAUR); CopyBgTilemapBufferToVram(BG_BONUSES); @@ -4554,7 +4554,7 @@ static void PrintRecordsText(u16 windowId) recordNums[1] = records->bestJumpScore; recordNums[2] = records->excellentsInRow; - TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0); + LoadStdWindowGfx(windowId, 0x21D, 0xD0); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized5(windowId, FONT_2, gText_PkmnJumpRecords, 0, 0, TEXT_SKIP_DRAW, NULL, 1, 0); diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index ea853322a..2643dd01a 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -341,7 +341,7 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32); LoadBgGfxByAnimType(animType); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - TextWindow_SetUserSelectedFrame(0, 0x000, 0xe0); + LoadUserWindowGfx(0, 0x000, 0xe0); CopyWindowToVram(0, COPYWIN_FULL); ShowBg(0); ShowBg(3); diff --git a/src/pokemon_storage_system_misc.c b/src/pokemon_storage_system_misc.c index 2cfa98152..4bc94532f 100644 --- a/src/pokemon_storage_system_misc.c +++ b/src/pokemon_storage_system_misc.c @@ -167,7 +167,7 @@ static bool8 MultiMove_Function_Single(void) if (!IsDma3ManagerBusyWithBgCopy()) { SetCursorPriorityTo1(); - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); ShowBg(0); return FALSE; } @@ -273,7 +273,7 @@ static bool8 MultiMove_Function_PlaceMons(void) case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); SetCursorPriorityTo1(); ShowBg(0); return FALSE; diff --git a/src/pokemon_storage_system_tasks.c b/src/pokemon_storage_system_tasks.c index bad54118e..3911cf2c1 100644 --- a/src/pokemon_storage_system_tasks.c +++ b/src/pokemon_storage_system_tasks.c @@ -534,7 +534,7 @@ static void Task_InitPokeStorage(u8 taskId) PutWindowTilemap(0); ClearWindowTilemap(1); CpuFill32(0, (void *)VRAM, 0x200); - TextWindow_SetUserSelectedFrame(1, 0xB, 0xE0); + LoadUserWindowGfx(1, 0xB, 0xE0); break; case 3: ResetAllBgCoords(); @@ -2545,7 +2545,7 @@ static bool8 DoShowPartyMenu(void) static void InitPokeStorageBg0(void) { SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); - TextWindow_SetStdFrame0_WithPal(1, 2, 0xD0); + LoadStdWindowGfx(1, 2, 0xD0); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); CopyBgTilemapBufferToVram(0); } diff --git a/src/quest_log.c b/src/quest_log.c index 35a3e43c8..e6e8336f4 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -459,7 +459,7 @@ void sub_8110FCC(void) static bool8 FieldCB2_QuestLogStartPlaybackWithWarpExit(void) { - LoadPalette(stdpal_get(4), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20); SetQuestLogState(QL_STATE_PLAYBACK); FieldCB_DefaultWarpExit(); sQuestLogCurrentScene = (struct UnkStruct_203AE94){}; @@ -469,7 +469,7 @@ static bool8 FieldCB2_QuestLogStartPlaybackWithWarpExit(void) static bool8 FieldCB2_QuestLogStartPlaybackStandingInPlace(void) { - LoadPalette(stdpal_get(4), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20); SetQuestLogState(QL_STATE_PLAYBACK); FieldCB_WarpExitFadeFromBlack(); sQuestLogCurrentScene = (struct UnkStruct_203AE94){}; @@ -1076,7 +1076,7 @@ void QuestLog_BackUpPalette(u16 offset, u16 size) static bool8 FieldCB2_FinalScene(void) { - LoadPalette(stdpal_get(4), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20); DrawPreviouslyOnQuestHeader(0); FieldCB_WarpExitFadeFromBlack(); CreateTask(Task_FinalScene_WaitFade, 0xFF); diff --git a/src/scrcmd.c b/src/scrcmd.c index 6e35e83ea..12d0a9588 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2212,13 +2212,13 @@ bool8 ScrCmd_removecoins(struct ScriptContext * ctx) bool8 ScrCmd_signmsg(struct ScriptContext * ctx) { - MsgSetSignPost(); + MsgSetSignpost(); return FALSE; } bool8 ScrCmd_normalmsg(struct ScriptContext * ctx) { - MsgSetNotSignPost(); + MsgSetNotSignpost(); return FALSE; } diff --git a/src/script.c b/src/script.c index 0ae8d9a8f..641c63572 100644 --- a/src/script.c +++ b/src/script.c @@ -36,7 +36,7 @@ static u8 sMsgBoxWalkawayDisabled; static u8 sMsgBoxIsCancelable; static u8 sQuestLogInput; static u8 sQuestLogInputIsDpad; -static u8 sMsgIsSignPost; +static u8 sMsgIsSignpost; extern ScrCmdFunc gScriptCmdTable[]; extern ScrCmdFunc gScriptCmdTableEnd[]; @@ -276,28 +276,28 @@ bool8 CanWalkAwayToCancelMsgBox(void) return FALSE; } -void MsgSetSignPost(void) +void MsgSetSignpost(void) { - sMsgIsSignPost = TRUE; + sMsgIsSignpost = TRUE; } -void MsgSetNotSignPost(void) +void MsgSetNotSignpost(void) { - sMsgIsSignPost = FALSE; + sMsgIsSignpost = FALSE; } -bool8 IsMsgSignPost(void) +bool8 IsMsgSignpost(void) { - if(sMsgIsSignPost == TRUE) + if(sMsgIsSignpost == TRUE) return TRUE; else return FALSE; } -void ResetFacingNpcOrSignPostVars(void) +void ResetFacingNpcOrSignpostVars(void) { ResetContextNpcTextColor(); - MsgSetNotSignPost(); + MsgSetNotSignpost(); } // The ScriptContext_* functions work with the primary script context, diff --git a/src/seagallop.c b/src/seagallop.c index 0c8ab7500..73e580894 100644 --- a/src/seagallop.c +++ b/src/seagallop.c @@ -212,7 +212,7 @@ static void CB2_SetUpSeagallopScene(void) CopyToBgTilemapBufferRect(3, sWaterTilemap_WB, 0, 0, 32, 32); } LoadPalette(sWaterPal, 0x40, 0x20); - LoadPalette(stdpal_get(2), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20); gMain.state++; break; case 4: diff --git a/src/slot_machine.c b/src/slot_machine.c index 8ec307ea0..1e59680fc 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1975,8 +1975,8 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData LoadPalette(sBgPal_50, 0x50, 0x20); LoadPalette(sBgPal_70, 0x70, 0x60); LoadColor(RGB(30, 30, 31), pal); - LoadUserWindowBorderGfx(0, 0x00A, 0xD0); - DrawWindowBorderWithStdpal3(0, 0x001, 0xF0); + LoadUserWindowGfx2(0, 0x00A, 0xD0); + LoadStdWindowGfxOnBg(0, 0x001, 0xF0); SetBgTilemapBuffer(0, ptr->bg0TilemapBuffer); FillBgTilemapBufferRect_Palette0(0, 0, 0, 2, 32, 30); @@ -1984,7 +1984,7 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData DecompressAndCopyTileDataToVram(1, sBg1Map, 0, 0, 1); CopyBgTilemapBufferToVram(1); - LoadPalette(stdpal_get(2), 0xE0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xE0, 0x20); FillWindowPixelBuffer(1, 0xFF); PutWindowTilemap(1); diff --git a/src/start_menu.c b/src/start_menu.c index 0dc1fce93..27eef2de5 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -870,7 +870,7 @@ bool32 DoSetUpSaveAfterLinkBattle(u8 *state) ResetBgsAndClearDma3BusyFlags(FALSE); InitBgsFromTemplates(0, sBGTemplates_AfterLinkSaveMessage, NELEMS(sBGTemplates_AfterLinkSaveMessage)); InitWindows(sWindowTemplates_AfterLinkSaveMessage); - TextWindow_SetStdFrame0_WithPal(0, 0x008, 0xF0); + LoadStdWindowGfx(0, 0x008, 0xF0); break; case 3: ShowBg(0); @@ -957,7 +957,7 @@ static void PrintSaveStats(void) u8 y; u8 x; sSaveStatsWindowId = AddWindow(&sSaveStatsWindowTemplate); - TextWindow_SetStdFrame0_WithPal(sSaveStatsWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sSaveStatsWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(sSaveStatsWindowId, FALSE, 0x21D, 0x0D); SaveStatToString(SAVE_STAT_LOCATION, gStringVar4, 8); x = (u32)(112 - GetStringWidth(FONT_2, gStringVar4, -1)) / 2; diff --git a/src/text.c b/src/text.c index 15487a889..78521e4e6 100644 --- a/src/text.c +++ b/src/text.c @@ -42,7 +42,7 @@ static const struct SpriteSheet sUnknown_81EA68C[] = static const struct SpritePalette sUnknown_81EA6A4[] = { - {gTMCaseMainWindowPalette, 0x8000}, + {gStandardMenuPalette, 0x8000}, {NULL} }; diff --git a/src/text_window.c b/src/text_window.c index 9c5c7f2b3..ea2d61b86 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -2,95 +2,106 @@ #include "gflib.h" #include "text_window.h" #include "text_window_graphics.h" -#include "quest_log.h" +#include "help_message.h" +#include "new_menu_helpers.h" -extern const u16 gUnknown_841F1C8[]; +static void LoadUserWindowGfxByFrame(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx); -void LoadWindowGfx(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx); - -void sub_814FD04(u8 bgId, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadHelpMessageWindowGfx, but takes a bg id directly +static void LoadHelpMessageWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gUnknown_84566A8, 0x280, destOffset); - LoadPalette(stdpal_get(2), palIdx, 32); + LoadBgTiles(bgId, gHelpMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(2), palIdx, 32); } -void sub_814FD38(u8 bgId, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadMenuMessageWindowGfx, but takes a bg id directly +static void LoadMenuMessageWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gUnknown_841F1C8, 0x280, destOffset); - LoadPalette(stdpal_get(0), palIdx, 32); + LoadBgTiles(bgId, gMenuMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(0), palIdx, 32); } -void sub_814FD6C(u8 bgId, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadSignpostWindowGfx, but takes a bg id directly +static void LoadSignpostWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gUnknown_8470B0C, 0x260, destOffset); - LoadPalette(stdpal_get(1), palIdx, 32); + LoadBgTiles(bgId, gSignpostWindow_Gfx, 0x260, destOffset); + LoadPalette(GetTextWindowPalette(1), palIdx, 32); } -void DrawWindowBorderWithStdpal3(u8 bgId, u16 destOffset, u8 palIdx) +// Equivalent to LoadStdWindowGfx, but takes a bg id directly +void LoadStdWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gStdFrame0, 0x120, destOffset); - LoadPalette(stdpal_get(3), palIdx, 32); + LoadBgTiles(bgId, gStdTextWindow_Gfx, 0x120, destOffset); + LoadPalette(GetTextWindowPalette(3), palIdx, 32); } -void sub_814FDD4(u8 bgId, u16 destOffset) +// Unused +// Equivalent to LoadQuestLogWindowTiles, but takes a bg id directly +static void LoadQuestLogWindowTilesOnBg(u8 bgId, u16 destOffset) { - LoadBgTiles(bgId, gStdFrame1, 0x280, destOffset); + LoadBgTiles(bgId, gQuestLogWindow_Gfx, 0x280, destOffset); } -void sub_814FDF4(u8 bgId, u8 frameType, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadUserWindowGfxByFrame, but takes a bg id directly +static void LoadUserWindowGfxByFrameOnBg(u8 bgId, u8 frameType, u16 destOffset, u8 palIdx) { LoadBgTiles(bgId, gUserFrames[frameType].tiles, 0x120, destOffset); LoadPalette(gUserFrames[frameType].palette, palIdx, 32); } -void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palIdx) +// Identical to LoadUserWindowGfx +void LoadUserWindowGfx2(u8 windowId, u16 destOffset, u8 palIdx) { - LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); + LoadUserWindowGfxByFrame(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); } -void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx) +void LoadHelpMessageWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_84566A8, 0x280, destOffset); - LoadPalette(stdpal_get(2), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gHelpMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(2), palIdx, 32); } -void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 destOffset, u8 palIdx) +void LoadMenuMessageWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_841F1C8, 0x280, destOffset); - LoadPalette(stdpal_get(0), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gMenuMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(0), palIdx, 32); } -void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx) +void LoadSignpostWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8470B0C, 0x260, destOffset); - LoadPalette(stdpal_get(1), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gSignpostWindow_Gfx, 0x260, destOffset); + LoadPalette(GetTextWindowPalette(1), palIdx, 32); } -void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 destOffset, u8 palIdx) +void LoadStdWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); - LoadPalette(stdpal_get(3), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdTextWindow_Gfx, 0x120, destOffset); + LoadPalette(GetTextWindowPalette(3), palIdx, 32); } -void sub_814FF6C(u8 windowId, u16 destOffset) +void LoadStdWindowTiles(u8 windowId, u16 destOffset) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdTextWindow_Gfx, 0x120, destOffset); } -void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset) +void LoadQuestLogWindowTiles(u8 windowId, u16 destOffset) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame1, 0x280, destOffset); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gQuestLogWindow_Gfx, 0x280, destOffset); } -void LoadWindowGfx(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx) +static void LoadUserWindowGfxByFrame(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx) { LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUserFrames[frameType].tiles, 0x120, destOffset); LoadPalette(gUserFrames[frameType].palette, palIdx, 32); } -void TextWindow_SetUserSelectedFrame(u8 windowId, u16 destOffset, u8 palIdx) +void LoadUserWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); + LoadUserWindowGfxByFrame(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); } void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum) @@ -140,7 +151,7 @@ void rbox_fill_rectangle(u8 windowId) FillBgTilemapBufferRect(bgLayer, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x11); } -const u16 *stdpal_get(u8 id) +const u16 *GetTextWindowPalette(u8 id) { switch (id) { @@ -162,5 +173,5 @@ const u16 *stdpal_get(u8 id) break; } - return (const u16 *)(gUnknown_8471DEC) + id; + return (const u16 *)(gTextWindowPalettes) + id; } diff --git a/src/text_window_graphics.c b/src/text_window_graphics.c index 554c9e37a..8f2250362 100644 --- a/src/text_window_graphics.c +++ b/src/text_window_graphics.c @@ -1,36 +1,37 @@ #include "global.h" #include "text_window_graphics.h" -const u16 gUnknown_8470B0C[] = INCBIN_U16("graphics/text_window/unk_8470B0C.4bpp"); +const u16 gSignpostWindow_Gfx[] = INCBIN_U16("graphics/text_window/signpost.4bpp"); -static const u16 gUnknown_8470D6C[] = INCBIN_U16("graphics/text_window/unk_8470D6C.4bpp"); -static const u16 gUnknown_8470E8C[] = INCBIN_U16("graphics/text_window/unk_8470E8C.4bpp"); -static const u16 gUnk_Empty_Space_8470FAC[16] = {0}; -static const u16 gUnknown_8470FCC[] = INCBIN_U16("graphics/text_window/unk_8470FCC.4bpp"); -static const u16 gUnknown_84710EC[] = INCBIN_U16("graphics/text_window/unk_84710EC.4bpp"); -static const u16 gUnknown_847120C[] = INCBIN_U16("graphics/text_window/unk_847120C.4bpp"); -static const u16 gUnknown_847132C[] = INCBIN_U16("graphics/text_window/unk_847132C.4bpp"); -static const u16 gUnknown_847144C[] = INCBIN_U16("graphics/text_window/unk_847144C.4bpp"); -static const u16 gUnknown_847156C[] = INCBIN_U16("graphics/text_window/unk_847156C.4bpp"); -static const u16 gUnk_Empty_Space_847168C[16] = {0}; -static const u16 gUnknown_84716AC[] = INCBIN_U16("graphics/text_window/unk_84716AC.4bpp"); -static const u16 gUnknown_84717CC[] = INCBIN_U16("graphics/text_window/unk_84717CC.4bpp"); -static const u16 gUnk_Empty_Space_84718EC[16] = {0}; -static const u16 gUnknown_847190C[] = INCBIN_U16("graphics/text_window/unk_8470D6C.gbapal"); -static const u16 gUnknown_847192C[] = INCBIN_U16("graphics/text_window/unk_8470E8C.gbapal"); -static const u16 gUnknown_847194C[] = INCBIN_U16("graphics/text_window/unk_8470FCC.gbapal"); -static const u16 gUnknown_847196C[] = INCBIN_U16("graphics/text_window/unk_84710EC.gbapal"); -static const u16 gUnknown_847198C[] = INCBIN_U16("graphics/text_window/unk_847120C.gbapal"); -static const u16 gUnknown_84719AC[] = INCBIN_U16("graphics/text_window/unk_847132C.gbapal"); -static const u16 gUnknown_84719CC[] = INCBIN_U16("graphics/text_window/unk_847144C.gbapal"); -static const u16 gUnknown_84719EC[] = INCBIN_U16("graphics/text_window/unk_847156C.gbapal"); -static const u16 gUnknown_8471A0C[] = INCBIN_U16("graphics/text_window/unk_84716AC.gbapal"); -static const u16 gUnknown_8471A2C[] = INCBIN_U16("graphics/text_window/unk_84717CC.gbapal"); +static const u16 sUserFrame_Type1_Gfx[] = INCBIN_U16("graphics/text_window/type1.4bpp"); +static const u16 sUserFrame_Type2_Gfx[] = INCBIN_U16("graphics/text_window/type2.4bpp"); +static const u16 sUserFrame_Empty1[16] = {0}; +static const u16 sUserFrame_Type3_Gfx[] = INCBIN_U16("graphics/text_window/type3.4bpp"); +static const u16 sUserFrame_Type4_Gfx[] = INCBIN_U16("graphics/text_window/type4.4bpp"); +static const u16 sUserFrame_Type5_Gfx[] = INCBIN_U16("graphics/text_window/type5.4bpp"); +static const u16 sUserFrame_Type6_Gfx[] = INCBIN_U16("graphics/text_window/type6.4bpp"); +static const u16 sUserFrame_Type7_Gfx[] = INCBIN_U16("graphics/text_window/type7.4bpp"); +static const u16 sUserFrame_Type8_Gfx[] = INCBIN_U16("graphics/text_window/type8.4bpp"); +static const u16 sUserFrame_Empty2[16] = {0}; +static const u16 sUserFrame_Type9_Gfx[] = INCBIN_U16("graphics/text_window/type9.4bpp"); +static const u16 sUserFrame_Type10_Gfx[] = INCBIN_U16("graphics/text_window/type10.4bpp"); +static const u16 sUserFrame_Empty3[16] = {0}; -const u16 gStdFrame0[] = INCBIN_U16("graphics/text_window/unk_8471A4C.4bpp"); -const u16 gStdFrame1[] = INCBIN_U16("graphics/text_window/unk_8471B6C.4bpp"); +static const u16 sUserFrame_Type1_Pal[] = INCBIN_U16("graphics/text_window/type1.gbapal"); +static const u16 sUserFrame_Type2_Pal[] = INCBIN_U16("graphics/text_window/type2.gbapal"); +static const u16 sUserFrame_Type3_Pal[] = INCBIN_U16("graphics/text_window/type3.gbapal"); +static const u16 sUserFrame_Type4_Pal[] = INCBIN_U16("graphics/text_window/type4.gbapal"); +static const u16 sUserFrame_Type5_Pal[] = INCBIN_U16("graphics/text_window/type5.gbapal"); +static const u16 sUserFrame_Type6_Pal[] = INCBIN_U16("graphics/text_window/type6.gbapal"); +static const u16 sUserFrame_Type7_Pal[] = INCBIN_U16("graphics/text_window/type7.gbapal"); +static const u16 sUserFrame_Type8_Pal[] = INCBIN_U16("graphics/text_window/type8.gbapal"); +static const u16 sUserFrame_Type9_Pal[] = INCBIN_U16("graphics/text_window/type9.gbapal"); +static const u16 sUserFrame_Type10_Pal[] = INCBIN_U16("graphics/text_window/type10.gbapal"); -const u16 gUnknown_8471DEC[][16] = { +const u16 gStdTextWindow_Gfx[] = INCBIN_U16("graphics/text_window/std.4bpp"); +const u16 gQuestLogWindow_Gfx[] = INCBIN_U16("graphics/text_window/quest_log.4bpp"); + +const u16 gTextWindowPalettes[][16] = { INCBIN_U16("graphics/text_window/stdpal_0.gbapal"), INCBIN_U16("graphics/text_window/stdpal_1.gbapal"), INCBIN_U16("graphics/text_window/stdpal_2.gbapal"), @@ -39,21 +40,25 @@ const u16 gUnknown_8471DEC[][16] = { }; const struct TextWindowGraphics gUserFrames[] = { - {gUnknown_8470D6C, gUnknown_847190C}, - {gUnknown_8470E8C, gUnknown_847192C}, - {gUnknown_8470FCC, gUnknown_847194C}, - {gUnknown_84710EC, gUnknown_847196C}, - {gUnknown_847120C, gUnknown_847198C}, - {gUnknown_847132C, gUnknown_84719AC}, - {gUnknown_847144C, gUnknown_84719CC}, - {gUnknown_847156C, gUnknown_84719EC}, - {gUnknown_84716AC, gUnknown_8471A0C}, - {gUnknown_84717CC, gUnknown_8471A2C} -}; // NELEMS = 10 + {sUserFrame_Type1_Gfx, sUserFrame_Type1_Pal}, + {sUserFrame_Type2_Gfx, sUserFrame_Type2_Pal}, + {sUserFrame_Type3_Gfx, sUserFrame_Type3_Pal}, + {sUserFrame_Type4_Gfx, sUserFrame_Type4_Pal}, + {sUserFrame_Type5_Gfx, sUserFrame_Type5_Pal}, + {sUserFrame_Type6_Gfx, sUserFrame_Type6_Pal}, + {sUserFrame_Type7_Gfx, sUserFrame_Type7_Pal}, + {sUserFrame_Type8_Gfx, sUserFrame_Type8_Pal}, + {sUserFrame_Type9_Gfx, sUserFrame_Type9_Pal}, + {sUserFrame_Type10_Gfx, sUserFrame_Type10_Pal}, +}; -const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx) +const struct TextWindowGraphics *GetUserWindowGraphics(u8 idx) { - if (idx >= 20) // if (idx >= NELEMS(gUserFrames)) +#ifdef BUGFIX + if (idx >= ARRAY_COUNT(gUserFrames)) +#else + if (idx >= 20) // Using the RSE number of elements +#endif return &gUserFrames[0]; else return &gUserFrames[idx]; diff --git a/src/tm_case.c b/src/tm_case.c index 73807c670..18d1beafe 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -1290,11 +1290,11 @@ static void InitWindowTemplatesAndPals(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x5B, 0xE0); - TextWindow_LoadResourcesStdFrame0(0, 0x64, 0xB0); - TextWindow_SetStdFrame0_WithPal(0, 0x78, 0xD0); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); - LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20); + LoadUserWindowGfx(0, 0x5B, 0xE0); + LoadMenuMessageWindowGfx(0, 0x64, 0xB0); + LoadStdWindowGfx(0, 0x78, 0xD0); + LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadPalette(gStandardMenuPalette, 0xA0, 0x20); LoadPalette(sPal3Override, 0xF6, 0x04); LoadPalette(sPal3Override, 0xD6, 0x04); ListMenuLoadStdPalAt(0xc0, 0x01); diff --git a/src/trade.c b/src/trade.c index c974ca9fc..0546f3cbd 100644 --- a/src/trade.c +++ b/src/trade.c @@ -682,8 +682,8 @@ static void InitTradeMenuResources(void) ResetPaletteFade(); gPaletteFade.bufferTransferDisabled = TRUE; SetVBlankCallback(VblankCB_Trade); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x14); - LoadPalette(gTMCaseMainWindowPalette, 0xD0, 0x14); + LoadPalette(gStandardMenuPalette, 0xF0, 0x14); + LoadPalette(gStandardMenuPalette, 0xD0, 0x14); ResetBgsAndClearDma3BusyFlags(FALSE); InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); SetBgTilemapBuffer(1, sTradeMenuResourcesPtr->tilemapBuffer); @@ -697,8 +697,8 @@ static void InitTradeMenuResources(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); } FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - TextWindow_SetStdFrame0_WithPal(0, 0x014, 0xC0); - TextWindow_SetUserSelectedFrame(2, 0x001, 0xE0); + LoadStdWindowGfx(0, 0x014, 0xC0); + LoadUserWindowGfx(2, 0x001, 0xE0); LoadMonIconPalettes(); sTradeMenuResourcesPtr->state = 0; sTradeMenuResourcesPtr->tradeMenuCBnum = 0; diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 907c9ef8d..18b0547fd 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -121,7 +121,7 @@ void CB2_UnionRoomBattle(void) FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - TextWindow_SetStdFrame0_WithPal(0, 1, 0xD0); + LoadStdWindowGfx(0, 1, 0xD0); Menu_LoadStdPal(); SetVBlankCallback(VBlankCB_UnionRoomBattle); gMain.state++; diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c index 0c9c56c41..a6a716365 100644 --- a/src/union_room_chat_display.c +++ b/src/union_room_chat_display.c @@ -1307,9 +1307,9 @@ static void LoadWin1(void) static void LoadWin3(void) { FillWindowPixelBuffer(3, PIXEL_FILL(1)); - TextWindow_SetUserSelectedFrame(3, 1, 0xD0); - TextWindow_SetStdFrame0_WithPal(3, 0xA, 0x20); - LoadPalette(gTMCaseMainWindowPalette, 0xE0, 0x20); + LoadUserWindowGfx(3, 1, 0xD0); + LoadStdWindowGfx(3, 0xA, 0x20); + LoadPalette(gStandardMenuPalette, 0xE0, 0x20); } static void InitScanlineEffect(void) From aeb1c74bbfb4e203890311198c1909e59aa808ce Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 5 Oct 2022 15:25:03 -0400 Subject: [PATCH 086/105] Label remaining scripts --- data/maps/OneIsland_PokemonCenter_1F/scripts.inc | 8 ++++---- data/maps/PalletTown_ProfessorOaksLab/scripts.inc | 4 ++-- data/maps/TrainerTower_Lobby/scripts.inc | 4 ++-- data/maps/TwoIsland_JoyfulGameCorner/scripts.inc | 12 ++++++------ data/scripts/hole.inc | 4 ++-- include/event_scripts.h | 2 +- src/field_control_avatar.c | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc index 879be6934..bb05cbec4 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc @@ -167,12 +167,12 @@ OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio:: step_end @ Unused -Movement_170E8F:: +OneIsland_PokemonCenter_1F_Movement_WalkUp: walk_up step_end @ Unused -Movement_170E91:: +OneIsland_PokemonCenter_1F_Movement_StepAsideLeft:: walk_left walk_in_place_faster_right step_end @@ -535,7 +535,7 @@ OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillBottom:: step_end @ Unused -Movement_17131F:: +OneIsland_PokemonCenter_1F_Movement_DelayWalkInPlaceLeft:: delay_16 delay_16 delay_4 @@ -543,7 +543,7 @@ Movement_17131F:: step_end @ Unused -Movement_171324:: +OneIsland_PokemonCenter_1F_Movement_WalkInPlaceDown:: walk_in_place_fast_down step_end diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc index 0bd06bebb..c23534df8 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -870,7 +870,7 @@ PalletTown_ProfessorOaksLab_Movement_OakExcitedWest:: step_end @ Unused -Movement_1699AC:: +PalletTown_ProfessorOaksLab_Movement_Search: walk_left walk_in_place_faster_down delay_8 @@ -898,7 +898,7 @@ Movement_1699AC:: step_end @ Unused -Movement_1699C5: +PalletTown_ProfessorOaksLab_Movement_VerticalPacing: walk_up walk_down walk_down diff --git a/data/maps/TrainerTower_Lobby/scripts.inc b/data/maps/TrainerTower_Lobby/scripts.inc index 19dc390ae..e435cb33f 100644 --- a/data/maps/TrainerTower_Lobby/scripts.inc +++ b/data/maps/TrainerTower_Lobby/scripts.inc @@ -72,7 +72,7 @@ TrainerTower_Lobby_EventScript_Enter:: ttower_getchallengestatus switch VAR_RESULT case CHALLENGE_STATUS_LOST, TrainerTower_Lobby_EventScript_LostChallenge - case CHALLENGE_STATUS_UNK, TrainerTower_Lobby_EventScript_164938 + case CHALLENGE_STATUS_UNK, TrainerTower_Lobby_EventScript_ExitChallengeSpeakToReceptionist case CHALLENGE_STATUS_NORMAL, TrainerTower_Lobby_EventScript_EnterEnd TrainerTower_Lobby_EventScript_LostChallenge:: @@ -84,7 +84,7 @@ TrainerTower_Lobby_EventScript_LostChallenge:: goto TrainerTower_Lobby_EventScript_ExitChallenge @ Presumably E-Reader related -TrainerTower_Lobby_EventScript_164938:: +TrainerTower_Lobby_EventScript_ExitChallengeSpeakToReceptionist:: lock faceplayer applymovement OBJ_EVENT_ID_PLAYER, TrainerTower_Lobby_Movement_FaceReceptionist diff --git a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc index aaa26dce3..a31f95dea 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc +++ b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc @@ -52,7 +52,7 @@ TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene:: TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_DADDY, Movement_171520 + applymovement LOCALID_DADDY, TwoIsland_JoyfulGameCorner_Movement_DaddyPacing waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_WhereHasLostelleGottenTo closemessage @@ -63,7 +63,7 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: waitmovement 0 applymovement LOCALID_DADDY, Common_Movement_Delay48 waitmovement 0 - applymovement LOCALID_DADDY, Movement_171527 + applymovement LOCALID_DADDY, TwoIsland_JoyfulGameCorner_Movement_DaddyApproachPlayer waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 @@ -71,7 +71,7 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: closemessage playse SE_RS_DOOR waitse - applymovement OBJ_EVENT_ID_PLAYER, Movement_17152C + applymovement OBJ_EVENT_ID_PLAYER, TwoIsland_JoyfulGameCorner_Movement_PlayerFaceDaddy waitmovement 0 playbgm MUS_ENCOUNTER_BOY, 0 addobject LOCALID_BIKER @@ -96,7 +96,7 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: releaseall end -Movement_171520:: +TwoIsland_JoyfulGameCorner_Movement_DaddyPacing:: walk_left walk_right walk_right @@ -105,14 +105,14 @@ Movement_171520:: delay_16 step_end -Movement_171527:: +TwoIsland_JoyfulGameCorner_Movement_DaddyApproachPlayer:: walk_down walk_down walk_down walk_in_place_faster_left step_end -Movement_17152C:: +TwoIsland_JoyfulGameCorner_Movement_PlayerFaceDaddy:: walk_left walk_in_place_faster_right step_end diff --git a/data/scripts/hole.inc b/data/scripts/hole.inc index ae64ccf5f..343458e7c 100644 --- a/data/scripts/hole.inc +++ b/data/scripts/hole.inc @@ -19,8 +19,8 @@ EventScript_FallDownHole:: waitstate end -@ TODO: EventScript_FallDownHoleMtPyre in pokeemerald, needs generic name -EventScript_1C1361:: +@ Differs from the script above by assuming the warp destination has already been set +EventScript_DoFallWarp:: lockall delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible diff --git a/include/event_scripts.h b/include/event_scripts.h index 3a25a5fc9..49857a76b 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1257,7 +1257,7 @@ extern const u8 EventScript_CantUseWaterfall[]; extern const u8 EventScript_VsSeekerChargingDone[]; extern const u8 EventScript_FieldPoison[]; extern const u8 EventScript_EggHatch[]; -extern const u8 EventScript_1C1361[]; +extern const u8 EventScript_DoFallWarp[]; // overworld diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 7e00cc778..58bab3e29 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -889,7 +889,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB if (MetatileBehavior_IsFallWarp(metatileBehavior) == TRUE) { ResetInitialPlayerAvatarState(); - ScriptContext_SetupScript(EventScript_1C1361); + ScriptContext_SetupScript(EventScript_DoFallWarp); return TRUE; } DoWarp(); From 57e82c9264ba33d33f887e07257e1690f07fef24 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 5 Oct 2022 17:16:40 -0400 Subject: [PATCH 087/105] Label movement action arrays, z coord -> elevation --- include/constants/event_object_movement.h | 8 +- include/event_object_movement.h | 31 +- include/field_player_avatar.h | 14 +- include/global.h | 2 +- src/bike.c | 10 +- .../object_events/movement_type_func_tables.h | 6 +- src/event_object_movement.c | 320 +++++++++--------- src/field_control_avatar.c | 34 +- src/field_effect.c | 2 +- src/field_effect_helpers.c | 6 +- src/field_fadetransition.c | 2 +- src/field_player_avatar.c | 67 ++-- src/fldeff_cut.c | 4 +- src/fldeff_rocksmash.c | 4 +- src/overworld.c | 12 +- src/shop.c | 6 +- 16 files changed, 260 insertions(+), 268 deletions(-) diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 9ab0c7801..200c99086 100644 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -70,10 +70,10 @@ #define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41 #define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42 #define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x44 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x45 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x46 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x47 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN 0x44 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP 0x45 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT 0x46 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT 0x47 #define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x48 #define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x49 #define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x4A diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 21bac2013..c9c1fe152 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -99,16 +99,16 @@ void TryOverrideObjectEventTemplateCoords(u8, u8, u8); void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *)); u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8); u8 GetOppositeDirection(u8); -u8 GetWalkInPlaceFastMovementAction(u32); +u8 GetWalkInPlaceFasterMovementAction(u32); u8 GetStepInPlaceDelay8AnimId(u32); u8 GetWalkInPlaceNormalMovementAction(u32); u8 GetWalkInPlaceSlowMovementAction(u32); -u8 GetStepInPlaceDelay32AnimId(u32); +u8 GetWalkInPlaceFastMovementAction(u32); u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *); u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *); -u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z); +u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation); void sub_8063E28(struct ObjectEvent *, struct Sprite *); bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8); void ShiftStillObjectEventCoords(struct ObjectEvent *); @@ -123,7 +123,7 @@ bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent); u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent); u8 GetWalkNormalMovementAction(u32); u8 GetWalkFastMovementAction(u32); -u8 GetWalkFastestMovementAction(u32); +u8 GetWalkFasterMovementAction(u32); u8 GetWalkSlowerMovementAction(u32 direction); u8 GetTrainerFacingDirectionMovementType(u8 direction); u8 GetFaceDirectionMovementAction(u32); @@ -160,11 +160,9 @@ u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority); u16 GetObjectPaletteTag(u8 paletteIndex); void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2); void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); -bool8 AreZCoordsCompatible(u8, u8); -u8 ZCoordToPriority(u8 z); -void ObjectEventUpdateZCoord(struct ObjectEvent *pObject); -void SetObjectSubpriorityByZCoord(u8 z, struct Sprite *sprite, u8 offset); -bool8 IsZCoordMismatchAt(u8, s16, s16); +u8 ElevationToPriority(u8 elevation); +void ObjectEventUpdateElevation(struct ObjectEvent *pObject); +void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 offset); void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); u8 AddCameraObject(u8 trackedSpriteId); void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); @@ -195,8 +193,8 @@ extern const struct OamData gObjectEventBaseOam_32x32; extern const u16 gFieldEffectObjectPic_CutGrass[]; extern const u16 gFieldEffectPal_CutGrass[]; extern const u8 gReflectionEffectPaletteMap[]; -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z); -u8 sub_8063FDC(u32 direction); +u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction); +u8 GetGlideMovementAction(u32 direction); u8 GetRideWaterCurrentMovementAction(u32 direction); u8 GetPlayerRunMovementAction(u32 direction); u8 GetPlayerRunSlowMovementAction(u32 direction); @@ -206,12 +204,13 @@ u8 GetAcroWheelieFaceDirectionMovementAction(u32 direction); u8 GetAcroPopWheelieFaceDirectionMovementAction(u32 direction); u8 GetAcroEndWheelieFaceDirectionMovementAction(u32 direction); u8 GetAcroWheelieHopFaceDirectionMovementAction(u32 direction); -u8 GetAcroWheelieHopDirectionMovementAction(u32 direction); -u8 GetAcroWheelieJumpDirectionMovementAction(u32 direction); +u8 GetAcroWheelieHopMovementAction(u32 direction); +u8 GetAcroPopWheelieMoveMovementAction(u32 direction); +u8 GetAcroWheelieJumpMovementAction(u32 direction); u8 GetJumpInPlaceTurnAroundMovementAction(u32 direction); -u8 GetAcroWheelieInPlaceDirectionMovementAction(u32 direction); -u8 GetAcroPopWheelieMoveDirectionMovementAction(u32 direction); -u8 GetAcroWheelieMoveDirectionMovementAction(u32 direction); +u8 GetAcroWheelieInPlaceMovementAction(u32 direction); +u8 GetAcroPopWheelieMoveMovementAction(u32 direction); +u8 GetAcroWheelieMoveMovementAction(u32 direction); u8 GetJumpSpecialWithEffectMovementAction(u32 direction); u8 GetFishingBiteDirectionAnimNum(u8 direction); void TrySpawnObjectEvents(s16 cameraX, s16 cameraY); diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 9f726cf99..0c078fc6e 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -26,7 +26,7 @@ void SetPlayerAvatarTransitionFlags(u16 flags); bool8 IsPlayerFacingSurfableFishableWater(void); void StartFishing(u8 secondaryId); u8 GetPlayerAvatarObjectId(void); -u8 PlayerGetZCoord(void); +u8 PlayerGetElevation(void); u8 GetPlayerAvatarGraphicsIdByCurrentState(void); void StartPlayerAvatarSummonMonForFieldMoveAnim(void); void SetPlayerInvisibility(bool8); @@ -41,13 +41,13 @@ void StartPlayerAvatarVsSeekerAnim(void); u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender); u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender); u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior); -void PlayerGoSlowest(u8 direction); -void PlayerGoSlow(u8 direction); -void PlayerGoSpeed1(u8 direction); -void PlayerGoSpeed2(u8 direction); -void sub_805C134(u8 direction); +void PlayerWalkSlower(u8 direction); +void PlayerWalkSlow(u8 direction); +void PlayerWalkNormal(u8 direction); +void PlayerWalkFast(u8 direction); +void PlayerGlide(u8 direction); void PlayerRideWaterCurrent(u8 direction); -void PlayerGoSpeed4(u8 direction); +void PlayerWalkFaster(u8 direction); void PlayerRun(u8 direction); void PlayerRunSlow(u8 direction); void PlayerOnBikeCollide(u8 direction); diff --git a/include/global.h b/include/global.h index 27fb57830..7bcf61911 100644 --- a/include/global.h +++ b/include/global.h @@ -814,7 +814,7 @@ struct MapPosition { s16 x; s16 y; - s8 height; + s8 elevation; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/src/bike.c b/src/bike.c index 941a9773a..ddaae0fa6 100644 --- a/src/bike.c +++ b/src/bike.c @@ -187,9 +187,9 @@ static void BikeTransition_MoveDirection(u8 direction) { if (collision == COLLISION_COUNT) - PlayerGoSpeed2(direction); + PlayerWalkFast(direction); else if (PlayerIsMovingOnRockStairs(direction)) - PlayerGoSpeed2(direction); + PlayerWalkFast(direction); else PlayerRideWaterCurrent(direction); } @@ -201,7 +201,7 @@ static void BikeTransition_Downhill(u8 v) u8 collision = GetBikeCollision(DIR_SOUTH); if (collision == COLLISION_NONE) - PlayerGoSpeed4(DIR_SOUTH); + PlayerWalkFaster(DIR_SOUTH); else if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(DIR_SOUTH); } @@ -209,7 +209,7 @@ static void BikeTransition_Downhill(u8 v) static void BikeTransition_Uphill(u8 direction) { if (GetBikeCollision(direction) == COLLISION_NONE) - PlayerGoSpeed1(direction); + PlayerWalkNormal(direction); } static u8 GetBikeCollision(u8 direction) @@ -266,7 +266,7 @@ static bool8 MetatileBehaviorForbidsBiking(u8 metatileBehavior) return TRUE; if (!MetatileBehavior_IsFortreeBridge(metatileBehavior)) return FALSE; - if (PlayerGetZCoord() & 1) + if (PlayerGetElevation() & 1) return FALSE; return TRUE; } diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index 4799a7edd..b14421986 100644 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -134,7 +134,7 @@ static bool8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, stru static bool8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_WalkInPlaceFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); @@ -580,8 +580,8 @@ u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite MovementType_MoveInPlace_Step1, }; -u8 (*const gMovementTypeFuncs_WalkSlowlyInPlace[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_WalkSlowlyInPlace_Step0, +u8 (*const gMovementTypeFuncs_WalkInPlaceFast[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkInPlaceFast_Step0, MovementType_MoveInPlace_Step1, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index f03121f3e..4f2574ae2 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -49,7 +49,7 @@ static void GetGroundEffectFlags_Seaweed(struct ObjectEvent *, u32 *); static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent *, u32 *); static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent *); static u8 GetReflectionTypeByMetatileBehavior(u32); -static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z); +static void InitObjectPriorityByElevation(struct Sprite *sprite, u8 elevation); static void ObjectEventUpdateSubpriority(struct ObjectEvent *, struct Sprite *); static void DoTracksGroundEffect_None(struct ObjectEvent *, struct Sprite *, u8); static void DoTracksGroundEffect_Footprints(struct ObjectEvent *, struct Sprite *, u8); @@ -76,7 +76,9 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8); static void ResetObjectEventFldEffData(struct ObjectEvent *); static u8 TryLoadObjectPalette(const struct SpritePalette *spritePalette); static u8 FindObjectEventPaletteIndexByTag(u16); -static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8); +static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *, u8); +static bool8 IsElevationMismatchAt(u8 elevation, s16 x, s16 y); +static bool8 AreElevationsCompatible(u8 a, u8 b); static void ObjectCB_CameraObject(struct Sprite *); static void CameraObject_0(struct Sprite *); static void CameraObject_1(struct Sprite *); @@ -144,7 +146,7 @@ static void MovementType_MountainDisguise(struct Sprite *); static void MovementType_CopyPlayerInGrass(struct Sprite *); static void MovementType_Buried(struct Sprite *); static void MovementType_WalkInPlace(struct Sprite *); -static void MovementType_WalkSlowlyInPlace(struct Sprite *); +static void MovementType_WalkInPlaceFast(struct Sprite *); static void MovementType_JogInPlace(struct Sprite *); static void MovementType_Invisible(struct Sprite *); static void MovementType_RaiseHandAndStop(struct Sprite *); @@ -280,10 +282,10 @@ static void (*const sMovementTypeCallbacks[MOVEMENT_TYPES_COUNT])(struct Sprite [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN] = MovementType_WalkInPlaceFast, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP] = MovementType_WalkInPlaceFast, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT] = MovementType_WalkInPlaceFast, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT] = MovementType_WalkInPlaceFast, [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace, [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace, [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace, @@ -409,10 +411,10 @@ static const u8 gInitialMovementTypeFacingDirections[MOVEMENT_TYPES_COUNT] = { [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT] = DIR_EAST, [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH, [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST, @@ -896,7 +898,7 @@ static const struct Coords16 sDirectionToVectors[] = { [DIR_NORTHEAST] = { 1, -1}, }; -static const u8 gFaceDirectionMovementActions[] = { +static const u8 sFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_FACE_UP, @@ -904,7 +906,7 @@ static const u8 gFaceDirectionMovementActions[] = { [DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT, }; -static const u8 gFaceDirectionFastMovementActions[] = { +static const u8 sFaceDirectionFastMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN_FAST, [DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN_FAST, [DIR_NORTH] = MOVEMENT_ACTION_FACE_UP_FAST, @@ -912,7 +914,7 @@ static const u8 gFaceDirectionFastMovementActions[] = { [DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT_FAST, }; -static const u8 gWalkSlowestMovementActions[] = { +static const u8 sWalkSlowestMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_SLOWEST_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOWEST_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOWEST_UP, @@ -920,7 +922,7 @@ static const u8 gWalkSlowestMovementActions[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_SLOWEST_RIGHT, }; -static const u8 gUnknown_83A64FB[] = { +static const u8 sWalkSlowerMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_SLOWER_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOWER_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOWER_UP, @@ -928,7 +930,7 @@ static const u8 gUnknown_83A64FB[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_SLOWER_RIGHT, }; -static const u8 gUnknown_83A6500[] = { +static const u8 sWalkSlowMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_SLOW_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOW_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOW_UP, @@ -936,7 +938,7 @@ static const u8 gUnknown_83A6500[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_SLOW_RIGHT, }; -static const u8 gUnknown_83A6505[] = { +static const u8 sWalkNormalMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_NORMAL_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_NORMAL_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_NORMAL_UP, @@ -944,7 +946,7 @@ static const u8 gUnknown_83A6505[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_NORMAL_RIGHT, }; -static const u8 gUnknown_83A650A[] = { +static const u8 sWalkFastMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_FAST_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_FAST_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_FAST_UP, @@ -952,7 +954,7 @@ static const u8 gUnknown_83A650A[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_FAST_RIGHT, }; -static const u8 gUnknown_83A650F[] = { +static const u8 sGlideMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_GLIDE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_GLIDE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_GLIDE_UP, @@ -960,7 +962,7 @@ static const u8 gUnknown_83A650F[] = { [DIR_EAST] = MOVEMENT_ACTION_GLIDE_RIGHT, }; -static const u8 gUnknown_83A6514[] = { +static const u8 sRideWaterCurrentMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP, @@ -968,7 +970,7 @@ static const u8 gUnknown_83A6514[] = { [DIR_EAST] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT, }; -static const u8 gUnknown_83A6519[] = { +static const u8 sWalkFasterMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_FASTER_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_FASTER_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_FASTER_UP, @@ -976,7 +978,7 @@ static const u8 gUnknown_83A6519[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_FASTER_RIGHT, }; -static const u8 gUnknown_83A651E[] = { +static const u8 sSlideMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_SLIDE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_SLIDE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_SLIDE_UP, @@ -984,7 +986,7 @@ static const u8 gUnknown_83A651E[] = { [DIR_EAST] = MOVEMENT_ACTION_SLIDE_RIGHT, }; -static const u8 gUnknown_83A6523[] = { +static const u8 sPlayerRunMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_PLAYER_RUN_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_PLAYER_RUN_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_PLAYER_RUN_UP, @@ -992,7 +994,7 @@ static const u8 gUnknown_83A6523[] = { [DIR_EAST] = MOVEMENT_ACTION_PLAYER_RUN_RIGHT, }; -static const u8 gUnknown_83A6528[] = { +static const u8 sPlayerRunSlowMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW, [DIR_SOUTH] = MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW, [DIR_NORTH] = MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW, @@ -1000,7 +1002,7 @@ static const u8 gUnknown_83A6528[] = { [DIR_EAST] = MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW, }; -static const u8 gUnknown_83A652D[] = { +static const u8 sSpinMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_SPIN_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_SPIN_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_SPIN_UP, @@ -1008,7 +1010,7 @@ static const u8 gUnknown_83A652D[] = { [DIR_EAST] = MOVEMENT_ACTION_SPIN_RIGHT, }; -static const u8 gUnknown_83A6532[] = { +static const u8 sJump2MovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_2_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_2_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_2_UP, @@ -1016,7 +1018,7 @@ static const u8 gUnknown_83A6532[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_2_RIGHT, }; -static const u8 gUnknown_83A6537[] = { +static const u8 sJumpInPlaceMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP, @@ -1024,7 +1026,7 @@ static const u8 gUnknown_83A6537[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT, }; -static const u8 gUnknown_83A653C[] = { +static const u8 sJumpInPlaceTurnAroundMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP, @@ -1032,7 +1034,7 @@ static const u8 gUnknown_83A653C[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT, }; -static const u8 gUnknown_83A6541[] = { +static const u8 sJumpMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_UP, @@ -1040,7 +1042,7 @@ static const u8 gUnknown_83A6541[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_RIGHT, }; -static const u8 gUnknown_83A6546[] = { +static const u8 sJumpSpecialMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_SPECIAL_UP, @@ -1048,7 +1050,7 @@ static const u8 gUnknown_83A6546[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT, }; -static const u8 gUnknown_83A654B[] = { +static const u8 sJumpSpecialWithEffectMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP, @@ -1056,7 +1058,7 @@ static const u8 gUnknown_83A654B[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT, }; -static const u8 gUnknown_83A6550[] = { +static const u8 sWalkInPlaceSlowMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP, @@ -1064,7 +1066,7 @@ static const u8 gUnknown_83A6550[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT, }; -static const u8 gUnknown_83A6555[] = { +static const u8 sWalkInPlaceNormalMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP, @@ -1072,7 +1074,7 @@ static const u8 gUnknown_83A6555[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT, }; -static const u8 gUnknown_83A655A[] = { +static const u8 sWalkInPlaceFastMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP, @@ -1080,7 +1082,7 @@ static const u8 gUnknown_83A655A[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT, }; -static const u8 gUnknown_83A655F[] = { +static const u8 sWalkInPlaceFasterMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP, @@ -1088,7 +1090,7 @@ static const u8 gUnknown_83A655F[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT, }; -static const u8 gUnknown_83A6564[] = { +static const u8 sAcroWheelieFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP, @@ -1096,7 +1098,7 @@ static const u8 gUnknown_83A6564[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT, }; -static const u8 gUnknown_83A6569[] = { +static const u8 sAcroPopWheelieFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP, @@ -1104,7 +1106,7 @@ static const u8 gUnknown_83A6569[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT, }; -static const u8 gUnknown_83A656E[] = { +static const u8 sAcroEndWheelieFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP, @@ -1112,7 +1114,7 @@ static const u8 gUnknown_83A656E[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT, }; -static const u8 gUnknown_83A6573[] = { +static const u8 sAcroWheelieHopFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP, @@ -1120,7 +1122,7 @@ static const u8 gUnknown_83A6573[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT, }; -static const u8 gUnknown_83A6578[] = { +static const u8 sAcroWheelieHopMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP, @@ -1128,7 +1130,7 @@ static const u8 gUnknown_83A6578[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT, }; -static const u8 gUnknown_83A657D[] = { +static const u8 sAcroWheelieJumpMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP, @@ -1136,7 +1138,7 @@ static const u8 gUnknown_83A657D[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT, }; -static const u8 gUnknown_83A6582[] = { +static const u8 sAcroWheelieInPlaceMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP, @@ -1144,7 +1146,7 @@ static const u8 gUnknown_83A6582[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT, }; -static const u8 gUnknown_83A6587[] = { +static const u8 sAcroPopWheelieMoveMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP, @@ -1152,7 +1154,7 @@ static const u8 gUnknown_83A6587[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT, }; -static const u8 gUnknown_83A658C[] = { +static const u8 sAcroWheelieMoveMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP, @@ -1607,7 +1609,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl if (!objectEvent->inanimate) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); - SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); UpdateObjectEventVisibility(objectEvent, sprite); return objectEventId; } @@ -1644,7 +1646,7 @@ u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *objectEventTemplate) return TrySpawnObjectEventTemplate(objectEventTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); } -int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z) +int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation) { struct ObjectEventTemplate objectEventTemplate; @@ -1655,7 +1657,7 @@ int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 objectEventTemplate.inConnection = 0; objectEventTemplate.x = x; objectEventTemplate.y = y; - objectEventTemplate.elevation = z; + objectEventTemplate.elevation = elevation; objectEventTemplate.movementType = movementBehavior; objectEventTemplate.movementRangeX = 0; objectEventTemplate.movementRangeY = 0; @@ -1729,7 +1731,7 @@ u8 AddPseudoObjectEvent(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u return spriteId; } -u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) +u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 elevation, u8 direction) { u8 spriteId; struct Sprite *sprite; @@ -1753,7 +1755,7 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) sprite->oam.paletteNum = graphicsInfo->paletteSlot; sprite->coordOffsetEnabled = TRUE; sprite->data[0] = a1; - sprite->data[1] = z; + sprite->data[1] = elevation; if (graphicsInfo->paletteSlot == 10) { LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); @@ -1764,8 +1766,8 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) SetSubspriteTables(sprite, subspriteTables); sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; } - InitObjectPriorityByZCoord(sprite, z); - SetObjectSubpriorityByZCoord(z, sprite, 1); + InitObjectPriorityByElevation(sprite, elevation); + SetObjectSubpriorityByElevation(elevation, sprite, 1); StartSpriteAnim(sprite, GetFaceDirectionAnimNum(direction)); } return spriteId; @@ -1951,7 +1953,7 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); } ResetObjectEventFldEffData(objectEvent); - SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); } } @@ -2347,7 +2349,7 @@ void UpdateObjectEventCoordsForCameraUpdate(void) } } -u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z) +u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation) { u8 i; @@ -2355,21 +2357,20 @@ u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z) { if (gObjectEvents[i].active) { - if (gObjectEvents[i].currentCoords.x == x && gObjectEvents[i].currentCoords.y == y && ObjectEventDoesZCoordMatch(&gObjectEvents[i], z)) - { + if (gObjectEvents[i].currentCoords.x == x + && gObjectEvents[i].currentCoords.y == y + && ObjectEventDoesElevationMatch(&gObjectEvents[i], elevation)) return i; - } } } return OBJECT_EVENTS_COUNT; } -static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *objectEvent, u8 z) +static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *objectEvent, u8 elevation) { - if (objectEvent->currentElevation != 0 && z != 0 && objectEvent->currentElevation != z) - { + if (objectEvent->currentElevation != 0 && elevation != 0 && objectEvent->currentElevation != elevation) return FALSE; - } + return TRUE; } @@ -4370,7 +4371,7 @@ static bool8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, st direction = playerDirection; direction = GetCopyDirection(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); - ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFastestMovementAction(direction)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFasterMovementAction(direction)); if (GetCollisionAtCoords(objectEvent, x, y, direction) || (tileCallback != NULL && !tileCallback(MapGridGetMetatileBehaviorAt(x, y)))) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); @@ -4540,12 +4541,12 @@ static bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, str return TRUE; } -movement_type_def(MovementType_WalkSlowlyInPlace, gMovementTypeFuncs_WalkSlowlyInPlace) +movement_type_def(MovementType_WalkInPlaceFast, gMovementTypeFuncs_WalkInPlaceFast) -static bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_WalkInPlaceFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceSlowMovementAction(objectEvent->facingDirection)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); sprite->data[1] = 1; return TRUE; } @@ -4555,7 +4556,7 @@ movement_type_def(MovementType_JogInPlace, gMovementTypeFuncs_JogInPlace) static bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection)); sprite->data[1] = 1; return TRUE; } @@ -4858,7 +4859,7 @@ u8 GetCollisionAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u32 dir) return COLLISION_IMPASSABLE; else if (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction)) return COLLISION_IMPASSABLE; - else if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) + else if (IsElevationMismatchAt(objectEvent->currentElevation, x, y)) return COLLISION_ELEVATION_MISMATCH; else if (DoesObjectCollideWithObjectAt(objectEvent, x, y)) return COLLISION_OBJECT_EVENT; @@ -4873,7 +4874,7 @@ u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 d flags |= 1; if (MapGridGetCollisionAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) flags |= 2; - if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) + if (IsElevationMismatchAt(objectEvent->currentElevation, x, y)) flags |= 4; if (DoesObjectCollideWithObjectAt(objectEvent, x, y)) flags |= 8; @@ -4930,10 +4931,8 @@ static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *objectEvent, s16 { if ((curObject->currentCoords.x == x && curObject->currentCoords.y == y) || (curObject->previousCoords.x == x && curObject->previousCoords.y == y)) { - if (AreZCoordsCompatible(objectEvent->currentElevation, curObject->currentElevation)) - { + if (AreElevationsCompatible(objectEvent->currentElevation, curObject->currentElevation)) return TRUE; - } } } } @@ -4953,14 +4952,12 @@ bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup) return FALSE; } -void sub_80639D4(u8 localId, u8 mapNum, u8 mapGroup) +static void SetBerryTreeJustPicked(u8 localId, u8 mapNum, u8 mapGroup) { u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) - { gSprites[gObjectEvents[objectEventId].spriteId].data[7] |= 0x04; - } } void MoveCoords(u8 direction, s16 *x, s16 *y) @@ -4969,7 +4966,8 @@ void MoveCoords(u8 direction, s16 *x, s16 *y) *y += sDirectionToVectors[direction].y; } -void sub_8063A44(u8 direction, s16 *x, s16 *y) +// Unused +static void MoveCoordsInMapCoordIncrement(u8 direction, s16 *x, s16 *y) { *x += sDirectionToVectors[direction].x << 4; *y += sDirectionToVectors[direction].y << 4; @@ -5184,8 +5182,8 @@ u8 name(u32 idx) \ return animIds[direction]; \ } -dirn_to_anim(GetFaceDirectionMovementAction, gFaceDirectionMovementActions); -dirn_to_anim(GetFaceDirectionFastMovementAction, gFaceDirectionFastMovementActions); +dirn_to_anim(GetFaceDirectionMovementAction, sFaceDirectionMovementActions); +dirn_to_anim(GetFaceDirectionFastMovementAction, sFaceDirectionFastMovementActions); u8 GetWalkSlowestMovementAction(u32 idx) { @@ -5193,45 +5191,45 @@ u8 GetWalkSlowestMovementAction(u32 idx) if (direction > DIR_EAST) direction = DIR_NONE; - return gWalkSlowestMovementActions[direction]; + return sWalkSlowestMovementActions[direction]; } -dirn_to_anim(GetWalkSlowerMovementAction, gUnknown_83A64FB); -dirn_to_anim(GetWalkSlowMovementAction, gUnknown_83A6500); -dirn_to_anim(GetWalkNormalMovementAction, gUnknown_83A6505); -dirn_to_anim(GetWalkFastMovementAction, gUnknown_83A650A); -dirn_to_anim(sub_8063FDC, gUnknown_83A650F); -dirn_to_anim(GetRideWaterCurrentMovementAction, gUnknown_83A6514); -dirn_to_anim(GetWalkFastestMovementAction, gUnknown_83A6519); -dirn_to_anim(GetSlideMovementAction, gUnknown_83A651E); -dirn_to_anim(GetPlayerRunMovementAction, gUnknown_83A6523); -dirn_to_anim(GetPlayerRunSlowMovementAction, gUnknown_83A6528); -dirn_to_anim(GetSpinMovementAction, gUnknown_83A652D); -dirn_to_anim(GetJump2MovementAction, gUnknown_83A6532); -dirn_to_anim(GetJumpInPlaceMovementAction, gUnknown_83A6537); -dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, gUnknown_83A653C); -dirn_to_anim(GetJumpMovementAction, gUnknown_83A6541); -dirn_to_anim(GetJumpSpecialMovementAction, gUnknown_83A6546); -dirn_to_anim(GetJumpSpecialWithEffectMovementAction, gUnknown_83A654B); -dirn_to_anim(GetStepInPlaceDelay32AnimId, gUnknown_83A6550); -dirn_to_anim(GetWalkInPlaceNormalMovementAction, gUnknown_83A6555); -dirn_to_anim(GetWalkInPlaceSlowMovementAction, gUnknown_83A655A); -dirn_to_anim(GetWalkInPlaceFastMovementAction, gUnknown_83A655F); +dirn_to_anim(GetWalkSlowerMovementAction, sWalkSlowerMovementActions); +dirn_to_anim(GetWalkSlowMovementAction, sWalkSlowMovementActions); +dirn_to_anim(GetWalkNormalMovementAction, sWalkNormalMovementActions); +dirn_to_anim(GetWalkFastMovementAction, sWalkFastMovementActions); +dirn_to_anim(GetGlideMovementAction, sGlideMovementActions); +dirn_to_anim(GetRideWaterCurrentMovementAction, sRideWaterCurrentMovementActions); +dirn_to_anim(GetWalkFasterMovementAction, sWalkFasterMovementActions); +dirn_to_anim(GetSlideMovementAction, sSlideMovementActions); +dirn_to_anim(GetPlayerRunMovementAction, sPlayerRunMovementActions); +dirn_to_anim(GetPlayerRunSlowMovementAction, sPlayerRunSlowMovementActions); +dirn_to_anim(GetSpinMovementAction, sSpinMovementActions); +dirn_to_anim(GetJump2MovementAction, sJump2MovementActions); +dirn_to_anim(GetJumpInPlaceMovementAction, sJumpInPlaceMovementActions); +dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, sJumpInPlaceTurnAroundMovementActions); +dirn_to_anim(GetJumpMovementAction, sJumpMovementActions); +dirn_to_anim(GetJumpSpecialMovementAction, sJumpSpecialMovementActions); +dirn_to_anim(GetJumpSpecialWithEffectMovementAction, sJumpSpecialWithEffectMovementActions); +dirn_to_anim(GetWalkInPlaceSlowMovementAction, sWalkInPlaceSlowMovementActions); +dirn_to_anim(GetWalkInPlaceNormalMovementAction, sWalkInPlaceNormalMovementActions); +dirn_to_anim(GetWalkInPlaceFastMovementAction, sWalkInPlaceFastMovementActions); +dirn_to_anim(GetWalkInPlaceFasterMovementAction, sWalkInPlaceFasterMovementActions); bool8 ObjectEventFaceOppositeDirection(struct ObjectEvent *objectEvent, u8 direction) { return ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(GetOppositeDirection(direction))); } -dirn_to_anim(GetAcroWheelieFaceDirectionMovementAction, gUnknown_83A6564); -dirn_to_anim(GetAcroPopWheelieFaceDirectionMovementAction, gUnknown_83A6569); -dirn_to_anim(GetAcroEndWheelieFaceDirectionMovementAction, gUnknown_83A656E); -dirn_to_anim(GetAcroWheelieHopFaceDirectionMovementAction, gUnknown_83A6573); -dirn_to_anim(GetAcroWheelieHopDirectionMovementAction, gUnknown_83A6578); -dirn_to_anim(GetAcroWheelieJumpDirectionMovementAction, gUnknown_83A657D); -dirn_to_anim(GetAcroWheelieInPlaceDirectionMovementAction, gUnknown_83A6582); -dirn_to_anim(GetAcroPopWheelieMoveDirectionMovementAction, gUnknown_83A6587); -dirn_to_anim(GetAcroWheelieMoveDirectionMovementAction, gUnknown_83A658C); +dirn_to_anim(GetAcroWheelieFaceDirectionMovementAction, sAcroWheelieFaceDirectionMovementActions); +dirn_to_anim(GetAcroPopWheelieFaceDirectionMovementAction, sAcroPopWheelieFaceDirectionMovementActions); +dirn_to_anim(GetAcroEndWheelieFaceDirectionMovementAction, sAcroEndWheelieFaceDirectionMovementActions); +dirn_to_anim(GetAcroWheelieHopFaceDirectionMovementAction, sAcroWheelieHopFaceDirectionMovementActions); +dirn_to_anim(GetAcroWheelieHopMovementAction, sAcroWheelieHopMovementActions); +dirn_to_anim(GetAcroWheelieJumpMovementAction, sAcroWheelieJumpMovementActions); +dirn_to_anim(GetAcroWheelieInPlaceMovementAction, sAcroWheelieInPlaceMovementActions); +dirn_to_anim(GetAcroPopWheelieMoveMovementAction, sAcroPopWheelieMoveMovementActions); +dirn_to_anim(GetAcroWheelieMoveMovementAction, sAcroWheelieMoveMovementActions); u8 GetOppositeDirection(u8 direction) { @@ -8330,30 +8328,30 @@ static u8 GetReflectionTypeByMetatileBehavior(u32 behavior) return 0; } -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z) +u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction) { - static bool8 (*const gUnknown_83A705C[])(u8) = { - MetatileBehavior_IsJumpSouth, - MetatileBehavior_IsJumpNorth, - MetatileBehavior_IsJumpWest, - MetatileBehavior_IsJumpEast, + static bool8 (*const ledgeBehaviorFuncs[])(u8) = { + [DIR_SOUTH - 1] = MetatileBehavior_IsJumpSouth, + [DIR_NORTH - 1] = MetatileBehavior_IsJumpNorth, + [DIR_WEST - 1] = MetatileBehavior_IsJumpWest, + [DIR_EAST - 1] = MetatileBehavior_IsJumpEast, }; - u8 b; - u8 index = z; + u8 behavior; + u8 index = direction; - if (index == 0) - return 0; - else if (index > 4) - index -= 4; + if (index == DIR_NONE) + return DIR_NONE; + else if (index > DIR_EAST) + index -= DIR_EAST; index--; - b = MapGridGetMetatileBehaviorAt(x, y); + behavior = MapGridGetMetatileBehaviorAt(x, y); - if (gUnknown_83A705C[index](b) == 1) + if (ledgeBehaviorFuncs[index](behavior) == TRUE) return index + 1; - return 0; + return DIR_NONE; } static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -8369,90 +8367,86 @@ static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEven sprite->subspriteTableNum = 4; - if (ZCoordToPriority(objEvent->previousElevation) == 1) + if (ElevationToPriority(objEvent->previousElevation) == 1) sprite->subspriteTableNum = 5; } -bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y) +static bool8 IsElevationMismatchAt(u8 elevation, s16 x, s16 y) { - u8 mapZ; + u8 mapElevation; - if (z == 0) + if (elevation == 0) return FALSE; - mapZ = MapGridGetElevationAt(x, y); + mapElevation = MapGridGetElevationAt(x, y); - if (mapZ == 0 || mapZ == 0xF) + if (mapElevation == 0 || mapElevation == 15) return FALSE; - if (mapZ != z) + if (mapElevation != elevation) return TRUE; return FALSE; } -static const u8 sUnknown_083A706C[] = { - 0x73, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x73 +static const u8 sElevationToSubpriority[] = { + 115, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 0, 0, 115 }; -// Each byte corresponds to a sprite priority for an object event. -// This is directly the inverse of sObjectEventPriorities_083A708C. -static const u8 sObjectEventPriorities_083A707C[] = { +static const u8 sElevationToPriority[] = { 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0, 2 }; -// Each byte corresponds to a sprite priority for an object event. -// This is the inverse of sObjectEventPriorities_083A707C. // 1 = Above player sprite // 2 = Below player sprite -static const u8 sObjectEventPriorities_083A708C[] = { +static const u8 sElevationToSubspriteTableNum[] = { 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1, }; -void UpdateObjectEventZCoordAndPriority(struct ObjectEvent *objEvent, struct Sprite *sprite) +static void UpdateObjectEventElevationAndPriority(struct ObjectEvent *objEvent, struct Sprite *sprite) { if (objEvent->fixedPriority) return; - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); - sprite->subspriteTableNum = sObjectEventPriorities_083A708C[objEvent->previousElevation]; - sprite->oam.priority = sObjectEventPriorities_083A707C[objEvent->previousElevation]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[objEvent->previousElevation]; + sprite->oam.priority = sElevationToPriority[objEvent->previousElevation]; } -static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z) +static void InitObjectPriorityByElevation(struct Sprite *sprite, u8 elevation) { - sprite->subspriteTableNum = sObjectEventPriorities_083A708C[z]; - sprite->oam.priority = sObjectEventPriorities_083A707C[z]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[elevation]; + sprite->oam.priority = sElevationToPriority[elevation]; } -u8 ZCoordToPriority(u8 z) +u8 ElevationToPriority(u8 elevation) { - return sObjectEventPriorities_083A707C[z]; + return sElevationToPriority[elevation]; } -void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent) +void ObjectEventUpdateElevation(struct ObjectEvent *objEvent) { - u8 z = MapGridGetElevationAt(objEvent->currentCoords.x, objEvent->currentCoords.y); - u8 z2 = MapGridGetElevationAt(objEvent->previousCoords.x, objEvent->previousCoords.y); + u8 curElevation = MapGridGetElevationAt(objEvent->currentCoords.x, objEvent->currentCoords.y); + u8 prevElevation = MapGridGetElevationAt(objEvent->previousCoords.x, objEvent->previousCoords.y); - if (z == 0xF || z2 == 0xF) + if (curElevation == 15 || prevElevation == 15) return; - objEvent->currentElevation = z; + objEvent->currentElevation = curElevation; - if (z != 0 && z != 0xF) - objEvent->previousElevation = z; + if (curElevation != 0 && curElevation != 15) + objEvent->previousElevation = curElevation; } -void SetObjectSubpriorityByZCoord(u8 a, struct Sprite *sprite, u8 b) +void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 subpriority) { s32 tmp = sprite->centerToCornerVecY; u32 tmpa = *(u16 *)&sprite->y; u32 tmpb = *(u16 *)&gSpriteCoordOffsetY; s32 tmp2 = (tmpa - tmp) + tmpb; u16 tmp3 = (0x10 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2; - sprite->subpriority = tmp3 + sUnknown_083A706C[a] + b; + sprite->subpriority = tmp3 + sElevationToSubpriority[elevation] + subpriority; } static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -8460,10 +8454,10 @@ static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sp if (objEvent->fixedPriority) return; - SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1); } -bool8 AreZCoordsCompatible(u8 a, u8 b) +static bool8 AreElevationsCompatible(u8 a, u8 b) { if (a == 0 || b == 0) return TRUE; @@ -8759,7 +8753,7 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite if (objEvent->triggerGroundEffectsOnMove) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnSpawn(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); DoFlaggedGroundEffects(objEvent, sprite, flags); @@ -8775,7 +8769,7 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr if (objEvent->triggerGroundEffectsOnMove) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnBeginStep(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); filters_out_some_ground_effects(objEvent, &flags); @@ -8792,7 +8786,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent *objEvent, struct Sp if (objEvent->triggerGroundEffectsOnStop) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnFinishStep(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); FilterOutStepOnPuddleGroundEffectIfJumping(objEvent, &flags); @@ -8855,7 +8849,7 @@ void UnfreezeObjectEvents(void) } #define tObjectEventId data[0] -#define tZCoord data[1] +#define tElevation data[1] #define tInvisible data[2] #define tDirection data[3] @@ -9251,7 +9245,7 @@ void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *sprite) { DoObjectUnionRoomWarpYDisplacement(sprite); - SetObjectSubpriorityByZCoord(sprite->tZCoord, sprite, 1); + SetObjectSubpriorityByElevation(sprite->tElevation, sprite, 1); UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible); } @@ -9425,7 +9419,7 @@ bool32 RfuUnionObjectIsWarping(u8 objectEventId) #undef tUnionRoomWarpAnimState #undef tUnionRoomWarpAnimNo #undef tInvisible -#undef tZCoord +#undef tElevation #undef tObjectEventId u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent * objectEvent) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 7e00cc778..b3d2bcf63 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -345,7 +345,7 @@ static void Task_QuestLogPlayback_OpenStartMenu(u8 taskId) static void GetPlayerPosition(struct MapPosition *position) { PlayerGetDestCoords(&position->x, &position->y); - position->height = PlayerGetZCoord(); + position->elevation = PlayerGetElevation(); } static void GetInFrontOfPlayerPosition(struct MapPosition *position) @@ -355,9 +355,9 @@ static void GetInFrontOfPlayerPosition(struct MapPosition *position) GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y); PlayerGetDestCoords(&x, &y); if (MapGridGetElevationAt(x, y) != 0) - position->height = PlayerGetZCoord(); + position->elevation = PlayerGetElevation(); else - position->height = 0; + position->elevation = 0; } static u16 GetPlayerCurMetatileBehavior(void) @@ -410,9 +410,9 @@ const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatil s32 i; if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y))) - objectEventId = GetObjectEventIdByXYZ(position->x, position->y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x, position->y, position->elevation); else - objectEventId = GetObjectEventIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) return NULL; @@ -434,14 +434,14 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 u8 objectEventId; const u8 *script; - objectEventId = GetObjectEventIdByXYZ(position->x, position->y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x, position->y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) { if (MetatileBehavior_IsCounter(metatileBehavior) != TRUE) return NULL; // Look for an object event on the other side of the counter. - objectEventId = GetObjectEventIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) return NULL; } @@ -462,7 +462,7 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction) { u8 signpostType; - const struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + const struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (bgEvent == NULL) return NULL; @@ -632,7 +632,7 @@ static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileB static bool8 TryStartCoordEventScript(struct MapPosition *position) { - const u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + const u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (script == NULL) return FALSE; @@ -814,7 +814,7 @@ static void SetUpWalkIntoSignScript(const u8 *script, u8 playerDirection) static const u8 *GetSignpostScriptAtMapPosition(struct MapPosition * position) { - const struct BgEvent * event = GetBackgroundEventAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + const struct BgEvent * event = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (event == NULL) return NULL; if (event->bgUnion.script != NULL) @@ -959,7 +959,7 @@ static bool8 IsArrowWarpMetatileBehavior(u16 metatileBehavior, u8 direction) static s8 GetWarpEventAtMapPosition(struct MapHeader *mapHeader, struct MapPosition *position) { - return GetWarpEventAtPosition(mapHeader, position->x - 7, position->y - 7, position->height); + return GetWarpEventAtPosition(mapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPosition *position) @@ -1083,7 +1083,7 @@ void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y) { for (i = 0; i < n; i++) { - if (events[i].x + 7 == x && events[i].y + 7 == y) + if (events[i].x + MAP_OFFSET == x && events[i].y + MAP_OFFSET == y) { QuestLog_CutRecording(); ScriptContext_SetupScript(events[i].script); @@ -1095,7 +1095,7 @@ void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y) const u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position) { - return GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + return GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } static const struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) @@ -1119,7 +1119,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior)) { - if (SetDiveWarpEmerge(position->x - 7, position->y - 7)) + if (SetDiveWarpEmerge(position->x - MAP_OFFSET, position->y - MAP_OFFSET)) { StoreInitialPlayerAvatarState(); DoDiveWarp(); @@ -1129,7 +1129,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) } else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE) { - if (SetDiveWarpDive(position->x - 7, position->y - 7)) + if (SetDiveWarpDive(position->x - MAP_OFFSET, position->y - MAP_OFFSET)) { StoreInitialPlayerAvatarState(); DoDiveWarp(); @@ -1149,12 +1149,12 @@ static u8 TrySetDiveWarp(void) metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior)) { - if (SetDiveWarpEmerge(x - 7, y - 7) == TRUE) + if (SetDiveWarpEmerge(x - MAP_OFFSET, y - MAP_OFFSET) == TRUE) return 1; } else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE) { - if (SetDiveWarpDive(x - 7, y - 7) == TRUE) + if (SetDiveWarpDive(x - MAP_OFFSET, y - MAP_OFFSET) == TRUE) return 2; } return 0; diff --git a/src/field_effect.c b/src/field_effect.c index 0639b2b2c..2fdeeead1 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1998,7 +1998,7 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent * } else { task->data[1]++; - ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); + ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection)); PlaySE(SE_LAVARIDGE_FALL_WARP); } } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 6fafac439..5b791af40 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -387,7 +387,7 @@ u32 FldEff_LongGrass(void) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; - sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]); + sprite->oam.priority = ElevationToPriority(gFieldEffectArguments[2]); sprite->data[0] = gFieldEffectArguments[2]; sprite->data[1] = gFieldEffectArguments[0]; sprite->data[2] = gFieldEffectArguments[1]; @@ -1381,7 +1381,7 @@ void UpdateJumpImpactEffect(struct Sprite *sprite) else { UpdateObjectEventSpriteVisibility(sprite, FALSE); - SetObjectSubpriorityByZCoord(sprite->data[0], sprite, 0); + SetObjectSubpriorityByElevation(sprite->data[0], sprite, 0); } } @@ -1400,7 +1400,7 @@ static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 of const struct ObjectEventGraphicsInfo * graphicsInfo; // Unused Variable struct Sprite *linkedSprite; - SetObjectSubpriorityByZCoord(z, sprite, offset); + SetObjectSubpriorityByElevation(z, sprite, offset); for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { struct ObjectEvent * objectEvent = &gObjectEvents[i]; diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 696caf845..04978adda 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -928,7 +928,7 @@ static void ExitStairsMovement(s16 *speedX, s16 *speedY, s16 *offsetX, s16 *offs direction = DIR_WEST; else direction = DIR_EAST; - ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceSlowMovementAction(direction)); + ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceFastMovementAction(direction)); GetStairsMovementDirection(metatileBehavior, speedX, speedY); *offsetX = *speedX * 16; *offsetY = *speedY * 16; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 512d82153..f729ec7b7 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -329,27 +329,27 @@ static u8 DoForcedMovementInCurrentDirection(MovementAction movementAction) static bool8 ForcedMovement_Slip(void) { - return DoForcedMovementInCurrentDirection(PlayerGoSpeed2); + return DoForcedMovementInCurrentDirection(PlayerWalkFast); } static bool8 ForcedMovement_WalkSouth(void) { - return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed1); + return DoForcedMovement(DIR_SOUTH, PlayerWalkNormal); } static bool8 ForcedMovement_WalkNorth(void) { - return DoForcedMovement(DIR_NORTH, PlayerGoSpeed1); + return DoForcedMovement(DIR_NORTH, PlayerWalkNormal); } static bool8 ForcedMovement_WalkWest(void) { - return DoForcedMovement(DIR_WEST, PlayerGoSpeed1); + return DoForcedMovement(DIR_WEST, PlayerWalkNormal); } static bool8 ForcedMovement_WalkEast(void) { - return DoForcedMovement(DIR_EAST, PlayerGoSpeed1); + return DoForcedMovement(DIR_EAST, PlayerWalkNormal); } static bool8 ForcedMovement_SpinRight(void) @@ -412,22 +412,22 @@ static u8 ForcedMovement_Slide(u8 direction, MovementAction movementAction) static bool8 ForcedMovement_SlideSouth(void) { - return ForcedMovement_Slide(DIR_SOUTH, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_SOUTH, PlayerWalkFast); } static bool8 ForcedMovement_SlideNorth(void) { - return ForcedMovement_Slide(DIR_NORTH, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_NORTH, PlayerWalkFast); } static bool8 ForcedMovement_SlideWest(void) { - return ForcedMovement_Slide(DIR_WEST, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_WEST, PlayerWalkFast); } static bool8 ForcedMovement_SlideEast(void) { - return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_EAST, PlayerWalkFast); } static bool8 ForcedMovement_MatJump(void) @@ -508,8 +508,8 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) { - // speed 2 is fast, same speed as running - PlayerGoSpeed2(direction); + // Same speed as running + PlayerWalkFast(direction); return; } @@ -526,9 +526,9 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) else { if (PlayerIsMovingOnRockStairs(direction)) - PlayerGoSlow(direction); + PlayerWalkSlow(direction); else - PlayerGoSpeed1(direction); + PlayerWalkNormal(direction); } } @@ -598,7 +598,7 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) && MapGridGetElevationAt(x, y) == 3 - && GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT) + && GetObjectEventIdByPosition(x, y, 3) == OBJECT_EVENTS_COUNT) { QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[direction], 16); CreateStopSurfingTask(direction); @@ -610,9 +610,9 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) } } -static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) +static bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction) { - if (GetLedgeJumpDirection(x, y, z) != 0) + if (GetLedgeJumpDirection(x, y, direction) != DIR_NONE) return TRUE; else return FALSE; @@ -830,29 +830,29 @@ static void QL_TryRecordNPCStepWithDuration32(struct ObjectEvent * objectEvent, QuestLogRecordNPCStepWithDuration(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, movementAction, 32); } -void PlayerGoSlowest(u8 direction) +void PlayerWalkSlower(u8 direction) { PlayerSetAnimId(GetWalkSlowerMovementAction(direction), 2); } -void PlayerGoSlow(u8 direction) +void PlayerWalkSlow(u8 direction) { PlayerSetAnimId(GetWalkSlowMovementAction(direction), 2); } -void PlayerGoSpeed1(u8 direction) +void PlayerWalkNormal(u8 direction) { PlayerSetAnimId(GetWalkNormalMovementAction(direction), 2); } -void PlayerGoSpeed2(u8 direction) +void PlayerWalkFast(u8 direction) { PlayerSetAnimId(GetWalkFastMovementAction(direction), 2); } -void sub_805C134(u8 direction) +void PlayerGlide(u8 direction) { - PlayerSetAnimId(sub_8063FDC(direction), 2); + PlayerSetAnimId(GetGlideMovementAction(direction), 2); } void PlayerRideWaterCurrent(u8 direction) @@ -860,10 +860,9 @@ void PlayerRideWaterCurrent(u8 direction) PlayerSetAnimId(GetRideWaterCurrentMovementAction(direction), 2); } -// fastest speed (4 speed) -void PlayerGoSpeed4(u8 direction) +void PlayerWalkFaster(u8 direction) { - PlayerSetAnimId(GetWalkFastestMovementAction(direction), 2); + PlayerSetAnimId(GetWalkFasterMovementAction(direction), 2); } void PlayerRun(u8 direction) @@ -885,7 +884,7 @@ void PlayerOnBikeCollide(u8 direction) void PlayerNotOnBikeCollide(u8 direction) { PlayCollisionSoundIfNotFacingWarp(direction); - PlayerSetAnimId(GetStepInPlaceDelay32AnimId(direction), 2); + PlayerSetAnimId(GetWalkInPlaceSlowMovementAction(direction), 2); } void PlayerFaceDirection(u8 direction) @@ -900,7 +899,7 @@ void PlayerFaceDirectionFast(u8 direction) void PlayerTurnInPlace(u8 direction) { - PlayerSetAnimId(GetWalkInPlaceSlowMovementAction(direction), 1); + PlayerSetAnimId(GetWalkInPlaceFastMovementAction(direction), 1); } void PlayerJumpLedge(u8 direction) @@ -965,13 +964,13 @@ static void PlayerStandingHoppingWheelie(u8 direction) static void PlayerMovingHoppingWheelie(u8 direction) { PlaySE(SE_BIKE_HOP); - PlayerSetAnimId(GetAcroWheelieHopDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroWheelieHopMovementAction(direction), 2); } static void PlayerLedgeHoppingWheelie(u8 direction) { PlaySE(SE_BIKE_HOP); - PlayerSetAnimId(GetAcroWheelieJumpDirectionMovementAction(direction), 8); + PlayerSetAnimId(GetAcroWheelieJumpMovementAction(direction), 8); } static void PlayerAcroTurnJump(u8 direction) @@ -983,17 +982,17 @@ static void PlayerAcroTurnJump(u8 direction) static void PlayerAcroWheelieCollide(u8 direction) { PlaySE(SE_WALL_HIT); - PlayerSetAnimId(GetAcroWheelieInPlaceDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroWheelieInPlaceMovementAction(direction), 2); } static void PlayerAcroPopWheelie(u8 direction) { - PlayerSetAnimId(GetAcroPopWheelieMoveDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroPopWheelieMoveMovementAction(direction), 2); } static void PlayerAcroWheelieMove(u8 direction) { - PlayerSetAnimId(GetAcroWheelieMoveDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroWheelieMoveMovementAction(direction), 2); } static bool8 (*const sArrowWarpMetatileBehaviorChecks[])(u8) = { @@ -1090,7 +1089,7 @@ u8 GetPlayerMovementDirection(void) return gObjectEvents[gPlayerAvatar.objectEventId].movementDirection; } -u8 PlayerGetZCoord(void) +u8 PlayerGetElevation(void) { return gObjectEvents[gPlayerAvatar.objectEventId].previousElevation; } @@ -1215,7 +1214,7 @@ bool8 IsPlayerFacingSurfableFishableWater(void) MoveCoords(playerObjEvent->facingDirection, &x, &y); if (GetCollisionAtCoords(playerObjEvent, x, y, playerObjEvent->facingDirection) == COLLISION_ELEVATION_MISMATCH - && PlayerGetZCoord() == 3 + && PlayerGetElevation() == 3 && MetatileAtCoordsIsWaterTile(x, y) == TRUE) return TRUE; else diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 0450864dc..96c5c1db5 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -145,7 +145,7 @@ bool8 SetUpFieldMove_Cut(void) for (j = 0; j < CUT_SIDE; j++) { x = gPlayerFacingPosition.x - 1 + j; - if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.elevation) { if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) { @@ -214,7 +214,7 @@ bool8 FldEff_CutGrass(void) for (j = 0; j < CUT_SIDE; j++) { x = gPlayerFacingPosition.x - 1 + j; - if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.elevation) { if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) { diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index b416e1fce..a3be0956c 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -28,8 +28,8 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) u8 mapObjId; GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - gPlayerFacingPosition.height = PlayerGetZCoord(); - mapObjId = GetObjectEventIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height); + gPlayerFacingPosition.elevation = PlayerGetElevation(); + mapObjId = GetObjectEventIdByPosition(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.elevation); if (gObjectEvents[mapObjId].graphicsId != graphicsId) return FALSE; gSpecialVar_LastTalked = gObjectEvents[mapObjId].localId; diff --git a/src/overworld.c b/src/overworld.c index c6fddd611..42564e2cd 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3032,7 +3032,7 @@ static void LoadCableClubPlayer(s32 linkPlayerId, s32 myPlayerId, struct CableCl GetLinkPlayerCoords(linkPlayerId, &x, &y); player->pos.x = x; player->pos.y = y; - player->pos.height = GetLinkPlayerElevation(linkPlayerId); + player->pos.elevation = GetLinkPlayerElevation(linkPlayerId); player->metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); } @@ -3085,7 +3085,7 @@ static const u8 *TryInteractWithPlayer(struct CableClubPlayer *player) otherPlayerPos = player->pos; otherPlayerPos.x += gDirectionToVectors[player->facing].x; otherPlayerPos.y += gDirectionToVectors[player->facing].y; - otherPlayerPos.height = 0; + otherPlayerPos.elevation = 0; linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); if (linkPlayerId != 4) @@ -3295,7 +3295,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1 objEvent->previousCoords.y = y; SetSpritePosToMapCoords(x, y, &objEvent->initialCoords.x, &objEvent->initialCoords.y); objEvent->initialCoords.x += 8; - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); } static void SetLinkPlayerObjectRange(u8 linkPlayerId, u8 dir) @@ -3434,7 +3434,7 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer { objEvent->directionSequenceIndex = 16; ShiftObjectEventCoords(objEvent, x, y); - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); return TRUE; } } @@ -3536,8 +3536,8 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) struct ObjectEvent *objEvent = &gObjectEvents[linkPlayerObjEvent->objEventId]; sprite->x = objEvent->initialCoords.x; sprite->y = objEvent->initialCoords.y; - SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); - sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); + SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1); + sprite->oam.priority = ElevationToPriority(objEvent->previousElevation); if (!linkPlayerObjEvent->movementMode != MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(linkDirection(objEvent))); diff --git a/src/shop.c b/src/shop.c index 7327874ca..35a070519 100644 --- a/src/shop.c +++ b/src/shop.c @@ -791,11 +791,11 @@ static void BuyMenuDrawMapMetatileLayer(u16 *dest, s16 offset1, s16 offset2, con static void BuyMenuCollectObjectEventData(void) { s16 facingX, facingY; - u8 x, y, z; + u8 x, y, elevation; u8 num = 0; GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY); - z = PlayerGetZCoord(); + elevation = PlayerGetElevation(); for (y = 0; y < OBJECT_EVENTS_COUNT; y++) sViewportObjectEvents[y][OBJECT_EVENT_ID] = OBJECT_EVENTS_COUNT; @@ -804,7 +804,7 @@ static void BuyMenuCollectObjectEventData(void) { for (x = 0; x < 7; x++) { - u8 eventObjId = GetObjectEventIdByXYZ(facingX - 3 + x, facingY - 2 + y, z); + u8 eventObjId = GetObjectEventIdByPosition(facingX - 3 + x, facingY - 2 + y, elevation); if (eventObjId != OBJECT_EVENTS_COUNT) { sViewportObjectEvents[num][OBJECT_EVENT_ID] = eventObjId; From 5dfc494c0052206931e3648419b29e3f84c05d1d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 8 Oct 2022 00:12:36 -0400 Subject: [PATCH 088/105] Convert tilesets.s to C --- data/tilesets.s | 8 - data/tilesets/graphics.inc | 1471 --------------------------------- data/tilesets/headers.inc | 749 ----------------- data/tilesets/metatiles.inc | 543 ------------ include/global.fieldmap.h | 8 +- include/tileset_anims.h | 7 + include/tilesets.h | 13 + ld_script.txt | 2 +- src/data/tilesets/graphics.h | 1407 +++++++++++++++++++++++++++++++ src/data/tilesets/headers.h | 748 +++++++++++++++++ src/data/tilesets/metatiles.h | 203 +++++ src/field_camera.c | 2 +- src/fieldmap.c | 8 +- src/shop.c | 4 +- src/teachy_tv.c | 34 +- src/tilesets.c | 7 + 16 files changed, 2414 insertions(+), 2800 deletions(-) delete mode 100644 data/tilesets.s delete mode 100644 data/tilesets/graphics.inc delete mode 100644 data/tilesets/headers.inc delete mode 100644 data/tilesets/metatiles.inc create mode 100644 include/tilesets.h create mode 100644 src/data/tilesets/graphics.h create mode 100644 src/data/tilesets/headers.h create mode 100644 src/data/tilesets/metatiles.h create mode 100644 src/tilesets.c diff --git a/data/tilesets.s b/data/tilesets.s deleted file mode 100644 index b8b50e652..000000000 --- a/data/tilesets.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .include "data/tilesets/graphics.inc" - .include "data/tilesets/metatiles.inc" - .include "data/tilesets/headers.inc" diff --git a/data/tilesets/graphics.inc b/data/tilesets/graphics.inc deleted file mode 100644 index adecd108e..000000000 --- a/data/tilesets/graphics.inc +++ /dev/null @@ -1,1471 +0,0 @@ - .align 2 -gTilesetTiles_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/15.gbapal" - - .align 2 -gTilesetTiles_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/palettes/00.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/01.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/02.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/03.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/04.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/05.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/06.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/07.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/08.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/09.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/10.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/11.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/12.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/13.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/14.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/15.gbapal" - - .align 2 -gTilesetTiles_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/15.gbapal" - - .align 2 -gTilesetTiles_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/palettes/00.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/01.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/02.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/03.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/04.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/05.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/06.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/07.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/08.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/09.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/10.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/11.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/12.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/13.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/14.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Building:: @ Building - .incbin "data/tilesets/primary/building/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Building:: @ Building - .incbin "data/tilesets/primary/building/palettes/00.gbapal" - .incbin "data/tilesets/primary/building/palettes/01.gbapal" - .incbin "data/tilesets/primary/building/palettes/02.gbapal" - .incbin "data/tilesets/primary/building/palettes/03.gbapal" - .incbin "data/tilesets/primary/building/palettes/04.gbapal" - .incbin "data/tilesets/primary/building/palettes/05.gbapal" - .incbin "data/tilesets/primary/building/palettes/06.gbapal" - .incbin "data/tilesets/primary/building/palettes/07.gbapal" - .incbin "data/tilesets/primary/building/palettes/08.gbapal" - .incbin "data/tilesets/primary/building/palettes/09.gbapal" - .incbin "data/tilesets/primary/building/palettes/10.gbapal" - .incbin "data/tilesets/primary/building/palettes/11.gbapal" - .incbin "data/tilesets/primary/building/palettes/12.gbapal" - .incbin "data/tilesets/primary/building/palettes/13.gbapal" - .incbin "data/tilesets/primary/building/palettes/14.gbapal" - .incbin "data/tilesets/primary/building/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Mart:: - .incbin "data/tilesets/secondary/mart/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Mart:: - .incbin "data/tilesets/secondary/mart/palettes/00.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/01.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/02.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/03.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/04.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/05.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/06.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/07.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/08.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/09.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/10.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/11.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/12.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/13.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/14.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Cave:: - .incbin "data/tilesets/secondary/cave/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Cave:: - .incbin "data/tilesets/secondary/cave/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Museum:: - .incbin "data/tilesets/secondary/museum/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Museum:: - .incbin "data/tilesets/secondary/museum/palettes/00.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/01.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/02.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/03.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/04.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/05.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/06.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/07.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/08.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/09.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/10.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/11.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/12.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/13.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/14.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CableClub:: - .incbin "data/tilesets/secondary/cable_club/tiles.4bpp" - - .align 2 -gTilesetPalettes_CableClub:: - .incbin "data/tilesets/secondary/cable_club/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/15.gbapal" - - .align 2 -gTilesetTiles_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/palettes/00.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/01.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/02.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/03.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/04.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/05.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/06.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/07.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/08.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/09.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/10.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/11.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/12.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/13.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/14.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Lab:: - .incbin "data/tilesets/secondary/lab/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Lab:: - .incbin "data/tilesets/secondary/lab/palettes/00.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/01.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/02.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/03.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/04.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/05.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/06.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/07.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/08.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/09.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/10.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/11.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/12.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/13.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/14.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/15.gbapal" - - .align 2 -gTilesetTiles_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/palettes/00.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/01.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/02.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/03.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/04.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/05.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/06.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/07.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/08.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/09.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/10.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/11.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/12.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/13.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/14.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/15.gbapal" - - .align 2 -gTilesetTiles_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/palettes/00.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/01.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/02.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/03.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/04.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/05.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/06.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/07.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/08.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/09.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/10.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/11.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/12.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/13.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/14.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/palettes/00.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/01.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/02.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/03.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/04.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/05.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/06.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/07.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/08.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/09.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/10.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/11.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/12.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/13.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/14.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/15.gbapal" - - .align 2 -gTilesetTiles_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/palettes/00.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/01.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/02.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/03.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/04.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/05.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/06.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/07.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/08.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/09.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/10.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/11.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/12.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/13.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/14.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/15.gbapal" - - .align 2 -gTilesetTiles_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/00.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/01.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/02.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/03.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/04.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/05.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/06.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/07.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/08.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/09.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/10.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/11.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/12.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/13.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/14.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/15.gbapal" - - .align 2 -gTilesetTiles_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/palettes/00.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/01.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/02.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/03.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/04.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/05.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/06.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/07.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/08.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/09.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/10.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/11.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/12.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/13.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/14.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/15.gbapal" - - .align 2 -gTilesetTiles_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/palettes/00.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/01.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/02.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/03.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/04.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/05.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/06.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/07.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/08.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/09.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/10.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/11.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/12.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/13.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/14.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/palettes/00.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/01.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/02.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/03.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/04.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/05.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/06.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/07.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/08.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/09.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/10.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/11.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/12.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/13.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/14.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/15.gbapal" - - .align 2 -gTilesetTiles_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/00.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/01.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/02.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/03.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/04.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/05.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/06.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/07.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/08.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/09.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/10.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/11.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/12.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/13.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/14.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/15.gbapal" - - .align 2 -gTilesetTiles_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/palettes/00.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/01.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/02.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/03.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/04.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/05.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/06.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/07.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/08.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/09.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/10.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/11.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/12.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/13.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/14.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/palettes/00.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/01.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/02.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/03.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/04.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/05.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/06.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/07.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/08.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/09.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/10.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/11.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/12.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/13.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/14.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SilphCo:: - .incbin "data/tilesets/secondary/condominiums/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SilphCo:: - .incbin "data/tilesets/secondary/condominiums/palettes/00.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/01.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/02.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/03.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/04.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/05.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/06.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/07.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/08.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/09.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/10.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/11.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/12.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/13.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/14.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/15.gbapal" - - .align 2 -gTilesetTiles_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/palettes/00.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/01.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/02.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/03.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/04.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/05.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/06.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/07.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/08.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/09.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/10.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/11.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/12.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/13.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/14.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/palettes/00.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/01.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/02.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/03.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/04.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/05.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/06.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/07.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/08.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/09.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/10.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/11.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/12.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/13.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/14.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/15.gbapal" - - .align 2 -gTilesetTiles_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/00.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/01.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/02.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/03.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/04.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/05.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/06.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/07.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/08.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/09.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/10.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/11.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/12.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/13.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/14.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/15.gbapal" - - .align 2 -gTilesetTiles_School:: - .incbin "data/tilesets/secondary/school/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_School:: - .incbin "data/tilesets/secondary/school/palettes/00.gbapal" - .incbin "data/tilesets/secondary/school/palettes/01.gbapal" - .incbin "data/tilesets/secondary/school/palettes/02.gbapal" - .incbin "data/tilesets/secondary/school/palettes/03.gbapal" - .incbin "data/tilesets/secondary/school/palettes/04.gbapal" - .incbin "data/tilesets/secondary/school/palettes/05.gbapal" - .incbin "data/tilesets/secondary/school/palettes/06.gbapal" - .incbin "data/tilesets/secondary/school/palettes/07.gbapal" - .incbin "data/tilesets/secondary/school/palettes/08.gbapal" - .incbin "data/tilesets/secondary/school/palettes/09.gbapal" - .incbin "data/tilesets/secondary/school/palettes/10.gbapal" - .incbin "data/tilesets/secondary/school/palettes/11.gbapal" - .incbin "data/tilesets/secondary/school/palettes/12.gbapal" - .incbin "data/tilesets/secondary/school/palettes/13.gbapal" - .incbin "data/tilesets/secondary/school/palettes/14.gbapal" - .incbin "data/tilesets/secondary/school/palettes/15.gbapal" - - .align 2 -gTilesetTiles_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/00.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/01.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/02.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/03.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/04.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/05.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/06.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/07.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/08.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/09.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/10.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/11.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/12.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/13.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/14.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/15.gbapal" - - .align 2 -gTilesetTiles_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/palettes/00.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/01.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/02.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/03.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/04.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/05.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/06.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/07.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/08.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/09.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/10.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/11.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/12.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/13.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/14.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/15.gbapal" - - .align 2 -gTilesetTiles_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/palettes/00.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/01.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/02.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/03.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/04.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/05.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/06.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/07.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/08.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/09.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/10.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/11.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/12.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/13.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/14.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/15.gbapal" - - .align 2 -gTilesetTiles_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/palettes/00.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/01.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/02.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/03.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/04.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/05.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/06.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/07.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/08.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/09.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/10.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/11.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/12.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/13.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/14.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/15.gbapal" - - .align 2 -gTilesetTiles_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/palettes/00.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/01.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/02.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/03.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/04.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/05.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/06.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/07.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/08.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/09.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/10.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/11.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/12.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/13.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/14.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/15.gbapal" - - .align 2 -gTilesetTiles_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/00.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/01.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/02.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/03.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/04.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/05.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/06.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/07.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/08.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/09.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/10.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/11.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/12.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/13.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/14.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/15.gbapal" - - .align 2 -gTilesetTiles_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/palettes/00.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/01.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/02.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/03.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/04.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/05.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/06.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/07.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/08.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/09.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/10.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/11.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/12.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/13.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/14.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/15.gbapal" - - .align 2 -gTilesetTiles_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/palettes/00.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/01.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/02.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/03.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/04.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/05.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/06.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/07.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/08.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/09.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/10.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/11.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/12.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/13.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/14.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/15.gbapal" - - .align 2 -gTilesetTiles_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/palettes/00.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/01.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/02.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/03.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/04.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/05.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/06.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/07.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/08.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/09.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/10.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/11.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/12.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/13.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/14.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/15.gbapal" diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc deleted file mode 100644 index cac3cf82f..000000000 --- a/data/tilesets/headers.inc +++ /dev/null @@ -1,749 +0,0 @@ - - .align 2 -gTileset_General:: - .byte TRUE @ is compressed - .byte FALSE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_General - .4byte gTilesetPalettes_General - .4byte gMetatiles_General - .4byte InitTilesetAnim_General - .4byte gMetatileAttributes_General - - .align 2 -gTileset_PalletTown:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PalletTown - .4byte gTilesetPalettes_PalletTown - .4byte gMetatiles_PalletTown - .4byte 0x0 - .4byte gMetatileAttributes_PalletTown - - .align 2 -gTileset_ViridianCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_ViridianCity - .4byte gTilesetPalettes_ViridianCity - .4byte gMetatiles_ViridianCity - .4byte 0x0 - .4byte gMetatileAttributes_ViridianCity - - .align 2 -gTileset_PewterCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PewterCity - .4byte gTilesetPalettes_PewterCity - .4byte gMetatiles_PewterCity - .4byte 0x0 - .4byte gMetatileAttributes_PewterCity - - .align 2 -gTileset_CeruleanCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeruleanCity - .4byte gTilesetPalettes_CeruleanCity - .4byte gMetatiles_CeruleanCity - .4byte 0x0 - .4byte gMetatileAttributes_CeruleanCity - - .align 2 -gTileset_LavenderTown:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_LavenderTown - .4byte gTilesetPalettes_LavenderTown - .4byte gMetatiles_LavenderTown - .4byte 0x0 - .4byte gMetatileAttributes_LavenderTown - - .align 2 -gTileset_VermilionCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_VermilionCity - .4byte gTilesetPalettes_VermilionCity - .4byte gMetatiles_VermilionCity - .4byte 0x0 - .4byte gMetatileAttributes_VermilionCity - - .align 2 -gTileset_CeladonCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeladonCity - .4byte gTilesetPalettes_CeladonCity - .4byte gMetatiles_CeladonCity - .4byte InitTilesetAnim_CeladonCity - .4byte gMetatileAttributes_CeladonCity - - .align 2 -gTileset_FuchsiaCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_FuchsiaCity - .4byte gTilesetPalettes_FuchsiaCity - .4byte gMetatiles_FuchsiaCity - .4byte 0x0 - .4byte gMetatileAttributes_FuchsiaCity - - .align 2 -gTileset_CinnabarIsland:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CinnabarIsland - .4byte gTilesetPalettes_CinnabarIsland - .4byte gMetatiles_CinnabarIsland - .4byte 0x0 - .4byte gMetatileAttributes_CinnabarIsland - - .align 2 -gTileset_IndigoPlateau:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_IndigoPlateau - .4byte gTilesetPalettes_IndigoPlateau - .4byte gMetatiles_IndigoPlateau - .4byte 0x0 - .4byte gMetatileAttributes_IndigoPlateau - - .align 2 -gTileset_SaffronCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SaffronCity - .4byte gTilesetPalettes_SaffronCity - .4byte gMetatiles_SaffronCity - .4byte 0x0 - .4byte gMetatileAttributes_SaffronCity - - .align 2 -gTileset_Building:: - .byte TRUE @ is compressed - .byte FALSE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Building - .4byte gTilesetPalettes_Building - .4byte gMetatiles_Building - .4byte 0x0 - .4byte gMetatileAttributes_Building - - .align 2 -gTileset_Mart:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Mart - .4byte gTilesetPalettes_Mart - .4byte gMetatiles_Mart - .4byte 0x0 - .4byte gMetatileAttributes_Mart - - .align 2 -gTileset_PokemonCenter:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonCenter - .4byte gTilesetPalettes_PokemonCenter - .4byte gMetatiles_PokemonCenter - .4byte 0x0 - .4byte gMetatileAttributes_PokemonCenter - - .align 2 -gTileset_Cave:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Cave - .4byte gTilesetPalettes_Cave - .4byte gMetatiles_Cave - .4byte 0x0 - .4byte gMetatileAttributes_Cave - - .align 2 -gTileset_Dummy1:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy1 - .4byte gTilesetPalettes_Dummy1 - .4byte gMetatiles_Dummy1 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy1 - - .align 2 -gTileset_Museum:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Museum - .4byte gTilesetPalettes_Museum - .4byte gMetatiles_Museum - .4byte 0x0 - .4byte gMetatileAttributes_Museum - - .align 2 -gTileset_CableClub:: - .byte FALSE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CableClub - .4byte gTilesetPalettes_CableClub - .4byte gMetatiles_CableClub - .4byte 0x0 - .4byte gMetatileAttributes_CableClub - - .align 2 -gTileset_BikeShop:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_BikeShop - .4byte gTilesetPalettes_BikeShop - .4byte gMetatiles_BikeShop - .4byte 0x0 - .4byte gMetatileAttributes_BikeShop - - .align 2 -gTileset_GenericBuilding1:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_GenericBuilding1 - .4byte gTilesetPalettes_GenericBuilding1 - .4byte gMetatiles_GenericBuilding1 - .4byte 0x0 - .4byte gMetatileAttributes_GenericBuilding1 - - .align 2 -gTileset_Lab:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Lab - .4byte gTilesetPalettes_Lab - .4byte gMetatiles_Lab - .4byte 0x0 - .4byte gMetatileAttributes_Lab - - .align 2 -gTileset_FuchsiaGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_FuchsiaGym - .4byte gTilesetPalettes_FuchsiaGym - .4byte gMetatiles_FuchsiaGym - .4byte 0x0 - .4byte gMetatileAttributes_FuchsiaGym - - .align 2 -gTileset_ViridianGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_ViridianGym - .4byte gTilesetPalettes_ViridianGym - .4byte gMetatiles_ViridianGym - .4byte 0x0 - .4byte gMetatileAttributes_ViridianGym - - .align 2 -gTileset_HoennBuilding:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_HoennBuilding - .4byte gTilesetPalettes_HoennBuilding - .4byte gMetatiles_HoennBuilding - .4byte 0x0 - .4byte gMetatileAttributes_HoennBuilding - - .align 2 -gTileset_GameCorner:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_GameCorner - .4byte gTilesetPalettes_GameCorner - .4byte gMetatiles_GameCorner - .4byte 0x0 - .4byte gMetatileAttributes_GameCorner - - .align 2 -gTileset_PewterGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PewterGym - .4byte gTilesetPalettes_PewterGym - .4byte gMetatiles_PewterGym - .4byte 0x0 - .4byte gMetatileAttributes_PewterGym - - .align 2 -gTileset_CeruleanGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeruleanGym - .4byte gTilesetPalettes_CeruleanGym - .4byte gMetatiles_CeruleanGym - .4byte 0x0 - .4byte gMetatileAttributes_CeruleanGym - - .align 2 -gTileset_VermilionGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_VermilionGym - .4byte gTilesetPalettes_VermilionGym - .4byte gMetatiles_VermilionGym - .4byte InitTilesetAnim_VermilionGym - .4byte gMetatileAttributes_VermilionGym - - .align 2 -gTileset_CeladonGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeladonGym - .4byte gTilesetPalettes_CeladonGym - .4byte gMetatiles_CeladonGym - .4byte InitTilesetAnim_CeladonGym - .4byte gMetatileAttributes_CeladonGym - - .align 2 -gTileset_SaffronGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SaffronGym - .4byte gTilesetPalettes_SaffronGym - .4byte gMetatiles_SaffronGym - .4byte 0x0 - .4byte gMetatileAttributes_SaffronGym - - .align 2 -gTileset_CinnabarGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CinnabarGym - .4byte gTilesetPalettes_CinnabarGym - .4byte gMetatiles_CinnabarGym - .4byte 0x0 - .4byte gMetatileAttributes_CinnabarGym - - .align 2 -gTileset_SSAnne:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SSAnne - .4byte gTilesetPalettes_SSAnne - .4byte gMetatiles_SSAnne - .4byte 0x0 - .4byte gMetatileAttributes_SSAnne - - .align 2 -gTileset_Dummy2:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy2 - .4byte gTilesetPalettes_Dummy2 - .4byte gMetatiles_Dummy2 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy2 - - .align 2 -gTileset_ViridianForest:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_ViridianForest - .4byte gTilesetPalettes_ViridianForest - .4byte gMetatiles_ViridianForest - .4byte 0x0 - .4byte gMetatileAttributes_ViridianForest - - .align 2 -gTileset_UnusedGatehouse1:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_UnusedGatehouse1 - .4byte gTilesetPalettes_UnusedGatehouse1 - .4byte gMetatiles_UnusedGatehouse1 - .4byte 0x0 - .4byte gMetatileAttributes_UnusedGatehouse1 - - .align 2 -gTileset_RockTunnel:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_RockTunnel - .4byte gTilesetPalettes_RockTunnel - .4byte gMetatiles_RockTunnel - .4byte 0x0 - .4byte gMetatileAttributes_RockTunnel - - .align 2 -gTileset_DiglettsCave:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_DiglettsCave - .4byte gTilesetPalettes_DiglettsCave - .4byte gMetatiles_DiglettsCave - .4byte 0x0 - .4byte gMetatileAttributes_DiglettsCave - - .align 2 -gTileset_SeafoamIslands:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeafoamIslands - .4byte gTilesetPalettes_SeafoamIslands - .4byte gMetatiles_SeafoamIslands - .4byte 0x0 - .4byte gMetatileAttributes_SeafoamIslands - - .align 2 -gTileset_UnusedGatehouse2:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_UnusedGatehouse2 - .4byte gTilesetPalettes_UnusedGatehouse2 - .4byte gMetatiles_UnusedGatehouse2 - .4byte 0x0 - .4byte gMetatileAttributes_UnusedGatehouse2 - - .align 2 -gTileset_CeruleanCave:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeruleanCave - .4byte gTilesetPalettes_CeruleanCave - .4byte gMetatiles_CeruleanCave - .4byte 0x0 - .4byte gMetatileAttributes_CeruleanCave - - .align 2 -gTileset_DepartmentStore:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_DepartmentStore - .4byte gTilesetPalettes_DepartmentStore - .4byte gMetatiles_DepartmentStore - .4byte 0x0 - .4byte gMetatileAttributes_DepartmentStore - - .align 2 -gTileset_GenericBuilding2:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_GenericBuilding2 - .4byte gTilesetPalettes_GenericBuilding2 - .4byte gMetatiles_GenericBuilding2 - .4byte 0x0 - .4byte gMetatileAttributes_GenericBuilding2 - - .align 2 -gTileset_PowerPlant:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PowerPlant - .4byte gTilesetPalettes_PowerPlant - .4byte gMetatiles_PowerPlant - .4byte 0x0 - .4byte gMetatileAttributes_PowerPlant - - .align 2 -gTileset_SeaCottage:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeaCottage - .4byte gTilesetPalettes_SeaCottage - .4byte gMetatiles_SeaCottage - .4byte 0x0 - .4byte gMetatileAttributes_SeaCottage - - .align 2 -gTileset_SilphCo:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SilphCo - .4byte gTilesetPalettes_SilphCo - .4byte gMetatiles_SilphCo - .4byte InitTilesetAnim_SilphCo - .4byte gMetatileAttributes_SilphCo - - .align 2 -gTileset_UndergroundPath:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_UndergroundPath - .4byte gTilesetPalettes_UndergroundPath - .4byte gMetatiles_UndergroundPath - .4byte 0x0 - .4byte gMetatileAttributes_UndergroundPath - - .align 2 -gTileset_PokemonTower:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonTower - .4byte gTilesetPalettes_PokemonTower - .4byte gMetatiles_PokemonTower - .4byte 0x0 - .4byte gMetatileAttributes_PokemonTower - - .align 2 -gTileset_SafariZoneBuilding:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SafariZoneBuilding - .4byte gTilesetPalettes_SafariZoneBuilding - .4byte gMetatiles_SafariZoneBuilding - .4byte 0x0 - .4byte gMetatileAttributes_SafariZoneBuilding - - .align 2 -gTileset_PokemonMansion:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonMansion - .4byte gTilesetPalettes_PokemonMansion - .4byte gMetatiles_PokemonMansion - .4byte 0x0 - .4byte gMetatileAttributes_PokemonMansion - - .align 2 -gTileset_RestaurantHotel:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_RestaurantHotel - .4byte gTilesetPalettes_RestaurantHotel - .4byte gMetatiles_RestaurantHotel - .4byte 0x0 - .4byte gMetatileAttributes_RestaurantHotel - - .align 2 -gTileset_School:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_School - .4byte gTilesetPalettes_School - .4byte gMetatiles_School - .4byte 0x0 - .4byte gMetatileAttributes_School - - .align 2 -gTileset_FanClubDaycare:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_FanClubDaycare - .4byte gTilesetPalettes_FanClubDaycare - .4byte gMetatiles_FanClubDaycare - .4byte 0x0 - .4byte gMetatileAttributes_FanClubDaycare - - .align 2 -gTileset_Condominiums:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SilphCo - .4byte gTilesetPalettes_SilphCo - .4byte gMetatiles_Condominiums - .4byte 0x0 - .4byte gMetatileAttributes_Condominiums - - .align 2 -gTileset_BurgledHouse:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_BurgledHouse - .4byte gTilesetPalettes_BurgledHouse - .4byte gMetatiles_BurgledHouse - .4byte 0x0 - .4byte gMetatileAttributes_BurgledHouse - - .align 2 -gTileset_Dummy3:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy3 - .4byte gTilesetPalettes_Dummy3 - .4byte gMetatiles_Dummy3 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy3 - - .align 2 -gTileset_Dummy4:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy4 - .4byte gTilesetPalettes_Dummy4 - .4byte gMetatiles_Dummy4 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy4 - - .align 2 -gTileset_MtEmber:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_MtEmber - .4byte gTilesetPalettes_MtEmber - .4byte gMetatiles_MtEmber - .4byte InitTilesetAnim_MtEmber - .4byte gMetatileAttributes_MtEmber - - .align 2 -gTileset_BerryForest:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_BerryForest - .4byte gTilesetPalettes_BerryForest - .4byte gMetatiles_BerryForest - .4byte 0x0 - .4byte gMetatileAttributes_BerryForest - - .align 2 -gTileset_NavelRock:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_NavelRock - .4byte gTilesetPalettes_NavelRock - .4byte gMetatiles_NavelRock - .4byte 0x0 - .4byte gMetatileAttributes_NavelRock - - .align 2 -gTileset_TanobyRuins:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_TanobyRuins - .4byte gTilesetPalettes_TanobyRuins - .4byte gMetatiles_TanobyRuins - .4byte 0x0 - .4byte gMetatileAttributes_TanobyRuins - - .align 2 -gTileset_SeviiIslands123:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeviiIslands123 - .4byte gTilesetPalettes_SeviiIslands123 - .4byte gMetatiles_SeviiIslands123 - .4byte 0x0 - .4byte gMetatileAttributes_SeviiIslands123 - - .align 2 -gTileset_SeviiIslands45:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeviiIslands45 - .4byte gTilesetPalettes_SeviiIslands45 - .4byte gMetatiles_SeviiIslands45 - .4byte 0x0 - .4byte gMetatileAttributes_SeviiIslands45 - - .align 2 -gTileset_SeviiIslands67:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeviiIslands67 - .4byte gTilesetPalettes_SeviiIslands67 - .4byte gMetatiles_SeviiIslands67 - .4byte 0x0 - .4byte gMetatileAttributes_SeviiIslands67 - - .align 2 -gTileset_TrainerTower:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_TrainerTower - .4byte gTilesetPalettes_TrainerTower - .4byte gMetatiles_TrainerTower - .4byte 0x0 - .4byte gMetatileAttributes_TrainerTower - - .align 2 -gTileset_IslandHarbor:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_IslandHarbor - .4byte gTilesetPalettes_IslandHarbor - .4byte gMetatiles_IslandHarbor - .4byte 0x0 - .4byte gMetatileAttributes_IslandHarbor - - .align 2 -gTileset_PokemonLeague:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonLeague - .4byte gTilesetPalettes_PokemonLeague - .4byte gMetatiles_PokemonLeague - .4byte 0x0 - .4byte gMetatileAttributes_PokemonLeague - - .align 2 -gTileset_HallOfFame:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_HallOfFame - .4byte gTilesetPalettes_HallOfFame - .4byte gMetatiles_HallOfFame - .4byte 0x0 - .4byte gMetatileAttributes_HallOfFame - diff --git a/data/tilesets/metatiles.inc b/data/tilesets/metatiles.inc deleted file mode 100644 index af9fe19a1..000000000 --- a/data/tilesets/metatiles.inc +++ /dev/null @@ -1,543 +0,0 @@ - .align 1 -gMetatiles_General:: - .incbin "data/tilesets/primary/general/metatiles.bin" - - .align 1 -gMetatileAttributes_General:: - .incbin "data/tilesets/primary/general/metatile_attributes.bin" - - .align 1 -gMetatiles_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/metatiles.bin" - - .align 1 -gMetatileAttributes_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/metatile_attributes.bin" - - .align 1 -gMetatiles_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/metatiles.bin" - - .align 1 -gMetatileAttributes_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/metatile_attributes.bin" - - .align 1 -gMetatiles_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/metatiles.bin" - - .align 1 -gMetatileAttributes_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/metatile_attributes.bin" - - .align 1 -gMetatiles_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/metatiles.bin" - - .align 1 -gMetatileAttributes_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/metatile_attributes.bin" - - .align 1 -gMetatiles_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/metatiles.bin" - - .align 1 -gMetatileAttributes_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/metatile_attributes.bin" - - .align 1 -gMetatiles_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/metatiles.bin" - - .align 1 -gMetatileAttributes_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/metatile_attributes.bin" - - .align 1 -gMetatiles_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/metatiles.bin" - - .align 1 -gMetatileAttributes_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/metatile_attributes.bin" - - .align 1 -gMetatiles_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/metatiles.bin" - - .align 1 -gMetatileAttributes_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/metatile_attributes.bin" - - .align 1 -gMetatiles_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/metatiles.bin" - - .align 1 -gMetatileAttributes_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/metatile_attributes.bin" - - .align 1 -gMetatiles_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/metatiles.bin" - - .align 1 -gMetatileAttributes_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/metatile_attributes.bin" - - .align 1 -gMetatiles_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/metatiles.bin" - - .align 1 -gMetatileAttributes_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/metatile_attributes.bin" - - .align 1 -gMetatiles_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_Building:: @ Building - .incbin "data/tilesets/primary/building/metatiles.bin" - - .align 1 -gMetatileAttributes_Building:: @ Building - .incbin "data/tilesets/primary/building/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/metatile_attributes.bin" - - .align 1 -gMetatiles_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/metatiles.bin" - - .align 1 -gMetatileAttributes_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/metatile_attributes.bin" - - .align 1 -gMetatiles_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/metatiles.bin" - - .align 1 -gMetatileAttributes_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/metatile_attributes.bin" - - .align 1 -gMetatiles_Mart:: - .incbin "data/tilesets/secondary/mart/metatiles.bin" - - .align 1 -gMetatileAttributes_Mart:: - .incbin "data/tilesets/secondary/mart/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/metatile_attributes.bin" - - .align 1 -gMetatiles_GenericBuilding1:: - .incbin "data/tilesets/secondary/generic_building_1/metatiles.bin" - - .align 1 -gMetatileAttributes_GenericBuilding1:: - .incbin "data/tilesets/secondary/generic_building_1/metatile_attributes.bin" - - .align 1 -gMetatiles_Cave:: - .incbin "data/tilesets/secondary/cave/metatiles.bin" - - .align 1 -gMetatileAttributes_Cave:: - .incbin "data/tilesets/secondary/cave/metatile_attributes.bin" - - .align 1 -gMetatiles_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/metatiles.bin" - - .align 1 -gMetatileAttributes_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/metatile_attributes.bin" - - .align 1 -gMetatiles_Lab:: - .incbin "data/tilesets/secondary/lab/metatiles.bin" - - .align 1 -gMetatileAttributes_Lab:: - .incbin "data/tilesets/secondary/lab/metatile_attributes.bin" - - .align 1 -gMetatiles_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/metatiles.bin" - - .align 1 -gMetatileAttributes_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/metatile_attributes.bin" - - .align 1 -gMetatiles_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/metatiles.bin" - - .align 1 -gMetatileAttributes_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/metatile_attributes.bin" - - .align 1 -gMetatiles_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/metatiles.bin" - - .align 1 -gMetatileAttributes_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/metatile_attributes.bin" - - .align 1 -gMetatiles_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/metatiles.bin" - - .align 1 -gMetatileAttributes_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/metatile_attributes.bin" - - .align 1 -gMetatiles_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/metatiles.bin" - - .align 1 -gMetatileAttributes_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/metatile_attributes.bin" - - .align 1 -gMetatiles_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/metatiles.bin" - - .align 1 -gMetatileAttributes_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/metatile_attributes.bin" - - .align 1 -gMetatiles_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/metatiles.bin" - - .align 1 -gMetatileAttributes_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/metatile_attributes.bin" - - .align 1 -gMetatiles_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/metatiles.bin" - - .align 1 -gMetatileAttributes_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/metatile_attributes.bin" - - .align 1 -gMetatiles_DepartmentStore:: - .incbin "data/tilesets/secondary/department_store/metatiles.bin" - - .align 1 -gMetatileAttributes_DepartmentStore:: - .incbin "data/tilesets/secondary/department_store/metatile_attributes.bin" - - .align 1 -gMetatiles_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/metatiles.bin" - - .align 1 -gMetatileAttributes_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/metatile_attributes.bin" - - .align 1 -gMetatiles_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/metatiles.bin" - - .align 1 -gMetatileAttributes_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/metatile_attributes.bin" - - .align 1 -gMetatiles_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/metatiles.bin" - - .align 1 -gMetatileAttributes_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/metatile_attributes.bin" - - .align 1 -gMetatiles_SilphCo:: - .incbin "data/tilesets/secondary/silph_co/metatiles.bin" - - .align 1 -gMetatileAttributes_SilphCo:: - .incbin "data/tilesets/secondary/silph_co/metatile_attributes.bin" - - .align 1 -gMetatiles_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/metatiles.bin" - - .align 1 -gMetatileAttributes_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/metatile_attributes.bin" - - .align 1 -gMetatiles_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/metatiles.bin" - - .align 1 -gMetatileAttributes_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/metatile_attributes.bin" - - .align 1 -gMetatiles_Museum:: - .incbin "data/tilesets/secondary/museum/metatiles.bin" - - .align 1 -gMetatileAttributes_Museum:: - .incbin "data/tilesets/secondary/museum/metatile_attributes.bin" - - .align 1 -gMetatiles_CableClub:: - .incbin "data/tilesets/secondary/cable_club/metatiles.bin" - - .align 1 -gMetatileAttributes_CableClub:: - .incbin "data/tilesets/secondary/cable_club/metatile_attributes.bin" - - .align 1 -gMetatiles_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/metatiles.bin" - - .align 1 -gMetatileAttributes_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/metatile_attributes.bin" - - .align 1 -gMetatiles_School:: - .incbin "data/tilesets/secondary/school/metatiles.bin" - - .align 1 -gMetatileAttributes_School:: - .incbin "data/tilesets/secondary/school/metatile_attributes.bin" - - .align 1 -gMetatiles_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/metatiles.bin" - - .align 1 -gMetatileAttributes_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/metatile_attributes.bin" - - .align 1 -gMetatiles_Condominiums:: - .incbin "data/tilesets/secondary/condominiums/metatiles.bin" - - .align 1 -gMetatileAttributes_Condominiums:: - .incbin "data/tilesets/secondary/condominiums/metatile_attributes.bin" - - .align 1 -gMetatiles_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/metatiles.bin" - - .align 1 -gMetatileAttributes_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/metatile_attributes.bin" - - .align 1 -gMetatiles_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/metatiles.bin" - - .align 1 -gMetatileAttributes_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/metatile_attributes.bin" - - .align 1 -gMetatiles_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/metatiles.bin" - - .align 1 -gMetatileAttributes_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/metatile_attributes.bin" - - .align 1 -gMetatiles_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/metatiles.bin" - - .align 1 -gMetatileAttributes_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/metatile_attributes.bin" - - .align 1 -gMetatiles_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/metatiles.bin" - - .align 1 -gMetatileAttributes_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/metatile_attributes.bin" - - .align 1 -gMetatiles_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/metatiles.bin" - - .align 1 -gMetatileAttributes_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/metatile_attributes.bin" - - .align 1 -gMetatiles_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/metatiles.bin" - - .align 1 -gMetatileAttributes_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/metatile_attributes.bin" - - .align 1 -gMetatiles_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/metatiles.bin" - - .align 1 -gMetatileAttributes_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/metatile_attributes.bin" - - .align 1 -gMetatiles_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/metatiles.bin" - - .align 1 -gMetatileAttributes_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/metatile_attributes.bin" - - .align 1 -gMetatiles_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/metatiles.bin" - - .align 1 -gMetatileAttributes_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/metatile_attributes.bin" - - .align 1 -gMetatiles_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/metatiles.bin" - - .align 1 -gMetatileAttributes_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/metatile_attributes.bin" diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index d9be6a29a..6d0bfb1af 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -68,11 +68,11 @@ struct Tileset { /*0x00*/ bool8 isCompressed; /*0x01*/ bool8 isSecondary; - /*0x04*/ void *tiles; - /*0x08*/ void *palettes; - /*0x0c*/ void *metatiles; + /*0x04*/ const u32 *tiles; + /*0x08*/ const u16 (*palettes)[16]; + /*0x0c*/ const u16 *metatiles; /*0x10*/ TilesetCB callback; - /*0x14*/ u32 *metatileAttributes; + /*0x14*/ const u32 *metatileAttributes; }; struct MapLayout diff --git a/include/tileset_anims.h b/include/tileset_anims.h index 0e515f044..b85f6ecd5 100644 --- a/include/tileset_anims.h +++ b/include/tileset_anims.h @@ -6,4 +6,11 @@ void InitSecondaryTilesetAnimation(void); void UpdateTilesetAnimations(void); void TransferTilesetAnimsBuffer(void); +void InitTilesetAnim_General(void); +void InitTilesetAnim_CeladonCity(void); +void InitTilesetAnim_VermilionGym(void); +void InitTilesetAnim_CeladonGym(void); +void InitTilesetAnim_SilphCo(void); +void InitTilesetAnim_MtEmber(void); + #endif // GUARD_TILESET_ANIMS_H diff --git a/include/tilesets.h b/include/tilesets.h new file mode 100644 index 000000000..855599d89 --- /dev/null +++ b/include/tilesets.h @@ -0,0 +1,13 @@ +#ifndef GUARD_TILESETS_H +#define GUARD_TILESETS_H + +extern const u32 gTilesetTiles_General[]; +extern const u16 gTilesetPalettes_General[][16]; + +extern const u32 gTilesetTiles_GenericBuilding1[]; +extern const u16 gTilesetPalettes_GenericBuilding1[][16]; + +extern const u32 gTilesetTiles_DepartmentStore[]; +extern const u16 gTilesetPalettes_DepartmentStore[][16]; + +#endif // GUARD_TILESETS_H diff --git a/ld_script.txt b/ld_script.txt index 69dae4b5b..46b7d0e7b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -420,7 +420,7 @@ SECTIONS { src/trade.o(.rodata); src/trade_scene.o(.rodata); src/overworld.o(.rodata); - data/tilesets.o(.rodata); + src/tilesets.o(.rodata); data/maps.o(.rodata); src/fieldmap.o(.rodata); src/metatile_behavior.o(.rodata); diff --git a/src/data/tilesets/graphics.h b/src/data/tilesets/graphics.h new file mode 100644 index 000000000..f82df8a6e --- /dev/null +++ b/src/data/tilesets/graphics.h @@ -0,0 +1,1407 @@ +const u32 gTilesetTiles_PalletTown[] = INCBIN_U32("data/tilesets/secondary/pallet_town/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PalletTown[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_ViridianCity[] = INCBIN_U32("data/tilesets/secondary/viridian_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_ViridianCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PewterCity[] = INCBIN_U32("data/tilesets/secondary/pewter_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PewterCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeruleanCity[] = INCBIN_U32("data/tilesets/secondary/cerulean_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeruleanCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_LavenderTown[] = INCBIN_U32("data/tilesets/secondary/lavender_town/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_LavenderTown[][16] = +{ + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_VermilionCity[] = INCBIN_U32("data/tilesets/secondary/vermilion_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_VermilionCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeladonCity[] = INCBIN_U32("data/tilesets/secondary/celadon_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeladonCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_FuchsiaCity[] = INCBIN_U32("data/tilesets/secondary/fuchsia_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_FuchsiaCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CinnabarIsland[] = INCBIN_U32("data/tilesets/secondary/cinnabar_island/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CinnabarIsland[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_IndigoPlateau[] = INCBIN_U32("data/tilesets/secondary/indigo_plateau/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_IndigoPlateau[][16] = +{ + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SaffronCity[] = INCBIN_U32("data/tilesets/secondary/saffron_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SaffronCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Building[] = INCBIN_U32("data/tilesets/primary/building/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Building[][16] = +{ + INCBIN_U16("data/tilesets/primary/building/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Mart[] = INCBIN_U32("data/tilesets/secondary/mart/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Mart[][16] = +{ + INCBIN_U16("data/tilesets/secondary/mart/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonCenter[] = INCBIN_U32("data/tilesets/secondary/pokemon_center/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonCenter[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Cave[] = INCBIN_U32("data/tilesets/secondary/cave/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Cave[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cave/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy1[] = INCBIN_U32("data/tilesets/secondary/dummy_1/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy1[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Museum[] = INCBIN_U32("data/tilesets/secondary/museum/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Museum[][16] = +{ + INCBIN_U16("data/tilesets/secondary/museum/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CableClub[] = INCBIN_U32("data/tilesets/secondary/cable_club/tiles.4bpp"); + +const u16 gTilesetPalettes_CableClub[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_BikeShop[] = INCBIN_U32("data/tilesets/secondary/bike_shop/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_BikeShop[][16] = +{ + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Lab[] = INCBIN_U32("data/tilesets/secondary/lab/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Lab[][16] = +{ + INCBIN_U16("data/tilesets/secondary/lab/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_HoennBuilding[] = INCBIN_U32("data/tilesets/secondary/hoenn_building/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_HoennBuilding[][16] = +{ + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_GameCorner[] = INCBIN_U32("data/tilesets/secondary/game_corner/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_GameCorner[][16] = +{ + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PewterGym[] = INCBIN_U32("data/tilesets/secondary/pewter_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PewterGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeruleanGym[] = INCBIN_U32("data/tilesets/secondary/cerulean_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeruleanGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_VermilionGym[] = INCBIN_U32("data/tilesets/secondary/vermilion_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_VermilionGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeladonGym[] = INCBIN_U32("data/tilesets/secondary/celadon_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeladonGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_FuchsiaGym[] = INCBIN_U32("data/tilesets/secondary/fuchsia_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_FuchsiaGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SaffronGym[] = INCBIN_U32("data/tilesets/secondary/saffron_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SaffronGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CinnabarGym[] = INCBIN_U32("data/tilesets/secondary/cinnabar_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CinnabarGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_ViridianGym[] = INCBIN_U32("data/tilesets/secondary/viridian_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_ViridianGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SSAnne[] = INCBIN_U32("data/tilesets/secondary/ss_anne/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SSAnne[][16] = +{ + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy2[] = INCBIN_U32("data/tilesets/secondary/dummy_2/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy2[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_ViridianForest[] = INCBIN_U32("data/tilesets/secondary/viridian_forest/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_ViridianForest[][16] = +{ + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_UnusedGatehouse1[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_1/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_UnusedGatehouse1[][16] = +{ + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_RockTunnel[] = INCBIN_U32("data/tilesets/secondary/rock_tunnel/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_RockTunnel[][16] = +{ + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_DiglettsCave[] = INCBIN_U32("data/tilesets/secondary/digletts_cave/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_DiglettsCave[][16] = +{ + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeafoamIslands[] = INCBIN_U32("data/tilesets/secondary/seafoam_islands/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeafoamIslands[][16] = +{ + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_UnusedGatehouse2[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_2/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_UnusedGatehouse2[][16] = +{ + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeruleanCave[] = INCBIN_U32("data/tilesets/secondary/cerulean_cave/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeruleanCave[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_GenericBuilding2[] = INCBIN_U32("data/tilesets/secondary/generic_building_2/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_GenericBuilding2[][16] = +{ + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PowerPlant[] = INCBIN_U32("data/tilesets/secondary/power_plant/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PowerPlant[][16] = +{ + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeaCottage[] = INCBIN_U32("data/tilesets/secondary/sea_cottage/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeaCottage[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SilphCo[] = INCBIN_U32("data/tilesets/secondary/condominiums/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SilphCo[][16] = +{ + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_UndergroundPath[] = INCBIN_U32("data/tilesets/secondary/underground_path/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_UndergroundPath[][16] = +{ + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonTower[] = INCBIN_U32("data/tilesets/secondary/pokemon_tower/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonTower[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SafariZoneBuilding[] = INCBIN_U32("data/tilesets/secondary/safari_zone_building/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SafariZoneBuilding[][16] = +{ + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonMansion[] = INCBIN_U32("data/tilesets/secondary/pokemon_mansion/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonMansion[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_RestaurantHotel[] = INCBIN_U32("data/tilesets/secondary/restaurant_hotel/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_RestaurantHotel[][16] = +{ + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_School[] = INCBIN_U32("data/tilesets/secondary/school/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_School[][16] = +{ + INCBIN_U16("data/tilesets/secondary/school/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_FanClubDaycare[] = INCBIN_U32("data/tilesets/secondary/fan_club_daycare/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_FanClubDaycare[][16] = +{ + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_BurgledHouse[] = INCBIN_U32("data/tilesets/secondary/burgled_house/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_BurgledHouse[][16] = +{ + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy3[] = INCBIN_U32("data/tilesets/secondary/dummy_3/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy3[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy4[] = INCBIN_U32("data/tilesets/secondary/dummy_4/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy4[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_MtEmber[] = INCBIN_U32("data/tilesets/secondary/mt_ember/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_MtEmber[][16] = +{ + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_BerryForest[] = INCBIN_U32("data/tilesets/secondary/berry_forest/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_BerryForest[][16] = +{ + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_NavelRock[] = INCBIN_U32("data/tilesets/secondary/navel_rock/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_NavelRock[][16] = +{ + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_TanobyRuins[] = INCBIN_U32("data/tilesets/secondary/tanoby_ruins/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_TanobyRuins[][16] = +{ + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeviiIslands123[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_123/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeviiIslands123[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeviiIslands45[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_45/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeviiIslands45[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeviiIslands67[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_67/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeviiIslands67[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_TrainerTower[] = INCBIN_U32("data/tilesets/secondary/trainer_tower/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_TrainerTower[][16] = +{ + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_IslandHarbor[] = INCBIN_U32("data/tilesets/secondary/island_harbor/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_IslandHarbor[][16] = +{ + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonLeague[] = INCBIN_U32("data/tilesets/secondary/pokemon_league/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonLeague[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_HallOfFame[] = INCBIN_U32("data/tilesets/secondary/hall_of_fame/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_HallOfFame[][16] = +{ + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/15.gbapal"), +}; diff --git a/src/data/tilesets/headers.h b/src/data/tilesets/headers.h new file mode 100644 index 000000000..2e4ddb901 --- /dev/null +++ b/src/data/tilesets/headers.h @@ -0,0 +1,748 @@ +const struct Tileset gTileset_General = +{ + .isCompressed = TRUE, + .isSecondary = FALSE, + .tiles = gTilesetTiles_General, + .palettes = gTilesetPalettes_General, + .metatiles = gMetatiles_General, + .metatileAttributes = gMetatileAttributes_General, + .callback = InitTilesetAnim_General, +}; + +const struct Tileset gTileset_PalletTown = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PalletTown, + .palettes = gTilesetPalettes_PalletTown, + .metatiles = gMetatiles_PalletTown, + .metatileAttributes = gMetatileAttributes_PalletTown, + .callback = NULL, +}; + +const struct Tileset gTileset_ViridianCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_ViridianCity, + .palettes = gTilesetPalettes_ViridianCity, + .metatiles = gMetatiles_ViridianCity, + .metatileAttributes = gMetatileAttributes_ViridianCity, + .callback = NULL, +}; + +const struct Tileset gTileset_PewterCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PewterCity, + .palettes = gTilesetPalettes_PewterCity, + .metatiles = gMetatiles_PewterCity, + .metatileAttributes = gMetatileAttributes_PewterCity, + .callback = NULL, +}; + +const struct Tileset gTileset_CeruleanCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeruleanCity, + .palettes = gTilesetPalettes_CeruleanCity, + .metatiles = gMetatiles_CeruleanCity, + .metatileAttributes = gMetatileAttributes_CeruleanCity, + .callback = NULL, +}; + +const struct Tileset gTileset_LavenderTown = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_LavenderTown, + .palettes = gTilesetPalettes_LavenderTown, + .metatiles = gMetatiles_LavenderTown, + .metatileAttributes = gMetatileAttributes_LavenderTown, + .callback = NULL, +}; + +const struct Tileset gTileset_VermilionCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_VermilionCity, + .palettes = gTilesetPalettes_VermilionCity, + .metatiles = gMetatiles_VermilionCity, + .metatileAttributes = gMetatileAttributes_VermilionCity, + .callback = NULL, +}; + +const struct Tileset gTileset_CeladonCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeladonCity, + .palettes = gTilesetPalettes_CeladonCity, + .metatiles = gMetatiles_CeladonCity, + .metatileAttributes = gMetatileAttributes_CeladonCity, + .callback = InitTilesetAnim_CeladonCity, +}; + +const struct Tileset gTileset_FuchsiaCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_FuchsiaCity, + .palettes = gTilesetPalettes_FuchsiaCity, + .metatiles = gMetatiles_FuchsiaCity, + .metatileAttributes = gMetatileAttributes_FuchsiaCity, + .callback = NULL, +}; + +const struct Tileset gTileset_CinnabarIsland = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CinnabarIsland, + .palettes = gTilesetPalettes_CinnabarIsland, + .metatiles = gMetatiles_CinnabarIsland, + .metatileAttributes = gMetatileAttributes_CinnabarIsland, + .callback = NULL, +}; + +const struct Tileset gTileset_IndigoPlateau = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_IndigoPlateau, + .palettes = gTilesetPalettes_IndigoPlateau, + .metatiles = gMetatiles_IndigoPlateau, + .metatileAttributes = gMetatileAttributes_IndigoPlateau, + .callback = NULL, +}; + +const struct Tileset gTileset_SaffronCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SaffronCity, + .palettes = gTilesetPalettes_SaffronCity, + .metatiles = gMetatiles_SaffronCity, + .metatileAttributes = gMetatileAttributes_SaffronCity, + .callback = NULL, +}; + +const struct Tileset gTileset_Building = +{ + .isCompressed = TRUE, + .isSecondary = FALSE, + .tiles = gTilesetTiles_Building, + .palettes = gTilesetPalettes_Building, + .metatiles = gMetatiles_Building, + .metatileAttributes = gMetatileAttributes_Building, + .callback = NULL, +}; + +const struct Tileset gTileset_Mart = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Mart, + .palettes = gTilesetPalettes_Mart, + .metatiles = gMetatiles_Mart, + .metatileAttributes = gMetatileAttributes_Mart, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonCenter = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonCenter, + .palettes = gTilesetPalettes_PokemonCenter, + .metatiles = gMetatiles_PokemonCenter, + .metatileAttributes = gMetatileAttributes_PokemonCenter, + .callback = NULL, +}; + +const struct Tileset gTileset_Cave = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Cave, + .palettes = gTilesetPalettes_Cave, + .metatiles = gMetatiles_Cave, + .metatileAttributes = gMetatileAttributes_Cave, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy1 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy1, + .palettes = gTilesetPalettes_Dummy1, + .metatiles = gMetatiles_Dummy1, + .metatileAttributes = gMetatileAttributes_Dummy1, + .callback = NULL, +}; + +const struct Tileset gTileset_Museum = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Museum, + .palettes = gTilesetPalettes_Museum, + .metatiles = gMetatiles_Museum, + .metatileAttributes = gMetatileAttributes_Museum, + .callback = NULL, +}; + +const struct Tileset gTileset_CableClub = +{ + .isCompressed = FALSE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CableClub, + .palettes = gTilesetPalettes_CableClub, + .metatiles = gMetatiles_CableClub, + .metatileAttributes = gMetatileAttributes_CableClub, + .callback = NULL, +}; + +const struct Tileset gTileset_BikeShop = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_BikeShop, + .palettes = gTilesetPalettes_BikeShop, + .metatiles = gMetatiles_BikeShop, + .metatileAttributes = gMetatileAttributes_BikeShop, + .callback = NULL, +}; + +const struct Tileset gTileset_GenericBuilding1 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_GenericBuilding1, + .palettes = gTilesetPalettes_GenericBuilding1, + .metatiles = gMetatiles_GenericBuilding1, + .metatileAttributes = gMetatileAttributes_GenericBuilding1, + .callback = NULL, +}; + +const struct Tileset gTileset_Lab = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Lab, + .palettes = gTilesetPalettes_Lab, + .metatiles = gMetatiles_Lab, + .metatileAttributes = gMetatileAttributes_Lab, + .callback = NULL, +}; + +const struct Tileset gTileset_FuchsiaGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_FuchsiaGym, + .palettes = gTilesetPalettes_FuchsiaGym, + .metatiles = gMetatiles_FuchsiaGym, + .metatileAttributes = gMetatileAttributes_FuchsiaGym, + .callback = NULL, +}; + +const struct Tileset gTileset_ViridianGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_ViridianGym, + .palettes = gTilesetPalettes_ViridianGym, + .metatiles = gMetatiles_ViridianGym, + .metatileAttributes = gMetatileAttributes_ViridianGym, + .callback = NULL, +}; + +const struct Tileset gTileset_HoennBuilding = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_HoennBuilding, + .palettes = gTilesetPalettes_HoennBuilding, + .metatiles = gMetatiles_HoennBuilding, + .metatileAttributes = gMetatileAttributes_HoennBuilding, + .callback = NULL, +}; + +const struct Tileset gTileset_GameCorner = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_GameCorner, + .palettes = gTilesetPalettes_GameCorner, + .metatiles = gMetatiles_GameCorner, + .metatileAttributes = gMetatileAttributes_GameCorner, + .callback = NULL, +}; + +const struct Tileset gTileset_PewterGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PewterGym, + .palettes = gTilesetPalettes_PewterGym, + .metatiles = gMetatiles_PewterGym, + .metatileAttributes = gMetatileAttributes_PewterGym, + .callback = NULL, +}; + +const struct Tileset gTileset_CeruleanGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeruleanGym, + .palettes = gTilesetPalettes_CeruleanGym, + .metatiles = gMetatiles_CeruleanGym, + .metatileAttributes = gMetatileAttributes_CeruleanGym, + .callback = NULL, +}; + +const struct Tileset gTileset_VermilionGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_VermilionGym, + .palettes = gTilesetPalettes_VermilionGym, + .metatiles = gMetatiles_VermilionGym, + .metatileAttributes = gMetatileAttributes_VermilionGym, + .callback = InitTilesetAnim_VermilionGym, +}; + +const struct Tileset gTileset_CeladonGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeladonGym, + .palettes = gTilesetPalettes_CeladonGym, + .metatiles = gMetatiles_CeladonGym, + .metatileAttributes = gMetatileAttributes_CeladonGym, + .callback = InitTilesetAnim_CeladonGym, +}; + +const struct Tileset gTileset_SaffronGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SaffronGym, + .palettes = gTilesetPalettes_SaffronGym, + .metatiles = gMetatiles_SaffronGym, + .metatileAttributes = gMetatileAttributes_SaffronGym, + .callback = NULL, +}; + +const struct Tileset gTileset_CinnabarGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CinnabarGym, + .palettes = gTilesetPalettes_CinnabarGym, + .metatiles = gMetatiles_CinnabarGym, + .metatileAttributes = gMetatileAttributes_CinnabarGym, + .callback = NULL, +}; + +const struct Tileset gTileset_SSAnne = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SSAnne, + .palettes = gTilesetPalettes_SSAnne, + .metatiles = gMetatiles_SSAnne, + .metatileAttributes = gMetatileAttributes_SSAnne, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy2 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy2, + .palettes = gTilesetPalettes_Dummy2, + .metatiles = gMetatiles_Dummy2, + .metatileAttributes = gMetatileAttributes_Dummy2, + .callback = NULL, +}; + +const struct Tileset gTileset_ViridianForest = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_ViridianForest, + .palettes = gTilesetPalettes_ViridianForest, + .metatiles = gMetatiles_ViridianForest, + .metatileAttributes = gMetatileAttributes_ViridianForest, + .callback = NULL, +}; + +const struct Tileset gTileset_UnusedGatehouse1 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_UnusedGatehouse1, + .palettes = gTilesetPalettes_UnusedGatehouse1, + .metatiles = gMetatiles_UnusedGatehouse1, + .metatileAttributes = gMetatileAttributes_UnusedGatehouse1, + .callback = NULL, +}; + +const struct Tileset gTileset_RockTunnel = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_RockTunnel, + .palettes = gTilesetPalettes_RockTunnel, + .metatiles = gMetatiles_RockTunnel, + .metatileAttributes = gMetatileAttributes_RockTunnel, + .callback = NULL, +}; + +const struct Tileset gTileset_DiglettsCave = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_DiglettsCave, + .palettes = gTilesetPalettes_DiglettsCave, + .metatiles = gMetatiles_DiglettsCave, + .metatileAttributes = gMetatileAttributes_DiglettsCave, + .callback = NULL, +}; + +const struct Tileset gTileset_SeafoamIslands = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeafoamIslands, + .palettes = gTilesetPalettes_SeafoamIslands, + .metatiles = gMetatiles_SeafoamIslands, + .metatileAttributes = gMetatileAttributes_SeafoamIslands, + .callback = NULL, +}; + +const struct Tileset gTileset_UnusedGatehouse2 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_UnusedGatehouse2, + .palettes = gTilesetPalettes_UnusedGatehouse2, + .metatiles = gMetatiles_UnusedGatehouse2, + .metatileAttributes = gMetatileAttributes_UnusedGatehouse2, + .callback = NULL, +}; + +const struct Tileset gTileset_CeruleanCave = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeruleanCave, + .palettes = gTilesetPalettes_CeruleanCave, + .metatiles = gMetatiles_CeruleanCave, + .metatileAttributes = gMetatileAttributes_CeruleanCave, + .callback = NULL, +}; + +const struct Tileset gTileset_DepartmentStore = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_DepartmentStore, + .palettes = gTilesetPalettes_DepartmentStore, + .metatiles = gMetatiles_DepartmentStore, + .metatileAttributes = gMetatileAttributes_DepartmentStore, + .callback = NULL, +}; + +const struct Tileset gTileset_GenericBuilding2 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_GenericBuilding2, + .palettes = gTilesetPalettes_GenericBuilding2, + .metatiles = gMetatiles_GenericBuilding2, + .metatileAttributes = gMetatileAttributes_GenericBuilding2, + .callback = NULL, +}; + +const struct Tileset gTileset_PowerPlant = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PowerPlant, + .palettes = gTilesetPalettes_PowerPlant, + .metatiles = gMetatiles_PowerPlant, + .metatileAttributes = gMetatileAttributes_PowerPlant, + .callback = NULL, +}; + +const struct Tileset gTileset_SeaCottage = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeaCottage, + .palettes = gTilesetPalettes_SeaCottage, + .metatiles = gMetatiles_SeaCottage, + .metatileAttributes = gMetatileAttributes_SeaCottage, + .callback = NULL, +}; + +const struct Tileset gTileset_SilphCo = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SilphCo, + .palettes = gTilesetPalettes_SilphCo, + .metatiles = gMetatiles_SilphCo, + .metatileAttributes = gMetatileAttributes_SilphCo, + .callback = InitTilesetAnim_SilphCo, +}; + +const struct Tileset gTileset_UndergroundPath = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_UndergroundPath, + .palettes = gTilesetPalettes_UndergroundPath, + .metatiles = gMetatiles_UndergroundPath, + .metatileAttributes = gMetatileAttributes_UndergroundPath, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonTower = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonTower, + .palettes = gTilesetPalettes_PokemonTower, + .metatiles = gMetatiles_PokemonTower, + .metatileAttributes = gMetatileAttributes_PokemonTower, + .callback = NULL, +}; + +const struct Tileset gTileset_SafariZoneBuilding = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SafariZoneBuilding, + .palettes = gTilesetPalettes_SafariZoneBuilding, + .metatiles = gMetatiles_SafariZoneBuilding, + .metatileAttributes = gMetatileAttributes_SafariZoneBuilding, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonMansion = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonMansion, + .palettes = gTilesetPalettes_PokemonMansion, + .metatiles = gMetatiles_PokemonMansion, + .metatileAttributes = gMetatileAttributes_PokemonMansion, + .callback = NULL, +}; + +const struct Tileset gTileset_RestaurantHotel = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_RestaurantHotel, + .palettes = gTilesetPalettes_RestaurantHotel, + .metatiles = gMetatiles_RestaurantHotel, + .metatileAttributes = gMetatileAttributes_RestaurantHotel, + .callback = NULL, +}; + +const struct Tileset gTileset_School = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_School, + .palettes = gTilesetPalettes_School, + .metatiles = gMetatiles_School, + .metatileAttributes = gMetatileAttributes_School, + .callback = NULL, +}; + +const struct Tileset gTileset_FanClubDaycare = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_FanClubDaycare, + .palettes = gTilesetPalettes_FanClubDaycare, + .metatiles = gMetatiles_FanClubDaycare, + .metatileAttributes = gMetatileAttributes_FanClubDaycare, + .callback = NULL, +}; + +const struct Tileset gTileset_Condominiums = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SilphCo, + .palettes = gTilesetPalettes_SilphCo, + .metatiles = gMetatiles_Condominiums, + .metatileAttributes = gMetatileAttributes_Condominiums, + .callback = NULL, +}; + +const struct Tileset gTileset_BurgledHouse = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_BurgledHouse, + .palettes = gTilesetPalettes_BurgledHouse, + .metatiles = gMetatiles_BurgledHouse, + .metatileAttributes = gMetatileAttributes_BurgledHouse, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy3 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy3, + .palettes = gTilesetPalettes_Dummy3, + .metatiles = gMetatiles_Dummy3, + .metatileAttributes = gMetatileAttributes_Dummy3, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy4 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy4, + .palettes = gTilesetPalettes_Dummy4, + .metatiles = gMetatiles_Dummy4, + .metatileAttributes = gMetatileAttributes_Dummy4, + .callback = NULL, +}; + +const struct Tileset gTileset_MtEmber = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_MtEmber, + .palettes = gTilesetPalettes_MtEmber, + .metatiles = gMetatiles_MtEmber, + .metatileAttributes = gMetatileAttributes_MtEmber, + .callback = InitTilesetAnim_MtEmber, +}; + +const struct Tileset gTileset_BerryForest = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_BerryForest, + .palettes = gTilesetPalettes_BerryForest, + .metatiles = gMetatiles_BerryForest, + .metatileAttributes = gMetatileAttributes_BerryForest, + .callback = NULL, +}; + +const struct Tileset gTileset_NavelRock = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_NavelRock, + .palettes = gTilesetPalettes_NavelRock, + .metatiles = gMetatiles_NavelRock, + .metatileAttributes = gMetatileAttributes_NavelRock, + .callback = NULL, +}; + +const struct Tileset gTileset_TanobyRuins = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_TanobyRuins, + .palettes = gTilesetPalettes_TanobyRuins, + .metatiles = gMetatiles_TanobyRuins, + .metatileAttributes = gMetatileAttributes_TanobyRuins, + .callback = NULL, +}; + +const struct Tileset gTileset_SeviiIslands123 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeviiIslands123, + .palettes = gTilesetPalettes_SeviiIslands123, + .metatiles = gMetatiles_SeviiIslands123, + .metatileAttributes = gMetatileAttributes_SeviiIslands123, + .callback = NULL, +}; + +const struct Tileset gTileset_SeviiIslands45 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeviiIslands45, + .palettes = gTilesetPalettes_SeviiIslands45, + .metatiles = gMetatiles_SeviiIslands45, + .metatileAttributes = gMetatileAttributes_SeviiIslands45, + .callback = NULL, +}; + +const struct Tileset gTileset_SeviiIslands67 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeviiIslands67, + .palettes = gTilesetPalettes_SeviiIslands67, + .metatiles = gMetatiles_SeviiIslands67, + .metatileAttributes = gMetatileAttributes_SeviiIslands67, + .callback = NULL, +}; + +const struct Tileset gTileset_TrainerTower = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_TrainerTower, + .palettes = gTilesetPalettes_TrainerTower, + .metatiles = gMetatiles_TrainerTower, + .metatileAttributes = gMetatileAttributes_TrainerTower, + .callback = NULL, +}; + +const struct Tileset gTileset_IslandHarbor = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_IslandHarbor, + .palettes = gTilesetPalettes_IslandHarbor, + .metatiles = gMetatiles_IslandHarbor, + .metatileAttributes = gMetatileAttributes_IslandHarbor, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonLeague = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonLeague, + .palettes = gTilesetPalettes_PokemonLeague, + .metatiles = gMetatiles_PokemonLeague, + .metatileAttributes = gMetatileAttributes_PokemonLeague, + .callback = NULL, +}; + +const struct Tileset gTileset_HallOfFame = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_HallOfFame, + .palettes = gTilesetPalettes_HallOfFame, + .metatiles = gMetatiles_HallOfFame, + .metatileAttributes = gMetatileAttributes_HallOfFame, + .callback = NULL, +}; + diff --git a/src/data/tilesets/metatiles.h b/src/data/tilesets/metatiles.h new file mode 100644 index 000000000..a9f267159 --- /dev/null +++ b/src/data/tilesets/metatiles.h @@ -0,0 +1,203 @@ +const u16 gMetatiles_General[] = INCBIN_U16("data/tilesets/primary/general/metatiles.bin"); +const u32 gMetatileAttributes_General[] = INCBIN_U32("data/tilesets/primary/general/metatile_attributes.bin"); + +const u16 gMetatiles_PalletTown[] = INCBIN_U16("data/tilesets/secondary/pallet_town/metatiles.bin"); +const u32 gMetatileAttributes_PalletTown[] = INCBIN_U32("data/tilesets/secondary/pallet_town/metatile_attributes.bin"); + +const u16 gMetatiles_ViridianCity[] = INCBIN_U16("data/tilesets/secondary/viridian_city/metatiles.bin"); +const u32 gMetatileAttributes_ViridianCity[] = INCBIN_U32("data/tilesets/secondary/viridian_city/metatile_attributes.bin"); + +const u16 gMetatiles_PewterCity[] = INCBIN_U16("data/tilesets/secondary/pewter_city/metatiles.bin"); +const u32 gMetatileAttributes_PewterCity[] = INCBIN_U32("data/tilesets/secondary/pewter_city/metatile_attributes.bin"); + +const u16 gMetatiles_CeruleanCity[] = INCBIN_U16("data/tilesets/secondary/cerulean_city/metatiles.bin"); +const u32 gMetatileAttributes_CeruleanCity[] = INCBIN_U32("data/tilesets/secondary/cerulean_city/metatile_attributes.bin"); + +const u16 gMetatiles_LavenderTown[] = INCBIN_U16("data/tilesets/secondary/lavender_town/metatiles.bin"); +const u32 gMetatileAttributes_LavenderTown[] = INCBIN_U32("data/tilesets/secondary/lavender_town/metatile_attributes.bin"); + +const u16 gMetatiles_VermilionCity[] = INCBIN_U16("data/tilesets/secondary/vermilion_city/metatiles.bin"); +const u32 gMetatileAttributes_VermilionCity[] = INCBIN_U32("data/tilesets/secondary/vermilion_city/metatile_attributes.bin"); + +const u16 gMetatiles_CeladonCity[] = INCBIN_U16("data/tilesets/secondary/celadon_city/metatiles.bin"); +const u32 gMetatileAttributes_CeladonCity[] = INCBIN_U32("data/tilesets/secondary/celadon_city/metatile_attributes.bin"); + +const u16 gMetatiles_FuchsiaCity[] = INCBIN_U16("data/tilesets/secondary/fuchsia_city/metatiles.bin"); +const u32 gMetatileAttributes_FuchsiaCity[] = INCBIN_U32("data/tilesets/secondary/fuchsia_city/metatile_attributes.bin"); + +const u16 gMetatiles_CinnabarIsland[] = INCBIN_U16("data/tilesets/secondary/cinnabar_island/metatiles.bin"); +const u32 gMetatileAttributes_CinnabarIsland[] = INCBIN_U32("data/tilesets/secondary/cinnabar_island/metatile_attributes.bin"); + +const u16 gMetatiles_IndigoPlateau[] = INCBIN_U16("data/tilesets/secondary/indigo_plateau/metatiles.bin"); +const u32 gMetatileAttributes_IndigoPlateau[] = INCBIN_U32("data/tilesets/secondary/indigo_plateau/metatile_attributes.bin"); + +const u16 gMetatiles_SaffronCity[] = INCBIN_U16("data/tilesets/secondary/saffron_city/metatiles.bin"); +const u32 gMetatileAttributes_SaffronCity[] = INCBIN_U32("data/tilesets/secondary/saffron_city/metatile_attributes.bin"); + +const u16 gMetatiles_PewterGym[] = INCBIN_U16("data/tilesets/secondary/pewter_gym/metatiles.bin"); +const u32 gMetatileAttributes_PewterGym[] = INCBIN_U32("data/tilesets/secondary/pewter_gym/metatile_attributes.bin"); + +const u16 gMetatiles_CeruleanGym[] = INCBIN_U16("data/tilesets/secondary/cerulean_gym/metatiles.bin"); +const u32 gMetatileAttributes_CeruleanGym[] = INCBIN_U32("data/tilesets/secondary/cerulean_gym/metatile_attributes.bin"); + +const u16 gMetatiles_VermilionGym[] = INCBIN_U16("data/tilesets/secondary/vermilion_gym/metatiles.bin"); +const u32 gMetatileAttributes_VermilionGym[] = INCBIN_U32("data/tilesets/secondary/vermilion_gym/metatile_attributes.bin"); + +const u16 gMetatiles_CeladonGym[] = INCBIN_U16("data/tilesets/secondary/celadon_gym/metatiles.bin"); +const u32 gMetatileAttributes_CeladonGym[] = INCBIN_U32("data/tilesets/secondary/celadon_gym/metatile_attributes.bin"); + +const u16 gMetatiles_FuchsiaGym[] = INCBIN_U16("data/tilesets/secondary/fuchsia_gym/metatiles.bin"); +const u32 gMetatileAttributes_FuchsiaGym[] = INCBIN_U32("data/tilesets/secondary/fuchsia_gym/metatile_attributes.bin"); + +const u16 gMetatiles_SaffronGym[] = INCBIN_U16("data/tilesets/secondary/saffron_gym/metatiles.bin"); +const u32 gMetatileAttributes_SaffronGym[] = INCBIN_U32("data/tilesets/secondary/saffron_gym/metatile_attributes.bin"); + +const u16 gMetatiles_CinnabarGym[] = INCBIN_U16("data/tilesets/secondary/cinnabar_gym/metatiles.bin"); +const u32 gMetatileAttributes_CinnabarGym[] = INCBIN_U32("data/tilesets/secondary/cinnabar_gym/metatile_attributes.bin"); + +const u16 gMetatiles_ViridianGym[] = INCBIN_U16("data/tilesets/secondary/viridian_gym/metatiles.bin"); +const u32 gMetatileAttributes_ViridianGym[] = INCBIN_U32("data/tilesets/secondary/viridian_gym/metatile_attributes.bin"); + +const u16 gMetatiles_Building[] = INCBIN_U16("data/tilesets/primary/building/metatiles.bin"); +const u32 gMetatileAttributes_Building[] = INCBIN_U32("data/tilesets/primary/building/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy1[] = INCBIN_U16("data/tilesets/secondary/dummy_1/metatiles.bin"); +const u32 gMetatileAttributes_Dummy1[] = INCBIN_U32("data/tilesets/secondary/dummy_1/metatile_attributes.bin"); + +const u16 gMetatiles_HoennBuilding[] = INCBIN_U16("data/tilesets/secondary/hoenn_building/metatiles.bin"); +const u32 gMetatileAttributes_HoennBuilding[] = INCBIN_U32("data/tilesets/secondary/hoenn_building/metatile_attributes.bin"); + +const u16 gMetatiles_BikeShop[] = INCBIN_U16("data/tilesets/secondary/bike_shop/metatiles.bin"); +const u32 gMetatileAttributes_BikeShop[] = INCBIN_U32("data/tilesets/secondary/bike_shop/metatile_attributes.bin"); + +const u16 gMetatiles_Mart[] = INCBIN_U16("data/tilesets/secondary/mart/metatiles.bin"); +const u32 gMetatileAttributes_Mart[] = INCBIN_U32("data/tilesets/secondary/mart/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonCenter[] = INCBIN_U16("data/tilesets/secondary/pokemon_center/metatiles.bin"); +const u32 gMetatileAttributes_PokemonCenter[] = INCBIN_U32("data/tilesets/secondary/pokemon_center/metatile_attributes.bin"); + +const u16 gMetatiles_GenericBuilding1[] = INCBIN_U16("data/tilesets/secondary/generic_building_1/metatiles.bin"); +const u32 gMetatileAttributes_GenericBuilding1[] = INCBIN_U32("data/tilesets/secondary/generic_building_1/metatile_attributes.bin"); + +const u16 gMetatiles_Cave[] = INCBIN_U16("data/tilesets/secondary/cave/metatiles.bin"); +const u32 gMetatileAttributes_Cave[] = INCBIN_U32("data/tilesets/secondary/cave/metatile_attributes.bin"); + +const u16 gMetatiles_GameCorner[] = INCBIN_U16("data/tilesets/secondary/game_corner/metatiles.bin"); +const u32 gMetatileAttributes_GameCorner[] = INCBIN_U32("data/tilesets/secondary/game_corner/metatile_attributes.bin"); + +const u16 gMetatiles_Lab[] = INCBIN_U16("data/tilesets/secondary/lab/metatiles.bin"); +const u32 gMetatileAttributes_Lab[] = INCBIN_U32("data/tilesets/secondary/lab/metatile_attributes.bin"); + +const u16 gMetatiles_SSAnne[] = INCBIN_U16("data/tilesets/secondary/ss_anne/metatiles.bin"); +const u32 gMetatileAttributes_SSAnne[] = INCBIN_U32("data/tilesets/secondary/ss_anne/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy2[] = INCBIN_U16("data/tilesets/secondary/dummy_2/metatiles.bin"); +const u32 gMetatileAttributes_Dummy2[] = INCBIN_U32("data/tilesets/secondary/dummy_2/metatile_attributes.bin"); + +const u16 gMetatiles_ViridianForest[] = INCBIN_U16("data/tilesets/secondary/viridian_forest/metatiles.bin"); +const u32 gMetatileAttributes_ViridianForest[] = INCBIN_U32("data/tilesets/secondary/viridian_forest/metatile_attributes.bin"); + +const u16 gMetatiles_UnusedGatehouse1[] = INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/metatiles.bin"); +const u32 gMetatileAttributes_UnusedGatehouse1[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_1/metatile_attributes.bin"); + +const u16 gMetatiles_RockTunnel[] = INCBIN_U16("data/tilesets/secondary/rock_tunnel/metatiles.bin"); +const u32 gMetatileAttributes_RockTunnel[] = INCBIN_U32("data/tilesets/secondary/rock_tunnel/metatile_attributes.bin"); + +const u16 gMetatiles_DiglettsCave[] = INCBIN_U16("data/tilesets/secondary/digletts_cave/metatiles.bin"); +const u32 gMetatileAttributes_DiglettsCave[] = INCBIN_U32("data/tilesets/secondary/digletts_cave/metatile_attributes.bin"); + +const u16 gMetatiles_SeafoamIslands[] = INCBIN_U16("data/tilesets/secondary/seafoam_islands/metatiles.bin"); +const u32 gMetatileAttributes_SeafoamIslands[] = INCBIN_U32("data/tilesets/secondary/seafoam_islands/metatile_attributes.bin"); + +const u16 gMetatiles_UnusedGatehouse2[] = INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/metatiles.bin"); +const u32 gMetatileAttributes_UnusedGatehouse2[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_2/metatile_attributes.bin"); + +const u16 gMetatiles_CeruleanCave[] = INCBIN_U16("data/tilesets/secondary/cerulean_cave/metatiles.bin"); +const u32 gMetatileAttributes_CeruleanCave[] = INCBIN_U32("data/tilesets/secondary/cerulean_cave/metatile_attributes.bin"); + +const u16 gMetatiles_DepartmentStore[] = INCBIN_U16("data/tilesets/secondary/department_store/metatiles.bin"); +const u32 gMetatileAttributes_DepartmentStore[] = INCBIN_U32("data/tilesets/secondary/department_store/metatile_attributes.bin"); + +const u16 gMetatiles_GenericBuilding2[] = INCBIN_U16("data/tilesets/secondary/generic_building_2/metatiles.bin"); +const u32 gMetatileAttributes_GenericBuilding2[] = INCBIN_U32("data/tilesets/secondary/generic_building_2/metatile_attributes.bin"); + +const u16 gMetatiles_PowerPlant[] = INCBIN_U16("data/tilesets/secondary/power_plant/metatiles.bin"); +const u32 gMetatileAttributes_PowerPlant[] = INCBIN_U32("data/tilesets/secondary/power_plant/metatile_attributes.bin"); + +const u16 gMetatiles_SeaCottage[] = INCBIN_U16("data/tilesets/secondary/sea_cottage/metatiles.bin"); +const u32 gMetatileAttributes_SeaCottage[] = INCBIN_U32("data/tilesets/secondary/sea_cottage/metatile_attributes.bin"); + +const u16 gMetatiles_SilphCo[] = INCBIN_U16("data/tilesets/secondary/silph_co/metatiles.bin"); +const u32 gMetatileAttributes_SilphCo[] = INCBIN_U32("data/tilesets/secondary/silph_co/metatile_attributes.bin"); + +const u16 gMetatiles_UndergroundPath[] = INCBIN_U16("data/tilesets/secondary/underground_path/metatiles.bin"); +const u32 gMetatileAttributes_UndergroundPath[] = INCBIN_U32("data/tilesets/secondary/underground_path/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonTower[] = INCBIN_U16("data/tilesets/secondary/pokemon_tower/metatiles.bin"); +const u32 gMetatileAttributes_PokemonTower[] = INCBIN_U32("data/tilesets/secondary/pokemon_tower/metatile_attributes.bin"); + +const u16 gMetatiles_SafariZoneBuilding[] = INCBIN_U16("data/tilesets/secondary/safari_zone_building/metatiles.bin"); +const u32 gMetatileAttributes_SafariZoneBuilding[] = INCBIN_U32("data/tilesets/secondary/safari_zone_building/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonMansion[] = INCBIN_U16("data/tilesets/secondary/pokemon_mansion/metatiles.bin"); +const u32 gMetatileAttributes_PokemonMansion[] = INCBIN_U32("data/tilesets/secondary/pokemon_mansion/metatile_attributes.bin"); + +const u16 gMetatiles_Museum[] = INCBIN_U16("data/tilesets/secondary/museum/metatiles.bin"); +const u32 gMetatileAttributes_Museum[] = INCBIN_U32("data/tilesets/secondary/museum/metatile_attributes.bin"); + +const u16 gMetatiles_CableClub[] = INCBIN_U16("data/tilesets/secondary/cable_club/metatiles.bin"); +const u32 gMetatileAttributes_CableClub[] = INCBIN_U32("data/tilesets/secondary/cable_club/metatile_attributes.bin"); + +const u16 gMetatiles_RestaurantHotel[] = INCBIN_U16("data/tilesets/secondary/restaurant_hotel/metatiles.bin"); +const u32 gMetatileAttributes_RestaurantHotel[] = INCBIN_U32("data/tilesets/secondary/restaurant_hotel/metatile_attributes.bin"); + +const u16 gMetatiles_School[] = INCBIN_U16("data/tilesets/secondary/school/metatiles.bin"); +const u32 gMetatileAttributes_School[] = INCBIN_U32("data/tilesets/secondary/school/metatile_attributes.bin"); + +const u16 gMetatiles_FanClubDaycare[] = INCBIN_U16("data/tilesets/secondary/fan_club_daycare/metatiles.bin"); +const u32 gMetatileAttributes_FanClubDaycare[] = INCBIN_U32("data/tilesets/secondary/fan_club_daycare/metatile_attributes.bin"); + +const u16 gMetatiles_Condominiums[] = INCBIN_U16("data/tilesets/secondary/condominiums/metatiles.bin"); +const u32 gMetatileAttributes_Condominiums[] = INCBIN_U32("data/tilesets/secondary/condominiums/metatile_attributes.bin"); + +const u16 gMetatiles_BurgledHouse[] = INCBIN_U16("data/tilesets/secondary/burgled_house/metatiles.bin"); +const u32 gMetatileAttributes_BurgledHouse[] = INCBIN_U32("data/tilesets/secondary/burgled_house/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy3[] = INCBIN_U16("data/tilesets/secondary/dummy_3/metatiles.bin"); +const u32 gMetatileAttributes_Dummy3[] = INCBIN_U32("data/tilesets/secondary/dummy_3/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy4[] = INCBIN_U16("data/tilesets/secondary/dummy_4/metatiles.bin"); +const u32 gMetatileAttributes_Dummy4[] = INCBIN_U32("data/tilesets/secondary/dummy_4/metatile_attributes.bin"); + +const u16 gMetatiles_MtEmber[] = INCBIN_U16("data/tilesets/secondary/mt_ember/metatiles.bin"); +const u32 gMetatileAttributes_MtEmber[] = INCBIN_U32("data/tilesets/secondary/mt_ember/metatile_attributes.bin"); + +const u16 gMetatiles_BerryForest[] = INCBIN_U16("data/tilesets/secondary/berry_forest/metatiles.bin"); +const u32 gMetatileAttributes_BerryForest[] = INCBIN_U32("data/tilesets/secondary/berry_forest/metatile_attributes.bin"); + +const u16 gMetatiles_NavelRock[] = INCBIN_U16("data/tilesets/secondary/navel_rock/metatiles.bin"); +const u32 gMetatileAttributes_NavelRock[] = INCBIN_U32("data/tilesets/secondary/navel_rock/metatile_attributes.bin"); + +const u16 gMetatiles_TanobyRuins[] = INCBIN_U16("data/tilesets/secondary/tanoby_ruins/metatiles.bin"); +const u32 gMetatileAttributes_TanobyRuins[] = INCBIN_U32("data/tilesets/secondary/tanoby_ruins/metatile_attributes.bin"); + +const u16 gMetatiles_SeviiIslands123[] = INCBIN_U16("data/tilesets/secondary/sevii_islands_123/metatiles.bin"); +const u32 gMetatileAttributes_SeviiIslands123[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_123/metatile_attributes.bin"); + +const u16 gMetatiles_SeviiIslands45[] = INCBIN_U16("data/tilesets/secondary/sevii_islands_45/metatiles.bin"); +const u32 gMetatileAttributes_SeviiIslands45[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_45/metatile_attributes.bin"); + +const u16 gMetatiles_SeviiIslands67[] = INCBIN_U16("data/tilesets/secondary/sevii_islands_67/metatiles.bin"); +const u32 gMetatileAttributes_SeviiIslands67[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_67/metatile_attributes.bin"); + +const u16 gMetatiles_TrainerTower[] = INCBIN_U16("data/tilesets/secondary/trainer_tower/metatiles.bin"); +const u32 gMetatileAttributes_TrainerTower[] = INCBIN_U32("data/tilesets/secondary/trainer_tower/metatile_attributes.bin"); + +const u16 gMetatiles_IslandHarbor[] = INCBIN_U16("data/tilesets/secondary/island_harbor/metatiles.bin"); +const u32 gMetatileAttributes_IslandHarbor[] = INCBIN_U32("data/tilesets/secondary/island_harbor/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonLeague[] = INCBIN_U16("data/tilesets/secondary/pokemon_league/metatiles.bin"); +const u32 gMetatileAttributes_PokemonLeague[] = INCBIN_U32("data/tilesets/secondary/pokemon_league/metatile_attributes.bin"); + +const u16 gMetatiles_HallOfFame[] = INCBIN_U16("data/tilesets/secondary/hall_of_fame/metatiles.bin"); +const u32 gMetatileAttributes_HallOfFame[] = INCBIN_U32("data/tilesets/secondary/hall_of_fame/metatile_attributes.bin"); diff --git a/src/field_camera.c b/src/field_camera.c index a7a9e7376..6f3f0979b 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -225,7 +225,7 @@ void DrawDoorMetatileAt(int x, int y, const u16 *tiles) static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, int y) { u16 metatileId = MapGridGetMetatileIdAt(x, y); - u16 *metatiles; + const u16 *metatiles; if (metatileId > NUM_METATILES_TOTAL) metatileId = 0; diff --git a/src/fieldmap.c b/src/fieldmap.c index 1b50b8277..c2362f6b9 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -431,7 +431,7 @@ void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 impassable) static u32 GetAttributeByMetatileIdAndMapLayout(const struct MapLayout *mapLayout, u16 metatile, u8 attributeType) { - u32 * attributes; + const u32 * attributes; if (metatile < NUM_METATILES_IN_PRIMARY) { @@ -891,17 +891,17 @@ static void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u1 if (tileset->isSecondary == FALSE) { LoadPalette(&black, destOffset, 2); - LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - 2); + LoadPalette(tileset->palettes[0] + 1, destOffset + 1, size - 2); ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1); } else if (tileset->isSecondary == TRUE) { - LoadPalette(((u16 *)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); + LoadPalette(tileset->palettes[NUM_PALS_IN_PRIMARY], destOffset, size); ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); } else { - LoadCompressedPalette((u32 *)tileset->palettes, destOffset, size); + LoadCompressedPalette((const u32 *)tileset->palettes, destOffset, size); ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); } } diff --git a/src/shop.c b/src/shop.c index 7327874ca..39812fa28 100644 --- a/src/shop.c +++ b/src/shop.c @@ -751,9 +751,9 @@ static void BuyMenuDrawMapBg(void) metatileLayerType = MapGridGetMetatileLayerTypeAt(x + i, y + j); if (metatile < NUM_METATILES_IN_PRIMARY) - BuyMenuDrawMapMetatile(i, j, (u16 *)mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType); + BuyMenuDrawMapMetatile(i, j, mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType); else - BuyMenuDrawMapMetatile(i, j, (u16 *)mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); + BuyMenuDrawMapMetatile(i, j, mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); } } } diff --git a/src/teachy_tv.c b/src/teachy_tv.c index b3985d676..3c3729d04 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -96,7 +96,7 @@ static void TeachyTvRestorePlayerPartyCallback(void); static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId); static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size); static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapLayout *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset); -static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset); +static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(const u16 *metaTilesArray, u8 *blockBuf, u8 *tileset); static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile); static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile); static void TeachyTvLoadMapPalette(const struct MapLayout * mStruct, const u8 *palIndexArray); @@ -1225,12 +1225,12 @@ static void TeachyTvLoadBg3Map(u16 *buffer) u16 numMapTilesRows = 0; const struct MapLayout *layout = &Route1_Layout; u16 * blockIndicesBuffer = AllocZeroed(0x800); - tilesetsBuffer = AllocZeroed(0x8000); + tilesetsBuffer = AllocZeroed(NUM_TILES_TOTAL * TILE_SIZE_4BPP); palIndicesBuffer = Alloc(16); memset(palIndicesBuffer, 0xFF, 16); - TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, tilesetsBuffer, 0x280); - TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, tilesetsBuffer + 0x5000, 0x180); + TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, tilesetsBuffer, NUM_TILES_IN_PRIMARY); + TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, tilesetsBuffer + NUM_TILES_IN_PRIMARY * TILE_SIZE_4BPP, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY); for (i = 0; i < 9; i++) { @@ -1258,14 +1258,10 @@ static void TeachyTvLoadBg3Map(u16 *buffer) for (i = 0; i < numMapTilesRows; i++) { memset(mapTilesRowBuffer, 0, 0x80); - if (blockIndicesBuffer[i] < 0x280) - { - TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->primaryTileset->metatiles + blockIndicesBuffer[i] * 16, mapTilesRowBuffer, tilesetsBuffer); - } + if (blockIndicesBuffer[i] < NUM_METATILES_IN_PRIMARY) + TeachyTvComputeMapTilesFromTilesetAndMetaTiles((const void *)layout->primaryTileset->metatiles + blockIndicesBuffer[i] * 16, mapTilesRowBuffer, tilesetsBuffer); else - { - TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->secondaryTileset->metatiles + (blockIndicesBuffer[i] - 0x280) * 16, mapTilesRowBuffer, tilesetsBuffer); - } + TeachyTvComputeMapTilesFromTilesetAndMetaTiles((const void *)layout->secondaryTileset->metatiles + (blockIndicesBuffer[i] - NUM_METATILES_IN_PRIMARY) * 16, mapTilesRowBuffer, tilesetsBuffer); CpuFastCopy(mapTilesRowBuffer, bgTilesBuffer + i * 0x40, 0x80); } @@ -1292,14 +1288,18 @@ static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u1 static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapLayout *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset) { - u16 * metaTileEntryAddr = mapEntry < 0x280 ? &((u16 *)(mStruct->primaryTileset->metatiles))[8 * mapEntry] : &((u16 *)(mStruct->secondaryTileset->metatiles))[8 * (mapEntry - 0x280)]; + const u16 * metaTileEntryAddr; + if (mapEntry < NUM_METATILES_IN_PRIMARY) + metaTileEntryAddr = &mStruct->primaryTileset->metatiles[8 * mapEntry]; + else + metaTileEntryAddr = &mStruct->secondaryTileset->metatiles[8 * (mapEntry - NUM_METATILES_IN_PRIMARY)]; buf1[0] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[0]) << 12) + 4 * offset; buf1[1] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[1]) << 12) + 4 * offset + 1; buf1[32] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[2]) << 12) + 4 * offset + 2; buf1[33] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[3]) << 12) + 4 * offset + 3; } -static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset) +static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(const u16 *metaTilesArray, u8 *blockBuf, u8 *tileset) { TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (*metaTilesArray & 0x3FF)], (*metaTilesArray >> 10) & 3); TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[4] & 0x3FF)], (metaTilesArray[4] >> 10) & 3); @@ -1384,16 +1384,16 @@ static void TeachyTvLoadMapPalette(const struct MapLayout * mStruct, const u8 * { u8 i; const struct Tileset * ts; - u16 * dest; + const u16 * dest; for (i = 0; i < 16; i++) { if (palIndexArray[i] == 0xFF) break; - if (palIndexArray[i] > 6) - dest = (u16 *)mStruct->secondaryTileset->palettes + 0x10 * palIndexArray[i]; + if (palIndexArray[i] >= NUM_PALS_IN_PRIMARY) + dest = mStruct->secondaryTileset->palettes[palIndexArray[i]]; else - dest = (u16 *)mStruct->primaryTileset->palettes + 0x10 * palIndexArray[i]; + dest = mStruct->primaryTileset->palettes[palIndexArray[i]]; LoadPalette(dest, 0x10 * (15 - i), 0x20); } } diff --git a/src/tilesets.c b/src/tilesets.c new file mode 100644 index 000000000..2cc1da81d --- /dev/null +++ b/src/tilesets.c @@ -0,0 +1,7 @@ +#include "global.h" +#include "tilesets.h" +#include "tileset_anims.h" + +#include "data/tilesets/graphics.h" +#include "data/tilesets/metatiles.h" +#include "data/tilesets/headers.h" From c77adaf6bfce99babccc2405c533961d7f9d3e1c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 25 Oct 2022 14:31:01 -0400 Subject: [PATCH 089/105] Sync map data macros --- .gitignore | 2 + asm/macros/map.inc | 113 ++++++++++++++++++++++++----------- data/maps.s | 1 + include/constants/event_bg.h | 1 + include/constants/global.h | 9 +++ include/global.fieldmap.h | 12 ---- tools/mapjson/mapjson.cpp | 8 +-- 7 files changed, 95 insertions(+), 51 deletions(-) diff --git a/.gitignore b/.gitignore index d0e0fbe18..cbd751dbf 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,8 @@ sound/**/*.bin sound/songs/midi/*.s src/data/items.h src/data/wild_encounters.h +src/data/region_map/region_map_entries.h +src/data/region_map/region_map_entry_strings.h tags tools/agbcc tools/binutils diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 1a0e3a3ec..2057a7362 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -1,32 +1,44 @@ - .macro map map_id +@ Most of the macros in this file are for arranging map event data, and are output by mapjson using data from each map's JSON file. + + @ Takes a MAP constant and outputs the map group and map number as separate bytes + .macro map map_id:req .byte \map_id >> 8 @ map group .byte \map_id & 0xFF @ map num .endm - .macro map_script type, address + @ Defines a map script. 'type' is any MAP_SCRIPT_* constant (see include/constants/map_scripts.h) + .macro map_script type:req, script:req .byte \type - .4byte \address + .4byte \script .endm - .macro map_script_2 word1, word2, address - .2byte \word1 - .2byte \word2 - .4byte \address + @ Defines an entry in a map script table (for either ON_WARP_INTO_MAP_TABLE or ON_FRAME_TABLE) + .macro map_script_2 var:req, compare:req, script:req + .2byte \var + .2byte \compare + .4byte \script .endm + @ Defines an object event template for map data, to be used by a normal object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req .byte \index .byte \gfx .byte OBJ_KIND_NORMAL .space 1 @ Padding .2byte \x, \y - .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 - .2byte \trainer_type, \sight_radius_tree_etc + .byte \elevation + .byte \movement_type + .byte ((\y_radius << 4) | \x_radius) + .space 1 @ Padding + .2byte \trainer_type + .2byte \sight_radius_tree_etc .4byte \script - .2byte \event_flag, 0 + .2byte \event_flag + .space 2 @ Padding inc _num_npcs .endm + @ Defines an object event template for map data, to be used by a clone object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h .macro clone_event index:req, gfx:req, x:req, y:req, target_local_id:req, target_map_id:req .byte \index .byte \gfx @@ -41,45 +53,71 @@ inc _num_npcs .endm - .macro warp_def x, y, byte, warp, map_id + @ Defines a warp event for map data. Mirrors the struct layout of WarpEvent in include/global.fieldmap.h + .macro warp_def x:req, y:req, elevation:req, warpId:req, map_id:req .2byte \x, \y - .byte \byte, \warp + .byte \elevation + .byte \warpId .byte \map_id & 0xFF @ map num .byte \map_id >> 8 @ map group inc _num_warps .endm - .macro coord_event x, y, byte1, byte2, word1, word2, word3, script + @ Defines a coord event for map data. Mirrors the struct layout of CoordEvent in include/global.fieldmap.h + .macro coord_event x:req, y:req, elevation:req, var:req, varValue:req, script:req .2byte \x, \y - .byte \byte1, \byte2 - .2byte \word1, \word2, \word3 + .byte \elevation + .space 1 @ Padding + .2byte \var + .2byte \varValue + .space 2 @ Padding .4byte \script inc _num_traps .endm - .macro bg_event x, y, byte, kind, word, arg6, arg7, arg8 + @ Defines a generic background event for map data. Mirrors the struct layout of BgEvent in include/global.fieldmap.h + @ 'kind' is any BG_EVENT_* constant (see include/constants/event_bg.h). + @ 'arg6' is used differently depending on the bg event type. 'arg7' and 'arg8' are only used by bg_hidden_item_event. + @ See macros below. + .macro bg_event x:req, y, elevation:req, kind:req, arg6:req, arg7, arg8 .2byte \x, \y - .byte \byte, \kind - .2byte \word - .if \kind < 5 - .4byte \arg6 + .byte \elevation + .byte \kind + .space 2 @ Padding + .if \kind != BG_EVENT_HIDDEN_ITEM + .4byte \arg6 .else - .2byte \arg6 - .byte \arg7, \arg8 + .2byte \arg6 + .byte \arg7 + .byte \arg8 .endif inc _num_signs .endm - .macro bg_hidden_item_event x, y, height, item, flag, quantity, underfoot - bg_event \x, \y, \height, 7, 0, \item, \flag, \quantity | (\underfoot << 7) + @ Defines a background sign event for map data. 'facing_dir' is any of the BG_EVENT_PLAYER_FACING_* constants (see include/constants/event_bg.h) + .macro bg_sign_event x:req, y:req, elevation:req, facing_dir:req, script:req + bg_event \x, \y, \elevation, \facing_dir, \script .endm - .macro map_events npcs, warps, traps, signs + @ Defines a background hidden item event for map data + .macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req, quantity:req, underfoot:req + bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, \flag, \quantity | (\underfoot << 7) + .endm + + @ Defines a background secret base event for map data. + @ Unused by FRLG + .macro bg_secret_base_event x:req, y:req, elevation:req, secret_base_id:req + bg_event \x, \y, \elevation, BG_EVENT_SECRET_BASE, \secret_base_id + .endm + + @ Defines the table of event data for a map. Mirrors the struct layout of MapEvents in include/global.fieldmap.h + .macro map_events npcs:req, warps:req, traps:req, signs:req .byte _num_npcs, _num_warps, _num_traps, _num_signs .4byte \npcs, \warps, \traps, \signs reset_map_events .endm + @ Resets the event counters used to track how many events a map has. Run when the events table is created by map_events .macro reset_map_events .set _num_npcs, 0 .set _num_warps, 0 @@ -87,23 +125,28 @@ .set _num_signs, 0 .endm + @ Initialize the event counters for the first map reset_map_events + @ Directions for connecting maps + @ The map.json files will only have e.g. "down" as direction data, and this will be appended to "connection_" by the connection macro + .equiv connection_down, CONNECTION_SOUTH + .equiv connection_up, CONNECTION_NORTH + .equiv connection_left, CONNECTION_WEST + .equiv connection_right, CONNECTION_EAST + .equiv connection_dive, CONNECTION_DIVE + .equiv connection_emerge, CONNECTION_EMERGE - .equiv connection_down, 1 - .equiv connection_up, 2 - .equiv connection_left, 3 - .equiv connection_right, 4 - .equiv connection_dive, 5 - .equiv connection_emerge, 6 - - .macro connection direction, offset, map, filler - .4byte connection_\direction + @ Defines a map connection. Mirrors the struct layout of MapConnection in include/global.fieldmap.h + .macro connection direction:req, offset:req, map:req + .byte connection_\direction + .space 3 @ Padding .4byte \offset map \map - .space 2 + .space 2 @ Padding .endm + @ Defines the flags for a map header. Mirrors the layout of the bitfield in struct MapHeader in include/global.fieldmap.h .macro map_header_flags allow_cycling:req, allow_escaping:req, allow_running:req, show_map_name:req .byte \allow_cycling .byte ((\show_map_name & 1) << 2) | ((\allow_running & 1) << 1) | ((\allow_escaping & 1) << 0) diff --git a/data/maps.s b/data/maps.s index ad3f9c993..fc88d8fc2 100644 --- a/data/maps.s +++ b/data/maps.s @@ -1,3 +1,4 @@ +#include "constants/global.h" #include "constants/layouts.h" #include "constants/maps.h" #include "constants/region_map_sections.h" diff --git a/include/constants/event_bg.h b/include/constants/event_bg.h index 37fedf25b..64f3331b8 100644 --- a/include/constants/event_bg.h +++ b/include/constants/event_bg.h @@ -8,5 +8,6 @@ #define BG_EVENT_PLAYER_FACING_WEST 4 #define BG_EVENT_HIDDEN_ITEM 7 +#define BG_EVENT_SECRET_BASE 8 #endif // GUARD_CONSTANTS_EVENT_BG_H diff --git a/include/constants/global.h b/include/constants/global.h index fff17a8b6..d83b878d9 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -115,4 +115,13 @@ #define DIR_NORTHWEST 7 #define DIR_NORTHEAST 8 +#define CONNECTION_INVALID -1 +#define CONNECTION_NONE 0 +#define CONNECTION_SOUTH 1 +#define CONNECTION_NORTH 2 +#define CONNECTION_WEST 3 +#define CONNECTION_EAST 4 +#define CONNECTION_DIVE 5 +#define CONNECTION_EMERGE 6 + #endif //GUARD_CONSTANTS_GLOBAL_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 1260392d5..079b0a4b6 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -50,18 +50,6 @@ enum TILE_TERRAIN_WATERFALL, }; -enum -{ - CONNECTION_INVALID = -1, - CONNECTION_NONE, - CONNECTION_SOUTH, - CONNECTION_NORTH, - CONNECTION_WEST, - CONNECTION_EAST, - CONNECTION_DIVE, - CONNECTION_EMERGE -}; - typedef void (*TilesetCB)(void); struct Tileset diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 8978305e8..0060920a8 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -340,9 +340,9 @@ string generate_firered_map_events_text(Json map_data) { text << "\tcoord_event " << coord_event["x"].int_value() << ", " << coord_event["y"].int_value() << ", " - << coord_event["elevation"].int_value() << ", 0, " + << coord_event["elevation"].int_value() << ", " << coord_event["var"].string_value() << ", " - << coord_event["var_value"].string_value() << ", 0, " + << coord_event["var_value"].string_value() << ", " << coord_event["script"].string_value() << "\n"; } else if (coord_event["type"] == "weather") { @@ -363,11 +363,11 @@ string generate_firered_map_events_text(Json map_data) { text << bgs_label << "::\n"; for (auto &bg_event : map_data["bg_events"].array_items()) { if (bg_event["type"] == "sign") { - text << "\tbg_event " + text << "\tbg_sign_event " << bg_event["x"].int_value() << ", " << bg_event["y"].int_value() << ", " << bg_event["elevation"].int_value() << ", " - << bg_event["player_facing_dir"].string_value() << ", 0," + << bg_event["player_facing_dir"].string_value() << ", " << bg_event["script"].string_value() << "\n"; } else if (bg_event["type"] == "hidden_item") { From 2b2bf84502ed0100b305f8514813f710b9eded8c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 25 Oct 2022 14:45:53 -0400 Subject: [PATCH 090/105] Use actual flag values for hidden items --- asm/macros/map.inc | 2 +- data/maps/CeladonCity/map.json | 2 +- data/maps/CeladonCity_GameCorner/map.json | 24 +- data/maps/CeruleanCave_1F/map.json | 2 +- data/maps/CeruleanCity/map.json | 2 +- data/maps/FiveIsland_MemorialPillar/map.json | 8 +- data/maps/FiveIsland_ResortGorgeous/map.json | 8 +- data/maps/FiveIsland_RocketWarehouse/map.json | 4 +- data/maps/FourIsland/map.json | 4 +- data/maps/FuchsiaCity/map.json | 2 +- data/maps/MtEmber_Exterior/map.json | 4 +- data/maps/MtMoon_B1F/map.json | 12 +- data/maps/MtMoon_B2F/map.json | 4 +- data/maps/NavelRock_Summit/map.json | 2 +- data/maps/OneIsland_TreasureBeach/map.json | 16 +- data/maps/PewterCity/map.json | 2 +- data/maps/PokemonMansion_1F/map.json | 2 +- data/maps/PokemonMansion_3F/map.json | 2 +- data/maps/PokemonMansion_B1F/map.json | 2 +- data/maps/PokemonTower_5F/map.json | 2 +- data/maps/PokemonTower_7F/map.json | 2 +- data/maps/PowerPlant/map.json | 4 +- data/maps/RocketHideout_B1F/map.json | 2 +- data/maps/RocketHideout_B3F/map.json | 2 +- data/maps/RocketHideout_B4F/map.json | 4 +- data/maps/Route10/map.json | 10 +- data/maps/Route11/map.json | 2 +- data/maps/Route12/map.json | 6 +- data/maps/Route13/map.json | 2 +- data/maps/Route14/map.json | 4 +- data/maps/Route16/map.json | 2 +- data/maps/Route17/map.json | 10 +- data/maps/Route20/map.json | 2 +- data/maps/Route21_North/map.json | 2 +- data/maps/Route23/map.json | 16 +- data/maps/Route24/map.json | 2 +- data/maps/Route25/map.json | 8 +- data/maps/Route3/map.json | 2 +- data/maps/Route4/map.json | 6 +- data/maps/Route6/map.json | 4 +- data/maps/Route7/map.json | 2 +- data/maps/Route8/map.json | 6 +- data/maps/Route9/map.json | 6 +- data/maps/SSAnne_B1F_Corridor/map.json | 2 +- data/maps/SSAnne_Exterior/map.json | 2 +- data/maps/SSAnne_Kitchen/map.json | 6 +- data/maps/SafariZone_Center/map.json | 2 +- data/maps/SafariZone_West/map.json | 2 +- .../SaffronCity_CopycatsHouse_2F/map.json | 2 +- data/maps/SeafoamIslands_B3F/map.json | 2 +- data/maps/SeafoamIslands_B4F/map.json | 2 +- data/maps/SevenIsland_SevaultCanyon/map.json | 2 +- .../map.json | 2 +- data/maps/SevenIsland_TanobyRuins/map.json | 8 +- data/maps/SevenIsland_TrainerTower/map.json | 6 +- data/maps/SilphCo_10F/map.json | 2 +- data/maps/SilphCo_11F/map.json | 2 +- data/maps/SilphCo_2F/map.json | 2 +- data/maps/SilphCo_3F/map.json | 2 +- data/maps/SilphCo_4F/map.json | 2 +- data/maps/SilphCo_5F/map.json | 4 +- data/maps/SilphCo_6F/map.json | 2 +- data/maps/SilphCo_7F/map.json | 2 +- data/maps/SilphCo_8F/map.json | 2 +- data/maps/SilphCo_9F/map.json | 4 +- data/maps/SixIsland/map.json | 2 +- data/maps/SixIsland_GreenPath/map.json | 2 +- data/maps/SixIsland_OutcastIsland/map.json | 4 +- data/maps/SixIsland_WaterPath/map.json | 6 +- data/maps/ThreeIsland/map.json | 2 +- data/maps/ThreeIsland_BerryForest/map.json | 26 +- data/maps/ThreeIsland_BondBridge/map.json | 6 +- .../maps/ThreeIsland_DunsparceTunnel/map.json | 2 +- data/maps/TwoIsland_CapeBrink/map.json | 4 +- .../UndergroundPath_EastWestTunnel/map.json | 14 +- .../UndergroundPath_NorthSouthTunnel/map.json | 14 +- data/maps/VermilionCity/map.json | 2 +- data/maps/VictoryRoad_1F/map.json | 4 +- data/maps/ViridianCity_Gym/map.json | 2 +- data/maps/ViridianForest/map.json | 4 +- include/constants/flags.h | 403 +++++----- src/renewable_hidden_items.c | 752 +++++++++--------- 82 files changed, 764 insertions(+), 759 deletions(-) diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 2057a7362..ceaa383b4 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -101,7 +101,7 @@ @ Defines a background hidden item event for map data .macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req, quantity:req, underfoot:req - bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, \flag, \quantity | (\underfoot << 7) + bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), \quantity | (\underfoot << 7) .endm @ Defines a background secret base event for map data. diff --git a/data/maps/CeladonCity/map.json b/data/maps/CeladonCity/map.json index a6a2a5935..ec34003c3 100644 --- a/data/maps/CeladonCity/map.json +++ b/data/maps/CeladonCity/map.json @@ -396,7 +396,7 @@ "y": 20, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_CELADON_CITY_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/CeladonCity_GameCorner/map.json b/data/maps/CeladonCity_GameCorner/map.json index f17531201..51809f37c 100644 --- a/data/maps/CeladonCity_GameCorner/map.json +++ b/data/maps/CeladonCity_GameCorner/map.json @@ -208,7 +208,7 @@ "y": 4, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS", "quantity": 10, "underfoot": false }, @@ -218,7 +218,7 @@ "y": 8, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2", "quantity": 10, "underfoot": false }, @@ -228,7 +228,7 @@ "y": 11, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3", "quantity": 20, "underfoot": false }, @@ -238,7 +238,7 @@ "y": 12, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4", "quantity": 10, "underfoot": false }, @@ -248,7 +248,7 @@ "y": 9, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5", "quantity": 10, "underfoot": false }, @@ -258,7 +258,7 @@ "y": 5, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6", "quantity": 20, "underfoot": false }, @@ -268,7 +268,7 @@ "y": 4, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7", "quantity": 10, "underfoot": false }, @@ -278,7 +278,7 @@ "y": 3, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8", "quantity": 10, "underfoot": false }, @@ -288,7 +288,7 @@ "y": 5, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9", "quantity": 10, "underfoot": false }, @@ -298,7 +298,7 @@ "y": 5, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10", "quantity": 40, "underfoot": false }, @@ -308,7 +308,7 @@ "y": 13, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11", "quantity": 100, "underfoot": false }, @@ -318,7 +318,7 @@ "y": 12, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12", "quantity": 10, "underfoot": false }, diff --git a/data/maps/CeruleanCave_1F/map.json b/data/maps/CeruleanCave_1F/map.json index de5b0a516..2ac897d93 100644 --- a/data/maps/CeruleanCave_1F/map.json +++ b/data/maps/CeruleanCave_1F/map.json @@ -208,7 +208,7 @@ "y": 2, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/CeruleanCity/map.json b/data/maps/CeruleanCity/map.json index 836696f94..5e534008d 100644 --- a/data/maps/CeruleanCity/map.json +++ b/data/maps/CeruleanCity/map.json @@ -385,7 +385,7 @@ "y": 7, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FiveIsland_MemorialPillar/map.json b/data/maps/FiveIsland_MemorialPillar/map.json index 184aec2ca..73c15634a 100644 --- a/data/maps/FiveIsland_MemorialPillar/map.json +++ b/data/maps/FiveIsland_MemorialPillar/map.json @@ -109,7 +109,7 @@ "y": 52, "elevation": 3, "item": "ITEM_BIG_PEARL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL", "quantity": 1, "underfoot": false }, @@ -119,7 +119,7 @@ "y": 7, "elevation": 3, "item": "ITEM_RAZZ_BERRY", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY", "quantity": 1, "underfoot": false }, @@ -129,7 +129,7 @@ "y": 22, "elevation": 3, "item": "ITEM_SITRUS_BERRY", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY", "quantity": 1, "underfoot": false }, @@ -139,7 +139,7 @@ "y": 25, "elevation": 3, "item": "ITEM_BLUK_BERRY", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/FiveIsland_ResortGorgeous/map.json b/data/maps/FiveIsland_ResortGorgeous/map.json index a23843293..80ddcafab 100644 --- a/data/maps/FiveIsland_ResortGorgeous/map.json +++ b/data/maps/FiveIsland_ResortGorgeous/map.json @@ -158,7 +158,7 @@ "y": 7, "elevation": 3, "item": "ITEM_NEST_BALL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL", "quantity": 1, "underfoot": false }, @@ -168,7 +168,7 @@ "y": 11, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST", "quantity": 1, "underfoot": false }, @@ -178,7 +178,7 @@ "y": 12, "elevation": 3, "item": "ITEM_STAR_PIECE", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE", "quantity": 1, "underfoot": false }, @@ -188,7 +188,7 @@ "y": 5, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FiveIsland_RocketWarehouse/map.json b/data/maps/FiveIsland_RocketWarehouse/map.json index 81c2fc436..63a27af82 100644 --- a/data/maps/FiveIsland_RocketWarehouse/map.json +++ b/data/maps/FiveIsland_RocketWarehouse/map.json @@ -217,7 +217,7 @@ "y": 2, "elevation": 0, "item": "ITEM_NEST_BALL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL", "quantity": 1, "underfoot": false }, @@ -227,7 +227,7 @@ "y": 16, "elevation": 0, "item": "ITEM_NET_BALL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json index f986e9868..b347b7606 100644 --- a/data/maps/FourIsland/map.json +++ b/data/maps/FourIsland/map.json @@ -258,7 +258,7 @@ "y": 34, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_FOUR_ISLAND_PEARL", + "flag": "FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL", "quantity": 1, "underfoot": false }, @@ -268,7 +268,7 @@ "y": 21, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json index 38e9352c6..834806202 100644 --- a/data/maps/FuchsiaCity/map.json +++ b/data/maps/FuchsiaCity/map.json @@ -431,7 +431,7 @@ "y": 26, "elevation": 3, "item": "ITEM_MAX_REVIVE", - "flag": "HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE", "quantity": 1, "underfoot": false } diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json index c2e580138..a755bbd0b 100644 --- a/data/maps/MtEmber_Exterior/map.json +++ b/data/maps/MtEmber_Exterior/map.json @@ -376,7 +376,7 @@ "y": 17, "elevation": 0, "item": "ITEM_FIRE_STONE", - "flag": "HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE", + "flag": "FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE", "quantity": 1, "underfoot": false }, @@ -386,7 +386,7 @@ "y": 30, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/MtMoon_B1F/map.json b/data/maps/MtMoon_B1F/map.json index 81281c549..96472b9c2 100644 --- a/data/maps/MtMoon_B1F/map.json +++ b/data/maps/MtMoon_B1F/map.json @@ -81,7 +81,7 @@ "y": 2, "elevation": 0, "item": "ITEM_TINY_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM", "quantity": 1, "underfoot": false }, @@ -91,7 +91,7 @@ "y": 2, "elevation": 0, "item": "ITEM_TINY_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2", "quantity": 1, "underfoot": false }, @@ -101,7 +101,7 @@ "y": 34, "elevation": 0, "item": "ITEM_TINY_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3", "quantity": 1, "underfoot": false }, @@ -111,7 +111,7 @@ "y": 35, "elevation": 0, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM", "quantity": 1, "underfoot": false }, @@ -121,7 +121,7 @@ "y": 12, "elevation": 0, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2", "quantity": 1, "underfoot": false }, @@ -131,7 +131,7 @@ "y": 34, "elevation": 0, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3", "quantity": 1, "underfoot": false } diff --git a/data/maps/MtMoon_B2F/map.json b/data/maps/MtMoon_B2F/map.json index 0ce444496..259a6ed50 100644 --- a/data/maps/MtMoon_B2F/map.json +++ b/data/maps/MtMoon_B2F/map.json @@ -218,7 +218,7 @@ "y": 16, "elevation": 3, "item": "ITEM_MOON_STONE", - "flag": "HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE", "quantity": 1, "underfoot": false }, @@ -228,7 +228,7 @@ "y": 11, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_MT_MOON_B2F_ETHER", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER", "quantity": 1, "underfoot": false } diff --git a/data/maps/NavelRock_Summit/map.json b/data/maps/NavelRock_Summit/map.json index c7ea83f07..64eb420c5 100644 --- a/data/maps/NavelRock_Summit/map.json +++ b/data/maps/NavelRock_Summit/map.json @@ -57,7 +57,7 @@ "y": 11, "elevation": 3, "item": "ITEM_SACRED_ASH", - "flag": "HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH", + "flag": "FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH", "quantity": 1, "underfoot": true } diff --git a/data/maps/OneIsland_TreasureBeach/map.json b/data/maps/OneIsland_TreasureBeach/map.json index d940dbe08..040861ce5 100644 --- a/data/maps/OneIsland_TreasureBeach/map.json +++ b/data/maps/OneIsland_TreasureBeach/map.json @@ -59,7 +59,7 @@ "y": 20, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST", "quantity": 1, "underfoot": false }, @@ -69,7 +69,7 @@ "y": 27, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2", "quantity": 1, "underfoot": false }, @@ -79,7 +79,7 @@ "y": 31, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL", "quantity": 1, "underfoot": false }, @@ -89,7 +89,7 @@ "y": 34, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2", "quantity": 1, "underfoot": false }, @@ -99,7 +99,7 @@ "y": 22, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL", "quantity": 1, "underfoot": false }, @@ -109,7 +109,7 @@ "y": 33, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2", "quantity": 1, "underfoot": false }, @@ -119,7 +119,7 @@ "y": 29, "elevation": 3, "item": "ITEM_STAR_PIECE", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE", "quantity": 1, "underfoot": false }, @@ -129,7 +129,7 @@ "y": 27, "elevation": 3, "item": "ITEM_BIG_PEARL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL", "quantity": 1, "underfoot": false } diff --git a/data/maps/PewterCity/map.json b/data/maps/PewterCity/map.json index b39ee8b85..ddc3481ca 100644 --- a/data/maps/PewterCity/map.json +++ b/data/maps/PewterCity/map.json @@ -288,7 +288,7 @@ "y": 3, "elevation": 3, "item": "ITEM_POKE_BALL", - "flag": "HIDDEN_ITEM_PEWTER_CITY_POKE_BALL", + "flag": "FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonMansion_1F/map.json b/data/maps/PokemonMansion_1F/map.json index f517febf3..346a767b0 100644 --- a/data/maps/PokemonMansion_1F/map.json +++ b/data/maps/PokemonMansion_1F/map.json @@ -174,7 +174,7 @@ "y": 21, "elevation": 0, "item": "ITEM_MOON_STONE", - "flag": "HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonMansion_3F/map.json b/data/maps/PokemonMansion_3F/map.json index 66816e89f..13c7ea294 100644 --- a/data/maps/PokemonMansion_3F/map.json +++ b/data/maps/PokemonMansion_3F/map.json @@ -154,7 +154,7 @@ "y": 13, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonMansion_B1F/map.json b/data/maps/PokemonMansion_B1F/map.json index 75fe3af53..b68160cf6 100644 --- a/data/maps/PokemonMansion_B1F/map.json +++ b/data/maps/PokemonMansion_B1F/map.json @@ -141,7 +141,7 @@ "y": 5, "elevation": 3, "item": "ITEM_ELIXIR", - "flag": "HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonTower_5F/map.json b/data/maps/PokemonTower_5F/map.json index b4feeb07c..72fb7dee8 100644 --- a/data/maps/PokemonTower_5F/map.json +++ b/data/maps/PokemonTower_5F/map.json @@ -292,7 +292,7 @@ "y": 3, "elevation": 3, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonTower_7F/map.json b/data/maps/PokemonTower_7F/map.json index f5289a31e..75a293e4b 100644 --- a/data/maps/PokemonTower_7F/map.json +++ b/data/maps/PokemonTower_7F/map.json @@ -89,7 +89,7 @@ "y": 4, "elevation": 3, "item": "ITEM_SOOTHE_BELL", - "flag": "HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL", "quantity": 1, "underfoot": true } diff --git a/data/maps/PowerPlant/map.json b/data/maps/PowerPlant/map.json index d0c40dcd5..38950b3a4 100644 --- a/data/maps/PowerPlant/map.json +++ b/data/maps/PowerPlant/map.json @@ -173,7 +173,7 @@ "y": 16, "elevation": 3, "item": "ITEM_MAX_ELIXIR", - "flag": "HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR", "quantity": 1, "underfoot": false }, @@ -183,7 +183,7 @@ "y": 12, "elevation": 3, "item": "ITEM_THUNDER_STONE", - "flag": "HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE", + "flag": "FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE", "quantity": 1, "underfoot": false } diff --git a/data/maps/RocketHideout_B1F/map.json b/data/maps/RocketHideout_B1F/map.json index a387f96e2..86b907054 100644 --- a/data/maps/RocketHideout_B1F/map.json +++ b/data/maps/RocketHideout_B1F/map.json @@ -166,7 +166,7 @@ "y": 17, "elevation": 0, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/RocketHideout_B3F/map.json b/data/maps/RocketHideout_B3F/map.json index af785dae4..a606996ed 100644 --- a/data/maps/RocketHideout_B3F/map.json +++ b/data/maps/RocketHideout_B3F/map.json @@ -110,7 +110,7 @@ "y": 3, "elevation": 3, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/RocketHideout_B4F/map.json b/data/maps/RocketHideout_B4F/map.json index 4bfdfca24..8ad0ad4e7 100644 --- a/data/maps/RocketHideout_B4F/map.json +++ b/data/maps/RocketHideout_B4F/map.json @@ -173,7 +173,7 @@ "y": 6, "elevation": 3, "item": "ITEM_NEST_BALL", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL", "quantity": 1, "underfoot": false }, @@ -183,7 +183,7 @@ "y": 6, "elevation": 3, "item": "ITEM_NET_BALL", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route10/map.json b/data/maps/Route10/map.json index ff5cce9b0..97d85418f 100644 --- a/data/maps/Route10/map.json +++ b/data/maps/Route10/map.json @@ -236,7 +236,7 @@ "y": 19, "elevation": 0, "item": "ITEM_SUPER_POTION", - "flag": "HIDDEN_ITEM_ROUTE10_SUPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION", "quantity": 1, "underfoot": false }, @@ -246,7 +246,7 @@ "y": 40, "elevation": 3, "item": "ITEM_MAX_ETHER", - "flag": "HIDDEN_ITEM_ROUTE10_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER", "quantity": 1, "underfoot": false }, @@ -256,7 +256,7 @@ "y": 26, "elevation": 3, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_ROUTE10_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY", "quantity": 1, "underfoot": false }, @@ -266,7 +266,7 @@ "y": 29, "elevation": 3, "item": "ITEM_PERSIM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE10_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY", "quantity": 1, "underfoot": false }, @@ -276,7 +276,7 @@ "y": 57, "elevation": 3, "item": "ITEM_NANAB_BERRY", - "flag": "HIDDEN_ITEM_ROUTE10_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route11/map.json b/data/maps/Route11/map.json index 24ee24b14..8bceede43 100644 --- a/data/maps/Route11/map.json +++ b/data/maps/Route11/map.json @@ -248,7 +248,7 @@ "y": 5, "elevation": 0, "item": "ITEM_ESCAPE_ROPE", - "flag": "HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route12/map.json b/data/maps/Route12/map.json index 54d24b715..ec90e4440 100644 --- a/data/maps/Route12/map.json +++ b/data/maps/Route12/map.json @@ -282,7 +282,7 @@ "y": 57, "elevation": 3, "item": "ITEM_HYPER_POTION", - "flag": "HIDDEN_ITEM_ROUTE12_HYPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION", "quantity": 1, "underfoot": false }, @@ -292,7 +292,7 @@ "y": 70, "elevation": 3, "item": "ITEM_LEFTOVERS", - "flag": "HIDDEN_ITEM_ROUTE12_LEFTOVERS", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS", "quantity": 1, "underfoot": true }, @@ -302,7 +302,7 @@ "y": 116, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE12_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route13/map.json b/data/maps/Route13/map.json index b2c0fd745..e24ec68d2 100644 --- a/data/maps/Route13/map.json +++ b/data/maps/Route13/map.json @@ -214,7 +214,7 @@ "y": 14, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_ROUTE13_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROUTE13_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route14/map.json b/data/maps/Route14/map.json index 2aea43623..c3b58cf4b 100644 --- a/data/maps/Route14/map.json +++ b/data/maps/Route14/map.json @@ -254,7 +254,7 @@ "y": 20, "elevation": 3, "item": "ITEM_ZINC", - "flag": "HIDDEN_ITEM_ROUTE14_ZINC", + "flag": "FLAG_HIDDEN_ITEM_ROUTE14_ZINC", "quantity": 1, "underfoot": false }, @@ -264,7 +264,7 @@ "y": 53, "elevation": 3, "item": "ITEM_PINAP_BERRY", - "flag": "HIDDEN_ITEM_ROUTE14_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route16/map.json b/data/maps/Route16/map.json index af1c20d8b..97a8592cb 100644 --- a/data/maps/Route16/map.json +++ b/data/maps/Route16/map.json @@ -228,7 +228,7 @@ "y": 13, "elevation": 3, "item": "ITEM_LEFTOVERS", - "flag": "HIDDEN_ITEM_ROUTE16_LEFTOVERS", + "flag": "FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS", "quantity": 1, "underfoot": true } diff --git a/data/maps/Route17/map.json b/data/maps/Route17/map.json index 22a4c7ba1..5aeda1cda 100644 --- a/data/maps/Route17/map.json +++ b/data/maps/Route17/map.json @@ -224,7 +224,7 @@ "y": 83, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE17_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY", "quantity": 1, "underfoot": false }, @@ -234,7 +234,7 @@ "y": 53, "elevation": 3, "item": "ITEM_FULL_RESTORE", - "flag": "HIDDEN_ITEM_ROUTE17_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE", "quantity": 1, "underfoot": false }, @@ -244,7 +244,7 @@ "y": 68, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_ROUTE17_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_PP_UP", "quantity": 1, "underfoot": false }, @@ -254,7 +254,7 @@ "y": 125, "elevation": 3, "item": "ITEM_MAX_REVIVE", - "flag": "HIDDEN_ITEM_ROUTE17_MAX_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE", "quantity": 1, "underfoot": false }, @@ -264,7 +264,7 @@ "y": 157, "elevation": 3, "item": "ITEM_MAX_ELIXIR", - "flag": "HIDDEN_ITEM_ROUTE17_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route20/map.json b/data/maps/Route20/map.json index 2900cf4ac..5499ee68a 100644 --- a/data/maps/Route20/map.json +++ b/data/maps/Route20/map.json @@ -221,7 +221,7 @@ "y": 6, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_ROUTE20_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ROUTE20_STARDUST", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route21_North/map.json b/data/maps/Route21_North/map.json index 0126f8d90..3a9bbe242 100644 --- a/data/maps/Route21_North/map.json +++ b/data/maps/Route21_North/map.json @@ -114,7 +114,7 @@ "y": 42, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_ROUTE21_NORTH_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json index 86044c923..7cbf5ed4e 100644 --- a/data/maps/Route23/map.json +++ b/data/maps/Route23/map.json @@ -542,7 +542,7 @@ "y": 42, "elevation": 0, "item": "ITEM_FULL_RESTORE", - "flag": "HIDDEN_ITEM_ROUTE23_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE", "quantity": 1, "underfoot": false }, @@ -552,7 +552,7 @@ "y": 72, "elevation": 0, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_ROUTE23_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL", "quantity": 1, "underfoot": false }, @@ -562,7 +562,7 @@ "y": 101, "elevation": 3, "item": "ITEM_MAX_ETHER", - "flag": "HIDDEN_ITEM_ROUTE23_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER", "quantity": 1, "underfoot": false }, @@ -572,7 +572,7 @@ "y": 18, "elevation": 3, "item": "ITEM_LUM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY", "quantity": 1, "underfoot": false }, @@ -582,7 +582,7 @@ "y": 29, "elevation": 3, "item": "ITEM_SITRUS_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY", "quantity": 1, "underfoot": false }, @@ -592,7 +592,7 @@ "y": 67, "elevation": 3, "item": "ITEM_ASPEAR_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -602,7 +602,7 @@ "y": 128, "elevation": 3, "item": "ITEM_LEPPA_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY", "quantity": 1, "underfoot": false }, @@ -612,7 +612,7 @@ "y": 8, "elevation": 3, "item": "ITEM_MAX_ELIXIR", - "flag": "HIDDEN_ITEM_ROUTE23_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR", "quantity": 1, "underfoot": false }, diff --git a/data/maps/Route24/map.json b/data/maps/Route24/map.json index 9335104bc..0e8fd736f 100644 --- a/data/maps/Route24/map.json +++ b/data/maps/Route24/map.json @@ -167,7 +167,7 @@ "y": 4, "elevation": 3, "item": "ITEM_PECHA_BERRY", - "flag": "HIDDEN_ITEM_ROUTE24_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route25/map.json b/data/maps/Route25/map.json index 9ebeb1841..ab2cdf6cb 100644 --- a/data/maps/Route25/map.json +++ b/data/maps/Route25/map.json @@ -229,7 +229,7 @@ "y": 2, "elevation": 3, "item": "ITEM_ELIXIR", - "flag": "HIDDEN_ITEM_ROUTE25_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR", "quantity": 1, "underfoot": false }, @@ -239,7 +239,7 @@ "y": 6, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_ROUTE25_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ETHER", "quantity": 1, "underfoot": false }, @@ -249,7 +249,7 @@ "y": 8, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_ROUTE25_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY", "quantity": 1, "underfoot": false }, @@ -259,7 +259,7 @@ "y": 3, "elevation": 3, "item": "ITEM_BLUK_BERRY", - "flag": "HIDDEN_ITEM_ROUTE25_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route3/map.json b/data/maps/Route3/map.json index 9fbd3634c..bc5d1449a 100644 --- a/data/maps/Route3/map.json +++ b/data/maps/Route3/map.json @@ -170,7 +170,7 @@ "y": 9, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_ROUTE3_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route4/map.json b/data/maps/Route4/map.json index 5bd534dfa..3273015c1 100644 --- a/data/maps/Route4/map.json +++ b/data/maps/Route4/map.json @@ -166,7 +166,7 @@ "y": 2, "elevation": 3, "item": "ITEM_GREAT_BALL", - "flag": "HIDDEN_ITEM_ROUTE4_GREAT_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL", "quantity": 1, "underfoot": false }, @@ -176,7 +176,7 @@ "y": 4, "elevation": 3, "item": "ITEM_PERSIM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE4_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY", "quantity": 1, "underfoot": false }, @@ -186,7 +186,7 @@ "y": 17, "elevation": 3, "item": "ITEM_RAZZ_BERRY", - "flag": "HIDDEN_ITEM_ROUTE4_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route6/map.json b/data/maps/Route6/map.json index a8a7754c7..4a146846a 100644 --- a/data/maps/Route6/map.json +++ b/data/maps/Route6/map.json @@ -150,7 +150,7 @@ "y": 5, "elevation": 3, "item": "ITEM_SITRUS_BERRY", - "flag": "HIDDEN_ITEM_ROUTE6_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY", "quantity": 1, "underfoot": false }, @@ -160,7 +160,7 @@ "y": 5, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE6_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route7/map.json b/data/maps/Route7/map.json index b6227e677..255dbe841 100644 --- a/data/maps/Route7/map.json +++ b/data/maps/Route7/map.json @@ -67,7 +67,7 @@ "y": 15, "elevation": 3, "item": "ITEM_WEPEAR_BERRY", - "flag": "HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route8/map.json b/data/maps/Route8/map.json index 7741c79f8..53c017e41 100644 --- a/data/maps/Route8/map.json +++ b/data/maps/Route8/map.json @@ -269,7 +269,7 @@ "y": 10, "elevation": 3, "item": "ITEM_RAWST_BERRY", - "flag": "HIDDEN_ITEM_ROUTE8_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY", "quantity": 1, "underfoot": false }, @@ -279,7 +279,7 @@ "y": 11, "elevation": 3, "item": "ITEM_LUM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE8_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY", "quantity": 1, "underfoot": false }, @@ -289,7 +289,7 @@ "y": 15, "elevation": 3, "item": "ITEM_LEPPA_BERRY", - "flag": "HIDDEN_ITEM_ROUTE8_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route9/map.json b/data/maps/Route9/map.json index 1523fc0c4..a60f193b4 100644 --- a/data/maps/Route9/map.json +++ b/data/maps/Route9/map.json @@ -212,7 +212,7 @@ "y": 7, "elevation": 0, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_ROUTE9_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_ETHER", "quantity": 1, "underfoot": false }, @@ -222,7 +222,7 @@ "y": 2, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE9_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY", "quantity": 1, "underfoot": false }, @@ -232,7 +232,7 @@ "y": 2, "elevation": 3, "item": "ITEM_CHESTO_BERRY", - "flag": "HIDDEN_ITEM_ROUTE9_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/SSAnne_B1F_Corridor/map.json b/data/maps/SSAnne_B1F_Corridor/map.json index 858673bc5..fa64ecb13 100644 --- a/data/maps/SSAnne_B1F_Corridor/map.json +++ b/data/maps/SSAnne_B1F_Corridor/map.json @@ -67,7 +67,7 @@ "y": 5, "elevation": 3, "item": "ITEM_HYPER_POTION", - "flag": "HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION", "quantity": 1, "underfoot": false } diff --git a/data/maps/SSAnne_Exterior/map.json b/data/maps/SSAnne_Exterior/map.json index 211b244e4..c8b563471 100644 --- a/data/maps/SSAnne_Exterior/map.json +++ b/data/maps/SSAnne_Exterior/map.json @@ -75,7 +75,7 @@ "y": 28, "elevation": 3, "item": "ITEM_LAVA_COOKIE", - "flag": "HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE", "quantity": 1, "underfoot": false } diff --git a/data/maps/SSAnne_Kitchen/map.json b/data/maps/SSAnne_Kitchen/map.json index af1f147ac..1566589d7 100644 --- a/data/maps/SSAnne_Kitchen/map.json +++ b/data/maps/SSAnne_Kitchen/map.json @@ -145,7 +145,7 @@ "y": 8, "elevation": 0, "item": "ITEM_CHESTO_BERRY", - "flag": "HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY", "quantity": 1, "underfoot": false }, @@ -155,7 +155,7 @@ "y": 4, "elevation": 0, "item": "ITEM_PECHA_BERRY", - "flag": "HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY", "quantity": 1, "underfoot": false }, @@ -165,7 +165,7 @@ "y": 6, "elevation": 0, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json index 1eaad1f23..29a2be415 100644 --- a/data/maps/SafariZone_Center/map.json +++ b/data/maps/SafariZone_Center/map.json @@ -147,7 +147,7 @@ "y": 15, "elevation": 3, "item": "ITEM_LEAF_STONE", - "flag": "HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE", + "flag": "FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json index ccbf3d8b6..0933c13fb 100644 --- a/data/maps/SafariZone_West/map.json +++ b/data/maps/SafariZone_West/map.json @@ -191,7 +191,7 @@ "y": 11, "elevation": 3, "item": "ITEM_REVIVE", - "flag": "HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE", "quantity": 1, "underfoot": false } diff --git a/data/maps/SaffronCity_CopycatsHouse_2F/map.json b/data/maps/SaffronCity_CopycatsHouse_2F/map.json index 9a6be7486..63bc01336 100644 --- a/data/maps/SaffronCity_CopycatsHouse_2F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_2F/map.json @@ -105,7 +105,7 @@ "y": 1, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/SeafoamIslands_B3F/map.json b/data/maps/SeafoamIslands_B3F/map.json index 6f53158a4..e56351aa4 100644 --- a/data/maps/SeafoamIslands_B3F/map.json +++ b/data/maps/SeafoamIslands_B3F/map.json @@ -173,7 +173,7 @@ "y": 12, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/SeafoamIslands_B4F/map.json b/data/maps/SeafoamIslands_B4F/map.json index 41f9a7597..f015454d5 100644 --- a/data/maps/SeafoamIslands_B4F/map.json +++ b/data/maps/SeafoamIslands_B4F/map.json @@ -138,7 +138,7 @@ "y": 8, "elevation": 0, "item": "ITEM_WATER_STONE", - "flag": "HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE", + "flag": "FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SevenIsland_SevaultCanyon/map.json b/data/maps/SevenIsland_SevaultCanyon/map.json index 2c8f76642..d0d1a0dca 100644 --- a/data/maps/SevenIsland_SevaultCanyon/map.json +++ b/data/maps/SevenIsland_SevaultCanyon/map.json @@ -331,7 +331,7 @@ "y": 66, "elevation": 3, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json index b86e59a1d..45e036fe0 100644 --- a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json @@ -128,7 +128,7 @@ "y": 29, "elevation": 5, "item": "ITEM_RAWST_BERRY", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SevenIsland_TanobyRuins/map.json b/data/maps/SevenIsland_TanobyRuins/map.json index ff476137c..05002e689 100644 --- a/data/maps/SevenIsland_TanobyRuins/map.json +++ b/data/maps/SevenIsland_TanobyRuins/map.json @@ -137,7 +137,7 @@ "y": 10, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE", "quantity": 1, "underfoot": false }, @@ -147,7 +147,7 @@ "y": 9, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2", "quantity": 1, "underfoot": false }, @@ -157,7 +157,7 @@ "y": 5, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3", "quantity": 1, "underfoot": false }, @@ -167,7 +167,7 @@ "y": 2, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4", "quantity": 1, "underfoot": false } diff --git a/data/maps/SevenIsland_TrainerTower/map.json b/data/maps/SevenIsland_TrainerTower/map.json index 079f8ce1b..a47439424 100644 --- a/data/maps/SevenIsland_TrainerTower/map.json +++ b/data/maps/SevenIsland_TrainerTower/map.json @@ -67,7 +67,7 @@ "y": 27, "elevation": 3, "item": "ITEM_BIG_PEARL", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL", "quantity": 1, "underfoot": false }, @@ -77,7 +77,7 @@ "y": 30, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL", "quantity": 1, "underfoot": false }, @@ -87,7 +87,7 @@ "y": 32, "elevation": 3, "item": "ITEM_NANAB_BERRY", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_10F/map.json b/data/maps/SilphCo_10F/map.json index 0ba516fdb..ed9e17aa9 100644 --- a/data/maps/SilphCo_10F/map.json +++ b/data/maps/SilphCo_10F/map.json @@ -184,7 +184,7 @@ "y": 9, "elevation": 0, "item": "ITEM_HP_UP", - "flag": "HIDDEN_ITEM_SILPH_CO_10F_HP_UP", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_11F/map.json b/data/maps/SilphCo_11F/map.json index eb5c24042..118dd5d32 100644 --- a/data/maps/SilphCo_11F/map.json +++ b/data/maps/SilphCo_11F/map.json @@ -182,7 +182,7 @@ "y": 18, "elevation": 0, "item": "ITEM_REVIVE", - "flag": "HIDDEN_ITEM_SILPH_CO_11F_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_2F/map.json b/data/maps/SilphCo_2F/map.json index 91a37c98f..f22ab8826 100644 --- a/data/maps/SilphCo_2F/map.json +++ b/data/maps/SilphCo_2F/map.json @@ -209,7 +209,7 @@ "y": 21, "elevation": 0, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_3F/map.json b/data/maps/SilphCo_3F/map.json index 9e0bfe88a..b5c5c6f61 100644 --- a/data/maps/SilphCo_3F/map.json +++ b/data/maps/SilphCo_3F/map.json @@ -216,7 +216,7 @@ "y": 18, "elevation": 0, "item": "ITEM_PROTEIN", - "flag": "HIDDEN_ITEM_SILPH_CO_3F_PROTEIN", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_4F/map.json b/data/maps/SilphCo_4F/map.json index 15b95fb8b..89258bab9 100644 --- a/data/maps/SilphCo_4F/map.json +++ b/data/maps/SilphCo_4F/map.json @@ -251,7 +251,7 @@ "y": 20, "elevation": 0, "item": "ITEM_IRON", - "flag": "HIDDEN_ITEM_SILPH_CO_4F_IRON", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_5F/map.json b/data/maps/SilphCo_5F/map.json index a134b7d4b..5d6c07664 100644 --- a/data/maps/SilphCo_5F/map.json +++ b/data/maps/SilphCo_5F/map.json @@ -201,7 +201,7 @@ "y": 16, "elevation": 0, "item": "ITEM_ELIXIR", - "flag": "HIDDEN_ITEM_SILPH_CO_5F_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR", "quantity": 1, "underfoot": false }, @@ -331,7 +331,7 @@ "y": 9, "elevation": 0, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_SILPH_CO_5F_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_6F/map.json b/data/maps/SilphCo_6F/map.json index 29b033bdb..7fd6ee981 100644 --- a/data/maps/SilphCo_6F/map.json +++ b/data/maps/SilphCo_6F/map.json @@ -233,7 +233,7 @@ "y": 8, "elevation": 0, "item": "ITEM_CARBOS", - "flag": "HIDDEN_ITEM_SILPH_CO_6F_CARBOS", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_7F/map.json b/data/maps/SilphCo_7F/map.json index b5072b37f..e1739bc2d 100644 --- a/data/maps/SilphCo_7F/map.json +++ b/data/maps/SilphCo_7F/map.json @@ -337,7 +337,7 @@ "y": 11, "elevation": 0, "item": "ITEM_ZINC", - "flag": "HIDDEN_ITEM_SILPH_CO_7F_ZINC", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_8F/map.json b/data/maps/SilphCo_8F/map.json index 49ee7a3e4..9e5363959 100644 --- a/data/maps/SilphCo_8F/map.json +++ b/data/maps/SilphCo_8F/map.json @@ -191,7 +191,7 @@ "y": 10, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_SILPH_CO_8F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_9F/map.json b/data/maps/SilphCo_9F/map.json index bf2ab5433..5f108ad82 100644 --- a/data/maps/SilphCo_9F/map.json +++ b/data/maps/SilphCo_9F/map.json @@ -117,7 +117,7 @@ "y": 14, "elevation": 3, "item": "ITEM_MAX_POTION", - "flag": "HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION", "quantity": 1, "underfoot": false }, @@ -255,7 +255,7 @@ "y": 8, "elevation": 0, "item": "ITEM_CALCIUM", - "flag": "HIDDEN_ITEM_SILPH_CO_9F_CALCIUM", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SixIsland/map.json b/data/maps/SixIsland/map.json index 87e66d7e4..e5ebdb14f 100644 --- a/data/maps/SixIsland/map.json +++ b/data/maps/SixIsland/map.json @@ -96,7 +96,7 @@ "y": 7, "elevation": 3, "item": "ITEM_LEPPA_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/SixIsland_GreenPath/map.json b/data/maps/SixIsland_GreenPath/map.json index ed2e62719..5d01d6956 100644 --- a/data/maps/SixIsland_GreenPath/map.json +++ b/data/maps/SixIsland_GreenPath/map.json @@ -95,7 +95,7 @@ "y": 9, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/SixIsland_OutcastIsland/map.json b/data/maps/SixIsland_OutcastIsland/map.json index 69fec4d9b..4a0178f54 100644 --- a/data/maps/SixIsland_OutcastIsland/map.json +++ b/data/maps/SixIsland_OutcastIsland/map.json @@ -137,7 +137,7 @@ "y": 23, "elevation": 3, "item": "ITEM_STAR_PIECE", - "flag": "HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE", "quantity": 1, "underfoot": false }, @@ -147,7 +147,7 @@ "y": 24, "elevation": 3, "item": "ITEM_NET_BALL", - "flag": "HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/SixIsland_WaterPath/map.json b/data/maps/SixIsland_WaterPath/map.json index 0ff0b08f6..1ee07dfbb 100644 --- a/data/maps/SixIsland_WaterPath/map.json +++ b/data/maps/SixIsland_WaterPath/map.json @@ -190,7 +190,7 @@ "y": 76, "elevation": 3, "item": "ITEM_ASPEAR_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -200,7 +200,7 @@ "y": 8, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY", "quantity": 1, "underfoot": false }, @@ -210,7 +210,7 @@ "y": 63, "elevation": 3, "item": "ITEM_PINAP_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/ThreeIsland/map.json b/data/maps/ThreeIsland/map.json index 450c66f3c..69d733605 100644 --- a/data/maps/ThreeIsland/map.json +++ b/data/maps/ThreeIsland/map.json @@ -381,7 +381,7 @@ "y": 13, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_THREE_ISLAND_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/ThreeIsland_BerryForest/map.json b/data/maps/ThreeIsland_BerryForest/map.json index 53d69e452..18151e232 100644 --- a/data/maps/ThreeIsland_BerryForest/map.json +++ b/data/maps/ThreeIsland_BerryForest/map.json @@ -259,7 +259,7 @@ "y": 25, "elevation": 3, "item": "ITEM_RAZZ_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY", "quantity": 1, "underfoot": false }, @@ -269,7 +269,7 @@ "y": 15, "elevation": 3, "item": "ITEM_BLUK_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY", "quantity": 1, "underfoot": false }, @@ -279,7 +279,7 @@ "y": 24, "elevation": 3, "item": "ITEM_NANAB_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY", "quantity": 1, "underfoot": false }, @@ -289,7 +289,7 @@ "y": 24, "elevation": 3, "item": "ITEM_WEPEAR_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -299,7 +299,7 @@ "y": 18, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY", "quantity": 1, "underfoot": false }, @@ -309,7 +309,7 @@ "y": 23, "elevation": 3, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY", "quantity": 1, "underfoot": false }, @@ -319,7 +319,7 @@ "y": 5, "elevation": 3, "item": "ITEM_CHESTO_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY", "quantity": 1, "underfoot": false }, @@ -329,7 +329,7 @@ "y": 30, "elevation": 3, "item": "ITEM_PECHA_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY", "quantity": 1, "underfoot": false }, @@ -339,7 +339,7 @@ "y": 5, "elevation": 3, "item": "ITEM_RAWST_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY", "quantity": 1, "underfoot": false }, @@ -349,7 +349,7 @@ "y": 6, "elevation": 3, "item": "ITEM_ASPEAR_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -359,7 +359,7 @@ "y": 32, "elevation": 3, "item": "ITEM_PERSIM_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY", "quantity": 1, "underfoot": false }, @@ -369,7 +369,7 @@ "y": 16, "elevation": 3, "item": "ITEM_PINAP_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY", "quantity": 1, "underfoot": false }, @@ -379,7 +379,7 @@ "y": 5, "elevation": 3, "item": "ITEM_LUM_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/ThreeIsland_BondBridge/map.json b/data/maps/ThreeIsland_BondBridge/map.json index 65bcf0c7e..787fac702 100644 --- a/data/maps/ThreeIsland_BondBridge/map.json +++ b/data/maps/ThreeIsland_BondBridge/map.json @@ -180,7 +180,7 @@ "y": 5, "elevation": 0, "item": "ITEM_MAX_REPEL", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL", "quantity": 1, "underfoot": false }, @@ -190,7 +190,7 @@ "y": 12, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL", "quantity": 1, "underfoot": false }, @@ -200,7 +200,7 @@ "y": 7, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST", "quantity": 1, "underfoot": false }, diff --git a/data/maps/ThreeIsland_DunsparceTunnel/map.json b/data/maps/ThreeIsland_DunsparceTunnel/map.json index d04bd68b5..6b40c01eb 100644 --- a/data/maps/ThreeIsland_DunsparceTunnel/map.json +++ b/data/maps/ThreeIsland_DunsparceTunnel/map.json @@ -54,7 +54,7 @@ "y": 3, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/TwoIsland_CapeBrink/map.json b/data/maps/TwoIsland_CapeBrink/map.json index 85e333654..ce109de65 100644 --- a/data/maps/TwoIsland_CapeBrink/map.json +++ b/data/maps/TwoIsland_CapeBrink/map.json @@ -38,7 +38,7 @@ "y": 28, "elevation": 3, "item": "ITEM_PP_MAX", - "flag": "HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX", + "flag": "FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX", "quantity": 1, "underfoot": true }, @@ -48,7 +48,7 @@ "y": 13, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/UndergroundPath_EastWestTunnel/map.json b/data/maps/UndergroundPath_EastWestTunnel/map.json index 174cbc920..30ca49913 100644 --- a/data/maps/UndergroundPath_EastWestTunnel/map.json +++ b/data/maps/UndergroundPath_EastWestTunnel/map.json @@ -39,7 +39,7 @@ "y": 3, "elevation": 3, "item": "ITEM_POTION", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION", "quantity": 1, "underfoot": false }, @@ -49,7 +49,7 @@ "y": 5, "elevation": 3, "item": "ITEM_PARALYZE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL", "quantity": 1, "underfoot": false }, @@ -59,7 +59,7 @@ "y": 4, "elevation": 3, "item": "ITEM_AWAKENING", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING", "quantity": 1, "underfoot": false }, @@ -69,7 +69,7 @@ "y": 3, "elevation": 3, "item": "ITEM_BURN_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL", "quantity": 1, "underfoot": false }, @@ -79,7 +79,7 @@ "y": 3, "elevation": 3, "item": "ITEM_ICE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL", "quantity": 1, "underfoot": false }, @@ -89,7 +89,7 @@ "y": 2, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER", "quantity": 1, "underfoot": false }, @@ -99,7 +99,7 @@ "y": 5, "elevation": 3, "item": "ITEM_ANTIDOTE", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE", "quantity": 1, "underfoot": false } diff --git a/data/maps/UndergroundPath_NorthSouthTunnel/map.json b/data/maps/UndergroundPath_NorthSouthTunnel/map.json index 321e1071a..95b3decab 100644 --- a/data/maps/UndergroundPath_NorthSouthTunnel/map.json +++ b/data/maps/UndergroundPath_NorthSouthTunnel/map.json @@ -39,7 +39,7 @@ "y": 30, "elevation": 3, "item": "ITEM_POTION", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION", "quantity": 1, "underfoot": false }, @@ -49,7 +49,7 @@ "y": 6, "elevation": 3, "item": "ITEM_ANTIDOTE", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE", "quantity": 1, "underfoot": false }, @@ -59,7 +59,7 @@ "y": 57, "elevation": 3, "item": "ITEM_BURN_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL", "quantity": 1, "underfoot": false }, @@ -69,7 +69,7 @@ "y": 24, "elevation": 3, "item": "ITEM_AWAKENING", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING", "quantity": 1, "underfoot": false }, @@ -79,7 +79,7 @@ "y": 53, "elevation": 3, "item": "ITEM_ICE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL", "quantity": 1, "underfoot": false }, @@ -89,7 +89,7 @@ "y": 15, "elevation": 3, "item": "ITEM_PARALYZE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL", "quantity": 1, "underfoot": false }, @@ -99,7 +99,7 @@ "y": 39, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER", "quantity": 1, "underfoot": false } diff --git a/data/maps/VermilionCity/map.json b/data/maps/VermilionCity/map.json index 3df3a72b7..cda186af7 100644 --- a/data/maps/VermilionCity/map.json +++ b/data/maps/VermilionCity/map.json @@ -296,7 +296,7 @@ "y": 11, "elevation": 3, "item": "ITEM_MAX_ETHER", - "flag": "HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER", "quantity": 1, "underfoot": false } diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json index 634e03995..069f4213a 100644 --- a/data/maps/VictoryRoad_1F/map.json +++ b/data/maps/VictoryRoad_1F/map.json @@ -148,7 +148,7 @@ "y": 12, "elevation": 0, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL", "quantity": 1, "underfoot": false }, @@ -158,7 +158,7 @@ "y": 1, "elevation": 0, "item": "ITEM_FULL_RESTORE", - "flag": "HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE", "quantity": 1, "underfoot": false } diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json index 083b0cf07..12b470ba7 100644 --- a/data/maps/ViridianCity_Gym/map.json +++ b/data/maps/ViridianCity_Gym/map.json @@ -203,7 +203,7 @@ "y": 2, "elevation": 3, "item": "ITEM_MACHO_BRACE", - "flag": "HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE", "quantity": 1, "underfoot": true } diff --git a/data/maps/ViridianForest/map.json b/data/maps/ViridianForest/map.json index ef89e4b3f..2d42aab09 100644 --- a/data/maps/ViridianForest/map.json +++ b/data/maps/ViridianForest/map.json @@ -270,7 +270,7 @@ "y": 22, "elevation": 3, "item": "ITEM_POTION", - "flag": "HIDDEN_ITEM_VIRIDIAN_FOREST_POTION", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION", "quantity": 1, "underfoot": false }, @@ -280,7 +280,7 @@ "y": 57, "elevation": 0, "item": "ITEM_ANTIDOTE", - "flag": "HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE", "quantity": 1, "underfoot": false } diff --git a/include/constants/flags.h b/include/constants/flags.h index 3234d5385..e4c13dce6 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1018,210 +1018,209 @@ #define FLAG_MYSTERY_GIFT_15 0x3E7 #define FLAG_HIDDEN_ITEMS_START 1000 // 0x3E8 -#define FLAG_HIDDEN_ITEM(map, item) (FLAG_HIDDEN_ITEMS_START + HIDDEN_ITEM_##map##_##item) -#define HIDDEN_ITEM_VIRIDIAN_FOREST_POTION 0 -#define HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE 1 -#define HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE 2 -#define HIDDEN_ITEM_MT_MOON_B2F_ETHER 3 -#define HIDDEN_ITEM_ROUTE25_ELIXIR 4 -#define HIDDEN_ITEM_ROUTE25_ETHER 5 -#define HIDDEN_ITEM_ROUTE9_ETHER 6 -#define HIDDEN_ITEM_UNUSED_0x07 7 -#define HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION 8 -#define HIDDEN_ITEM_ROUTE10_SUPER_POTION 9 -#define HIDDEN_ITEM_ROUTE10_MAX_ETHER 10 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP 11 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET 12 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL 13 -#define HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM 14 -#define HIDDEN_ITEM_ROUTE13_PP_UP 15 -#define HIDDEN_ITEM_UNUSED_0x10 16 -#define HIDDEN_ITEM_ROUTE17_RARE_CANDY 17 -#define HIDDEN_ITEM_ROUTE17_FULL_RESTORE 18 -#define HIDDEN_ITEM_ROUTE17_PP_UP 19 -#define HIDDEN_ITEM_ROUTE17_MAX_REVIVE 20 -#define HIDDEN_ITEM_ROUTE17_MAX_ELIXIR 21 -#define HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE 22 -#define HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE 23 -#define HIDDEN_ITEM_SILPH_CO_5F_ELIXIR 24 -#define HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION 25 -#define HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET 26 -#define HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR 27 -#define HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE 28 -#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET 29 -#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE 30 -#define HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE 31 -#define HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY 32 -#define HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR 33 -#define HIDDEN_ITEM_ROUTE23_FULL_RESTORE 34 -#define HIDDEN_ITEM_ROUTE23_ULTRA_BALL 35 -#define HIDDEN_ITEM_ROUTE23_MAX_ETHER 36 -#define HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL 37 -#define HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE 38 -#define HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL 39 -#define HIDDEN_ITEM_UNUSED_0x28 40 -#define HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE 41 -#define HIDDEN_ITEM_ROUTE12_HYPER_POTION 42 -#define HIDDEN_ITEM_UNUSED_0x2B 43 -#define HIDDEN_ITEM_UNUSED_0x2C 44 -#define HIDDEN_ITEM_UNUSED_0x2D 45 -#define HIDDEN_ITEM_UNUSED_0x2E 46 -#define HIDDEN_ITEM_CELADON_CITY_PP_UP 47 -#define HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER 48 -#define HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY 49 -#define HIDDEN_ITEM_ROUTE4_GREAT_BALL 50 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS 51 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 52 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 53 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 54 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 55 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 56 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 57 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 58 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 59 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 60 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 61 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 62 -#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY 63 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 64 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE 65 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 66 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 67 -#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL 68 -#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL 69 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION 70 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE 71 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL 72 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING 73 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL 74 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL 75 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER 76 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION 77 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE 78 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL 79 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING 80 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL 81 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL 82 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER 83 -#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM 84 -#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 85 -#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 86 -#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM 87 -#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 88 -#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 89 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY 90 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY 91 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY 92 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY 93 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY 94 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY 95 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY 96 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY 97 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY 98 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY 99 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY 100 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY 101 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY 102 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST 103 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 104 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL 105 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 106 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL 107 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 108 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE 109 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL 110 -#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY 111 -#define HIDDEN_ITEM_PEWTER_CITY_POKE_BALL 112 -#define HIDDEN_ITEM_ROUTE3_ORAN_BERRY 113 -#define HIDDEN_ITEM_ROUTE4_PERSIM_BERRY 114 -#define HIDDEN_ITEM_ROUTE24_PECHA_BERRY 115 -#define HIDDEN_ITEM_ROUTE25_ORAN_BERRY 116 -#define HIDDEN_ITEM_ROUTE25_BLUK_BERRY 117 -#define HIDDEN_ITEM_ROUTE6_SITRUS_BERRY 118 -#define HIDDEN_ITEM_ROUTE6_RARE_CANDY 119 -#define HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY 120 -#define HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY 121 -#define HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY 122 -#define HIDDEN_ITEM_ROUTE9_RARE_CANDY 123 -#define HIDDEN_ITEM_UNUSED_0x7C 124 -#define HIDDEN_ITEM_ROUTE10_PERSIM_BERRY 125 -#define HIDDEN_ITEM_ROUTE10_CHERI_BERRY 126 -#define HIDDEN_ITEM_ROUTE8_RAWST_BERRY 127 -#define HIDDEN_ITEM_ROUTE8_LUM_BERRY 128 -#define HIDDEN_ITEM_ROUTE8_LEPPA_BERRY 129 -#define HIDDEN_ITEM_ROUTE12_RARE_CANDY 130 -#define HIDDEN_ITEM_ROUTE12_LEFTOVERS 131 -#define HIDDEN_ITEM_ROUTE16_LEFTOVERS 132 -#define HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE 133 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL 134 -#define HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL 135 -#define HIDDEN_ITEM_SILPH_CO_3F_PROTEIN 136 -#define HIDDEN_ITEM_SILPH_CO_4F_IRON 137 -#define HIDDEN_ITEM_SILPH_CO_5F_PP_UP 138 -#define HIDDEN_ITEM_SILPH_CO_6F_CARBOS 139 -#define HIDDEN_ITEM_SILPH_CO_7F_ZINC 140 -#define HIDDEN_ITEM_SILPH_CO_8F_NUGGET 141 -#define HIDDEN_ITEM_SILPH_CO_9F_CALCIUM 142 -#define HIDDEN_ITEM_SILPH_CO_10F_HP_UP 143 -#define HIDDEN_ITEM_SILPH_CO_11F_REVIVE 144 -#define HIDDEN_ITEM_ROUTE23_LUM_BERRY 145 -#define HIDDEN_ITEM_ROUTE23_SITRUS_BERRY 146 -#define HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY 147 -#define HIDDEN_ITEM_ROUTE23_LEPPA_BERRY 148 -#define HIDDEN_ITEM_ROUTE14_ZINC 149 -#define HIDDEN_ITEM_ROUTE9_CHESTO_BERRY 150 -#define HIDDEN_ITEM_ROUTE10_NANAB_BERRY 151 -#define HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY 152 -#define HIDDEN_ITEM_ROUTE20_STARDUST 153 -#define HIDDEN_ITEM_ROUTE21_NORTH_PEARL 154 -#define HIDDEN_ITEM_ROUTE23_MAX_ELIXIR 155 -#define HIDDEN_ITEM_ROUTE4_RAZZ_BERRY 156 -#define HIDDEN_ITEM_ROUTE14_PINAP_BERRY 157 -#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE 158 -#define HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL 159 -#define HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH 160 -#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX 161 -#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL 162 -#define HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET 163 -#define HIDDEN_ITEM_THREE_ISLAND_PP_UP 164 -#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL 165 -#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL 166 -#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST 167 -#define HIDDEN_ITEM_FOUR_ISLAND_PEARL 168 -#define HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL 169 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL 170 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY 171 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY 172 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY 173 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL 174 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST 175 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE 176 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 177 -#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE 178 -#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL 179 -#define HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL 180 -#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY 181 -#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY 182 -#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY 183 -#define HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY 184 -#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL 185 -#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL 186 -#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY 187 -#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY 188 -#define HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE 189 -#define HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE 190 +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION (FLAG_HIDDEN_ITEMS_START + 0) +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 1) +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 2) +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER (FLAG_HIDDEN_ITEMS_START + 3) +#define FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR (FLAG_HIDDEN_ITEMS_START + 4) +#define FLAG_HIDDEN_ITEM_ROUTE25_ETHER (FLAG_HIDDEN_ITEMS_START + 5) +#define FLAG_HIDDEN_ITEM_ROUTE9_ETHER (FLAG_HIDDEN_ITEMS_START + 6) +#define FLAG_HIDDEN_ITEM_UNUSED_0x07 (FLAG_HIDDEN_ITEMS_START + 7) +#define FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 8) +#define FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 9) +#define FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 10) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP (FLAG_HIDDEN_ITEMS_START + 11) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 12) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 13) +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 14) +#define FLAG_HIDDEN_ITEM_ROUTE13_PP_UP (FLAG_HIDDEN_ITEMS_START + 15) +#define FLAG_HIDDEN_ITEM_UNUSED_0x10 (FLAG_HIDDEN_ITEMS_START + 16) +#define FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 17) +#define FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 18) +#define FLAG_HIDDEN_ITEM_ROUTE17_PP_UP (FLAG_HIDDEN_ITEMS_START + 19) +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 20) +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 21) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE (FLAG_HIDDEN_ITEMS_START + 22) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE (FLAG_HIDDEN_ITEMS_START + 23) +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 24) +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION (FLAG_HIDDEN_ITEMS_START + 25) +#define FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET (FLAG_HIDDEN_ITEMS_START + 26) +#define FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 27) +#define FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE (FLAG_HIDDEN_ITEMS_START + 28) +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 29) +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE (FLAG_HIDDEN_ITEMS_START + 30) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 31) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 32) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 33) +#define FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 34) +#define FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 35) +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 36) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 37) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 38) +#define FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 39) +#define FLAG_HIDDEN_ITEM_UNUSED_0x28 (FLAG_HIDDEN_ITEMS_START + 40) +#define FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE (FLAG_HIDDEN_ITEMS_START + 41) +#define FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 42) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2B (FLAG_HIDDEN_ITEMS_START + 43) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2C (FLAG_HIDDEN_ITEMS_START + 44) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2D (FLAG_HIDDEN_ITEMS_START + 45) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2E (FLAG_HIDDEN_ITEMS_START + 46) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 47) +#define FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 48) +#define FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 49) +#define FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 50) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS (FLAG_HIDDEN_ITEMS_START + 51) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 (FLAG_HIDDEN_ITEMS_START + 52) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 (FLAG_HIDDEN_ITEMS_START + 53) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 (FLAG_HIDDEN_ITEMS_START + 54) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 (FLAG_HIDDEN_ITEMS_START + 55) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 (FLAG_HIDDEN_ITEMS_START + 56) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 (FLAG_HIDDEN_ITEMS_START + 57) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 (FLAG_HIDDEN_ITEMS_START + 58) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 (FLAG_HIDDEN_ITEMS_START + 59) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 (FLAG_HIDDEN_ITEMS_START + 60) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 (FLAG_HIDDEN_ITEMS_START + 61) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 (FLAG_HIDDEN_ITEMS_START + 62) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 63) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 (FLAG_HIDDEN_ITEMS_START + 64) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 65) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 66) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 67) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 68) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL (FLAG_HIDDEN_ITEMS_START + 69) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 70) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 71) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 72) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 73) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 74) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 75) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 76) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 77) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 78) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 79) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 80) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 81) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 82) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 83) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 84) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 85) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 86) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 87) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 88) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 89) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 90) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 91) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 92) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 93) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 94) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 95) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 96) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 97) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 98) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 99) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 100) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 101) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 102) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST (FLAG_HIDDEN_ITEMS_START + 103) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 104) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL (FLAG_HIDDEN_ITEMS_START + 105) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 (FLAG_HIDDEN_ITEMS_START + 106) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 107) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 (FLAG_HIDDEN_ITEMS_START + 108) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 109) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 110) +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 111) +#define FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 112) +#define FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 113) +#define FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 114) +#define FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 115) +#define FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 116) +#define FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 117) +#define FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 118) +#define FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 119) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 120) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 121) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 122) +#define FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 123) +#define FLAG_HIDDEN_ITEM_UNUSED_0x7C (FLAG_HIDDEN_ITEMS_START + 124) +#define FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 125) +#define FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 126) +#define FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 127) +#define FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 128) +#define FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 129) +#define FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 130) +#define FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 131) +#define FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 132) +#define FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 133) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL (FLAG_HIDDEN_ITEMS_START + 134) +#define FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 135) +#define FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 136) +#define FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON (FLAG_HIDDEN_ITEMS_START + 137) +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP (FLAG_HIDDEN_ITEMS_START + 138) +#define FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS (FLAG_HIDDEN_ITEMS_START + 139) +#define FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC (FLAG_HIDDEN_ITEMS_START + 140) +#define FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET (FLAG_HIDDEN_ITEMS_START + 141) +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 142) +#define FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP (FLAG_HIDDEN_ITEMS_START + 143) +#define FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE (FLAG_HIDDEN_ITEMS_START + 144) +#define FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 145) +#define FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 146) +#define FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 147) +#define FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 148) +#define FLAG_HIDDEN_ITEM_ROUTE14_ZINC (FLAG_HIDDEN_ITEMS_START + 149) +#define FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 150) +#define FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 151) +#define FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 152) +#define FLAG_HIDDEN_ITEM_ROUTE20_STARDUST (FLAG_HIDDEN_ITEMS_START + 153) +#define FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL (FLAG_HIDDEN_ITEMS_START + 154) +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 155) +#define FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 156) +#define FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 157) +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE (FLAG_HIDDEN_ITEMS_START + 158) +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL (FLAG_HIDDEN_ITEMS_START + 159) +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 160) +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX (FLAG_HIDDEN_ITEMS_START + 161) +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 162) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET (FLAG_HIDDEN_ITEMS_START + 163) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP (FLAG_HIDDEN_ITEMS_START + 164) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 165) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL (FLAG_HIDDEN_ITEMS_START + 166) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST (FLAG_HIDDEN_ITEMS_START + 167) +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL (FLAG_HIDDEN_ITEMS_START + 168) +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 169) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 170) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 171) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 172) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 173) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 174) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST (FLAG_HIDDEN_ITEMS_START + 175) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 176) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 177) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 178) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL (FLAG_HIDDEN_ITEMS_START + 179) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 180) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 181) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 182) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 183) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 184) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 185) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL (FLAG_HIDDEN_ITEMS_START + 186) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 187) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 188) +#define FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE (FLAG_HIDDEN_ITEMS_START + 189) +#define FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE (FLAG_HIDDEN_ITEMS_START + 190) -// Unused? -#define FLAG_0x4A7 0x4A7 -#define FLAG_0x4A8 0x4A8 -#define FLAG_0x4A9 0x4A9 -#define FLAG_0x4AA 0x4AA -#define FLAG_0x4AB 0x4AB -#define FLAG_0x4AC 0x4AC -#define FLAG_0x4AD 0x4AD -#define FLAG_0x4AE 0x4AE -#define FLAG_0x4AF 0x4AF +// Unused hidden item flags +#define FLAG_UNUSED_0x4A7 0x4A7 // Unused Flag +#define FLAG_UNUSED_0x4A8 0x4A8 // Unused Flag +#define FLAG_UNUSED_0x4A9 0x4A9 // Unused Flag +#define FLAG_UNUSED_0x4AA 0x4AA // Unused Flag +#define FLAG_UNUSED_0x4AB 0x4AB // Unused Flag +#define FLAG_UNUSED_0x4AC 0x4AC // Unused Flag +#define FLAG_UNUSED_0x4AD 0x4AD // Unused Flag +#define FLAG_UNUSED_0x4AE 0x4AE // Unused Flag +#define FLAG_UNUSED_0x4AF 0x4AF // Unused Flag // Boss clear flags, 1200 #define FLAG_DEFEATED_BROCK 0x4B0 diff --git a/src/renewable_hidden_items.c b/src/renewable_hidden_items.c index 19eec3c29..e13829e93 100644 --- a/src/renewable_hidden_items.c +++ b/src/renewable_hidden_items.c @@ -3,527 +3,532 @@ #include "random.h" #include "constants/maps.h" +#define MAX_HIDDEN_ITEMS_PER_GROUP 8 + struct RenewableHiddenItemData { s8 mapGroup; s8 mapNum; u8 filler[2]; - u8 rare[8]; // 10% - u8 uncommon[8]; // 30% - u8 common[8]; // 60% + u8 rare[MAX_HIDDEN_ITEMS_PER_GROUP]; // 10% + u8 uncommon[MAX_HIDDEN_ITEMS_PER_GROUP]; // 30% + u8 common[MAX_HIDDEN_ITEMS_PER_GROUP]; // 60% }; static void SampleRenewableItemFlags(void); +#define HIDDEN_ID(flag)(flag - FLAG_HIDDEN_ITEMS_START) +#define NO_ITEM 0xFF + static const struct RenewableHiddenItemData sRenewableHiddenItems[] = { { .mapGroup = MAP_GROUP(ROUTE20), .mapNum = MAP_NUM(ROUTE20), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_ROUTE20_STARDUST, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ROUTE20_STARDUST), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(ROUTE21_NORTH), .mapNum = MAP_NUM(ROUTE21_NORTH), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_ROUTE21_NORTH_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL), .mapNum = MAP_NUM(UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL), .rare = { - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL), + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(UNDERGROUND_PATH_EAST_WEST_TUNNEL), .mapNum = MAP_NUM(UNDERGROUND_PATH_EAST_WEST_TUNNEL), .rare = { - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL), + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS), .mapNum = MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS), .rare = { - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4, - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE, - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2, - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(MT_MOON_B1F), .mapNum = MAP_NUM(MT_MOON_B1F), .rare = { - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3, - HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM, - HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2, - HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3), + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(THREE_ISLAND_BERRY_FOREST), .mapNum = MAP_NUM(THREE_ISLAND_BERRY_FOREST), .rare = { - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY), }, .uncommon = { - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY), + NO_ITEM }, .common = { - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY), + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(ONE_ISLAND_TREASURE_BEACH), .mapNum = MAP_NUM(ONE_ISLAND_TREASURE_BEACH), .rare = { - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2), + NO_ITEM, + NO_ITEM }, .common = { - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(THREE_ISLAND_BOND_BRIDGE), .mapNum = MAP_NUM(THREE_ISLAND_BOND_BRIDGE), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL, - HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(FOUR_ISLAND), .mapNum = MAP_NUM(FOUR_ISLAND), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_FOUR_ISLAND_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(FIVE_ISLAND_MEMORIAL_PILLAR), .mapNum = MAP_NUM(FIVE_ISLAND_MEMORIAL_PILLAR), .rare = { - HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(FIVE_ISLAND_RESORT_GORGEOUS), .mapNum = MAP_NUM(FIVE_ISLAND_RESORT_GORGEOUS), .rare = { - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL, - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST, - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST), + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SIX_ISLAND_OUTCAST_ISLAND), .mapNum = MAP_NUM(SIX_ISLAND_OUTCAST_ISLAND), .rare = { - HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE, - HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SIX_ISLAND_GREEN_PATH), .mapNum = MAP_NUM(SIX_ISLAND_GREEN_PATH), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER), .mapNum = MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER), .rare = { - HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, }; @@ -532,18 +537,18 @@ void SetAllRenewableItemFlags(void) { u8 i, j; - for (i = 0; i < 15; i++) + for (i = 0; i < ARRAY_COUNT(sRenewableHiddenItems); i++) { const u8 * rare = sRenewableHiddenItems[i].rare; const u8 * uncommon = sRenewableHiddenItems[i].uncommon; const u8 * common = sRenewableHiddenItems[i].common; - for (j = 0; j < 8; j++) + for (j = 0; j < MAX_HIDDEN_ITEMS_PER_GROUP; j++) { - if (rare[j] != 0xFF) + if (rare[j] != NO_ITEM) FlagSet(FLAG_HIDDEN_ITEMS_START + rare[j]); - if (uncommon[j] != 0xFF) + if (uncommon[j] != NO_ITEM) FlagSet(FLAG_HIDDEN_ITEMS_START + uncommon[j]); - if (common[j] != 0xFF) + if (common[j] != NO_ITEM) FlagSet(FLAG_HIDDEN_ITEMS_START + common[j]); } } @@ -562,9 +567,10 @@ void TryRegenerateRenewableHiddenItems(void) { u8 i; u8 found_map = 0xFF; - for (i = 0; i < 15; i++) + for (i = 0; i < ARRAY_COUNT(sRenewableHiddenItems); i++) { - if (sRenewableHiddenItems[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && sRenewableHiddenItems[i].mapNum == gSaveBlock1Ptr->location.mapNum) + if (sRenewableHiddenItems[i].mapGroup == gSaveBlock1Ptr->location.mapGroup + && sRenewableHiddenItems[i].mapNum == gSaveBlock1Ptr->location.mapNum) found_map = i; } @@ -584,7 +590,7 @@ static void SampleRenewableItemFlags(void) const u8 * flags; u16 rval; - for (i = 0; i < 15; i++) + for (i = 0; i < ARRAY_COUNT(sRenewableHiddenItems); i++) { rval = Random() % 100; if (rval >= 90) @@ -593,9 +599,9 @@ static void SampleRenewableItemFlags(void) flags = sRenewableHiddenItems[i].uncommon; else flags = sRenewableHiddenItems[i].common; - for (j = 0; j < 8; j++) + for (j = 0; j < MAX_HIDDEN_ITEMS_PER_GROUP; j++) { - if (flags[j] != 0xFF) + if (flags[j] != NO_ITEM) FlagClear(FLAG_HIDDEN_ITEMS_START + flags[j]); } } From ec38d03d18d295c7be48f73b36cea6d9256727c9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 27 Oct 2022 15:17:38 -0400 Subject: [PATCH 091/105] Rename mevent_show_* files --- ld_script.txt | 8 ++++---- src/{mevent_show_card.c => mystery_gift_show_card.c} | 0 src/{mevent_show_news.c => mystery_gift_show_news.c} | 0 sym_ewram.txt | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) rename src/{mevent_show_card.c => mystery_gift_show_card.c} (100%) rename src/{mevent_show_news.c => mystery_gift_show_news.c} (100%) diff --git a/ld_script.txt b/ld_script.txt index 69dae4b5b..f8fbe3753 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -279,8 +279,8 @@ SECTIONS { src/mevent_server_helpers.o(.text); src/mevent_client.o(.text); src/mevent_server.o(.text); - src/mevent_show_card.o(.text); - src/mevent_show_news.o(.text); + src/mystery_gift_show_card.o(.text); + src/mystery_gift_show_news.o(.text); src/menews_jisan.o(.text); src/seagallop.o(.text); src/pokemon_jump.o(.text); @@ -572,8 +572,8 @@ SECTIONS { src/mevent_server_helpers.o(.rodata); src/mevent_client.o(.rodata); src/mevent_server.o(.rodata); - src/mevent_show_card.o(.rodata); - src/mevent_show_news.o(.rodata); + src/mystery_gift_show_card.o(.rodata); + src/mystery_gift_show_news.o(.rodata); src/mevent_scripts.o(.rodata); src/menews_jisan.o(.rodata); src/menews_jisan.o(.rodata.str1.4); diff --git a/src/mevent_show_card.c b/src/mystery_gift_show_card.c similarity index 100% rename from src/mevent_show_card.c rename to src/mystery_gift_show_card.c diff --git a/src/mevent_show_news.c b/src/mystery_gift_show_news.c similarity index 100% rename from src/mevent_show_news.c rename to src/mystery_gift_show_news.c diff --git a/sym_ewram.txt b/sym_ewram.txt index ef48abffa..0dc0544c1 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -125,8 +125,8 @@ .include "src/mevent_server_helpers.o" .include "src/mevent_client.o" .include "src/mevent_server.o" - .include "src/mevent_show_card.o" - .include "src/mevent_show_news.o" + .include "src/mystery_gift_show_card.o" + .include "src/mystery_gift_show_news.o" .include "src/seagallop.o" .include "src/pokemon_jump.o" .include "src/berry_crush.o" From 8c887bca44cff538770ccdc32912b0dea57bd2e1 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 27 Oct 2022 15:42:50 -0400 Subject: [PATCH 092/105] Sync mystery_gift_show_card --- include/constants/mystery_gift.h | 47 +++ include/mevent.h | 8 +- src/mystery_gift_menu.c | 8 +- src/mystery_gift_show_card.c | 478 ++++++++++++++++++------------- 4 files changed, 327 insertions(+), 214 deletions(-) create mode 100644 include/constants/mystery_gift.h diff --git a/include/constants/mystery_gift.h b/include/constants/mystery_gift.h new file mode 100644 index 000000000..8ff71c3aa --- /dev/null +++ b/include/constants/mystery_gift.h @@ -0,0 +1,47 @@ +#ifndef GUARD_CONSTANTS_MYSTERY_GIFT_H +#define GUARD_CONSTANTS_MYSTERY_GIFT_H + +#define GET_NUM_STAMPS 0 +#define GET_MAX_STAMPS 1 +#define GET_CARD_BATTLES_WON 2 +#define GET_CARD_BATTLES_LOST 3 +#define GET_CARD_NUM_TRADES 4 + +#define CARD_STAT_BATTLES_WON 0 +#define CARD_STAT_BATTLES_LOST 1 +#define CARD_STAT_NUM_TRADES 2 +#define CARD_STAT_NUM_STAMPS 3 +#define CARD_STAT_MAX_STAMPS 4 + +// Values for the type field of Wonder Card +#define CARD_TYPE_GIFT 0 // Normal "Wonder Card" +#define CARD_TYPE_STAMP 1 // "Stamp Card" +#define CARD_TYPE_LINK_STAT 2 // Referred to as the "Battle Card", shows battle and trade stats +#define CARD_TYPE_COUNT 3 + +// Values for the sendType field of Wonder Card/News +#define SEND_TYPE_DISALLOWED 0 +#define SEND_TYPE_ALLOWED 1 +#define SEND_TYPE_ALLOWED_ALWAYS 2 + +// Return values for MysteryGift_CompareCardFlags, handled by gMysteryGiftServerScript_SendWonderCard +#define HAS_NO_CARD 0 +#define HAS_SAME_CARD 1 +#define HAS_DIFF_CARD 2 + +// The number of battles needed to be recorded on a Battle Card to win a prize +#define REQUIRED_CARD_BATTLES 3 + +// Stamps are 32 bits. The first 16 bits are the species +// and the second 16 bits are a number (presumably an ID of some kind) +#define STAMP_SPECIES 0 +#define STAMP_ID 1 + +// Number of different types/colors of Wonder Card and News backgrounds +#define NUM_WONDER_BGS 8 + +#define MAX_WONDER_CARD_STAT 999 + +#define WONDER_CARD_FLAG_OFFSET 1000 + +#endif //GUARD_CONSTANTS_MYSTERY_GIFT_H diff --git a/include/mevent.h b/include/mevent.h index 8a75dde65..f75518774 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -73,15 +73,15 @@ u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused); bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1); u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command); -bool32 InitWonderCardResources(struct WonderCard * r5, struct WonderCardMetadata * r6); +bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata); bool32 InitWonderNewsResources(const struct WonderNews * a0); -s32 FadeToWonderCardMenu(void); +s32 WonderCard_Enter(void); s32 FadeToWonderNewsMenu(void); void DestroyWonderCard(void); void DestroyWonderNews(void); -void DestroyWonderCardResources(void); +void WonderCard_Destroy(void); void DestroyWonderNewsResources(void); -s32 FadeOutFromWonderCard(bool32 flag); +s32 WonderCard_Exit(bool32 flag); s32 FadeOutFromWonderNews(bool32 flag); bool32 CheckReceivedGiftFromWonderCard(void); void MENews_AddScrollIndicatorArrowPair(void); diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index e21cd6724..7dad2865e 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -802,7 +802,7 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) case 0: if (cardOrNews == 0) { - InitWonderCardResources(GetSavedWonderCard(), sav1_get_mevent_buffer_2()); + WonderCard_Init(GetSavedWonderCard(), sav1_get_mevent_buffer_2()); } else { @@ -813,7 +813,7 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) case 1: if (cardOrNews == 0) { - v0 = FadeToWonderCardMenu(); + v0 = WonderCard_Enter(); check: if (v0 != 0) { @@ -851,9 +851,9 @@ bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1) { if (cardOrNews == 0) { - if (FadeOutFromWonderCard(arg1) != 0) + if (WonderCard_Exit(arg1) != 0) { - DestroyWonderCardResources(); + WonderCard_Destroy(); return TRUE; } else diff --git a/src/mystery_gift_show_card.c b/src/mystery_gift_show_card.c index 8d3ce4895..8f19dad64 100644 --- a/src/mystery_gift_show_card.c +++ b/src/mystery_gift_show_card.c @@ -7,73 +7,91 @@ #include "mystery_gift_menu.h" #include "mevent.h" #include "battle_anim.h" +#include "constants/mystery_gift.h" -struct MEventScreenMgr_02DC -{ - u8 nDigits; - u8 nameTxt[41]; - u8 numberTxt[4]; +enum { + WIN_HEADER, + WIN_BODY, + WIN_FOOTER, + WIN_COUNT }; -struct MEventScreenMgr +#define TAG_STAMP_SHADOW 0x8000 + +struct CardStatTextData { - /*0000*/ struct WonderCard wonderCard; - /*014c*/ struct WonderCardMetadata buff3430Sub; - /*0170*/ const struct UnkStruct_8467FB8 * bgSpec; - /*0174*/ u8 state; + u8 width; + u8 statText[WONDER_CARD_TEXT_LENGTH + 1]; + u8 statNumberText[4]; +}; + +struct WonderCardData +{ + /*0000*/ struct WonderCard card; + /*014c*/ struct WonderCardMetadata cardMetadata; + /*0170*/ const struct UnkStruct_8467FB8 * gfx; + /*0174*/ u8 enterExitState; /*0175*/ u8 recordIdx; - /*0176*/ u16 windowIds[3]; - /*017C*/ u8 monIconId; - /*017D*/ u8 cardIconAndShadowSprites[7][2]; - /*018B*/ u8 title[41]; - /*01B4*/ u8 subtitle[41]; - /*01DD*/ u8 unk_01DD[7]; - /*01E4*/ u8 mainMessageLines[4][41]; - /*0288*/ u8 instructionsLine1[41]; - /*02B1*/ u8 instructionsLine2[41]; - /*02DC*/ struct MEventScreenMgr_02DC recordStrings[8]; - /*045C*/ u8 buffer_045C[0x1000]; + /*0176*/ u16 windowIds[WIN_COUNT]; + /*017C*/ u8 monIconSpriteId; + /*017D*/ u8 stampSpriteIds[MAX_STAMP_CARD_STAMPS][2]; // 2 sprites each, 1 for the shadow and 1 for the Pokémon + /*018B*/ u8 titleText[WONDER_CARD_TEXT_LENGTH + 1]; + /*01B4*/ u8 subtitleText[WONDER_CARD_TEXT_LENGTH + 1]; + /*01DD*/ u8 idNumberText[7]; + /*01E4*/ u8 bodyText[WONDER_CARD_BODY_TEXT_LINES][WONDER_CARD_TEXT_LENGTH + 1]; + /*0288*/ u8 footerLine1Text[WONDER_CARD_TEXT_LENGTH + 1]; + /*02B1*/ u8 footerLine2Text[WONDER_CARD_TEXT_LENGTH + 1]; + /*02DC*/ struct CardStatTextData statTextData[8]; + /*045C*/ u8 bgTilemapBuffer[0x1000]; }; -static EWRAM_DATA struct MEventScreenMgr * sMEventScreenData = NULL; +static EWRAM_DATA struct WonderCardData * sWonderCardData = NULL; -static void sub_8145A98(void); -static void sub_8145D18(u8 whichWindow); -static void sub_8146060(void); -static void sub_81461D8(void); +static void BufferCardText(void); +static void DrawCardWindow(u8 whichWindow); +static void CreateCardSprites(void); +static void DestroyCardSprites(void); -static const u8 gUnknown_8467068[][3] = { +static const u8 sTextColorTable[][3] = { {0, 2, 3}, {0, 1, 2} }; -static const u8 ALIGNED(4) sTextYCoords[3] = {7, 4, 7}; +static const u8 ALIGNED(4) sFooterTextOffsets[CARD_TYPE_COUNT] = +{ + [CARD_TYPE_GIFT] = 7, + [CARD_TYPE_STAMP] = 4, + [CARD_TYPE_LINK_STAT] = 7 +}; static const struct WindowTemplate sWindowTemplates[] = { - { + [WIN_HEADER] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 1, .width = 25, .height = 4, .paletteNum = 15, - .baseBlock = 0x29c}, - { + .baseBlock = 0x29c + }, + [WIN_BODY] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 6, .width = 28, .height = 8, .paletteNum = 15, - .baseBlock = 0x1bc}, - { + .baseBlock = 0x1bc + }, + [WIN_FOOTER] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 14, .width = 28, .height = 5, .paletteNum = 15, - .baseBlock = 0x130} + .baseBlock = 0x130 + } }; static const u16 sCard0Pal[] = INCBIN_U16("graphics/mevent/pal_46708C.gbapal"); @@ -104,11 +122,11 @@ static const u16 sUnknown_8467EB4[] = INCBIN_U16("graphics/mevent/pal_467EB4.gba static const u16 sUnknown_8467ED4[] = INCBIN_U16("graphics/mevent/pal_467ED4.gbapal"); static const u32 sUnknown_8467EF4[] = INCBIN_U32("graphics/mevent/gfx_467EF4.4bpp.lz"); -static const struct CompressedSpriteSheet sShadowSpriteSheet = { +static const struct CompressedSpriteSheet sSpriteSheet_StampShadow = { sUnknown_8467EF4, 0x100, 0x8000 }; -static const struct SpritePalette sShadowSpritePalettes[] = { +static const struct SpritePalette sSpritePalettes_StampShadow[] = { {sUnknown_8467DF4, 0x8000}, {sUnknown_8467E14, 0x8000}, {sUnknown_8467E34, 0x8000}, @@ -119,11 +137,17 @@ static const struct SpritePalette sShadowSpritePalettes[] = { {sUnknown_8467ED4, 0x8000} }; -static const struct SpriteTemplate sShadowSpriteTemplate = { - 0x8000, 0x8000, &gOamData_AffineOff_ObjNormal_32x16, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_StampShadow = { + .tileTag = TAG_STAMP_SHADOW, + .paletteTag = TAG_STAMP_SHADOW, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; -static const struct UnkStruct_8467FB8 sCardGfxPtrs[8] = { +static const struct UnkStruct_8467FB8 sCardGraphics[8] = { {1, 0, 0, 0, sCard0Gfx, sCard0Map, sCard0Pal}, {1, 0, 0, 1, sCard1Gfx, sCard1Map, gCard1Pal}, {1, 0, 0, 2, sCard2Gfx, sCard2Map, gCard2Pal}, @@ -134,40 +158,39 @@ static const struct UnkStruct_8467FB8 sCardGfxPtrs[8] = { {1, 0, 0, 7, sCard7Gfx, sCard7Map, sCard7Pal} }; -bool32 InitWonderCardResources(struct WonderCard * card, struct WonderCardMetadata * b3430sub) +bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata) { - if (card == NULL || b3430sub == NULL) + if (card == NULL || metadata == NULL) return FALSE; - sMEventScreenData = AllocZeroed(sizeof(struct MEventScreenMgr)); - if (sMEventScreenData == NULL) + sWonderCardData = AllocZeroed(sizeof(*sWonderCardData)); + if (sWonderCardData == NULL) return FALSE; - sMEventScreenData->wonderCard = *card; - sMEventScreenData->buff3430Sub = *b3430sub; - if (sMEventScreenData->wonderCard.bgType >= NELEMS(sCardGfxPtrs)) - sMEventScreenData->wonderCard.bgType = 0; - if (sMEventScreenData->wonderCard.type >= NELEMS(sTextYCoords)) - sMEventScreenData->wonderCard.type = 0; - if (sMEventScreenData->wonderCard.maxStamps > NELEMS(sMEventScreenData->cardIconAndShadowSprites)) - sMEventScreenData->wonderCard.maxStamps = 0; - sMEventScreenData->bgSpec = &sCardGfxPtrs[sMEventScreenData->wonderCard.bgType]; + sWonderCardData->card = *card; + sWonderCardData->cardMetadata = *metadata; + if (sWonderCardData->card.bgType >= NUM_WONDER_BGS) + sWonderCardData->card.bgType = 0; + if (sWonderCardData->card.type >= CARD_TYPE_COUNT) + sWonderCardData->card.type = 0; + if (sWonderCardData->card.maxStamps > MAX_STAMP_CARD_STAMPS) + sWonderCardData->card.maxStamps = 0; + sWonderCardData->gfx = &sCardGraphics[sWonderCardData->card.bgType]; return TRUE; } -void DestroyWonderCardResources(void) +void WonderCard_Destroy(void) { - if (sMEventScreenData != NULL) + if (sWonderCardData != NULL) { - *sMEventScreenData = (struct MEventScreenMgr){}; - Free(sMEventScreenData); - sMEventScreenData = NULL; + *sWonderCardData = (struct WonderCardData){}; + FREE_AND_SET_NULL(sWonderCardData); } } -s32 FadeToWonderCardMenu(void) +s32 WonderCard_Enter(void) { - if (sMEventScreenData == NULL) + if (sWonderCardData == NULL) return -1; - switch(sMEventScreenData->state) + switch(sWonderCardData->enterExitState) { case 0: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); @@ -183,27 +206,27 @@ s32 FadeToWonderCardMenu(void) CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); - DecompressAndCopyTileDataToVram(2, sMEventScreenData->bgSpec->tiles, 0, 0x008, 0); - sMEventScreenData->windowIds[0] = AddWindow(&sWindowTemplates[0]); - sMEventScreenData->windowIds[1] = AddWindow(&sWindowTemplates[1]); - sMEventScreenData->windowIds[2] = AddWindow(&sWindowTemplates[2]); + DecompressAndCopyTileDataToVram(2, sWonderCardData->gfx->tiles, 0, 0x008, 0); + sWonderCardData->windowIds[WIN_HEADER] = AddWindow(&sWindowTemplates[WIN_HEADER]); + sWonderCardData->windowIds[WIN_BODY] = AddWindow(&sWindowTemplates[WIN_BODY]); + sWonderCardData->windowIds[WIN_FOOTER] = AddWindow(&sWindowTemplates[WIN_FOOTER]); break; case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sMEventScreenData->bgSpec->pal, 0x10, 0x20); - LZ77UnCompWram(sMEventScreenData->bgSpec->map, sMEventScreenData->buffer_045C); - CopyRectToBgTilemapBufferRect(2, sMEventScreenData->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); + LoadPalette(sWonderCardData->gfx->pal, 0x10, 0x20); + LZ77UnCompWram(sWonderCardData->gfx->map, sWonderCardData->bgTilemapBuffer); + CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); CopyBgTilemapBufferToVram(2); break; case 4: - sub_8145A98(); + BufferCardText(); break; case 5: - sub_8145D18(0); - sub_8145D18(1); - sub_8145D18(2); + DrawCardWindow(WIN_HEADER); + DrawCardWindow(WIN_BODY); + DrawCardWindow(WIN_FOOTER); CopyBgTilemapBufferToVram(1); break; case 6: @@ -213,25 +236,25 @@ s32 FadeToWonderCardMenu(void) ShowBg(1); ShowBg(2); gPaletteFade.bufferTransferDisabled = FALSE; - sub_8146060(); + CreateCardSprites(); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); UpdatePaletteFade(); break; default: if (UpdatePaletteFade()) return 0; - sMEventScreenData->state = 0; + sWonderCardData->enterExitState = 0; return 1; } - ++sMEventScreenData->state; + sWonderCardData->enterExitState++; return 0; } -s32 FadeOutFromWonderCard(bool32 flag) +s32 WonderCard_Exit(bool32 useCancel) { - if (sMEventScreenData == NULL) + if (sWonderCardData == NULL) return -1; - switch (sMEventScreenData->state) + switch (sWonderCardData->enterExitState) { case 0: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); @@ -251,16 +274,16 @@ s32 FadeOutFromWonderCard(bool32 flag) case 3: HideBg(1); HideBg(2); - RemoveWindow(sMEventScreenData->windowIds[2]); - RemoveWindow(sMEventScreenData->windowIds[1]); - RemoveWindow(sMEventScreenData->windowIds[0]); + RemoveWindow(sWonderCardData->windowIds[WIN_FOOTER]); + RemoveWindow(sWonderCardData->windowIds[WIN_BODY]); + RemoveWindow(sWonderCardData->windowIds[WIN_HEADER]); break; case 4: - sub_81461D8(); + DestroyCardSprites(); FreeMonIconPalettes(); break; case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); break; case 6: CopyBgTilemapBufferToVram(0); @@ -269,184 +292,227 @@ s32 FadeOutFromWonderCard(bool32 flag) default: if (UpdatePaletteFade()) return 0; - sMEventScreenData->state = 0; + sWonderCardData->enterExitState = 0; return 1; } - ++sMEventScreenData->state; + sWonderCardData->enterExitState++; return 0; } -static void sub_8145A98(void) +static void BufferCardText(void) { u16 i = 0; - u16 r6; - u16 sp0[3] = {0, 0, 0}; + u16 charsUntilStat; + u16 stats[3] = {0, 0, 0}; - memcpy(sMEventScreenData->title, sMEventScreenData->wonderCard.titleText, 40); - sMEventScreenData->title[40] = EOS; - memcpy(sMEventScreenData->subtitle, sMEventScreenData->wonderCard.subtitleText, 40); - sMEventScreenData->subtitle[40] = EOS; - if (sMEventScreenData->wonderCard.idNumber > 999999) - sMEventScreenData->wonderCard.idNumber = 999999; - ConvertIntToDecimalStringN(sMEventScreenData->unk_01DD, sMEventScreenData->wonderCard.idNumber, STR_CONV_MODE_LEFT_ALIGN, 6); - for (i = 0; i < 4; i++) + // Copy title/subtitle text + memcpy(sWonderCardData->titleText, sWonderCardData->card.titleText, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->titleText[WONDER_CARD_TEXT_LENGTH] = EOS; + memcpy(sWonderCardData->subtitleText, sWonderCardData->card.subtitleText, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->subtitleText[WONDER_CARD_TEXT_LENGTH] = EOS; + + // Copy card id number + if (sWonderCardData->card.idNumber > 999999) + sWonderCardData->card.idNumber = 999999; + ConvertIntToDecimalStringN(sWonderCardData->idNumberText, sWonderCardData->card.idNumber, STR_CONV_MODE_LEFT_ALIGN, 6); + + // Copy body text + for (i = 0; i < WONDER_CARD_BODY_TEXT_LINES; i++) { - memcpy(sMEventScreenData->mainMessageLines[i], sMEventScreenData->wonderCard.bodyText[i], 40); - sMEventScreenData->mainMessageLines[i][40] = EOS; + memcpy(sWonderCardData->bodyText[i], sWonderCardData->card.bodyText[i], WONDER_CARD_TEXT_LENGTH); + sWonderCardData->bodyText[i][WONDER_CARD_TEXT_LENGTH] = EOS; } - memcpy(sMEventScreenData->instructionsLine1, sMEventScreenData->wonderCard.footerLine1Text, 40); - sMEventScreenData->instructionsLine1[40] = EOS; - switch (sMEventScreenData->wonderCard.type) + + // Copy footer line 1 + memcpy(sWonderCardData->footerLine1Text, sWonderCardData->card.footerLine1Text, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->footerLine1Text[WONDER_CARD_TEXT_LENGTH] = EOS; + + // Copy footer line 2 + switch (sWonderCardData->card.type) { - case 0: - memcpy(sMEventScreenData->instructionsLine2, sMEventScreenData->wonderCard.footerLine2Text, 40); - sMEventScreenData->instructionsLine2[40] = EOS; - break; - case 1: - sMEventScreenData->instructionsLine2[00] = EOS; - break; - case 2: - sMEventScreenData->instructionsLine2[00] = EOS; - sp0[0] = sMEventScreenData->buff3430Sub.battlesWon < 999 ? sMEventScreenData->buff3430Sub.battlesWon : 999; - sp0[1] = sMEventScreenData->buff3430Sub.battlesLost < 999 ? sMEventScreenData->buff3430Sub.battlesLost : 999; - sp0[2] = sMEventScreenData->buff3430Sub.numTrades < 999 ? sMEventScreenData->buff3430Sub.numTrades : 999; - for (i = 0; i < 8; i++) + case CARD_TYPE_GIFT: + memcpy(sWonderCardData->footerLine2Text, sWonderCardData->card.footerLine2Text, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->footerLine2Text[WONDER_CARD_TEXT_LENGTH] = EOS; + break; + case CARD_TYPE_STAMP: + sWonderCardData->footerLine2Text[0] = EOS; + break; + case CARD_TYPE_LINK_STAT: + sWonderCardData->footerLine2Text[0] = EOS; + + // Load stats + stats[0] = sWonderCardData->cardMetadata.battlesWon < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.battlesWon : MAX_WONDER_CARD_STAT; + stats[1] = sWonderCardData->cardMetadata.battlesLost < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.battlesLost : MAX_WONDER_CARD_STAT; + stats[2] = sWonderCardData->cardMetadata.numTrades < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.numTrades : MAX_WONDER_CARD_STAT; + + // Init stat text arrays + for (i = 0; i < ARRAY_COUNT(sWonderCardData->statTextData); i++) + { + memset(sWonderCardData->statTextData[i].statNumberText, EOS, sizeof(sWonderCardData->statTextData[i].statNumberText)); + memset(sWonderCardData->statTextData[i].statText, EOS, sizeof(sWonderCardData->statTextData[i].statText)); + } + + // Copy stat texts + for (i = 0, charsUntilStat = 0; i < WONDER_CARD_TEXT_LENGTH; i++) + { + if (sWonderCardData->card.footerLine2Text[i] != CHAR_DYNAMIC_PLACEHOLDER) { - memset(sMEventScreenData->recordStrings[i].numberTxt, EOS, 4); - memset(sMEventScreenData->recordStrings[i].nameTxt, EOS, 41); + // Regular text, just copy as is + sWonderCardData->statTextData[sWonderCardData->recordIdx].statText[charsUntilStat] = sWonderCardData->card.footerLine2Text[i]; + charsUntilStat++; } - for (i = 0, r6 = 0; i < 40; i++) + else { - if (sMEventScreenData->wonderCard.footerLine2Text[i] != CHAR_DYNAMIC_PLACEHOLDER) + // Dynamic char encountered + // These are used to give the id of which stat to print + u8 id = sWonderCardData->card.footerLine2Text[i + 1]; + if (id >= ARRAY_COUNT(stats)) { - sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nameTxt[r6] = sMEventScreenData->wonderCard.footerLine2Text[i]; - r6++; + // Invalid stat id, skip ahead + i += 2; } else { - u8 r3 = sMEventScreenData->wonderCard.footerLine2Text[i + 1]; - if (r3 > 2) - { - i += 2; - } - else - { - ConvertIntToDecimalStringN(sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].numberTxt, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3); - sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nDigits = sMEventScreenData->wonderCard.footerLine2Text[i + 2]; - sMEventScreenData->recordIdx++; - if (sMEventScreenData->recordIdx > 7) - break; - r6 = 0; - i += 2; - } + // Copy stat number + ConvertIntToDecimalStringN(sWonderCardData->statTextData[sWonderCardData->recordIdx].statNumberText, stats[id], STR_CONV_MODE_LEADING_ZEROS, 3); + sWonderCardData->statTextData[sWonderCardData->recordIdx].width = sWonderCardData->card.footerLine2Text[i + 2]; + sWonderCardData->recordIdx++; + if (sWonderCardData->recordIdx >= ARRAY_COUNT(sWonderCardData->statTextData)) + break; + charsUntilStat = 0; + i += 2; } } + } } } -static void sub_8145D18(u8 whichWindow) +static void DrawCardWindow(u8 whichWindow) { - s8 sp0C = 0; - s32 windowId = sMEventScreenData->windowIds[whichWindow]; + s8 i = 0; + s32 windowId = sWonderCardData->windowIds[whichWindow]; PutWindowTilemap(windowId); FillWindowPixelBuffer(windowId, 0); switch (whichWindow) { - case 0: + case WIN_HEADER: + { + // Print card title/subtitle + s32 x; + AddTextPrinterParameterized3(windowId, FONT_3, 0, 1, sTextColorTable[sWonderCardData->gfx->textPal1], 0, sWonderCardData->titleText); + x = 160 - GetStringWidth(FONT_3, sWonderCardData->subtitleText, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING)); + if (x < 0) + x = 0; + AddTextPrinterParameterized3(windowId, FONT_3, x, 17, sTextColorTable[sWonderCardData->gfx->textPal1], 0, sWonderCardData->subtitleText); + + // Print id number + if (sWonderCardData->card.idNumber != 0) + AddTextPrinterParameterized3(windowId, FONT_2, 166, 17, sTextColorTable[sWonderCardData->gfx->textPal1], 0, sWonderCardData->idNumberText); + break; + } + case WIN_BODY: + // Print body text + for (; i < WONDER_CARD_BODY_TEXT_LINES; i++) + AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 * i + 2, sTextColorTable[sWonderCardData->gfx->textPal2], 0, sWonderCardData->bodyText[i]); + break; + case WIN_FOOTER: + // Print footer line 1 + AddTextPrinterParameterized3(windowId, FONT_3, 0, + sFooterTextOffsets[sWonderCardData->card.type], + sTextColorTable[sWonderCardData->gfx->textPal3], + 0, sWonderCardData->footerLine1Text); + + // Print footer line 2 + if (sWonderCardData->card.type != CARD_TYPE_LINK_STAT) { - s32 x; - AddTextPrinterParameterized3(windowId, FONT_3, 0, 1, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->title); - x = 160 - GetStringWidth(FONT_3, sMEventScreenData->subtitle, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING)); - if (x < 0) - x = 0; - AddTextPrinterParameterized3(windowId, FONT_3, x, 17, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->subtitle); - if (sMEventScreenData->wonderCard.idNumber != 0) - { - AddTextPrinterParameterized3(windowId, FONT_2, 166, 17, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->unk_01DD); - } - break; + // Print gift text + // Odd that CARD_TYPE_STAMP is not ignored, it has empty text for this + AddTextPrinterParameterized3(windowId, FONT_3, 0, + 16 + sFooterTextOffsets[sWonderCardData->card.type], + sTextColorTable[sWonderCardData->gfx->textPal3], + 0, sWonderCardData->footerLine2Text); } - case 1: - for (; sp0C < 4; sp0C++) + else + { + s32 x = 0; + s32 y = sFooterTextOffsets[sWonderCardData->card.type] + 16; + s32 spacing = GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING); + for (; i < sWonderCardData->recordIdx; i++) { - AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 * sp0C + 2, gUnknown_8467068[sMEventScreenData->bgSpec->textPal2], 0, sMEventScreenData->mainMessageLines[sp0C]); - } - break; - case 2: - AddTextPrinterParameterized3(windowId, FONT_3, 0, sTextYCoords[sMEventScreenData->wonderCard.type], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine1); - if (sMEventScreenData->wonderCard.type != 2) - { - AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 + sTextYCoords[sMEventScreenData->wonderCard.type], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine2); - } - else - { - s32 x = 0; - s32 y = sTextYCoords[sMEventScreenData->wonderCard.type] + 16; - s32 spacing = GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING); - for (; sp0C < sMEventScreenData->recordIdx; sp0C++) + // Print stat text + AddTextPrinterParameterized3(windowId, FONT_3, x, y, sTextColorTable[sWonderCardData->gfx->textPal3], 0, sWonderCardData->statTextData[i].statText); + if (sWonderCardData->statTextData[i].statNumberText[0] != EOS) { - AddTextPrinterParameterized3(windowId, FONT_3, x, y, gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->recordStrings[sp0C].nameTxt); - if (sMEventScreenData->recordStrings[sp0C].numberTxt[0] != EOS) - { - x += GetStringWidth(FONT_3, sMEventScreenData->recordStrings[sp0C].nameTxt, spacing); - AddTextPrinterParameterized3(windowId, FONT_2, x, y, gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->recordStrings[sp0C].numberTxt); - x += GetStringWidth(FONT_3, sMEventScreenData->recordStrings[sp0C].numberTxt, spacing) + sMEventScreenData->recordStrings[sp0C].nDigits; - } + // Print stat number + x += GetStringWidth(FONT_3, sWonderCardData->statTextData[i].statText, spacing); + AddTextPrinterParameterized3(windowId, FONT_2, x, y, + sTextColorTable[sWonderCardData->gfx->textPal3], + 0, sWonderCardData->statTextData[i].statNumberText); + x += GetStringWidth(FONT_3, sWonderCardData->statTextData[i].statNumberText, spacing) + sWonderCardData->statTextData[i].width; } } - break; + } + break; } CopyWindowToVram(windowId, COPYWIN_FULL); } -static void sub_8146060(void) +static void CreateCardSprites(void) { - u8 r7 = 0; - sMEventScreenData->monIconId = 0xFF; - if (sMEventScreenData->buff3430Sub.iconSpecies != SPECIES_NONE) + u8 i = 0; + sWonderCardData->monIconSpriteId = SPRITE_NONE; + + // Create icon sprite + if (sWonderCardData->cardMetadata.iconSpecies != SPECIES_NONE) { - sMEventScreenData->monIconId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.iconSpecies), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); - gSprites[sMEventScreenData->monIconId].oam.priority = 2; + sWonderCardData->monIconSpriteId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.iconSpecies), SpriteCallbackDummy, 220, 20, 0, FALSE); + gSprites[sWonderCardData->monIconSpriteId].oam.priority = 2; } - if (sMEventScreenData->wonderCard.maxStamps != 0 && sMEventScreenData->wonderCard.type == 1) + + // Create stamp sprites + if (sWonderCardData->card.maxStamps != 0 && sWonderCardData->card.type == CARD_TYPE_STAMP) { - LoadCompressedSpriteSheetUsingHeap(&sShadowSpriteSheet); - LoadSpritePalette(&sShadowSpritePalettes[sMEventScreenData->bgSpec->index]); - for (; r7 < sMEventScreenData->wonderCard.maxStamps; r7++) + LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_StampShadow); + LoadSpritePalette(&sSpritePalettes_StampShadow[sWonderCardData->gfx->index]); + for (; i < sWonderCardData->card.maxStamps; i++) { - sMEventScreenData->cardIconAndShadowSprites[r7][0] = 0xFF; - sMEventScreenData->cardIconAndShadowSprites[r7][1] = 0xFF; - sMEventScreenData->cardIconAndShadowSprites[r7][0] = CreateSprite(&sShadowSpriteTemplate, 0xd8 - 32 * r7, 0x90, 8); - if (sMEventScreenData->buff3430Sub.stampData[0][r7] != 0) + sWonderCardData->stampSpriteIds[i][0] = SPRITE_NONE; + sWonderCardData->stampSpriteIds[i][1] = SPRITE_NONE; + sWonderCardData->stampSpriteIds[i][0] = CreateSprite(&sSpriteTemplate_StampShadow, 216 - 32 * i, 0x90, 8); + if (sWonderCardData->cardMetadata.stampData[0][i] != 0) { - sMEventScreenData->cardIconAndShadowSprites[r7][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.stampData[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); - gSprites[sMEventScreenData->cardIconAndShadowSprites[r7][1]].oam.priority = 2; + sWonderCardData->stampSpriteIds[i][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.stampData[0][i]), SpriteCallbackDummy, 216 - 32 * i, 136, 0, 0); + gSprites[sWonderCardData->stampSpriteIds[i][1]].oam.priority = 2; } } } } -static void sub_81461D8(void) +static void DestroyCardSprites(void) { - u8 r6 = 0; - if (sMEventScreenData->monIconId != 0xFF) - DestroyMonIcon(&gSprites[sMEventScreenData->monIconId]); - if (sMEventScreenData->wonderCard.maxStamps != 0 && sMEventScreenData->wonderCard.type == 1) + u8 i = 0; + + // Destroy icon sprite + if (sWonderCardData->monIconSpriteId != SPRITE_NONE) + DestroyMonIcon(&gSprites[sWonderCardData->monIconSpriteId]); + + // Destroy stamp sprites + if (sWonderCardData->card.maxStamps != 0 && sWonderCardData->card.type == CARD_TYPE_STAMP) { - for (; r6 < sMEventScreenData->wonderCard.maxStamps; r6++) + for (; i < sWonderCardData->card.maxStamps; i++) { - if (sMEventScreenData->cardIconAndShadowSprites[r6][0] != 0xFF) + if (sWonderCardData->stampSpriteIds[i][0] != SPRITE_NONE) { - DestroySprite(&gSprites[sMEventScreenData->cardIconAndShadowSprites[r6][0]]); - // This might be a typo. Uncomment the next line, and comment the one that follows, to get the presumed intended behavior. - // if (sMEventScreenData->cardIconAndShadowSprites[r6][1] != 0xFF) - if (sMEventScreenData->cardIconAndShadowSprites[r6][0] != 0xFF) - { - DestroyMonIcon(&gSprites[sMEventScreenData->cardIconAndShadowSprites[r6][1]]); - } + DestroySprite(&gSprites[sWonderCardData->stampSpriteIds[i][0]]); + #ifdef BUGFIX + if (sWonderCardData->stampSpriteIds[i][1] != SPRITE_NONE) + #else + if (sWonderCardData->stampSpriteIds[i][0] != SPRITE_NONE) + #endif + DestroyMonIcon(&gSprites[sWonderCardData->stampSpriteIds[i][1]]); } } - FreeSpriteTilesByTag(0x8000); - FreeSpritePaletteByTag(0x8000); + FreeSpriteTilesByTag(TAG_STAMP_SHADOW); + FreeSpritePaletteByTag(TAG_STAMP_SHADOW); } } From 59330307a539c628d574068a55113f3025702e3b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 28 Oct 2022 02:01:58 -0400 Subject: [PATCH 093/105] Sync mystery_gift_show_news --- include/mevent.h | 22 ++- src/mystery_gift_menu.c | 14 +- src/mystery_gift_show_news.c | 339 ++++++++++++++++++++--------------- 3 files changed, 215 insertions(+), 160 deletions(-) diff --git a/include/mevent.h b/include/mevent.h index f75518774..00d199fb0 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -9,6 +9,14 @@ #define CARD_STAT_NUM_STAMPS 3 #define CARD_STAT_MAX_STAMPS 4 +enum { + NEWS_INPUT_A, + NEWS_INPUT_B, + NEWS_INPUT_SCROLL_UP, + NEWS_INPUT_SCROLL_DOWN, + NEWS_INPUT_NONE = 0xFF +}; + struct MEventClientHeaderStruct { u32 unk_00; @@ -74,21 +82,21 @@ u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventCl bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1); u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command); bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata); -bool32 InitWonderNewsResources(const struct WonderNews * a0); +bool32 WonderNews_Init(const struct WonderNews * a0); s32 WonderCard_Enter(void); -s32 FadeToWonderNewsMenu(void); +s32 WonderNews_Enter(void); void DestroyWonderCard(void); void DestroyWonderNews(void); void WonderCard_Destroy(void); -void DestroyWonderNewsResources(void); +void WonderNews_Destroy(void); s32 WonderCard_Exit(bool32 flag); -s32 FadeOutFromWonderNews(bool32 flag); +s32 WonderNews_Exit(bool32 flag); bool32 CheckReceivedGiftFromWonderCard(void); -void MENews_AddScrollIndicatorArrowPair(void); -void MENews_RemoveScrollIndicatorArrowPair(void); +void WonderNews_AddScrollIndicatorArrowPair(void); +void WonderNews_RemoveScrollIndicatorArrowPair(void); bool32 WonderNews_Test_Unk_02(void); bool32 WonderCard_Test_Unk_08_6(void); -u32 MENews_GetInput(u16 input); +u32 WonderNews_GetInput(u16 input); void InitMEventData(void); u16 MEvent_GetBattleCardCount(u32 command); void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId); diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 7dad2865e..d71aebd6a 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -806,7 +806,7 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) } else { - InitWonderNewsResources(GetSavedWonderNews()); + WonderNews_Init(GetSavedWonderNews()); } (*state)++; break; @@ -823,7 +823,7 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) } else { - v0 = FadeToWonderNewsMenu(); + v0 = WonderNews_Enter(); goto check; } done: @@ -863,9 +863,9 @@ bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1) } else { - if (FadeOutFromWonderNews(arg1) != 0) + if (WonderNews_Exit(arg1) != 0) { - DestroyWonderNewsResources(); + WonderNews_Destroy(); return TRUE; } else @@ -1456,10 +1456,10 @@ void task00_mystery_gift(u8 taskId) } else { - switch (MENews_GetInput(gMain.newKeys)) + switch (WonderNews_GetInput(gMain.newKeys)) { case 0: - MENews_RemoveScrollIndicatorArrowPair(); + WonderNews_RemoveScrollIndicatorArrowPair(); data->state = 21; break; case 1: @@ -1507,7 +1507,7 @@ void task00_mystery_gift(u8 taskId) case -2u: if (data->IsCardOrNews == 1) { - MENews_AddScrollIndicatorArrowPair(); + WonderNews_AddScrollIndicatorArrowPair(); } data->state = 20; break; diff --git a/src/mystery_gift_show_news.c b/src/mystery_gift_show_news.c index 088f00f11..a6f72296b 100644 --- a/src/mystery_gift_show_news.c +++ b/src/mystery_gift_show_news.c @@ -6,45 +6,80 @@ #include "mystery_gift_menu.h" #include "menu.h" #include "link_rfu.h" +#include "list_menu.h" +#include "constants/mystery_gift.h" -struct UnkStruct_203F3CC -{ - /*0000*/ struct WonderNews wonderNews; - /*01bc*/ const struct UnkStruct_8467FB8 * bgSpec; - /*01c0*/ u8 verticalScrollDisabled:1; - u8 state:7; - /*01c1*/ u8 menuIndicatorsId; - /*01c2*/ u8 unk_01C2_0:1; - u8 unk_01C2_1:7; - /*01c3*/ u8 scrollDirection:1; - u8 unk_01C3_1:7; - /*01c4*/ u16 numMails; - /*01c6*/ u16 scrollOffset; - /*01c8*/ u16 windowIds[2]; - /*01cc*/ u8 filler_01CC[2]; - /*01ce*/ u8 title[41]; - /*01f7*/ u8 messages[10][41]; - /*0394*/ struct ScrollArrowsTemplate scrollArrowsTemplate; - /*03a4*/ u8 buffer_03A4[0x1000]; +enum { + WIN_TITLE, + WIN_BODY, + WIN_COUNT }; -static EWRAM_DATA struct UnkStruct_203F3CC * sWork = NULL; +#define TAG_ARROWS 0x1000 -static void sub_8146980(void); -static void sub_8146A30(void); -static void sub_8146B58(void); +struct WonderNewsData +{ + struct WonderNews news; + const struct UnkStruct_8467FB8 * gfx; + bool8 verticalScrollDisabled:1; + u8 enterExitState:7; + u8 arrowTaskId; + bool8 scrolling:1; + u8 scrollIncrement:7; + bool8 scrollingDown:1; + u8 scrollTotal:7; + u16 scrollEnd; + u16 scrollOffset; + u16 windowIds[WIN_COUNT]; + u8 unused[2]; + u8 titleText[WONDER_NEWS_TEXT_LENGTH + 1]; + u8 bodyText[WONDER_NEWS_BODY_TEXT_LINES][WONDER_NEWS_TEXT_LENGTH + 1]; + struct ScrollArrowsTemplate arrowsTemplate; + u8 bgTilemapBuffer[0x1000]; +}; -static const u8 sTextPals[][3] = { +static EWRAM_DATA struct WonderNewsData * sWonderNewsData = NULL; + +static void BufferNewsText(void); +static void DrawNewsWindows(void); +static void UpdateNewsScroll(void); + +static const u8 sTextColorTable[][3] = { {0, 2, 3}, {0, 1, 2} }; -static const struct WindowTemplate gUnknown_8468040[] = { - {0, 1, 0, 28, 3, 15, 0x000}, - {2, 1, 3, 28, 20, 15, 0x000} +static const struct WindowTemplate sWindowTemplates[] = { + [WIN_TITLE] = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x000 + }, + [WIN_BODY] = { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 28, + .height = 20, + .paletteNum = 15, + .baseBlock = 0x000 + } }; -static const struct ScrollArrowsTemplate sScrollArrowsTemplate = { - 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98, - 0x0000, 0x0002, 0x1000, 0x1000, 0x0, +static const struct ScrollArrowsTemplate sArrowsTemplate = { + .firstArrowType = SCROLL_ARROW_UP, + .firstX = 232, + .firstY = 24, + .secondArrowType = SCROLL_ARROW_DOWN, + .secondX = 232, + .secondY = 152, + .fullyUpThreshold = 0, + .fullyDownThreshold = 2, + .tileTag = TAG_ARROWS, + .palTag = TAG_ARROWS, + .palNum = 0 }; static const u16 sNews1Pal[] = INCBIN_U16("graphics/mevent/pal_468060.gbapal"); @@ -61,7 +96,7 @@ static const u8 sNews6Map[] = INCBIN_U8("graphics/mevent/tilemap_4684D8.bin.lz") static const u8 sNews7Gfx[] = INCBIN_U8("graphics/mevent/gfx_4685B4.4bpp.lz"); static const u8 sNews7Map[] = INCBIN_U8("graphics/mevent/tilemap_468644.bin.lz"); -static const struct UnkStruct_8467FB8 sBgSpecs[] = { +static const struct UnkStruct_8467FB8 sNewsGraphics[NUM_WONDER_BGS] = { {1, 0, 0, 0, sNews0Gfx, sNews0Map, sNews1Pal}, {1, 0, 0, 0, sNews1Gfx, sNews1Map, gCard1Pal}, {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard2Pal}, @@ -72,37 +107,36 @@ static const struct UnkStruct_8467FB8 sBgSpecs[] = { {1, 0, 0, 0, sNews7Gfx, sNews7Map, sNews7Pal} }; -bool32 InitWonderNewsResources(const struct WonderNews * news) +bool32 WonderNews_Init(const struct WonderNews * news) { if (news == NULL) return FALSE; - sWork = AllocZeroed(sizeof(struct UnkStruct_203F3CC)); - if (sWork == NULL) + sWonderNewsData = AllocZeroed(sizeof(*sWonderNewsData)); + if (sWonderNewsData == NULL) return FALSE; - sWork->wonderNews = *news; - if (sWork->wonderNews.bgType >= NELEMS(sBgSpecs)) - sWork->wonderNews.bgType = 0; - sWork->bgSpec = &sBgSpecs[sWork->wonderNews.bgType]; - sWork->menuIndicatorsId = 0xFF; + sWonderNewsData->news = *news; + if (sWonderNewsData->news.bgType >= NUM_WONDER_BGS) + sWonderNewsData->news.bgType = 0; + sWonderNewsData->gfx = &sNewsGraphics[sWonderNewsData->news.bgType]; + sWonderNewsData->arrowTaskId = TASK_NONE; return TRUE; } -void DestroyWonderNewsResources(void) +void WonderNews_Destroy(void) { - if (sWork != NULL) + if (sWonderNewsData != NULL) { - *sWork = (struct UnkStruct_203F3CC){}; - Free(sWork); - sWork = NULL; + *sWonderNewsData = (struct WonderNewsData){}; + FREE_AND_SET_NULL(sWonderNewsData); } } -s32 FadeToWonderNewsMenu(void) +s32 WonderNews_Enter(void) { - if (sWork == NULL) + if (sWonderNewsData == NULL) return -1; - switch (sWork->state) + switch (sWonderNewsData->enterExitState) { case 0: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); @@ -110,11 +144,11 @@ s32 FadeToWonderNewsMenu(void) case 1: if (UpdatePaletteFade()) return 0; - ChangeBgY(0, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgY(3, 0, 0); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); + ChangeBgY(0, 0, BG_COORD_SET); + ChangeBgY(1, 0, BG_COORD_SET); + ChangeBgY(2, 0, BG_COORD_SET); + ChangeBgY(3, 0, BG_COORD_SET); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(26, 152)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ); @@ -129,26 +163,26 @@ s32 FadeToWonderNewsMenu(void) CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); - DecompressAndCopyTileDataToVram(3, sWork->bgSpec->tiles, 0, 8, 0); - sWork->windowIds[0] = AddWindow(&gUnknown_8468040[0]); - sWork->windowIds[1] = AddWindow(&gUnknown_8468040[1]); + DecompressAndCopyTileDataToVram(3, sWonderNewsData->gfx->tiles, 0, 8, 0); + sWonderNewsData->windowIds[WIN_TITLE] = AddWindow(&sWindowTemplates[WIN_TITLE]); + sWonderNewsData->windowIds[WIN_BODY] = AddWindow(&sWindowTemplates[WIN_BODY]); break; case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sWork->bgSpec->pal, 0x10, 0x20); - LZ77UnCompWram(sWork->bgSpec->map, sWork->buffer_03A4); - CopyRectToBgTilemapBufferRect(1, sWork->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); - CopyRectToBgTilemapBufferRect(3, sWork->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); + LoadPalette(sWonderNewsData->gfx->pal, 0x10, 0x20); + LZ77UnCompWram(sWonderNewsData->gfx->map, sWonderNewsData->bgTilemapBuffer); + CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); + CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(3); break; case 4: - sub_8146980(); + BufferNewsText(); break; case 5: - sub_8146A30(); + DrawNewsWindows(); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(2); break; @@ -157,26 +191,26 @@ s32 FadeToWonderNewsMenu(void) ShowBg(2); ShowBg(3); gPaletteFade.bufferTransferDisabled = FALSE; - sWork->menuIndicatorsId = AddScrollIndicatorArrowPair(&sWork->scrollArrowsTemplate, &sWork->scrollOffset); + sWonderNewsData->arrowTaskId = AddScrollIndicatorArrowPair(&sWonderNewsData->arrowsTemplate, &sWonderNewsData->scrollOffset); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); UpdatePaletteFade(); break; default: if (UpdatePaletteFade()) return 0; - sWork->state = 0; + sWonderNewsData->enterExitState = 0; return 1; } - ++sWork->state; + sWonderNewsData->enterExitState++; return 0; } -s32 FadeOutFromWonderNews(bool32 flag) +s32 WonderNews_Exit(bool32 useCancel) { - if (sWork == NULL) + if (sWonderNewsData == NULL) return -1; - switch (sWork->state) + switch (sWonderNewsData->enterExitState) { case 0: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); @@ -184,7 +218,7 @@ s32 FadeOutFromWonderNews(bool32 flag) case 1: if (UpdatePaletteFade()) return 0; - ChangeBgY(2, 0, 0); + ChangeBgY(2, 0, BG_COORD_SET); SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WININ, 0); @@ -204,20 +238,20 @@ s32 FadeOutFromWonderNews(bool32 flag) case 3: HideBg(1); HideBg(2); - RemoveWindow(sWork->windowIds[1]); - RemoveWindow(sWork->windowIds[0]); + RemoveWindow(sWonderNewsData->windowIds[WIN_BODY]); + RemoveWindow(sWonderNewsData->windowIds[WIN_TITLE]); break; case 4: - ChangeBgY(2, 0, 0); - ChangeBgY(3, 0, 0); - if (sWork->menuIndicatorsId != 0xFF) + ChangeBgY(2, 0, BG_COORD_SET); + ChangeBgY(3, 0, BG_COORD_SET); + if (sWonderNewsData->arrowTaskId != TASK_NONE) { - RemoveScrollIndicatorArrowPair(sWork->menuIndicatorsId); - sWork->menuIndicatorsId = 0xFF; + RemoveScrollIndicatorArrowPair(sWonderNewsData->arrowTaskId); + sWonderNewsData->arrowTaskId = TASK_NONE; } break; case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); break; case 6: MG_DrawCheckerboardPattern(); @@ -228,130 +262,143 @@ s32 FadeOutFromWonderNews(bool32 flag) default: if (UpdatePaletteFade()) return 0; - sWork->state = 0; + sWonderNewsData->enterExitState = 0; return 1; } - ++sWork->state; + ++sWonderNewsData->enterExitState; return 0; } -void MENews_RemoveScrollIndicatorArrowPair(void) +void WonderNews_RemoveScrollIndicatorArrowPair(void) { - if (!sWork->verticalScrollDisabled && sWork->menuIndicatorsId != 0xFF) + if (!sWonderNewsData->verticalScrollDisabled && sWonderNewsData->arrowTaskId != TASK_NONE) { - RemoveScrollIndicatorArrowPair(sWork->menuIndicatorsId); - sWork->menuIndicatorsId = 0xFF; - sWork->verticalScrollDisabled = TRUE; + RemoveScrollIndicatorArrowPair(sWonderNewsData->arrowTaskId); + sWonderNewsData->arrowTaskId = TASK_NONE; + sWonderNewsData->verticalScrollDisabled = TRUE; } } -void MENews_AddScrollIndicatorArrowPair(void) +void WonderNews_AddScrollIndicatorArrowPair(void) { - if (sWork->verticalScrollDisabled) + if (sWonderNewsData->verticalScrollDisabled) { - sWork->menuIndicatorsId = AddScrollIndicatorArrowPair(&sWork->scrollArrowsTemplate, &sWork->scrollOffset); - sWork->verticalScrollDisabled = FALSE; + sWonderNewsData->arrowTaskId = AddScrollIndicatorArrowPair(&sWonderNewsData->arrowsTemplate, &sWonderNewsData->scrollOffset); + sWonderNewsData->verticalScrollDisabled = FALSE; } } -u32 MENews_GetInput(u16 input) +u32 WonderNews_GetInput(u16 input) { - if (sWork->unk_01C2_0) + if (sWonderNewsData->scrolling) { - sub_8146B58(); - return 0xFF; + UpdateNewsScroll(); + return NEWS_INPUT_NONE; } switch (input) { case A_BUTTON: - return 0; + return NEWS_INPUT_A; case B_BUTTON: - return 1; + return NEWS_INPUT_B; case DPAD_UP: - if (sWork->scrollOffset == 0) - return 0xFF; - if (sWork->verticalScrollDisabled) - return 0xFF; - sWork->scrollDirection = FALSE; + if (sWonderNewsData->scrollOffset == 0) + return NEWS_INPUT_NONE; + if (sWonderNewsData->verticalScrollDisabled) + return NEWS_INPUT_NONE; + sWonderNewsData->scrollingDown = FALSE; break; case DPAD_DOWN: - if (sWork->scrollOffset == sWork->numMails) - return 0xFF; - if (sWork->verticalScrollDisabled) - return 0xFF; - sWork->scrollDirection = TRUE; + if (sWonderNewsData->scrollOffset == sWonderNewsData->scrollEnd) + return NEWS_INPUT_NONE; + if (sWonderNewsData->verticalScrollDisabled) + return NEWS_INPUT_NONE; + sWonderNewsData->scrollingDown = TRUE; break; default: - return 0xFF; + return NEWS_INPUT_NONE; } - sWork->unk_01C2_0 = TRUE; - sWork->unk_01C2_1 = 2; - sWork->unk_01C3_1 = 0; - if (sWork->scrollDirection == FALSE) - return 2; + + // Init scroll + sWonderNewsData->scrolling = TRUE; + sWonderNewsData->scrollIncrement = 2; + sWonderNewsData->scrollTotal = 0; + if (!sWonderNewsData->scrollingDown) + return NEWS_INPUT_SCROLL_UP; else - return 3; + return NEWS_INPUT_SCROLL_DOWN; } -static void sub_8146980(void) +static void BufferNewsText(void) { u8 i = 0; - memcpy(sWork->title, sWork->wonderNews.titleText, 40); - sWork->title[40] = EOS; - for (; i < 10; ++i) + + // Copy title text + memcpy(sWonderNewsData->titleText, sWonderNewsData->news.titleText, WONDER_NEWS_TEXT_LENGTH); + sWonderNewsData->titleText[WONDER_NEWS_TEXT_LENGTH] = EOS; + + // Copy body text + for (; i < WONDER_NEWS_BODY_TEXT_LINES; i++) { - memcpy(sWork->messages[i], sWork->wonderNews.bodyText[i], 40); - sWork->messages[i][40] = EOS; - if (i > 7 && sWork->messages[i][0] != EOS) - ++sWork->numMails; + memcpy(sWonderNewsData->bodyText[i], sWonderNewsData->news.bodyText[i], WONDER_NEWS_TEXT_LENGTH); + sWonderNewsData->bodyText[i][WONDER_NEWS_TEXT_LENGTH] = EOS; + if (i > 7 && sWonderNewsData->bodyText[i][0] != EOS) + sWonderNewsData->scrollEnd++; } - sWork->scrollArrowsTemplate = sScrollArrowsTemplate; - sWork->scrollArrowsTemplate.fullyDownThreshold = sWork->numMails; + sWonderNewsData->arrowsTemplate = sArrowsTemplate; + sWonderNewsData->arrowsTemplate.fullyDownThreshold = sWonderNewsData->scrollEnd; } -static void sub_8146A30(void) +static void DrawNewsWindows(void) { u8 i = 0; s32 x; - PutWindowTilemap(sWork->windowIds[0]); - PutWindowTilemap(sWork->windowIds[1]); - FillWindowPixelBuffer(sWork->windowIds[0], 0); - FillWindowPixelBuffer(sWork->windowIds[1], 0); - x = (0xe0 - GetStringWidth(FONT_3, sWork->title, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING))) / 2; + PutWindowTilemap(sWonderNewsData->windowIds[WIN_TITLE]); + PutWindowTilemap(sWonderNewsData->windowIds[WIN_BODY]); + FillWindowPixelBuffer(sWonderNewsData->windowIds[WIN_TITLE], 0); + FillWindowPixelBuffer(sWonderNewsData->windowIds[WIN_BODY], 0); + + // Print title text + x = (224 - GetStringWidth(FONT_3, sWonderNewsData->titleText, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING))) / 2; if (x < 0) x = 0; - AddTextPrinterParameterized3(sWork->windowIds[0], FONT_3, x, 6, sTextPals[sWork->bgSpec->textPal1], 0, sWork->title); - for (; i < 10; ++i) + AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_TITLE], FONT_3, x, 6, sTextColorTable[sWonderNewsData->gfx->textPal1], 0, sWonderNewsData->titleText); + + // Print body text + for (; i < WONDER_NEWS_BODY_TEXT_LINES; ++i) { - AddTextPrinterParameterized3(sWork->windowIds[1], FONT_3, 0, 16 * i + 2, sTextPals[sWork->bgSpec->textPal2], 0, sWork->messages[i]); + AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_BODY], FONT_3, 0, + 16 * i + 2, + sTextColorTable[sWonderNewsData->gfx->textPal2], + 0, sWonderNewsData->bodyText[i]); } - CopyWindowToVram(sWork->windowIds[0], COPYWIN_FULL); - CopyWindowToVram(sWork->windowIds[1], COPYWIN_FULL); + CopyWindowToVram(sWonderNewsData->windowIds[WIN_TITLE], COPYWIN_FULL); + CopyWindowToVram(sWonderNewsData->windowIds[WIN_BODY], COPYWIN_FULL); } -static void sub_8146B58(void) +static void UpdateNewsScroll(void) { - u16 r4 = sWork->unk_01C2_1; - r4 <<= 8; - if (sWork->scrollDirection) + u16 bgMove = sWonderNewsData->scrollIncrement; + bgMove *= 256; + if (sWonderNewsData->scrollingDown) { - ChangeBgY(2, r4, 1); - ChangeBgY(3, r4, 1); + ChangeBgY(2, bgMove, BG_COORD_ADD); + ChangeBgY(3, bgMove, BG_COORD_ADD); } else { - ChangeBgY(2, r4, 2); - ChangeBgY(3, r4, 2); + ChangeBgY(2, bgMove, BG_COORD_SUB); + ChangeBgY(3, bgMove, BG_COORD_SUB); } - sWork->unk_01C3_1 += sWork->unk_01C2_1; - if (sWork->unk_01C3_1 > 15) + sWonderNewsData->scrollTotal += sWonderNewsData->scrollIncrement; + if (sWonderNewsData->scrollTotal > 15) { - if (sWork->scrollDirection) - ++sWork->scrollOffset; + if (sWonderNewsData->scrollingDown) + sWonderNewsData->scrollOffset++; else - --sWork->scrollOffset; - sWork->unk_01C2_0 = FALSE; - sWork->unk_01C3_1 = 0; + sWonderNewsData->scrollOffset--; + sWonderNewsData->scrolling = FALSE; + sWonderNewsData->scrollTotal = 0; } } From 42df883ebbdb3c03e93c21d4d4850f5d6e91e983 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 28 Oct 2022 02:05:47 -0400 Subject: [PATCH 094/105] Sync wonder card/news graphics --- graphics/mevent/gfx_46718C.png | Bin 330 -> 0 bytes graphics/mevent/gfx_46737C.png | Bin 314 -> 0 bytes graphics/mevent/gfx_467558.png | Bin 288 -> 0 bytes graphics/mevent/gfx_467700.png | Bin 558 -> 0 bytes graphics/mevent/gfx_467A7C.png | Bin 551 -> 0 bytes graphics/mevent/gfx_467EF4.png | Bin 116 -> 0 bytes graphics/mevent/gfx_4680C0.png | Bin 169 -> 0 bytes graphics/mevent/gfx_46821C.png | Bin 103 -> 0 bytes graphics/mevent/gfx_46830C.png | Bin 146 -> 0 bytes graphics/mevent/gfx_468448.png | Bin 173 -> 0 bytes graphics/mevent/gfx_4685B4.png | Bin 173 -> 0 bytes .../bg0.bin} | Bin .../pal_46708C.pal => wonder_card/bg0.pal} | 0 graphics/wonder_card/bg0.png | Bin 0 -> 318 bytes .../bg1.bin} | Bin .../pal_4670AC.pal => wonder_card/bg1.pal} | 0 graphics/wonder_card/bg1.png | Bin 0 -> 311 bytes .../bg2.bin} | Bin .../pal_4670CC.pal => wonder_card/bg2.pal} | 0 graphics/wonder_card/bg2.png | Bin 0 -> 279 bytes .../pal_4670EC.pal => wonder_card/bg3.pal} | 0 .../pal_46710C.pal => wonder_card/bg4.pal} | 0 .../pal_46712C.pal => wonder_card/bg5.pal} | 0 .../bg6.bin} | Bin .../pal_46714C.pal => wonder_card/bg6.pal} | 0 graphics/wonder_card/bg6.png | Bin 0 -> 545 bytes .../bg7.bin} | Bin .../pal_46716C.pal => wonder_card/bg7.pal} | 0 graphics/wonder_card/bg7.png | Bin 0 -> 534 bytes graphics/wonder_card/stamp_shadow.png | Bin 0 -> 167 bytes .../stamp_shadow_0.pal} | 0 .../stamp_shadow_1.pal} | 0 .../stamp_shadow_2.pal} | 0 .../stamp_shadow_3.pal} | 0 .../stamp_shadow_4.pal} | 0 .../stamp_shadow_5.pal} | 0 .../stamp_shadow_6.pal} | 0 .../stamp_shadow_7.pal} | 0 .../bg0.bin} | Bin .../pal_468060.pal => wonder_news/bg0.pal} | 0 graphics/wonder_news/bg0.png | Bin 0 -> 225 bytes .../bg1.bin} | Bin graphics/wonder_news/bg1.png | Bin 0 -> 160 bytes .../bg2.bin} | Bin graphics/wonder_news/bg2.png | Bin 0 -> 204 bytes .../bg6.bin} | Bin .../pal_468080.pal => wonder_news/bg6.pal} | 0 graphics/wonder_news/bg6.png | Bin 0 -> 223 bytes .../bg7.bin} | Bin .../pal_4680A0.pal => wonder_news/bg7.pal} | 0 graphics/wonder_news/bg7.png | Bin 0 -> 223 bytes include/mevent.h | 12 +- src/mystery_gift_show_card.c | 110 +++++++++--------- src/mystery_gift_show_news.c | 50 ++++---- 54 files changed, 86 insertions(+), 86 deletions(-) delete mode 100644 graphics/mevent/gfx_46718C.png delete mode 100644 graphics/mevent/gfx_46737C.png delete mode 100644 graphics/mevent/gfx_467558.png delete mode 100644 graphics/mevent/gfx_467700.png delete mode 100644 graphics/mevent/gfx_467A7C.png delete mode 100644 graphics/mevent/gfx_467EF4.png delete mode 100644 graphics/mevent/gfx_4680C0.png delete mode 100644 graphics/mevent/gfx_46821C.png delete mode 100644 graphics/mevent/gfx_46830C.png delete mode 100644 graphics/mevent/gfx_468448.png delete mode 100644 graphics/mevent/gfx_4685B4.png rename graphics/{mevent/tilemap_467288.bin => wonder_card/bg0.bin} (100%) rename graphics/{mevent/pal_46708C.pal => wonder_card/bg0.pal} (100%) create mode 100644 graphics/wonder_card/bg0.png rename graphics/{mevent/tilemap_467470.bin => wonder_card/bg1.bin} (100%) rename graphics/{mevent/pal_4670AC.pal => wonder_card/bg1.pal} (100%) create mode 100644 graphics/wonder_card/bg1.png rename graphics/{mevent/tilemap_46762C.bin => wonder_card/bg2.bin} (100%) rename graphics/{mevent/pal_4670CC.pal => wonder_card/bg2.pal} (100%) create mode 100644 graphics/wonder_card/bg2.png rename graphics/{mevent/pal_4670EC.pal => wonder_card/bg3.pal} (100%) rename graphics/{mevent/pal_46710C.pal => wonder_card/bg4.pal} (100%) rename graphics/{mevent/pal_46712C.pal => wonder_card/bg5.pal} (100%) rename graphics/{mevent/tilemap_467934.bin => wonder_card/bg6.bin} (100%) rename graphics/{mevent/pal_46714C.pal => wonder_card/bg6.pal} (100%) create mode 100644 graphics/wonder_card/bg6.png rename graphics/{mevent/tilemap_467CAC.bin => wonder_card/bg7.bin} (100%) rename graphics/{mevent/pal_46716C.pal => wonder_card/bg7.pal} (100%) create mode 100644 graphics/wonder_card/bg7.png create mode 100644 graphics/wonder_card/stamp_shadow.png rename graphics/{mevent/pal_467DF4.pal => wonder_card/stamp_shadow_0.pal} (100%) rename graphics/{mevent/pal_467E14.pal => wonder_card/stamp_shadow_1.pal} (100%) rename graphics/{mevent/pal_467E34.pal => wonder_card/stamp_shadow_2.pal} (100%) rename graphics/{mevent/pal_467E54.pal => wonder_card/stamp_shadow_3.pal} (100%) rename graphics/{mevent/pal_467E74.pal => wonder_card/stamp_shadow_4.pal} (100%) rename graphics/{mevent/pal_467E94.pal => wonder_card/stamp_shadow_5.pal} (100%) rename graphics/{mevent/pal_467EB4.pal => wonder_card/stamp_shadow_6.pal} (100%) rename graphics/{mevent/pal_467ED4.pal => wonder_card/stamp_shadow_7.pal} (100%) rename graphics/{mevent/tilemap_468140.bin => wonder_news/bg0.bin} (100%) rename graphics/{mevent/pal_468060.pal => wonder_news/bg0.pal} (100%) create mode 100644 graphics/wonder_news/bg0.png rename graphics/{mevent/tilemap_46824C.bin => wonder_news/bg1.bin} (100%) create mode 100644 graphics/wonder_news/bg1.png rename graphics/{mevent/tilemap_46837C.bin => wonder_news/bg2.bin} (100%) create mode 100644 graphics/wonder_news/bg2.png rename graphics/{mevent/tilemap_4684D8.bin => wonder_news/bg6.bin} (100%) rename graphics/{mevent/pal_468080.pal => wonder_news/bg6.pal} (100%) create mode 100644 graphics/wonder_news/bg6.png rename graphics/{mevent/tilemap_468644.bin => wonder_news/bg7.bin} (100%) rename graphics/{mevent/pal_4680A0.pal => wonder_news/bg7.pal} (100%) create mode 100644 graphics/wonder_news/bg7.png diff --git a/graphics/mevent/gfx_46718C.png b/graphics/mevent/gfx_46718C.png deleted file mode 100644 index bf52445e63c00d8981e96586f119e629efe610ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^96QU(D&A+AwJr(C^y)yvB(DJ$#h zUaxmogT8&c`v3p`XV0#_dw2Ce!+$iiT>jb#px&#VE{-7minaV!jGB&eZY6whgWTTcfIeo7_;TyY&^~>s(-RyZ2A5ByZNpwOyidDp5B%7 z!2R;}O{sr>opIz^D*4RX^zdwH%MFIE;ZAcN=^T9aV%1@f64fKs%Z@((%Px6uO0J>K U{r&NWfF5M67ethj0^wK_`|6}QtZ`qfoyx1=@ z!^1FPL!#ctt*;Nf%rmSLy}du)tHr8?=TTtI6V>Tza;~9$Y@P0j?ngFVdE0Sfnw6W% z`JC9?%4a_=8YxFByy||(73@6e+M#N0ap$DlGj^_4%E@-VYP!?!Ca| diff --git a/graphics/mevent/gfx_467558.png b/graphics/mevent/gfx_467558.png deleted file mode 100644 index c28edd8919a36a835cb99082a94bac3163c1e0d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^96-E*g&9a5*kQB)NErn9gt$f>oe~t3)!f{@WX_tS zd#`?b_y0cw0=;{8^x3oSd-sa3UX9wj*Yf}W|0{M{B?0xW_H=O!(U`b&;zhwG2OgKj zvMqc^{ErLe+z?tKJo5&F@s$Vn+|-K-*n56|RCCBXoa*}R`B*Tke3-eUHx3vIVCg!0ORk3S^xk5 diff --git a/graphics/mevent/gfx_467700.png b/graphics/mevent/gfx_467700.png deleted file mode 100644 index f31385746f99871768c7f044393b52d65390ce3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)5bTGh>3-ql*w)oSkcV&>jr)y-nXv|{e&V)pK8rx32b0005G zNkld(hGQx*7#mW+_4d%^momtt6uysAy&yq!iP}j!!5R3~14+LQ1SJ&TI zpa7u)9HDaacr{rJFu`nJY>5C9tah{@p#d&q@++~La2*w~h#w%{ z^9^72bz#od7RDXyyK!GOSC}H+pudZ%DH}Rugs8uik*t>oKS8I-Pu6MfC*9CIEe}l6 zk7zW~OG8UW8d@^a(2~J^QC!EE?_Mo4p*Z7!Vj)3NpAZ+zj0MNiljqvM^v6T++1;O` zQTl0d$|n*YaDK|^Q9t+3J3sWu_ZJ;JamB}4eUfEwE&H`&2Niy8djqJK?X15fnhwgj wKTNKBd%F*-g!qdEZE^aS>E*tSvUy7T1L-+ub}9f2?*IS*07*qoM6N<$f+>FjRR910 diff --git a/graphics/mevent/gfx_467A7C.png b/graphics/mevent/gfx_467A7C.png deleted file mode 100644 index f94b6c50f9459613f0c7d62411050bd395d2ba51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)v$<5grazyz~>u_XdbuszU%gc@kZ$R$7rqGM&}tI14DhM*q6ZXUqC<9(B#B3{?W zo1Hmf@at55WGjAJ4EIp&+vnx9TSg7sfz^5p*i)Vf`0~JlpPc8UE4gm|gTiDCCny2P z46owg@~062arGzx*I;1=PND*x9-RshjRKMmj>cVz!nguh@++{Ka32-1h+iPS^Bq6- z-NxLk-57TQzHP2BMZ7_OjjAYLbjS!%f9XcDUf%o!ohCn7r@5c>Li1~RU~>J4S|h#G zv}B~FB_lO08SEFub&2;qs%0i5XKYX`BuMHEak0!;a4bE!ul-AZ+yp&H6}dffL96})oB$6TGsvRTW1?N~vDU)w$as%1N?FNvmua-MIU>)Ae@ p!zv;E#ez0D{bX9*w^kNUX)l}OX71l}(B%LC002ovPDHLkV1mrb1lRxo diff --git a/graphics/mevent/gfx_467EF4.png b/graphics/mevent/gfx_467EF4.png deleted file mode 100644 index 51a1aeb0c246cfd35423131ef327d13e4f077f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et0wfrw&pzJ*q^vz%9780gCjaPXljsnxU}p_z ztbhODfvpF_iTY|bo_CEd68{eG5Kx?OKvJb4mLZnAZK1@qB&(i~^NbAo)8B`#x6Ww; O8RzNh=d#Wzp$Py25F?-f diff --git a/graphics/mevent/gfx_4680C0.png b/graphics/mevent/gfx_4680C0.png deleted file mode 100644 index 1a27f321311d1b05ce15cabadb03105bc4a562f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^96(&b0wfspw=qr!QU#tajv*Qor}kasJ)pqBI&<4H z?i-Oa4)Uh3x^39JWx+Bvww_w~=?;1}4<;U9%ky+jOw({lNvc>Q_i~-$@;e*9OwxM! z`OYHFu=d@vt^R#|wfk}P_GaGmujcOYW->f-A;3Mmd`^e8!=2`O*Gn7snA^z4cd`3M TtoNwf2y%m`tDnm{r-UW|%sxRt diff --git a/graphics/mevent/gfx_46821C.png b/graphics/mevent/gfx_46821C.png deleted file mode 100644 index aab27d16cc9859a77903a0ac9d2b591cb49b0ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^96+qW0wfreEjSZ^l%A)HV+hC0mdKI;Vst07su1 ANB{r; diff --git a/graphics/mevent/gfx_46830C.png b/graphics/mevent/gfx_46830C.png deleted file mode 100644 index 3c2b8e6d14767499a4b39235619946b47071e3fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^96%hw0wfqTq*xXLsYp*3#}J9B$v^m6cw7V)Iyh(v zs+?dr;@~9U!P3~_Ah3`_N#GTWW6UHDRfUEPJ&g>9iWr$XDt|<(DTuvnF`mQ0_(?Km sj<3TrOKE4HWBv`Yo-I}ejwuoh3{6{8PM(iD%?h&2)78&qol`;+0L$ShU;qFB diff --git a/graphics/mevent/gfx_468448.png b/graphics/mevent/gfx_468448.png deleted file mode 100644 index 137dbe9f3c41ee24757da3a6b5f4efd774fcd350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^96(&b0wfspw=qr!QYD@)jv*Qo*Pg$~+n~V1a$(&8 zt~CtO5B&O)b_Kg1i2TweC6N2!@b3zhCzqIVIcgJJ`8IU~q&*AI^51g2s(ho#jJ=YX z2I8e9k9~K2RQqODn^*g{`1nu$o!@tTOgrEH;vmZ+Bhg7h4na%>912oFeTj9lPw()( Wm3}<^gc^f0$Q_=pelF{r5}E+q%t40$ diff --git a/graphics/mevent/gfx_4685B4.png b/graphics/mevent/gfx_4685B4.png deleted file mode 100644 index 137dbe9f3c41ee24757da3a6b5f4efd774fcd350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^96(&b0wfspw=qr!QYD@)jv*Qo*Pg$~+n~V1a$(&8 zt~CtO5B&O)b_Kg1i2TweC6N2!@b3zhCzqIVIcgJJ`8IU~q&*AI^51g2s(ho#jJ=YX z2I8e9k9~K2RQqODn^*g{`1nu$o!@tTOgrEH;vmZ+Bhg7h4na%>912oFeTj9lPw()( Wm3}<^gc^f0$Q_=pelF{r5}E+q%t40$ diff --git a/graphics/mevent/tilemap_467288.bin b/graphics/wonder_card/bg0.bin similarity index 100% rename from graphics/mevent/tilemap_467288.bin rename to graphics/wonder_card/bg0.bin diff --git a/graphics/mevent/pal_46708C.pal b/graphics/wonder_card/bg0.pal similarity index 100% rename from graphics/mevent/pal_46708C.pal rename to graphics/wonder_card/bg0.pal diff --git a/graphics/wonder_card/bg0.png b/graphics/wonder_card/bg0.png new file mode 100644 index 0000000000000000000000000000000000000000..924a46dac5cbab9a5f51b90e97e15a1fd58a1ab5 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3P5bZ!VDzyEjb#px%?7E{-7@6X#xj%iCli!1iFBLS8}6 zf}VuOObWss(hbT7*!r^LtK_FFa*Y2sMZNs`GS9i(mIYmx%=Hd+3N$x`Ih44G^o7I; zv^K3`Gvw$#f1w~N{x{2}uKf?Ka+tUIFmQJ|-9M^P@|&@_j>R%{w~aej|BiqiyxJN2 z56Euj`DJmZp}hF?{GUzJp0e2lIGz)FVA(w9+JUxrtS{xAgJ#49^C`PW7jdNiSfkp! zR`OHx>7tl*;FVdQ&MBb@ E0A?JB9RL6T literal 0 HcmV?d00001 diff --git a/graphics/mevent/tilemap_467470.bin b/graphics/wonder_card/bg1.bin similarity index 100% rename from graphics/mevent/tilemap_467470.bin rename to graphics/wonder_card/bg1.bin diff --git a/graphics/mevent/pal_4670AC.pal b/graphics/wonder_card/bg1.pal similarity index 100% rename from graphics/mevent/pal_4670AC.pal rename to graphics/wonder_card/bg1.pal diff --git a/graphics/wonder_card/bg1.png b/graphics/wonder_card/bg1.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea8b1a4115b5c182563c64f16c4cba327b3095a GIT binary patch literal 311 zcmV-70m%M|P)!1fFZa>wl0lXVDiBw)gx4)GdIv0kj*S=~T;-fQJRxei68TwTv2Bj&2Ox zs4+|lZ$!{>p0t)5W$(Y>Tjv^sPabgwXW`CFfahk-SUwA98NRYHD20xL101 V%QkiG{SS04gQu&X%Q~loCIA(keA55` literal 0 HcmV?d00001 diff --git a/graphics/mevent/pal_4670EC.pal b/graphics/wonder_card/bg3.pal similarity index 100% rename from graphics/mevent/pal_4670EC.pal rename to graphics/wonder_card/bg3.pal diff --git a/graphics/mevent/pal_46710C.pal b/graphics/wonder_card/bg4.pal similarity index 100% rename from graphics/mevent/pal_46710C.pal rename to graphics/wonder_card/bg4.pal diff --git a/graphics/mevent/pal_46712C.pal b/graphics/wonder_card/bg5.pal similarity index 100% rename from graphics/mevent/pal_46712C.pal rename to graphics/wonder_card/bg5.pal diff --git a/graphics/mevent/tilemap_467934.bin b/graphics/wonder_card/bg6.bin similarity index 100% rename from graphics/mevent/tilemap_467934.bin rename to graphics/wonder_card/bg6.bin diff --git a/graphics/mevent/pal_46714C.pal b/graphics/wonder_card/bg6.pal similarity index 100% rename from graphics/mevent/pal_46714C.pal rename to graphics/wonder_card/bg6.pal diff --git a/graphics/wonder_card/bg6.png b/graphics/wonder_card/bg6.png new file mode 100644 index 0000000000000000000000000000000000000000..f534b555eca7610b7c05b20b2034792229756b2f GIT binary patch literal 545 zcmV++0^a?JP)5bTGh>3-ql*w)oSkcV&>jr)y-nXv|{e&V)pK8rx32b00053 zNkl?#Y|xU+03jo^6ZFn6?tFQ{8-z+o0{qi} z?wt6N4`ItPC6(2mr9 zsRs$t6I14>4+PC9>y5NbfO~JZ(xLo)k=;ttO9|AqjJUs&R3kVz1^~B*R!qk2Rvn}p9%r;F#GBuv( j@RD!8;ZFEw@Lb>@ztv}Un*>d#00000NkvXXu0mjfiD~#f literal 0 HcmV?d00001 diff --git a/graphics/mevent/tilemap_467CAC.bin b/graphics/wonder_card/bg7.bin similarity index 100% rename from graphics/mevent/tilemap_467CAC.bin rename to graphics/wonder_card/bg7.bin diff --git a/graphics/mevent/pal_46716C.pal b/graphics/wonder_card/bg7.pal similarity index 100% rename from graphics/mevent/pal_46716C.pal rename to graphics/wonder_card/bg7.pal diff --git a/graphics/wonder_card/bg7.png b/graphics/wonder_card/bg7.png new file mode 100644 index 0000000000000000000000000000000000000000..90890ded9923aa929bb4d42de47da60bdf87d132 GIT binary patch literal 534 zcmV+x0_pvUP)(YQ`TA;Hdi8MuZ^LWWC14JREL>MLS62aX7vahq}IacW2)6P;=>PgH?9VGS-<{u-)U z)*+X|NS*NSTr>?S;nhHmA_hV(S-2@EwKdWJQs78i9*ltl1^QM9kIc6~574zhXo8^y z4*$aU5uy%1#<2~O8-EbuJIn>1ySK3jNnmW>3PEN_{g+z??-+g~c(InDpQ-EtBA0;HT{q92Df1Swlbt|6o{>da3VM*$RphEvS!Bk2myht8nW6Zc;>7j+#_o0!+X4~ zATIVC>2hI5Fs@b%707*qoM6N<$f>wO@2LJ#7 literal 0 HcmV?d00001 diff --git a/graphics/wonder_card/stamp_shadow.png b/graphics/wonder_card/stamp_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1c92a93bad2516e6a6f4e8808d143235c3a9e9 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h-=i*DSP)WIeT`^)vJ5| zGyErr=G|hy4%BPp>Eak7F*P|sfuF;Pamr~84tA!1eG?2NG@M)#Vmbso4oGk&h&xaQKAI34{BrtJ57< z$yAFyX}3PVS@EBu1z!=z^^-Q6u0@|0+N3b!y`&r4#~#+41LcNsM>a_ZRZh5h`dLaZ P&|U^lS3j3^P6gTe~DWM4f D6jwTo literal 0 HcmV?d00001 diff --git a/graphics/mevent/tilemap_46837C.bin b/graphics/wonder_news/bg2.bin similarity index 100% rename from graphics/mevent/tilemap_46837C.bin rename to graphics/wonder_news/bg2.bin diff --git a/graphics/wonder_news/bg2.png b/graphics/wonder_news/bg2.png new file mode 100644 index 0000000000000000000000000000000000000000..518283c86445749510071d3591b39473ac846697 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^96%hw!VDy>*01&lQU(D&A+AwJrvwFMH8*!JnX~5T z-mBl<{r}H^gq}V7fAr}8B}=|_cfX5@`v3p`44L{Wpx$s#7sn8ZsZ%Fh4#6!JA_~6Rad%bL{IA2kr%Z;8%Nm{^!lxGI~>hRxo(F`njxgN@xNA3xHfh literal 0 HcmV?d00001 diff --git a/graphics/mevent/tilemap_4684D8.bin b/graphics/wonder_news/bg6.bin similarity index 100% rename from graphics/mevent/tilemap_4684D8.bin rename to graphics/wonder_news/bg6.bin diff --git a/graphics/mevent/pal_468080.pal b/graphics/wonder_news/bg6.pal similarity index 100% rename from graphics/mevent/pal_468080.pal rename to graphics/wonder_news/bg6.pal diff --git a/graphics/wonder_news/bg6.png b/graphics/wonder_news/bg6.png new file mode 100644 index 0000000000000000000000000000000000000000..6e26cdc06cfd86ecb7571cf0476adc555edd2d77 GIT binary patch literal 223 zcmV<503iQ~P)5bTGh>3-ql*w)oSkcV&>jr)y-nXv|{e&V)pK8rx32b0001L zNklqaTIrg4Pb??zzWz$E75?S^glHDE-wKhX|ZU)>NJJd z9x@^oGb&|n%sBAMr1iSo#=Q)a zixc)Um-of~Vy$cXeAD6o1jaeS;wJ@IwrWjcoGg>q!S$y21eZ_I9wlk7)!R6pXJ@eM XZu`|Ozj*g`psfs^u6{1-oD!M<>nUG- literal 0 HcmV?d00001 diff --git a/include/mevent.h b/include/mevent.h index 00d199fb0..9a273a872 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -47,12 +47,12 @@ struct MEvent_Str_2 u8 fill_00[0x40]; }; -struct UnkStruct_8467FB8 +struct WonderGraphics { - u8 textPal1:4; - u8 textPal2:4; - u8 textPal3:4; - u8 index:4; + u8 titleTextPal:4; + u8 bodyTextPal:4; + u8 footerTextPal:4; + u8 stampShadowPal:4; const u8 * tiles; const u8 * map; const u16 * pal; @@ -82,7 +82,7 @@ u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventCl bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1); u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command); bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata); -bool32 WonderNews_Init(const struct WonderNews * a0); +bool32 WonderNews_Init(const struct WonderNews * news); s32 WonderCard_Enter(void); s32 WonderNews_Enter(void); void DestroyWonderCard(void); diff --git a/src/mystery_gift_show_card.c b/src/mystery_gift_show_card.c index 8f19dad64..c462bda76 100644 --- a/src/mystery_gift_show_card.c +++ b/src/mystery_gift_show_card.c @@ -29,7 +29,7 @@ struct WonderCardData { /*0000*/ struct WonderCard card; /*014c*/ struct WonderCardMetadata cardMetadata; - /*0170*/ const struct UnkStruct_8467FB8 * gfx; + /*0170*/ const struct WonderGraphics * gfx; /*0174*/ u8 enterExitState; /*0175*/ u8 recordIdx; /*0176*/ u16 windowIds[WIN_COUNT]; @@ -94,47 +94,47 @@ static const struct WindowTemplate sWindowTemplates[] = { } }; -static const u16 sCard0Pal[] = INCBIN_U16("graphics/mevent/pal_46708C.gbapal"); -const u16 gCard1Pal[] = INCBIN_U16("graphics/mevent/pal_4670AC.gbapal"); -const u16 gCard2Pal[] = INCBIN_U16("graphics/mevent/pal_4670CC.gbapal"); -const u16 gCard3Pal[] = INCBIN_U16("graphics/mevent/pal_4670EC.gbapal"); -const u16 gCard4Pal[] = INCBIN_U16("graphics/mevent/pal_46710C.gbapal"); -const u16 gCard5Pal[] = INCBIN_U16("graphics/mevent/pal_46712C.gbapal"); -static const u16 sCard6Pal[] = INCBIN_U16("graphics/mevent/pal_46714C.gbapal"); -static const u16 sCard7Pal[] = INCBIN_U16("graphics/mevent/pal_46716C.gbapal"); -static const u8 sCard0Gfx[] = INCBIN_U8("graphics/mevent/gfx_46718C.4bpp.lz"); -static const u8 sCard0Map[] = INCBIN_U8("graphics/mevent/tilemap_467288.bin.lz"); -static const u8 sCard1Gfx[] = INCBIN_U8("graphics/mevent/gfx_46737C.4bpp.lz"); -static const u8 sCard1Map[] = INCBIN_U8("graphics/mevent/tilemap_467470.bin.lz"); -static const u8 sCard2Gfx[] = INCBIN_U8("graphics/mevent/gfx_467558.4bpp.lz"); -static const u8 sCard2Map[] = INCBIN_U8("graphics/mevent/tilemap_46762C.bin.lz"); -static const u8 sCard6Gfx[] = INCBIN_U8("graphics/mevent/gfx_467700.4bpp.lz"); -static const u8 sCard6Map[] = INCBIN_U8("graphics/mevent/tilemap_467934.bin.lz"); -static const u8 sCard7Gfx[] = INCBIN_U8("graphics/mevent/gfx_467A7C.4bpp.lz"); -static const u8 sCard7Map[] = INCBIN_U8("graphics/mevent/tilemap_467CAC.bin.lz"); -static const u16 sUnknown_8467DF4[] = INCBIN_U16("graphics/mevent/pal_467DF4.gbapal"); -static const u16 sUnknown_8467E14[] = INCBIN_U16("graphics/mevent/pal_467E14.gbapal"); -static const u16 sUnknown_8467E34[] = INCBIN_U16("graphics/mevent/pal_467E34.gbapal"); -static const u16 sUnknown_8467E54[] = INCBIN_U16("graphics/mevent/pal_467E54.gbapal"); -static const u16 sUnknown_8467E74[] = INCBIN_U16("graphics/mevent/pal_467E74.gbapal"); -static const u16 sUnknown_8467E94[] = INCBIN_U16("graphics/mevent/pal_467E94.gbapal"); -static const u16 sUnknown_8467EB4[] = INCBIN_U16("graphics/mevent/pal_467EB4.gbapal"); -static const u16 sUnknown_8467ED4[] = INCBIN_U16("graphics/mevent/pal_467ED4.gbapal"); -static const u32 sUnknown_8467EF4[] = INCBIN_U32("graphics/mevent/gfx_467EF4.4bpp.lz"); +static const u16 sCard0Pal[] = INCBIN_U16("graphics/wonder_card/bg0.gbapal"); +const u16 gCard1Pal[] = INCBIN_U16("graphics/wonder_card/bg1.gbapal"); +const u16 gCard2Pal[] = INCBIN_U16("graphics/wonder_card/bg2.gbapal"); +const u16 gCard3Pal[] = INCBIN_U16("graphics/wonder_card/bg3.gbapal"); +const u16 gCard4Pal[] = INCBIN_U16("graphics/wonder_card/bg4.gbapal"); +const u16 gCard5Pal[] = INCBIN_U16("graphics/wonder_card/bg5.gbapal"); +static const u16 sCard6Pal[] = INCBIN_U16("graphics/wonder_card/bg6.gbapal"); +static const u16 sCard7Pal[] = INCBIN_U16("graphics/wonder_card/bg7.gbapal"); +static const u8 sCard0Gfx[] = INCBIN_U8("graphics/wonder_card/bg0.4bpp.lz"); +static const u8 sCard0Map[] = INCBIN_U8("graphics/wonder_card/bg0.bin.lz"); +static const u8 sCard1Gfx[] = INCBIN_U8("graphics/wonder_card/bg1.4bpp.lz"); +static const u8 sCard1Map[] = INCBIN_U8("graphics/wonder_card/bg1.bin.lz"); +static const u8 sCard2Gfx[] = INCBIN_U8("graphics/wonder_card/bg2.4bpp.lz"); +static const u8 sCard2Map[] = INCBIN_U8("graphics/wonder_card/bg2.bin.lz"); +static const u8 sCard6Gfx[] = INCBIN_U8("graphics/wonder_card/bg6.4bpp.lz"); +static const u8 sCard6Map[] = INCBIN_U8("graphics/wonder_card/bg6.bin.lz"); +static const u8 sCard7Gfx[] = INCBIN_U8("graphics/wonder_card/bg7.4bpp.lz"); +static const u8 sCard7Map[] = INCBIN_U8("graphics/wonder_card/bg7.bin.lz"); +static const u16 sStampShadowPal0[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_0.gbapal"); +static const u16 sStampShadowPal1[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_1.gbapal"); +static const u16 sStampShadowPal2[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_2.gbapal"); +static const u16 sStampShadowPal3[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_3.gbapal"); +static const u16 sStampShadowPal4[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_4.gbapal"); +static const u16 sStampShadowPal5[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_5.gbapal"); +static const u16 sStampShadowPal6[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_6.gbapal"); +static const u16 sStampShadowPal7[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_7.gbapal"); +static const u32 sStampShadowGfx[] = INCBIN_U32("graphics/wonder_card/stamp_shadow.4bpp.lz"); static const struct CompressedSpriteSheet sSpriteSheet_StampShadow = { - sUnknown_8467EF4, 0x100, 0x8000 + sStampShadowGfx, 0x100, TAG_STAMP_SHADOW }; static const struct SpritePalette sSpritePalettes_StampShadow[] = { - {sUnknown_8467DF4, 0x8000}, - {sUnknown_8467E14, 0x8000}, - {sUnknown_8467E34, 0x8000}, - {sUnknown_8467E54, 0x8000}, - {sUnknown_8467E74, 0x8000}, - {sUnknown_8467E94, 0x8000}, - {sUnknown_8467EB4, 0x8000}, - {sUnknown_8467ED4, 0x8000} + {sStampShadowPal0, TAG_STAMP_SHADOW}, + {sStampShadowPal1, TAG_STAMP_SHADOW}, + {sStampShadowPal2, TAG_STAMP_SHADOW}, + {sStampShadowPal3, TAG_STAMP_SHADOW}, + {sStampShadowPal4, TAG_STAMP_SHADOW}, + {sStampShadowPal5, TAG_STAMP_SHADOW}, + {sStampShadowPal6, TAG_STAMP_SHADOW}, + {sStampShadowPal7, TAG_STAMP_SHADOW} }; static const struct SpriteTemplate sSpriteTemplate_StampShadow = { @@ -147,15 +147,15 @@ static const struct SpriteTemplate sSpriteTemplate_StampShadow = { .callback = SpriteCallbackDummy }; -static const struct UnkStruct_8467FB8 sCardGraphics[8] = { - {1, 0, 0, 0, sCard0Gfx, sCard0Map, sCard0Pal}, - {1, 0, 0, 1, sCard1Gfx, sCard1Map, gCard1Pal}, - {1, 0, 0, 2, sCard2Gfx, sCard2Map, gCard2Pal}, - {1, 0, 0, 3, sCard2Gfx, sCard2Map, gCard3Pal}, - {1, 0, 0, 4, sCard2Gfx, sCard2Map, gCard4Pal}, - {1, 0, 0, 5, sCard2Gfx, sCard2Map, gCard5Pal}, - {1, 0, 0, 6, sCard6Gfx, sCard6Map, sCard6Pal}, - {1, 0, 0, 7, sCard7Gfx, sCard7Map, sCard7Pal} +static const struct WonderGraphics sCardGraphics[NUM_WONDER_BGS] = { + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 0, .tiles = sCard0Gfx, .map = sCard0Map, .pal = sCard0Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 1, .tiles = sCard1Gfx, .map = sCard1Map, .pal = gCard1Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 2, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard2Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 3, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard3Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 4, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard4Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 5, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard5Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 6, .tiles = sCard6Gfx, .map = sCard6Map, .pal = sCard6Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 7, .tiles = sCard7Gfx, .map = sCard7Map, .pal = sCard7Pal} }; bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata) @@ -399,27 +399,27 @@ static void DrawCardWindow(u8 whichWindow) { // Print card title/subtitle s32 x; - AddTextPrinterParameterized3(windowId, FONT_3, 0, 1, sTextColorTable[sWonderCardData->gfx->textPal1], 0, sWonderCardData->titleText); + AddTextPrinterParameterized3(windowId, FONT_3, 0, 1, sTextColorTable[sWonderCardData->gfx->titleTextPal], 0, sWonderCardData->titleText); x = 160 - GetStringWidth(FONT_3, sWonderCardData->subtitleText, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING)); if (x < 0) x = 0; - AddTextPrinterParameterized3(windowId, FONT_3, x, 17, sTextColorTable[sWonderCardData->gfx->textPal1], 0, sWonderCardData->subtitleText); + AddTextPrinterParameterized3(windowId, FONT_3, x, 17, sTextColorTable[sWonderCardData->gfx->titleTextPal], 0, sWonderCardData->subtitleText); // Print id number if (sWonderCardData->card.idNumber != 0) - AddTextPrinterParameterized3(windowId, FONT_2, 166, 17, sTextColorTable[sWonderCardData->gfx->textPal1], 0, sWonderCardData->idNumberText); + AddTextPrinterParameterized3(windowId, FONT_2, 166, 17, sTextColorTable[sWonderCardData->gfx->titleTextPal], 0, sWonderCardData->idNumberText); break; } case WIN_BODY: // Print body text for (; i < WONDER_CARD_BODY_TEXT_LINES; i++) - AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 * i + 2, sTextColorTable[sWonderCardData->gfx->textPal2], 0, sWonderCardData->bodyText[i]); + AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 * i + 2, sTextColorTable[sWonderCardData->gfx->bodyTextPal], 0, sWonderCardData->bodyText[i]); break; case WIN_FOOTER: // Print footer line 1 AddTextPrinterParameterized3(windowId, FONT_3, 0, sFooterTextOffsets[sWonderCardData->card.type], - sTextColorTable[sWonderCardData->gfx->textPal3], + sTextColorTable[sWonderCardData->gfx->footerTextPal], 0, sWonderCardData->footerLine1Text); // Print footer line 2 @@ -429,7 +429,7 @@ static void DrawCardWindow(u8 whichWindow) // Odd that CARD_TYPE_STAMP is not ignored, it has empty text for this AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 + sFooterTextOffsets[sWonderCardData->card.type], - sTextColorTable[sWonderCardData->gfx->textPal3], + sTextColorTable[sWonderCardData->gfx->footerTextPal], 0, sWonderCardData->footerLine2Text); } else @@ -440,13 +440,13 @@ static void DrawCardWindow(u8 whichWindow) for (; i < sWonderCardData->recordIdx; i++) { // Print stat text - AddTextPrinterParameterized3(windowId, FONT_3, x, y, sTextColorTable[sWonderCardData->gfx->textPal3], 0, sWonderCardData->statTextData[i].statText); + AddTextPrinterParameterized3(windowId, FONT_3, x, y, sTextColorTable[sWonderCardData->gfx->footerTextPal], 0, sWonderCardData->statTextData[i].statText); if (sWonderCardData->statTextData[i].statNumberText[0] != EOS) { // Print stat number x += GetStringWidth(FONT_3, sWonderCardData->statTextData[i].statText, spacing); AddTextPrinterParameterized3(windowId, FONT_2, x, y, - sTextColorTable[sWonderCardData->gfx->textPal3], + sTextColorTable[sWonderCardData->gfx->footerTextPal], 0, sWonderCardData->statTextData[i].statNumberText); x += GetStringWidth(FONT_3, sWonderCardData->statTextData[i].statNumberText, spacing) + sWonderCardData->statTextData[i].width; } @@ -473,7 +473,7 @@ static void CreateCardSprites(void) if (sWonderCardData->card.maxStamps != 0 && sWonderCardData->card.type == CARD_TYPE_STAMP) { LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_StampShadow); - LoadSpritePalette(&sSpritePalettes_StampShadow[sWonderCardData->gfx->index]); + LoadSpritePalette(&sSpritePalettes_StampShadow[sWonderCardData->gfx->stampShadowPal]); for (; i < sWonderCardData->card.maxStamps; i++) { sWonderCardData->stampSpriteIds[i][0] = SPRITE_NONE; diff --git a/src/mystery_gift_show_news.c b/src/mystery_gift_show_news.c index a6f72296b..b97e74c8c 100644 --- a/src/mystery_gift_show_news.c +++ b/src/mystery_gift_show_news.c @@ -20,7 +20,7 @@ enum { struct WonderNewsData { struct WonderNews news; - const struct UnkStruct_8467FB8 * gfx; + const struct WonderGraphics * gfx; bool8 verticalScrollDisabled:1; u8 enterExitState:7; u8 arrowTaskId; @@ -82,29 +82,29 @@ static const struct ScrollArrowsTemplate sArrowsTemplate = { .palNum = 0 }; -static const u16 sNews1Pal[] = INCBIN_U16("graphics/mevent/pal_468060.gbapal"); -static const u16 sNews6Pal[] = INCBIN_U16("graphics/mevent/pal_468080.gbapal"); -static const u16 sNews7Pal[] = INCBIN_U16("graphics/mevent/pal_4680A0.gbapal"); -static const u8 sNews0Gfx[] = INCBIN_U8("graphics/mevent/gfx_4680C0.4bpp.lz"); -static const u8 sNews0Map[] = INCBIN_U8("graphics/mevent/tilemap_468140.bin.lz"); -static const u8 sNews1Gfx[] = INCBIN_U8("graphics/mevent/gfx_46821C.4bpp.lz"); -static const u8 sNews1Map[] = INCBIN_U8("graphics/mevent/tilemap_46824C.bin.lz"); -static const u8 sNews2Gfx[] = INCBIN_U8("graphics/mevent/gfx_46830C.4bpp.lz"); -static const u8 sNews2Map[] = INCBIN_U8("graphics/mevent/tilemap_46837C.bin.lz"); -static const u8 sNews6Gfx[] = INCBIN_U8("graphics/mevent/gfx_468448.4bpp.lz"); -static const u8 sNews6Map[] = INCBIN_U8("graphics/mevent/tilemap_4684D8.bin.lz"); -static const u8 sNews7Gfx[] = INCBIN_U8("graphics/mevent/gfx_4685B4.4bpp.lz"); -static const u8 sNews7Map[] = INCBIN_U8("graphics/mevent/tilemap_468644.bin.lz"); +static const u16 sNews0Pal[] = INCBIN_U16("graphics/wonder_news/bg0.gbapal"); +static const u16 sNews6Pal[] = INCBIN_U16("graphics/wonder_news/bg6.gbapal"); +static const u16 sNews7Pal[] = INCBIN_U16("graphics/wonder_news/bg7.gbapal"); +static const u8 sNews0Gfx[] = INCBIN_U8("graphics/wonder_news/bg0.4bpp.lz"); +static const u8 sNews0Map[] = INCBIN_U8("graphics/wonder_news/bg0.bin.lz"); +static const u8 sNews1Gfx[] = INCBIN_U8("graphics/wonder_news/bg1.4bpp.lz"); +static const u8 sNews1Map[] = INCBIN_U8("graphics/wonder_news/bg1.bin.lz"); +static const u8 sNews2Gfx[] = INCBIN_U8("graphics/wonder_news/bg2.4bpp.lz"); +static const u8 sNews2Map[] = INCBIN_U8("graphics/wonder_news/bg2.bin.lz"); +static const u8 sNews6Gfx[] = INCBIN_U8("graphics/wonder_news/bg6.4bpp.lz"); +static const u8 sNews6Map[] = INCBIN_U8("graphics/wonder_news/bg6.bin.lz"); +static const u8 sNews7Gfx[] = INCBIN_U8("graphics/wonder_news/bg7.4bpp.lz"); +static const u8 sNews7Map[] = INCBIN_U8("graphics/wonder_news/bg7.bin.lz"); -static const struct UnkStruct_8467FB8 sNewsGraphics[NUM_WONDER_BGS] = { - {1, 0, 0, 0, sNews0Gfx, sNews0Map, sNews1Pal}, - {1, 0, 0, 0, sNews1Gfx, sNews1Map, gCard1Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard2Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard3Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard4Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard5Pal}, - {1, 0, 0, 0, sNews6Gfx, sNews6Map, sNews6Pal}, - {1, 0, 0, 0, sNews7Gfx, sNews7Map, sNews7Pal} +static const struct WonderGraphics sNewsGraphics[NUM_WONDER_BGS] = { + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews0Gfx, .map = sNews0Map, .pal = sNews0Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews1Gfx, .map = sNews1Map, .pal = gCard1Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard2Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard3Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard4Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard5Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews6Gfx, .map = sNews6Map, .pal = sNews6Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews7Gfx, .map = sNews7Map, .pal = sNews7Pal} }; bool32 WonderNews_Init(const struct WonderNews * news) @@ -363,14 +363,14 @@ static void DrawNewsWindows(void) x = (224 - GetStringWidth(FONT_3, sWonderNewsData->titleText, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING))) / 2; if (x < 0) x = 0; - AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_TITLE], FONT_3, x, 6, sTextColorTable[sWonderNewsData->gfx->textPal1], 0, sWonderNewsData->titleText); + AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_TITLE], FONT_3, x, 6, sTextColorTable[sWonderNewsData->gfx->titleTextPal], 0, sWonderNewsData->titleText); // Print body text for (; i < WONDER_NEWS_BODY_TEXT_LINES; ++i) { AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_BODY], FONT_3, 0, 16 * i + 2, - sTextColorTable[sWonderNewsData->gfx->textPal2], + sTextColorTable[sWonderNewsData->gfx->bodyTextPal], 0, sWonderNewsData->bodyText[i]); } CopyWindowToVram(sWonderNewsData->windowIds[WIN_TITLE], COPYWIN_FULL); From 8aae7ac7f38a33b0a049c3ca3d7e719fca465d3e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 29 Oct 2022 23:46:39 -0400 Subject: [PATCH 095/105] Sync pokedex constants --- include/constants/pokedex.h | 848 ++++++++++++++++++++++++++++++++++ include/constants/species.h | 893 ++---------------------------------- include/global.h | 1 + include/pokedex.h | 4 - src/menu2.c | 5 + src/pokemon.c | 7 +- src/prof_pc.c | 4 +- 7 files changed, 891 insertions(+), 871 deletions(-) create mode 100644 include/constants/pokedex.h diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h new file mode 100644 index 000000000..7ee1b3760 --- /dev/null +++ b/include/constants/pokedex.h @@ -0,0 +1,848 @@ +#ifndef GUARD_CONSTANTS_POKEDEX_H +#define GUARD_CONSTANTS_POKEDEX_H + +// National Pokedex order +enum { + NATIONAL_DEX_NONE, + // Kanto + NATIONAL_DEX_BULBASAUR, + NATIONAL_DEX_IVYSAUR, + NATIONAL_DEX_VENUSAUR, + NATIONAL_DEX_CHARMANDER, + NATIONAL_DEX_CHARMELEON, + NATIONAL_DEX_CHARIZARD, + NATIONAL_DEX_SQUIRTLE, + NATIONAL_DEX_WARTORTLE, + NATIONAL_DEX_BLASTOISE, + NATIONAL_DEX_CATERPIE, + NATIONAL_DEX_METAPOD, + NATIONAL_DEX_BUTTERFREE, + NATIONAL_DEX_WEEDLE, + NATIONAL_DEX_KAKUNA, + NATIONAL_DEX_BEEDRILL, + NATIONAL_DEX_PIDGEY, + NATIONAL_DEX_PIDGEOTTO, + NATIONAL_DEX_PIDGEOT, + NATIONAL_DEX_RATTATA, + NATIONAL_DEX_RATICATE, + NATIONAL_DEX_SPEAROW, + NATIONAL_DEX_FEAROW, + NATIONAL_DEX_EKANS, + NATIONAL_DEX_ARBOK, + NATIONAL_DEX_PIKACHU, + NATIONAL_DEX_RAICHU, + NATIONAL_DEX_SANDSHREW, + NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_NIDORAN_F, + NATIONAL_DEX_NIDORINA, + NATIONAL_DEX_NIDOQUEEN, + NATIONAL_DEX_NIDORAN_M, + NATIONAL_DEX_NIDORINO, + NATIONAL_DEX_NIDOKING, + NATIONAL_DEX_CLEFAIRY, + NATIONAL_DEX_CLEFABLE, + NATIONAL_DEX_VULPIX, + NATIONAL_DEX_NINETALES, + NATIONAL_DEX_JIGGLYPUFF, + NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_ZUBAT, + NATIONAL_DEX_GOLBAT, + NATIONAL_DEX_ODDISH, + NATIONAL_DEX_GLOOM, + NATIONAL_DEX_VILEPLUME, + NATIONAL_DEX_PARAS, + NATIONAL_DEX_PARASECT, + NATIONAL_DEX_VENONAT, + NATIONAL_DEX_VENOMOTH, + NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_DUGTRIO, + NATIONAL_DEX_MEOWTH, + NATIONAL_DEX_PERSIAN, + NATIONAL_DEX_PSYDUCK, + NATIONAL_DEX_GOLDUCK, + NATIONAL_DEX_MANKEY, + NATIONAL_DEX_PRIMEAPE, + NATIONAL_DEX_GROWLITHE, + NATIONAL_DEX_ARCANINE, + NATIONAL_DEX_POLIWAG, + NATIONAL_DEX_POLIWHIRL, + NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_ABRA, + NATIONAL_DEX_KADABRA, + NATIONAL_DEX_ALAKAZAM, + NATIONAL_DEX_MACHOP, + NATIONAL_DEX_MACHOKE, + NATIONAL_DEX_MACHAMP, + NATIONAL_DEX_BELLSPROUT, + NATIONAL_DEX_WEEPINBELL, + NATIONAL_DEX_VICTREEBEL, + NATIONAL_DEX_TENTACOOL, + NATIONAL_DEX_TENTACRUEL, + NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_GOLEM, + NATIONAL_DEX_PONYTA, + NATIONAL_DEX_RAPIDASH, + NATIONAL_DEX_SLOWPOKE, + NATIONAL_DEX_SLOWBRO, + NATIONAL_DEX_MAGNEMITE, + NATIONAL_DEX_MAGNETON, + NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_DODUO, + NATIONAL_DEX_DODRIO, + NATIONAL_DEX_SEEL, + NATIONAL_DEX_DEWGONG, + NATIONAL_DEX_GRIMER, + NATIONAL_DEX_MUK, + NATIONAL_DEX_SHELLDER, + NATIONAL_DEX_CLOYSTER, + NATIONAL_DEX_GASTLY, + NATIONAL_DEX_HAUNTER, + NATIONAL_DEX_GENGAR, + NATIONAL_DEX_ONIX, + NATIONAL_DEX_DROWZEE, + NATIONAL_DEX_HYPNO, + NATIONAL_DEX_KRABBY, + NATIONAL_DEX_KINGLER, + NATIONAL_DEX_VOLTORB, + NATIONAL_DEX_ELECTRODE, + NATIONAL_DEX_EXEGGCUTE, + NATIONAL_DEX_EXEGGUTOR, + NATIONAL_DEX_CUBONE, + NATIONAL_DEX_MAROWAK, + NATIONAL_DEX_HITMONLEE, + NATIONAL_DEX_HITMONCHAN, + NATIONAL_DEX_LICKITUNG, + NATIONAL_DEX_KOFFING, + NATIONAL_DEX_WEEZING, + NATIONAL_DEX_RHYHORN, + NATIONAL_DEX_RHYDON, + NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_TANGELA, + NATIONAL_DEX_KANGASKHAN, + NATIONAL_DEX_HORSEA, + NATIONAL_DEX_SEADRA, + NATIONAL_DEX_GOLDEEN, + NATIONAL_DEX_SEAKING, + NATIONAL_DEX_STARYU, + NATIONAL_DEX_STARMIE, + NATIONAL_DEX_MR_MIME, + NATIONAL_DEX_SCYTHER, + NATIONAL_DEX_JYNX, + NATIONAL_DEX_ELECTABUZZ, + NATIONAL_DEX_MAGMAR, + NATIONAL_DEX_PINSIR, + NATIONAL_DEX_TAUROS, + NATIONAL_DEX_MAGIKARP, + NATIONAL_DEX_GYARADOS, + NATIONAL_DEX_LAPRAS, + NATIONAL_DEX_DITTO, + NATIONAL_DEX_EEVEE, + NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_JOLTEON, + NATIONAL_DEX_FLAREON, + NATIONAL_DEX_PORYGON, + NATIONAL_DEX_OMANYTE, + NATIONAL_DEX_OMASTAR, + NATIONAL_DEX_KABUTO, + NATIONAL_DEX_KABUTOPS, + NATIONAL_DEX_AERODACTYL, + NATIONAL_DEX_SNORLAX, + NATIONAL_DEX_ARTICUNO, + NATIONAL_DEX_ZAPDOS, + NATIONAL_DEX_MOLTRES, + NATIONAL_DEX_DRATINI, + NATIONAL_DEX_DRAGONAIR, + NATIONAL_DEX_DRAGONITE, + NATIONAL_DEX_MEWTWO, + NATIONAL_DEX_MEW, + // Johto + NATIONAL_DEX_CHIKORITA, + NATIONAL_DEX_BAYLEEF, + NATIONAL_DEX_MEGANIUM, + NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_QUILAVA, + NATIONAL_DEX_TYPHLOSION, + NATIONAL_DEX_TOTODILE, + NATIONAL_DEX_CROCONAW, + NATIONAL_DEX_FERALIGATR, + NATIONAL_DEX_SENTRET, + NATIONAL_DEX_FURRET, + NATIONAL_DEX_HOOTHOOT, + NATIONAL_DEX_NOCTOWL, + NATIONAL_DEX_LEDYBA, + NATIONAL_DEX_LEDIAN, + NATIONAL_DEX_SPINARAK, + NATIONAL_DEX_ARIADOS, + NATIONAL_DEX_CROBAT, + NATIONAL_DEX_CHINCHOU, + NATIONAL_DEX_LANTURN, + NATIONAL_DEX_PICHU, + NATIONAL_DEX_CLEFFA, + NATIONAL_DEX_IGGLYBUFF, + NATIONAL_DEX_TOGEPI, + NATIONAL_DEX_TOGETIC, + NATIONAL_DEX_NATU, + NATIONAL_DEX_XATU, + NATIONAL_DEX_MAREEP, + NATIONAL_DEX_FLAAFFY, + NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_BELLOSSOM, + NATIONAL_DEX_MARILL, + NATIONAL_DEX_AZUMARILL, + NATIONAL_DEX_SUDOWOODO, + NATIONAL_DEX_POLITOED, + NATIONAL_DEX_HOPPIP, + NATIONAL_DEX_SKIPLOOM, + NATIONAL_DEX_JUMPLUFF, + NATIONAL_DEX_AIPOM, + NATIONAL_DEX_SUNKERN, + NATIONAL_DEX_SUNFLORA, + NATIONAL_DEX_YANMA, + NATIONAL_DEX_WOOPER, + NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_ESPEON, + NATIONAL_DEX_UMBREON, + NATIONAL_DEX_MURKROW, + NATIONAL_DEX_SLOWKING, + NATIONAL_DEX_MISDREAVUS, + NATIONAL_DEX_UNOWN, + NATIONAL_DEX_WOBBUFFET, + NATIONAL_DEX_GIRAFARIG, + NATIONAL_DEX_PINECO, + NATIONAL_DEX_FORRETRESS, + NATIONAL_DEX_DUNSPARCE, + NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_STEELIX, + NATIONAL_DEX_SNUBBULL, + NATIONAL_DEX_GRANBULL, + NATIONAL_DEX_QWILFISH, + NATIONAL_DEX_SCIZOR, + NATIONAL_DEX_SHUCKLE, + NATIONAL_DEX_HERACROSS, + NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_TEDDIURSA, + NATIONAL_DEX_URSARING, + NATIONAL_DEX_SLUGMA, + NATIONAL_DEX_MAGCARGO, + NATIONAL_DEX_SWINUB, + NATIONAL_DEX_PILOSWINE, + NATIONAL_DEX_CORSOLA, + NATIONAL_DEX_REMORAID, + NATIONAL_DEX_OCTILLERY, + NATIONAL_DEX_DELIBIRD, + NATIONAL_DEX_MANTINE, + NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_KINGDRA, + NATIONAL_DEX_PHANPY, + NATIONAL_DEX_DONPHAN, + NATIONAL_DEX_PORYGON2, + NATIONAL_DEX_STANTLER, + NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_TYROGUE, + NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_SMOOCHUM, + NATIONAL_DEX_ELEKID, + NATIONAL_DEX_MAGBY, + NATIONAL_DEX_MILTANK, + NATIONAL_DEX_BLISSEY, + NATIONAL_DEX_RAIKOU, + NATIONAL_DEX_ENTEI, + NATIONAL_DEX_SUICUNE, + NATIONAL_DEX_LARVITAR, + NATIONAL_DEX_PUPITAR, + NATIONAL_DEX_TYRANITAR, + NATIONAL_DEX_LUGIA, + NATIONAL_DEX_HO_OH, + NATIONAL_DEX_CELEBI, + // Hoenn + NATIONAL_DEX_TREECKO, + NATIONAL_DEX_GROVYLE, + NATIONAL_DEX_SCEPTILE, + NATIONAL_DEX_TORCHIC, + NATIONAL_DEX_COMBUSKEN, + NATIONAL_DEX_BLAZIKEN, + NATIONAL_DEX_MUDKIP, + NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_SWAMPERT, + NATIONAL_DEX_POOCHYENA, + NATIONAL_DEX_MIGHTYENA, + NATIONAL_DEX_ZIGZAGOON, + NATIONAL_DEX_LINOONE, + NATIONAL_DEX_WURMPLE, + NATIONAL_DEX_SILCOON, + NATIONAL_DEX_BEAUTIFLY, + NATIONAL_DEX_CASCOON, + NATIONAL_DEX_DUSTOX, + NATIONAL_DEX_LOTAD, + NATIONAL_DEX_LOMBRE, + NATIONAL_DEX_LUDICOLO, + NATIONAL_DEX_SEEDOT, + NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_SHIFTRY, + NATIONAL_DEX_TAILLOW, + NATIONAL_DEX_SWELLOW, + NATIONAL_DEX_WINGULL, + NATIONAL_DEX_PELIPPER, + NATIONAL_DEX_RALTS, + NATIONAL_DEX_KIRLIA, + NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_SURSKIT, + NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_SHROOMISH, + NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_SLAKOTH, + NATIONAL_DEX_VIGOROTH, + NATIONAL_DEX_SLAKING, + NATIONAL_DEX_NINCADA, + NATIONAL_DEX_NINJASK, + NATIONAL_DEX_SHEDINJA, + NATIONAL_DEX_WHISMUR, + NATIONAL_DEX_LOUDRED, + NATIONAL_DEX_EXPLOUD, + NATIONAL_DEX_MAKUHITA, + NATIONAL_DEX_HARIYAMA, + NATIONAL_DEX_AZURILL, + NATIONAL_DEX_NOSEPASS, + NATIONAL_DEX_SKITTY, + NATIONAL_DEX_DELCATTY, + NATIONAL_DEX_SABLEYE, + NATIONAL_DEX_MAWILE, + NATIONAL_DEX_ARON, + NATIONAL_DEX_LAIRON, + NATIONAL_DEX_AGGRON, + NATIONAL_DEX_MEDITITE, + NATIONAL_DEX_MEDICHAM, + NATIONAL_DEX_ELECTRIKE, + NATIONAL_DEX_MANECTRIC, + NATIONAL_DEX_PLUSLE, + NATIONAL_DEX_MINUN, + NATIONAL_DEX_VOLBEAT, + NATIONAL_DEX_ILLUMISE, + NATIONAL_DEX_ROSELIA, + NATIONAL_DEX_GULPIN, + NATIONAL_DEX_SWALOT, + NATIONAL_DEX_CARVANHA, + NATIONAL_DEX_SHARPEDO, + NATIONAL_DEX_WAILMER, + NATIONAL_DEX_WAILORD, + NATIONAL_DEX_NUMEL, + NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_TORKOAL, + NATIONAL_DEX_SPOINK, + NATIONAL_DEX_GRUMPIG, + NATIONAL_DEX_SPINDA, + NATIONAL_DEX_TRAPINCH, + NATIONAL_DEX_VIBRAVA, + NATIONAL_DEX_FLYGON, + NATIONAL_DEX_CACNEA, + NATIONAL_DEX_CACTURNE, + NATIONAL_DEX_SWABLU, + NATIONAL_DEX_ALTARIA, + NATIONAL_DEX_ZANGOOSE, + NATIONAL_DEX_SEVIPER, + NATIONAL_DEX_LUNATONE, + NATIONAL_DEX_SOLROCK, + NATIONAL_DEX_BARBOACH, + NATIONAL_DEX_WHISCASH, + NATIONAL_DEX_CORPHISH, + NATIONAL_DEX_CRAWDAUNT, + NATIONAL_DEX_BALTOY, + NATIONAL_DEX_CLAYDOL, + NATIONAL_DEX_LILEEP, + NATIONAL_DEX_CRADILY, + NATIONAL_DEX_ANORITH, + NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_FEEBAS, + NATIONAL_DEX_MILOTIC, + NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_KECLEON, + NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_BANETTE, + NATIONAL_DEX_DUSKULL, + NATIONAL_DEX_DUSCLOPS, + NATIONAL_DEX_TROPIUS, + NATIONAL_DEX_CHIMECHO, + NATIONAL_DEX_ABSOL, + NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_SNORUNT, + NATIONAL_DEX_GLALIE, + NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_SEALEO, + NATIONAL_DEX_WALREIN, + NATIONAL_DEX_CLAMPERL, + NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_GOREBYSS, + NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_LUVDISC, + NATIONAL_DEX_BAGON, + NATIONAL_DEX_SHELGON, + NATIONAL_DEX_SALAMENCE, + NATIONAL_DEX_BELDUM, + NATIONAL_DEX_METANG, + NATIONAL_DEX_METAGROSS, + NATIONAL_DEX_REGIROCK, + NATIONAL_DEX_REGICE, + NATIONAL_DEX_REGISTEEL, + NATIONAL_DEX_LATIAS, + NATIONAL_DEX_LATIOS, + NATIONAL_DEX_KYOGRE, + NATIONAL_DEX_GROUDON, + NATIONAL_DEX_RAYQUAZA, + NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_DEOXYS, + // Old Unown + NATIONAL_DEX_OLD_UNOWN_B, + NATIONAL_DEX_OLD_UNOWN_C, + NATIONAL_DEX_OLD_UNOWN_D, + NATIONAL_DEX_OLD_UNOWN_E, + NATIONAL_DEX_OLD_UNOWN_F, + NATIONAL_DEX_OLD_UNOWN_G, + NATIONAL_DEX_OLD_UNOWN_H, + NATIONAL_DEX_OLD_UNOWN_I, + NATIONAL_DEX_OLD_UNOWN_J, + NATIONAL_DEX_OLD_UNOWN_K, + NATIONAL_DEX_OLD_UNOWN_L, + NATIONAL_DEX_OLD_UNOWN_M, + NATIONAL_DEX_OLD_UNOWN_N, + NATIONAL_DEX_OLD_UNOWN_O, + NATIONAL_DEX_OLD_UNOWN_P, + NATIONAL_DEX_OLD_UNOWN_Q, + NATIONAL_DEX_OLD_UNOWN_R, + NATIONAL_DEX_OLD_UNOWN_S, + NATIONAL_DEX_OLD_UNOWN_T, + NATIONAL_DEX_OLD_UNOWN_U, + NATIONAL_DEX_OLD_UNOWN_V, + NATIONAL_DEX_OLD_UNOWN_W, + NATIONAL_DEX_OLD_UNOWN_X, + NATIONAL_DEX_OLD_UNOWN_Y, + NATIONAL_DEX_OLD_UNOWN_Z, +}; + +#define KANTO_DEX_COUNT NATIONAL_DEX_MEW +#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI +#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS + +// Hoenn Pokedex order +enum { + HOENN_DEX_NONE, + HOENN_DEX_TREECKO, + HOENN_DEX_GROVYLE, + HOENN_DEX_SCEPTILE, + HOENN_DEX_TORCHIC, + HOENN_DEX_COMBUSKEN, + HOENN_DEX_BLAZIKEN, + HOENN_DEX_MUDKIP, + HOENN_DEX_MARSHTOMP, + HOENN_DEX_SWAMPERT, + HOENN_DEX_POOCHYENA, + HOENN_DEX_MIGHTYENA, + HOENN_DEX_ZIGZAGOON, + HOENN_DEX_LINOONE, + HOENN_DEX_WURMPLE, + HOENN_DEX_SILCOON, + HOENN_DEX_BEAUTIFLY, + HOENN_DEX_CASCOON, + HOENN_DEX_DUSTOX, + HOENN_DEX_LOTAD, + HOENN_DEX_LOMBRE, + HOENN_DEX_LUDICOLO, + HOENN_DEX_SEEDOT, + HOENN_DEX_NUZLEAF, + HOENN_DEX_SHIFTRY, + HOENN_DEX_TAILLOW, + HOENN_DEX_SWELLOW, + HOENN_DEX_WINGULL, + HOENN_DEX_PELIPPER, + HOENN_DEX_RALTS, + HOENN_DEX_KIRLIA, + HOENN_DEX_GARDEVOIR, + HOENN_DEX_SURSKIT, + HOENN_DEX_MASQUERAIN, + HOENN_DEX_SHROOMISH, + HOENN_DEX_BRELOOM, + HOENN_DEX_SLAKOTH, + HOENN_DEX_VIGOROTH, + HOENN_DEX_SLAKING, + HOENN_DEX_ABRA, + HOENN_DEX_KADABRA, + HOENN_DEX_ALAKAZAM, + HOENN_DEX_NINCADA, + HOENN_DEX_NINJASK, + HOENN_DEX_SHEDINJA, + HOENN_DEX_WHISMUR, + HOENN_DEX_LOUDRED, + HOENN_DEX_EXPLOUD, + HOENN_DEX_MAKUHITA, + HOENN_DEX_HARIYAMA, + HOENN_DEX_GOLDEEN, + HOENN_DEX_SEAKING, + HOENN_DEX_MAGIKARP, + HOENN_DEX_GYARADOS, + HOENN_DEX_AZURILL, + HOENN_DEX_MARILL, + HOENN_DEX_AZUMARILL, + HOENN_DEX_GEODUDE, + HOENN_DEX_GRAVELER, + HOENN_DEX_GOLEM, + HOENN_DEX_NOSEPASS, + HOENN_DEX_SKITTY, + HOENN_DEX_DELCATTY, + HOENN_DEX_ZUBAT, + HOENN_DEX_GOLBAT, + HOENN_DEX_CROBAT, + HOENN_DEX_TENTACOOL, + HOENN_DEX_TENTACRUEL, + HOENN_DEX_SABLEYE, + HOENN_DEX_MAWILE, + HOENN_DEX_ARON, + HOENN_DEX_LAIRON, + HOENN_DEX_AGGRON, + HOENN_DEX_MACHOP, + HOENN_DEX_MACHOKE, + HOENN_DEX_MACHAMP, + HOENN_DEX_MEDITITE, + HOENN_DEX_MEDICHAM, + HOENN_DEX_ELECTRIKE, + HOENN_DEX_MANECTRIC, + HOENN_DEX_PLUSLE, + HOENN_DEX_MINUN, + HOENN_DEX_MAGNEMITE, + HOENN_DEX_MAGNETON, + HOENN_DEX_VOLTORB, + HOENN_DEX_ELECTRODE, + HOENN_DEX_VOLBEAT, + HOENN_DEX_ILLUMISE, + HOENN_DEX_ODDISH, + HOENN_DEX_GLOOM, + HOENN_DEX_VILEPLUME, + HOENN_DEX_BELLOSSOM, + HOENN_DEX_DODUO, + HOENN_DEX_DODRIO, + HOENN_DEX_ROSELIA, + HOENN_DEX_GULPIN, + HOENN_DEX_SWALOT, + HOENN_DEX_CARVANHA, + HOENN_DEX_SHARPEDO, + HOENN_DEX_WAILMER, + HOENN_DEX_WAILORD, + HOENN_DEX_NUMEL, + HOENN_DEX_CAMERUPT, + HOENN_DEX_SLUGMA, + HOENN_DEX_MAGCARGO, + HOENN_DEX_TORKOAL, + HOENN_DEX_GRIMER, + HOENN_DEX_MUK, + HOENN_DEX_KOFFING, + HOENN_DEX_WEEZING, + HOENN_DEX_SPOINK, + HOENN_DEX_GRUMPIG, + HOENN_DEX_SANDSHREW, + HOENN_DEX_SANDSLASH, + HOENN_DEX_SPINDA, + HOENN_DEX_SKARMORY, + HOENN_DEX_TRAPINCH, + HOENN_DEX_VIBRAVA, + HOENN_DEX_FLYGON, + HOENN_DEX_CACNEA, + HOENN_DEX_CACTURNE, + HOENN_DEX_SWABLU, + HOENN_DEX_ALTARIA, + HOENN_DEX_ZANGOOSE, + HOENN_DEX_SEVIPER, + HOENN_DEX_LUNATONE, + HOENN_DEX_SOLROCK, + HOENN_DEX_BARBOACH, + HOENN_DEX_WHISCASH, + HOENN_DEX_CORPHISH, + HOENN_DEX_CRAWDAUNT, + HOENN_DEX_BALTOY, + HOENN_DEX_CLAYDOL, + HOENN_DEX_LILEEP, + HOENN_DEX_CRADILY, + HOENN_DEX_ANORITH, + HOENN_DEX_ARMALDO, + HOENN_DEX_IGGLYBUFF, + HOENN_DEX_JIGGLYPUFF, + HOENN_DEX_WIGGLYTUFF, + HOENN_DEX_FEEBAS, + HOENN_DEX_MILOTIC, + HOENN_DEX_CASTFORM, + HOENN_DEX_STARYU, + HOENN_DEX_STARMIE, + HOENN_DEX_KECLEON, + HOENN_DEX_SHUPPET, + HOENN_DEX_BANETTE, + HOENN_DEX_DUSKULL, + HOENN_DEX_DUSCLOPS, + HOENN_DEX_TROPIUS, + HOENN_DEX_CHIMECHO, + HOENN_DEX_ABSOL, + HOENN_DEX_VULPIX, + HOENN_DEX_NINETALES, + HOENN_DEX_PICHU, + HOENN_DEX_PIKACHU, + HOENN_DEX_RAICHU, + HOENN_DEX_PSYDUCK, + HOENN_DEX_GOLDUCK, + HOENN_DEX_WYNAUT, + HOENN_DEX_WOBBUFFET, + HOENN_DEX_NATU, + HOENN_DEX_XATU, + HOENN_DEX_GIRAFARIG, + HOENN_DEX_PHANPY, + HOENN_DEX_DONPHAN, + HOENN_DEX_PINSIR, + HOENN_DEX_HERACROSS, + HOENN_DEX_RHYHORN, + HOENN_DEX_RHYDON, + HOENN_DEX_SNORUNT, + HOENN_DEX_GLALIE, + HOENN_DEX_SPHEAL, + HOENN_DEX_SEALEO, + HOENN_DEX_WALREIN, + HOENN_DEX_CLAMPERL, + HOENN_DEX_HUNTAIL, + HOENN_DEX_GOREBYSS, + HOENN_DEX_RELICANTH, + HOENN_DEX_CORSOLA, + HOENN_DEX_CHINCHOU, + HOENN_DEX_LANTURN, + HOENN_DEX_LUVDISC, + HOENN_DEX_HORSEA, + HOENN_DEX_SEADRA, + HOENN_DEX_KINGDRA, + HOENN_DEX_BAGON, + HOENN_DEX_SHELGON, + HOENN_DEX_SALAMENCE, + HOENN_DEX_BELDUM, + HOENN_DEX_METANG, + HOENN_DEX_METAGROSS, + HOENN_DEX_REGIROCK, + HOENN_DEX_REGICE, + HOENN_DEX_REGISTEEL, + HOENN_DEX_LATIAS, + HOENN_DEX_LATIOS, + HOENN_DEX_KYOGRE, + HOENN_DEX_GROUDON, + HOENN_DEX_RAYQUAZA, + HOENN_DEX_JIRACHI, + HOENN_DEX_DEOXYS, + // End of Hoenn Dex (see HOENN_DEX_COUNT) + // Here below have values but are excluded from the Pokedex + HOENN_DEX_BULBASAUR, + HOENN_DEX_IVYSAUR, + HOENN_DEX_VENUSAUR, + HOENN_DEX_CHARMANDER, + HOENN_DEX_CHARMELEON, + HOENN_DEX_CHARIZARD, + HOENN_DEX_SQUIRTLE, + HOENN_DEX_WARTORTLE, + HOENN_DEX_BLASTOISE, + HOENN_DEX_CATERPIE, + HOENN_DEX_METAPOD, + HOENN_DEX_BUTTERFREE, + HOENN_DEX_WEEDLE, + HOENN_DEX_KAKUNA, + HOENN_DEX_BEEDRILL, + HOENN_DEX_PIDGEY, + HOENN_DEX_PIDGEOTTO, + HOENN_DEX_PIDGEOT, + HOENN_DEX_RATTATA, + HOENN_DEX_RATICATE, + HOENN_DEX_SPEAROW, + HOENN_DEX_FEAROW, + HOENN_DEX_EKANS, + HOENN_DEX_ARBOK, + HOENN_DEX_NIDORAN_F, + HOENN_DEX_NIDORINA, + HOENN_DEX_NIDOQUEEN, + HOENN_DEX_NIDORAN_M, + HOENN_DEX_NIDORINO, + HOENN_DEX_NIDOKING, + HOENN_DEX_CLEFAIRY, + HOENN_DEX_CLEFABLE, + HOENN_DEX_PARAS, + HOENN_DEX_PARASECT, + HOENN_DEX_VENONAT, + HOENN_DEX_VENOMOTH, + HOENN_DEX_DIGLETT, + HOENN_DEX_DUGTRIO, + HOENN_DEX_MEOWTH, + HOENN_DEX_PERSIAN, + HOENN_DEX_MANKEY, + HOENN_DEX_PRIMEAPE, + HOENN_DEX_GROWLITHE, + HOENN_DEX_ARCANINE, + HOENN_DEX_POLIWAG, + HOENN_DEX_POLIWHIRL, + HOENN_DEX_POLIWRATH, + HOENN_DEX_BELLSPROUT, + HOENN_DEX_WEEPINBELL, + HOENN_DEX_VICTREEBEL, + HOENN_DEX_PONYTA, + HOENN_DEX_RAPIDASH, + HOENN_DEX_SLOWPOKE, + HOENN_DEX_SLOWBRO, + HOENN_DEX_FARFETCHD, + HOENN_DEX_SEEL, + HOENN_DEX_DEWGONG, + HOENN_DEX_SHELLDER, + HOENN_DEX_CLOYSTER, + HOENN_DEX_GASTLY, + HOENN_DEX_HAUNTER, + HOENN_DEX_GENGAR, + HOENN_DEX_ONIX, + HOENN_DEX_DROWZEE, + HOENN_DEX_HYPNO, + HOENN_DEX_KRABBY, + HOENN_DEX_KINGLER, + HOENN_DEX_EXEGGCUTE, + HOENN_DEX_EXEGGUTOR, + HOENN_DEX_CUBONE, + HOENN_DEX_MAROWAK, + HOENN_DEX_HITMONLEE, + HOENN_DEX_HITMONCHAN, + HOENN_DEX_LICKITUNG, + HOENN_DEX_CHANSEY, + HOENN_DEX_TANGELA, + HOENN_DEX_KANGASKHAN, + HOENN_DEX_MR_MIME, + HOENN_DEX_SCYTHER, + HOENN_DEX_JYNX, + HOENN_DEX_ELECTABUZZ, + HOENN_DEX_MAGMAR, + HOENN_DEX_TAUROS, + HOENN_DEX_LAPRAS, + HOENN_DEX_DITTO, + HOENN_DEX_EEVEE, + HOENN_DEX_VAPOREON, + HOENN_DEX_JOLTEON, + HOENN_DEX_FLAREON, + HOENN_DEX_PORYGON, + HOENN_DEX_OMANYTE, + HOENN_DEX_OMASTAR, + HOENN_DEX_KABUTO, + HOENN_DEX_KABUTOPS, + HOENN_DEX_AERODACTYL, + HOENN_DEX_SNORLAX, + HOENN_DEX_ARTICUNO, + HOENN_DEX_ZAPDOS, + HOENN_DEX_MOLTRES, + HOENN_DEX_DRATINI, + HOENN_DEX_DRAGONAIR, + HOENN_DEX_DRAGONITE, + HOENN_DEX_MEWTWO, + HOENN_DEX_MEW, + HOENN_DEX_CHIKORITA, + HOENN_DEX_BAYLEEF, + HOENN_DEX_MEGANIUM, + HOENN_DEX_CYNDAQUIL, + HOENN_DEX_QUILAVA, + HOENN_DEX_TYPHLOSION, + HOENN_DEX_TOTODILE, + HOENN_DEX_CROCONAW, + HOENN_DEX_FERALIGATR, + HOENN_DEX_SENTRET, + HOENN_DEX_FURRET, + HOENN_DEX_HOOTHOOT, + HOENN_DEX_NOCTOWL, + HOENN_DEX_LEDYBA, + HOENN_DEX_LEDIAN, + HOENN_DEX_SPINARAK, + HOENN_DEX_ARIADOS, + HOENN_DEX_CLEFFA, + HOENN_DEX_TOGEPI, + HOENN_DEX_TOGETIC, + HOENN_DEX_MAREEP, + HOENN_DEX_FLAAFFY, + HOENN_DEX_AMPHAROS, + HOENN_DEX_SUDOWOODO, + HOENN_DEX_POLITOED, + HOENN_DEX_HOPPIP, + HOENN_DEX_SKIPLOOM, + HOENN_DEX_JUMPLUFF, + HOENN_DEX_AIPOM, + HOENN_DEX_SUNKERN, + HOENN_DEX_SUNFLORA, + HOENN_DEX_YANMA, + HOENN_DEX_WOOPER, + HOENN_DEX_QUAGSIRE, + HOENN_DEX_ESPEON, + HOENN_DEX_UMBREON, + HOENN_DEX_MURKROW, + HOENN_DEX_SLOWKING, + HOENN_DEX_MISDREAVUS, + HOENN_DEX_UNOWN, + HOENN_DEX_PINECO, + HOENN_DEX_FORRETRESS, + HOENN_DEX_DUNSPARCE, + HOENN_DEX_GLIGAR, + HOENN_DEX_STEELIX, + HOENN_DEX_SNUBBULL, + HOENN_DEX_GRANBULL, + HOENN_DEX_QWILFISH, + HOENN_DEX_SCIZOR, + HOENN_DEX_SHUCKLE, + HOENN_DEX_SNEASEL, + HOENN_DEX_TEDDIURSA, + HOENN_DEX_URSARING, + HOENN_DEX_SWINUB, + HOENN_DEX_PILOSWINE, + HOENN_DEX_REMORAID, + HOENN_DEX_OCTILLERY, + HOENN_DEX_DELIBIRD, + HOENN_DEX_MANTINE, + HOENN_DEX_HOUNDOUR, + HOENN_DEX_HOUNDOOM, + HOENN_DEX_PORYGON2, + HOENN_DEX_STANTLER, + HOENN_DEX_SMEARGLE, + HOENN_DEX_TYROGUE, + HOENN_DEX_HITMONTOP, + HOENN_DEX_SMOOCHUM, + HOENN_DEX_ELEKID, + HOENN_DEX_MAGBY, + HOENN_DEX_MILTANK, + HOENN_DEX_BLISSEY, + HOENN_DEX_RAIKOU, + HOENN_DEX_ENTEI, + HOENN_DEX_SUICUNE, + HOENN_DEX_LARVITAR, + HOENN_DEX_PUPITAR, + HOENN_DEX_TYRANITAR, + HOENN_DEX_LUGIA, + HOENN_DEX_HO_OH, + HOENN_DEX_CELEBI, + HOENN_DEX_OLD_UNOWN_B, + HOENN_DEX_OLD_UNOWN_C, + HOENN_DEX_OLD_UNOWN_D, + HOENN_DEX_OLD_UNOWN_E, + HOENN_DEX_OLD_UNOWN_F, + HOENN_DEX_OLD_UNOWN_G, + HOENN_DEX_OLD_UNOWN_H, + HOENN_DEX_OLD_UNOWN_I, + HOENN_DEX_OLD_UNOWN_J, + HOENN_DEX_OLD_UNOWN_K, + HOENN_DEX_OLD_UNOWN_L, + HOENN_DEX_OLD_UNOWN_M, + HOENN_DEX_OLD_UNOWN_N, + HOENN_DEX_OLD_UNOWN_O, + HOENN_DEX_OLD_UNOWN_P, + HOENN_DEX_OLD_UNOWN_Q, + HOENN_DEX_OLD_UNOWN_R, + HOENN_DEX_OLD_UNOWN_S, + HOENN_DEX_OLD_UNOWN_T, + HOENN_DEX_OLD_UNOWN_U, + HOENN_DEX_OLD_UNOWN_V, + HOENN_DEX_OLD_UNOWN_W, + HOENN_DEX_OLD_UNOWN_X, + HOENN_DEX_OLD_UNOWN_Y, + HOENN_DEX_OLD_UNOWN_Z, +}; + +#define HOENN_DEX_COUNT HOENN_DEX_DEOXYS + +#endif // GUARD_CONSTANTS_POKEDEX_H diff --git a/include/constants/species.h b/include/constants/species.h index 89da836f7..7446cc138 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -153,6 +153,9 @@ #define SPECIES_DRAGONITE 149 #define SPECIES_MEWTWO 150 #define SPECIES_MEW 151 + +#define KANTO_SPECIES_END SPECIES_MEW + #define SPECIES_CHIKORITA 152 #define SPECIES_BAYLEEF 153 #define SPECIES_MEGANIUM 154 @@ -417,870 +420,34 @@ #define SPECIES_CHIMECHO 411 #define SPECIES_EGG 412 -#define SPECIES_UNOWN_B 413 -#define SPECIES_UNOWN_C 414 -#define SPECIES_UNOWN_D 415 -#define SPECIES_UNOWN_E 416 -#define SPECIES_UNOWN_F 417 -#define SPECIES_UNOWN_G 418 -#define SPECIES_UNOWN_H 419 -#define SPECIES_UNOWN_I 420 -#define SPECIES_UNOWN_J 421 -#define SPECIES_UNOWN_K 422 -#define SPECIES_UNOWN_L 423 -#define SPECIES_UNOWN_M 424 -#define SPECIES_UNOWN_N 425 -#define SPECIES_UNOWN_O 426 -#define SPECIES_UNOWN_P 427 -#define SPECIES_UNOWN_Q 428 -#define SPECIES_UNOWN_R 429 -#define SPECIES_UNOWN_S 430 -#define SPECIES_UNOWN_T 431 -#define SPECIES_UNOWN_U 432 -#define SPECIES_UNOWN_V 433 -#define SPECIES_UNOWN_W 434 -#define SPECIES_UNOWN_X 435 -#define SPECIES_UNOWN_Y 436 -#define SPECIES_UNOWN_Z 437 -#define SPECIES_UNOWN_EMARK 438 -#define SPECIES_UNOWN_QMARK 439 - -#define SPECIES_OLD_UNOWN_EMARK 412 -#define SPECIES_OLD_UNOWN_QMARK 413 - #define NUM_SPECIES SPECIES_EGG -// National Dex Index Defines - -#define NATIONAL_DEX_NONE 0 -#define NATIONAL_DEX_BULBASAUR 1 -#define NATIONAL_DEX_IVYSAUR 2 -#define NATIONAL_DEX_VENUSAUR 3 -#define NATIONAL_DEX_CHARMANDER 4 -#define NATIONAL_DEX_CHARMELEON 5 -#define NATIONAL_DEX_CHARIZARD 6 -#define NATIONAL_DEX_SQUIRTLE 7 -#define NATIONAL_DEX_WARTORTLE 8 -#define NATIONAL_DEX_BLASTOISE 9 -#define NATIONAL_DEX_CATERPIE 10 -#define NATIONAL_DEX_METAPOD 11 -#define NATIONAL_DEX_BUTTERFREE 12 -#define NATIONAL_DEX_WEEDLE 13 -#define NATIONAL_DEX_KAKUNA 14 -#define NATIONAL_DEX_BEEDRILL 15 -#define NATIONAL_DEX_PIDGEY 16 -#define NATIONAL_DEX_PIDGEOTTO 17 -#define NATIONAL_DEX_PIDGEOT 18 -#define NATIONAL_DEX_RATTATA 19 -#define NATIONAL_DEX_RATICATE 20 -#define NATIONAL_DEX_SPEAROW 21 -#define NATIONAL_DEX_FEAROW 22 -#define NATIONAL_DEX_EKANS 23 -#define NATIONAL_DEX_ARBOK 24 -#define NATIONAL_DEX_PIKACHU 25 -#define NATIONAL_DEX_RAICHU 26 -#define NATIONAL_DEX_SANDSHREW 27 -#define NATIONAL_DEX_SANDSLASH 28 -#define NATIONAL_DEX_NIDORAN_F 29 -#define NATIONAL_DEX_NIDORINA 30 -#define NATIONAL_DEX_NIDOQUEEN 31 -#define NATIONAL_DEX_NIDORAN_M 32 -#define NATIONAL_DEX_NIDORINO 33 -#define NATIONAL_DEX_NIDOKING 34 -#define NATIONAL_DEX_CLEFAIRY 35 -#define NATIONAL_DEX_CLEFABLE 36 -#define NATIONAL_DEX_VULPIX 37 -#define NATIONAL_DEX_NINETALES 38 -#define NATIONAL_DEX_JIGGLYPUFF 39 -#define NATIONAL_DEX_WIGGLYTUFF 40 -#define NATIONAL_DEX_ZUBAT 41 -#define NATIONAL_DEX_GOLBAT 42 -#define NATIONAL_DEX_ODDISH 43 -#define NATIONAL_DEX_GLOOM 44 -#define NATIONAL_DEX_VILEPLUME 45 -#define NATIONAL_DEX_PARAS 46 -#define NATIONAL_DEX_PARASECT 47 -#define NATIONAL_DEX_VENONAT 48 -#define NATIONAL_DEX_VENOMOTH 49 -#define NATIONAL_DEX_DIGLETT 50 -#define NATIONAL_DEX_DUGTRIO 51 -#define NATIONAL_DEX_MEOWTH 52 -#define NATIONAL_DEX_PERSIAN 53 -#define NATIONAL_DEX_PSYDUCK 54 -#define NATIONAL_DEX_GOLDUCK 55 -#define NATIONAL_DEX_MANKEY 56 -#define NATIONAL_DEX_PRIMEAPE 57 -#define NATIONAL_DEX_GROWLITHE 58 -#define NATIONAL_DEX_ARCANINE 59 -#define NATIONAL_DEX_POLIWAG 60 -#define NATIONAL_DEX_POLIWHIRL 61 -#define NATIONAL_DEX_POLIWRATH 62 -#define NATIONAL_DEX_ABRA 63 -#define NATIONAL_DEX_KADABRA 64 -#define NATIONAL_DEX_ALAKAZAM 65 -#define NATIONAL_DEX_MACHOP 66 -#define NATIONAL_DEX_MACHOKE 67 -#define NATIONAL_DEX_MACHAMP 68 -#define NATIONAL_DEX_BELLSPROUT 69 -#define NATIONAL_DEX_WEEPINBELL 70 -#define NATIONAL_DEX_VICTREEBEL 71 -#define NATIONAL_DEX_TENTACOOL 72 -#define NATIONAL_DEX_TENTACRUEL 73 -#define NATIONAL_DEX_GEODUDE 74 -#define NATIONAL_DEX_GRAVELER 75 -#define NATIONAL_DEX_GOLEM 76 -#define NATIONAL_DEX_PONYTA 77 -#define NATIONAL_DEX_RAPIDASH 78 -#define NATIONAL_DEX_SLOWPOKE 79 -#define NATIONAL_DEX_SLOWBRO 80 -#define NATIONAL_DEX_MAGNEMITE 81 -#define NATIONAL_DEX_MAGNETON 82 -#define NATIONAL_DEX_FARFETCHD 83 -#define NATIONAL_DEX_DODUO 84 -#define NATIONAL_DEX_DODRIO 85 -#define NATIONAL_DEX_SEEL 86 -#define NATIONAL_DEX_DEWGONG 87 -#define NATIONAL_DEX_GRIMER 88 -#define NATIONAL_DEX_MUK 89 -#define NATIONAL_DEX_SHELLDER 90 -#define NATIONAL_DEX_CLOYSTER 91 -#define NATIONAL_DEX_GASTLY 92 -#define NATIONAL_DEX_HAUNTER 93 -#define NATIONAL_DEX_GENGAR 94 -#define NATIONAL_DEX_ONIX 95 -#define NATIONAL_DEX_DROWZEE 96 -#define NATIONAL_DEX_HYPNO 97 -#define NATIONAL_DEX_KRABBY 98 -#define NATIONAL_DEX_KINGLER 99 -#define NATIONAL_DEX_VOLTORB 100 -#define NATIONAL_DEX_ELECTRODE 101 -#define NATIONAL_DEX_EXEGGCUTE 102 -#define NATIONAL_DEX_EXEGGUTOR 103 -#define NATIONAL_DEX_CUBONE 104 -#define NATIONAL_DEX_MAROWAK 105 -#define NATIONAL_DEX_HITMONLEE 106 -#define NATIONAL_DEX_HITMONCHAN 107 -#define NATIONAL_DEX_LICKITUNG 108 -#define NATIONAL_DEX_KOFFING 109 -#define NATIONAL_DEX_WEEZING 110 -#define NATIONAL_DEX_RHYHORN 111 -#define NATIONAL_DEX_RHYDON 112 -#define NATIONAL_DEX_CHANSEY 113 -#define NATIONAL_DEX_TANGELA 114 -#define NATIONAL_DEX_KANGASKHAN 115 -#define NATIONAL_DEX_HORSEA 116 -#define NATIONAL_DEX_SEADRA 117 -#define NATIONAL_DEX_GOLDEEN 118 -#define NATIONAL_DEX_SEAKING 119 -#define NATIONAL_DEX_STARYU 120 -#define NATIONAL_DEX_STARMIE 121 -#define NATIONAL_DEX_MR_MIME 122 -#define NATIONAL_DEX_SCYTHER 123 -#define NATIONAL_DEX_JYNX 124 -#define NATIONAL_DEX_ELECTABUZZ 125 -#define NATIONAL_DEX_MAGMAR 126 -#define NATIONAL_DEX_PINSIR 127 -#define NATIONAL_DEX_TAUROS 128 -#define NATIONAL_DEX_MAGIKARP 129 -#define NATIONAL_DEX_GYARADOS 130 -#define NATIONAL_DEX_LAPRAS 131 -#define NATIONAL_DEX_DITTO 132 -#define NATIONAL_DEX_EEVEE 133 -#define NATIONAL_DEX_VAPOREON 134 -#define NATIONAL_DEX_JOLTEON 135 -#define NATIONAL_DEX_FLAREON 136 -#define NATIONAL_DEX_PORYGON 137 -#define NATIONAL_DEX_OMANYTE 138 -#define NATIONAL_DEX_OMASTAR 139 -#define NATIONAL_DEX_KABUTO 140 -#define NATIONAL_DEX_KABUTOPS 141 -#define NATIONAL_DEX_AERODACTYL 142 -#define NATIONAL_DEX_SNORLAX 143 -#define NATIONAL_DEX_ARTICUNO 144 -#define NATIONAL_DEX_ZAPDOS 145 -#define NATIONAL_DEX_MOLTRES 146 -#define NATIONAL_DEX_DRATINI 147 -#define NATIONAL_DEX_DRAGONAIR 148 -#define NATIONAL_DEX_DRAGONITE 149 -#define NATIONAL_DEX_MEWTWO 150 -#define NATIONAL_DEX_MEW 151 -#define NATIONAL_DEX_CHIKORITA 152 -#define NATIONAL_DEX_BAYLEEF 153 -#define NATIONAL_DEX_MEGANIUM 154 -#define NATIONAL_DEX_CYNDAQUIL 155 -#define NATIONAL_DEX_QUILAVA 156 -#define NATIONAL_DEX_TYPHLOSION 157 -#define NATIONAL_DEX_TOTODILE 158 -#define NATIONAL_DEX_CROCONAW 159 -#define NATIONAL_DEX_FERALIGATR 160 -#define NATIONAL_DEX_SENTRET 161 -#define NATIONAL_DEX_FURRET 162 -#define NATIONAL_DEX_HOOTHOOT 163 -#define NATIONAL_DEX_NOCTOWL 164 -#define NATIONAL_DEX_LEDYBA 165 -#define NATIONAL_DEX_LEDIAN 166 -#define NATIONAL_DEX_SPINARAK 167 -#define NATIONAL_DEX_ARIADOS 168 -#define NATIONAL_DEX_CROBAT 169 -#define NATIONAL_DEX_CHINCHOU 170 -#define NATIONAL_DEX_LANTURN 171 -#define NATIONAL_DEX_PICHU 172 -#define NATIONAL_DEX_CLEFFA 173 -#define NATIONAL_DEX_IGGLYBUFF 174 -#define NATIONAL_DEX_TOGEPI 175 -#define NATIONAL_DEX_TOGETIC 176 -#define NATIONAL_DEX_NATU 177 -#define NATIONAL_DEX_XATU 178 -#define NATIONAL_DEX_MAREEP 179 -#define NATIONAL_DEX_FLAAFFY 180 -#define NATIONAL_DEX_AMPHAROS 181 -#define NATIONAL_DEX_BELLOSSOM 182 -#define NATIONAL_DEX_MARILL 183 -#define NATIONAL_DEX_AZUMARILL 184 -#define NATIONAL_DEX_SUDOWOODO 185 -#define NATIONAL_DEX_POLITOED 186 -#define NATIONAL_DEX_HOPPIP 187 -#define NATIONAL_DEX_SKIPLOOM 188 -#define NATIONAL_DEX_JUMPLUFF 189 -#define NATIONAL_DEX_AIPOM 190 -#define NATIONAL_DEX_SUNKERN 191 -#define NATIONAL_DEX_SUNFLORA 192 -#define NATIONAL_DEX_YANMA 193 -#define NATIONAL_DEX_WOOPER 194 -#define NATIONAL_DEX_QUAGSIRE 195 -#define NATIONAL_DEX_ESPEON 196 -#define NATIONAL_DEX_UMBREON 197 -#define NATIONAL_DEX_MURKROW 198 -#define NATIONAL_DEX_SLOWKING 199 -#define NATIONAL_DEX_MISDREAVUS 200 -#define NATIONAL_DEX_UNOWN 201 -#define NATIONAL_DEX_WOBBUFFET 202 -#define NATIONAL_DEX_GIRAFARIG 203 -#define NATIONAL_DEX_PINECO 204 -#define NATIONAL_DEX_FORRETRESS 205 -#define NATIONAL_DEX_DUNSPARCE 206 -#define NATIONAL_DEX_GLIGAR 207 -#define NATIONAL_DEX_STEELIX 208 -#define NATIONAL_DEX_SNUBBULL 209 -#define NATIONAL_DEX_GRANBULL 210 -#define NATIONAL_DEX_QWILFISH 211 -#define NATIONAL_DEX_SCIZOR 212 -#define NATIONAL_DEX_SHUCKLE 213 -#define NATIONAL_DEX_HERACROSS 214 -#define NATIONAL_DEX_SNEASEL 215 -#define NATIONAL_DEX_TEDDIURSA 216 -#define NATIONAL_DEX_URSARING 217 -#define NATIONAL_DEX_SLUGMA 218 -#define NATIONAL_DEX_MAGCARGO 219 -#define NATIONAL_DEX_SWINUB 220 -#define NATIONAL_DEX_PILOSWINE 221 -#define NATIONAL_DEX_CORSOLA 222 -#define NATIONAL_DEX_REMORAID 223 -#define NATIONAL_DEX_OCTILLERY 224 -#define NATIONAL_DEX_DELIBIRD 225 -#define NATIONAL_DEX_MANTINE 226 -#define NATIONAL_DEX_SKARMORY 227 -#define NATIONAL_DEX_HOUNDOUR 228 -#define NATIONAL_DEX_HOUNDOOM 229 -#define NATIONAL_DEX_KINGDRA 230 -#define NATIONAL_DEX_PHANPY 231 -#define NATIONAL_DEX_DONPHAN 232 -#define NATIONAL_DEX_PORYGON2 233 -#define NATIONAL_DEX_STANTLER 234 -#define NATIONAL_DEX_SMEARGLE 235 -#define NATIONAL_DEX_TYROGUE 236 -#define NATIONAL_DEX_HITMONTOP 237 -#define NATIONAL_DEX_SMOOCHUM 238 -#define NATIONAL_DEX_ELEKID 239 -#define NATIONAL_DEX_MAGBY 240 -#define NATIONAL_DEX_MILTANK 241 -#define NATIONAL_DEX_BLISSEY 242 -#define NATIONAL_DEX_RAIKOU 243 -#define NATIONAL_DEX_ENTEI 244 -#define NATIONAL_DEX_SUICUNE 245 -#define NATIONAL_DEX_LARVITAR 246 -#define NATIONAL_DEX_PUPITAR 247 -#define NATIONAL_DEX_TYRANITAR 248 -#define NATIONAL_DEX_LUGIA 249 -#define NATIONAL_DEX_HO_OH 250 -#define NATIONAL_DEX_CELEBI 251 - -#define NATIONAL_DEX_TREECKO 252 -#define NATIONAL_DEX_GROVYLE 253 -#define NATIONAL_DEX_SCEPTILE 254 -#define NATIONAL_DEX_TORCHIC 255 -#define NATIONAL_DEX_COMBUSKEN 256 -#define NATIONAL_DEX_BLAZIKEN 257 -#define NATIONAL_DEX_MUDKIP 258 -#define NATIONAL_DEX_MARSHTOMP 259 -#define NATIONAL_DEX_SWAMPERT 260 -#define NATIONAL_DEX_POOCHYENA 261 -#define NATIONAL_DEX_MIGHTYENA 262 -#define NATIONAL_DEX_ZIGZAGOON 263 -#define NATIONAL_DEX_LINOONE 264 -#define NATIONAL_DEX_WURMPLE 265 -#define NATIONAL_DEX_SILCOON 266 -#define NATIONAL_DEX_BEAUTIFLY 267 -#define NATIONAL_DEX_CASCOON 268 -#define NATIONAL_DEX_DUSTOX 269 -#define NATIONAL_DEX_LOTAD 270 -#define NATIONAL_DEX_LOMBRE 271 -#define NATIONAL_DEX_LUDICOLO 272 -#define NATIONAL_DEX_SEEDOT 273 -#define NATIONAL_DEX_NUZLEAF 274 -#define NATIONAL_DEX_SHIFTRY 275 -#define NATIONAL_DEX_TAILLOW 276 -#define NATIONAL_DEX_SWELLOW 277 -#define NATIONAL_DEX_WINGULL 278 -#define NATIONAL_DEX_PELIPPER 279 -#define NATIONAL_DEX_RALTS 280 -#define NATIONAL_DEX_KIRLIA 281 -#define NATIONAL_DEX_GARDEVOIR 282 -#define NATIONAL_DEX_SURSKIT 283 -#define NATIONAL_DEX_MASQUERAIN 284 -#define NATIONAL_DEX_SHROOMISH 285 -#define NATIONAL_DEX_BRELOOM 286 -#define NATIONAL_DEX_SLAKOTH 287 -#define NATIONAL_DEX_VIGOROTH 288 -#define NATIONAL_DEX_SLAKING 289 -#define NATIONAL_DEX_NINCADA 290 -#define NATIONAL_DEX_NINJASK 291 -#define NATIONAL_DEX_SHEDINJA 292 -#define NATIONAL_DEX_WHISMUR 293 -#define NATIONAL_DEX_LOUDRED 294 -#define NATIONAL_DEX_EXPLOUD 295 -#define NATIONAL_DEX_MAKUHITA 296 -#define NATIONAL_DEX_HARIYAMA 297 -#define NATIONAL_DEX_AZURILL 298 -#define NATIONAL_DEX_NOSEPASS 299 -#define NATIONAL_DEX_SKITTY 300 -#define NATIONAL_DEX_DELCATTY 301 -#define NATIONAL_DEX_SABLEYE 302 -#define NATIONAL_DEX_MAWILE 303 -#define NATIONAL_DEX_ARON 304 -#define NATIONAL_DEX_LAIRON 305 -#define NATIONAL_DEX_AGGRON 306 -#define NATIONAL_DEX_MEDITITE 307 -#define NATIONAL_DEX_MEDICHAM 308 -#define NATIONAL_DEX_ELECTRIKE 309 -#define NATIONAL_DEX_MANECTRIC 310 -#define NATIONAL_DEX_PLUSLE 311 -#define NATIONAL_DEX_MINUN 312 -#define NATIONAL_DEX_VOLBEAT 313 -#define NATIONAL_DEX_ILLUMISE 314 -#define NATIONAL_DEX_ROSELIA 315 -#define NATIONAL_DEX_GULPIN 316 -#define NATIONAL_DEX_SWALOT 317 -#define NATIONAL_DEX_CARVANHA 318 -#define NATIONAL_DEX_SHARPEDO 319 -#define NATIONAL_DEX_WAILMER 320 -#define NATIONAL_DEX_WAILORD 321 -#define NATIONAL_DEX_NUMEL 322 -#define NATIONAL_DEX_CAMERUPT 323 -#define NATIONAL_DEX_TORKOAL 324 -#define NATIONAL_DEX_SPOINK 325 -#define NATIONAL_DEX_GRUMPIG 326 -#define NATIONAL_DEX_SPINDA 327 -#define NATIONAL_DEX_TRAPINCH 328 -#define NATIONAL_DEX_VIBRAVA 329 -#define NATIONAL_DEX_FLYGON 330 -#define NATIONAL_DEX_CACNEA 331 -#define NATIONAL_DEX_CACTURNE 332 -#define NATIONAL_DEX_SWABLU 333 -#define NATIONAL_DEX_ALTARIA 334 -#define NATIONAL_DEX_ZANGOOSE 335 -#define NATIONAL_DEX_SEVIPER 336 -#define NATIONAL_DEX_LUNATONE 337 -#define NATIONAL_DEX_SOLROCK 338 -#define NATIONAL_DEX_BARBOACH 339 -#define NATIONAL_DEX_WHISCASH 340 -#define NATIONAL_DEX_CORPHISH 341 -#define NATIONAL_DEX_CRAWDAUNT 342 -#define NATIONAL_DEX_BALTOY 343 -#define NATIONAL_DEX_CLAYDOL 344 -#define NATIONAL_DEX_LILEEP 345 -#define NATIONAL_DEX_CRADILY 346 -#define NATIONAL_DEX_ANORITH 347 -#define NATIONAL_DEX_ARMALDO 348 -#define NATIONAL_DEX_FEEBAS 349 -#define NATIONAL_DEX_MILOTIC 350 -#define NATIONAL_DEX_CASTFORM 351 -#define NATIONAL_DEX_KECLEON 352 -#define NATIONAL_DEX_SHUPPET 353 -#define NATIONAL_DEX_BANETTE 354 -#define NATIONAL_DEX_DUSKULL 355 -#define NATIONAL_DEX_DUSCLOPS 356 -#define NATIONAL_DEX_TROPIUS 357 -#define NATIONAL_DEX_CHIMECHO 358 -#define NATIONAL_DEX_ABSOL 359 -#define NATIONAL_DEX_WYNAUT 360 -#define NATIONAL_DEX_SNORUNT 361 -#define NATIONAL_DEX_GLALIE 362 -#define NATIONAL_DEX_SPHEAL 363 -#define NATIONAL_DEX_SEALEO 364 -#define NATIONAL_DEX_WALREIN 365 -#define NATIONAL_DEX_CLAMPERL 366 -#define NATIONAL_DEX_HUNTAIL 367 -#define NATIONAL_DEX_GOREBYSS 368 -#define NATIONAL_DEX_RELICANTH 369 -#define NATIONAL_DEX_LUVDISC 370 -#define NATIONAL_DEX_BAGON 371 -#define NATIONAL_DEX_SHELGON 372 -#define NATIONAL_DEX_SALAMENCE 373 -#define NATIONAL_DEX_BELDUM 374 -#define NATIONAL_DEX_METANG 375 -#define NATIONAL_DEX_METAGROSS 376 -#define NATIONAL_DEX_REGIROCK 377 -#define NATIONAL_DEX_REGICE 378 -#define NATIONAL_DEX_REGISTEEL 379 -#define NATIONAL_DEX_LATIAS 380 -#define NATIONAL_DEX_LATIOS 381 -#define NATIONAL_DEX_KYOGRE 382 -#define NATIONAL_DEX_GROUDON 383 -#define NATIONAL_DEX_RAYQUAZA 384 -#define NATIONAL_DEX_JIRACHI 385 -#define NATIONAL_DEX_DEOXYS 386 - -#define NATIONAL_DEX_OLD_UNOWN_B 387 -#define NATIONAL_DEX_OLD_UNOWN_C 388 -#define NATIONAL_DEX_OLD_UNOWN_D 389 -#define NATIONAL_DEX_OLD_UNOWN_E 390 -#define NATIONAL_DEX_OLD_UNOWN_F 391 -#define NATIONAL_DEX_OLD_UNOWN_G 392 -#define NATIONAL_DEX_OLD_UNOWN_H 393 -#define NATIONAL_DEX_OLD_UNOWN_I 394 -#define NATIONAL_DEX_OLD_UNOWN_J 395 -#define NATIONAL_DEX_OLD_UNOWN_K 396 -#define NATIONAL_DEX_OLD_UNOWN_L 397 -#define NATIONAL_DEX_OLD_UNOWN_M 398 -#define NATIONAL_DEX_OLD_UNOWN_N 399 -#define NATIONAL_DEX_OLD_UNOWN_O 400 -#define NATIONAL_DEX_OLD_UNOWN_P 401 -#define NATIONAL_DEX_OLD_UNOWN_Q 402 -#define NATIONAL_DEX_OLD_UNOWN_R 403 -#define NATIONAL_DEX_OLD_UNOWN_S 404 -#define NATIONAL_DEX_OLD_UNOWN_T 405 -#define NATIONAL_DEX_OLD_UNOWN_U 406 -#define NATIONAL_DEX_OLD_UNOWN_V 407 -#define NATIONAL_DEX_OLD_UNOWN_W 408 -#define NATIONAL_DEX_OLD_UNOWN_X 409 -#define NATIONAL_DEX_OLD_UNOWN_Y 410 -#define NATIONAL_DEX_OLD_UNOWN_Z 411 - -// Hoenn Dex Index Defines -#define HOENN_DEX_NONE 0 -#define HOENN_DEX_TREECKO 1 -#define HOENN_DEX_GROVYLE 2 -#define HOENN_DEX_SCEPTILE 3 -#define HOENN_DEX_TORCHIC 4 -#define HOENN_DEX_COMBUSKEN 5 -#define HOENN_DEX_BLAZIKEN 6 -#define HOENN_DEX_MUDKIP 7 -#define HOENN_DEX_MARSHTOMP 8 -#define HOENN_DEX_SWAMPERT 9 -#define HOENN_DEX_POOCHYENA 10 -#define HOENN_DEX_MIGHTYENA 11 -#define HOENN_DEX_ZIGZAGOON 12 -#define HOENN_DEX_LINOONE 13 -#define HOENN_DEX_WURMPLE 14 -#define HOENN_DEX_SILCOON 15 -#define HOENN_DEX_BEAUTIFLY 16 -#define HOENN_DEX_CASCOON 17 -#define HOENN_DEX_DUSTOX 18 -#define HOENN_DEX_LOTAD 19 -#define HOENN_DEX_LOMBRE 20 -#define HOENN_DEX_LUDICOLO 21 -#define HOENN_DEX_SEEDOT 22 -#define HOENN_DEX_NUZLEAF 23 -#define HOENN_DEX_SHIFTRY 24 -#define HOENN_DEX_TAILLOW 25 -#define HOENN_DEX_SWELLOW 26 -#define HOENN_DEX_WINGULL 27 -#define HOENN_DEX_PELIPPER 28 -#define HOENN_DEX_RALTS 29 -#define HOENN_DEX_KIRLIA 30 -#define HOENN_DEX_GARDEVOIR 31 -#define HOENN_DEX_SURSKIT 32 -#define HOENN_DEX_MASQUERAIN 33 -#define HOENN_DEX_SHROOMISH 34 -#define HOENN_DEX_BRELOOM 35 -#define HOENN_DEX_SLAKOTH 36 -#define HOENN_DEX_VIGOROTH 37 -#define HOENN_DEX_SLAKING 38 -#define HOENN_DEX_ABRA 39 -#define HOENN_DEX_KADABRA 40 -#define HOENN_DEX_ALAKAZAM 41 -#define HOENN_DEX_NINCADA 42 -#define HOENN_DEX_NINJASK 43 -#define HOENN_DEX_SHEDINJA 44 -#define HOENN_DEX_WHISMUR 45 -#define HOENN_DEX_LOUDRED 46 -#define HOENN_DEX_EXPLOUD 47 -#define HOENN_DEX_MAKUHITA 48 -#define HOENN_DEX_HARIYAMA 49 -#define HOENN_DEX_GOLDEEN 50 -#define HOENN_DEX_SEAKING 51 -#define HOENN_DEX_MAGIKARP 52 -#define HOENN_DEX_GYARADOS 53 -#define HOENN_DEX_AZURILL 54 -#define HOENN_DEX_MARILL 55 -#define HOENN_DEX_AZUMARILL 56 -#define HOENN_DEX_GEODUDE 57 -#define HOENN_DEX_GRAVELER 58 -#define HOENN_DEX_GOLEM 59 -#define HOENN_DEX_NOSEPASS 60 -#define HOENN_DEX_SKITTY 61 -#define HOENN_DEX_DELCATTY 62 -#define HOENN_DEX_ZUBAT 63 -#define HOENN_DEX_GOLBAT 64 -#define HOENN_DEX_CROBAT 65 -#define HOENN_DEX_TENTACOOL 66 -#define HOENN_DEX_TENTACRUEL 67 -#define HOENN_DEX_SABLEYE 68 -#define HOENN_DEX_MAWILE 69 -#define HOENN_DEX_ARON 70 -#define HOENN_DEX_LAIRON 71 -#define HOENN_DEX_AGGRON 72 -#define HOENN_DEX_MACHOP 73 -#define HOENN_DEX_MACHOKE 74 -#define HOENN_DEX_MACHAMP 75 -#define HOENN_DEX_MEDITITE 76 -#define HOENN_DEX_MEDICHAM 77 -#define HOENN_DEX_ELECTRIKE 78 -#define HOENN_DEX_MANECTRIC 79 -#define HOENN_DEX_PLUSLE 80 -#define HOENN_DEX_MINUN 81 -#define HOENN_DEX_MAGNEMITE 82 -#define HOENN_DEX_MAGNETON 83 -#define HOENN_DEX_VOLTORB 84 -#define HOENN_DEX_ELECTRODE 85 -#define HOENN_DEX_VOLBEAT 86 -#define HOENN_DEX_ILLUMISE 87 -#define HOENN_DEX_ODDISH 88 -#define HOENN_DEX_GLOOM 89 -#define HOENN_DEX_VILEPLUME 90 -#define HOENN_DEX_BELLOSSOM 91 -#define HOENN_DEX_DODUO 92 -#define HOENN_DEX_DODRIO 93 -#define HOENN_DEX_ROSELIA 94 -#define HOENN_DEX_GULPIN 95 -#define HOENN_DEX_SWALOT 96 -#define HOENN_DEX_CARVANHA 97 -#define HOENN_DEX_SHARPEDO 98 -#define HOENN_DEX_WAILMER 99 -#define HOENN_DEX_WAILORD 100 -#define HOENN_DEX_NUMEL 101 -#define HOENN_DEX_CAMERUPT 102 -#define HOENN_DEX_SLUGMA 103 -#define HOENN_DEX_MAGCARGO 104 -#define HOENN_DEX_TORKOAL 105 -#define HOENN_DEX_GRIMER 106 -#define HOENN_DEX_MUK 107 -#define HOENN_DEX_KOFFING 108 -#define HOENN_DEX_WEEZING 109 -#define HOENN_DEX_SPOINK 110 -#define HOENN_DEX_GRUMPIG 111 -#define HOENN_DEX_SANDSHREW 112 -#define HOENN_DEX_SANDSLASH 113 -#define HOENN_DEX_SPINDA 114 -#define HOENN_DEX_SKARMORY 115 -#define HOENN_DEX_TRAPINCH 116 -#define HOENN_DEX_VIBRAVA 117 -#define HOENN_DEX_FLYGON 118 -#define HOENN_DEX_CACNEA 119 -#define HOENN_DEX_CACTURNE 120 -#define HOENN_DEX_SWABLU 121 -#define HOENN_DEX_ALTARIA 122 -#define HOENN_DEX_ZANGOOSE 123 -#define HOENN_DEX_SEVIPER 124 -#define HOENN_DEX_LUNATONE 125 -#define HOENN_DEX_SOLROCK 126 -#define HOENN_DEX_BARBOACH 127 -#define HOENN_DEX_WHISCASH 128 -#define HOENN_DEX_CORPHISH 129 -#define HOENN_DEX_CRAWDAUNT 130 -#define HOENN_DEX_BALTOY 131 -#define HOENN_DEX_CLAYDOL 132 -#define HOENN_DEX_LILEEP 133 -#define HOENN_DEX_CRADILY 134 -#define HOENN_DEX_ANORITH 135 -#define HOENN_DEX_ARMALDO 136 -#define HOENN_DEX_IGGLYBUFF 137 -#define HOENN_DEX_JIGGLYPUFF 138 -#define HOENN_DEX_WIGGLYTUFF 139 -#define HOENN_DEX_FEEBAS 140 -#define HOENN_DEX_MILOTIC 141 -#define HOENN_DEX_CASTFORM 142 -#define HOENN_DEX_STARYU 143 -#define HOENN_DEX_STARMIE 144 -#define HOENN_DEX_KECLEON 145 -#define HOENN_DEX_SHUPPET 146 -#define HOENN_DEX_BANETTE 147 -#define HOENN_DEX_DUSKULL 148 -#define HOENN_DEX_DUSCLOPS 149 -#define HOENN_DEX_TROPIUS 150 -#define HOENN_DEX_CHIMECHO 151 -#define HOENN_DEX_ABSOL 152 -#define HOENN_DEX_VULPIX 153 -#define HOENN_DEX_NINETALES 154 -#define HOENN_DEX_PICHU 155 -#define HOENN_DEX_PIKACHU 156 -#define HOENN_DEX_RAICHU 157 -#define HOENN_DEX_PSYDUCK 158 -#define HOENN_DEX_GOLDUCK 159 -#define HOENN_DEX_WYNAUT 160 -#define HOENN_DEX_WOBBUFFET 161 -#define HOENN_DEX_NATU 162 -#define HOENN_DEX_XATU 163 -#define HOENN_DEX_GIRAFARIG 164 -#define HOENN_DEX_PHANPY 165 -#define HOENN_DEX_DONPHAN 166 -#define HOENN_DEX_PINSIR 167 -#define HOENN_DEX_HERACROSS 168 -#define HOENN_DEX_RHYHORN 169 -#define HOENN_DEX_RHYDON 170 -#define HOENN_DEX_SNORUNT 171 -#define HOENN_DEX_GLALIE 172 -#define HOENN_DEX_SPHEAL 173 -#define HOENN_DEX_SEALEO 174 -#define HOENN_DEX_WALREIN 175 -#define HOENN_DEX_CLAMPERL 176 -#define HOENN_DEX_HUNTAIL 177 -#define HOENN_DEX_GOREBYSS 178 -#define HOENN_DEX_RELICANTH 179 -#define HOENN_DEX_CORSOLA 180 -#define HOENN_DEX_CHINCHOU 181 -#define HOENN_DEX_LANTURN 182 -#define HOENN_DEX_LUVDISC 183 -#define HOENN_DEX_HORSEA 184 -#define HOENN_DEX_SEADRA 185 -#define HOENN_DEX_KINGDRA 186 -#define HOENN_DEX_BAGON 187 -#define HOENN_DEX_SHELGON 188 -#define HOENN_DEX_SALAMENCE 189 -#define HOENN_DEX_BELDUM 190 -#define HOENN_DEX_METANG 191 -#define HOENN_DEX_METAGROSS 192 -#define HOENN_DEX_REGIROCK 193 -#define HOENN_DEX_REGICE 194 -#define HOENN_DEX_REGISTEEL 195 -#define HOENN_DEX_LATIAS 196 -#define HOENN_DEX_LATIOS 197 -#define HOENN_DEX_KYOGRE 198 -#define HOENN_DEX_GROUDON 199 -#define HOENN_DEX_RAYQUAZA 200 -#define HOENN_DEX_JIRACHI 201 -#define HOENN_DEX_DEOXYS 202 - -#define HOENN_DEX_BULBASAUR 203 -#define HOENN_DEX_IVYSAUR 204 -#define HOENN_DEX_VENUSAUR 205 -#define HOENN_DEX_CHARMANDER 206 -#define HOENN_DEX_CHARMELEON 207 -#define HOENN_DEX_CHARIZARD 208 -#define HOENN_DEX_SQUIRTLE 209 -#define HOENN_DEX_WARTORTLE 210 -#define HOENN_DEX_BLASTOISE 211 -#define HOENN_DEX_CATERPIE 212 -#define HOENN_DEX_METAPOD 213 -#define HOENN_DEX_BUTTERFREE 214 -#define HOENN_DEX_WEEDLE 215 -#define HOENN_DEX_KAKUNA 216 -#define HOENN_DEX_BEEDRILL 217 -#define HOENN_DEX_PIDGEY 218 -#define HOENN_DEX_PIDGEOTTO 219 -#define HOENN_DEX_PIDGEOT 220 -#define HOENN_DEX_RATTATA 221 -#define HOENN_DEX_RATICATE 222 -#define HOENN_DEX_SPEAROW 223 -#define HOENN_DEX_FEAROW 224 -#define HOENN_DEX_EKANS 225 -#define HOENN_DEX_ARBOK 226 -#define HOENN_DEX_NIDORAN_F 227 -#define HOENN_DEX_NIDORINA 228 -#define HOENN_DEX_NIDOQUEEN 229 -#define HOENN_DEX_NIDORAN_M 230 -#define HOENN_DEX_NIDORINO 231 -#define HOENN_DEX_NIDOKING 232 -#define HOENN_DEX_CLEFAIRY 233 -#define HOENN_DEX_CLEFABLE 234 -#define HOENN_DEX_PARAS 235 -#define HOENN_DEX_PARASECT 236 -#define HOENN_DEX_VENONAT 237 -#define HOENN_DEX_VENOMOTH 238 -#define HOENN_DEX_DIGLETT 239 -#define HOENN_DEX_DUGTRIO 240 -#define HOENN_DEX_MEOWTH 241 -#define HOENN_DEX_PERSIAN 242 -#define HOENN_DEX_MANKEY 243 -#define HOENN_DEX_PRIMEAPE 244 -#define HOENN_DEX_GROWLITHE 245 -#define HOENN_DEX_ARCANINE 246 -#define HOENN_DEX_POLIWAG 247 -#define HOENN_DEX_POLIWHIRL 248 -#define HOENN_DEX_POLIWRATH 249 -#define HOENN_DEX_BELLSPROUT 250 -#define HOENN_DEX_WEEPINBELL 251 -#define HOENN_DEX_VICTREEBEL 252 -#define HOENN_DEX_PONYTA 253 -#define HOENN_DEX_RAPIDASH 254 -#define HOENN_DEX_SLOWPOKE 255 -#define HOENN_DEX_SLOWBRO 256 -#define HOENN_DEX_FARFETCHD 257 -#define HOENN_DEX_SEEL 258 -#define HOENN_DEX_DEWGONG 259 -#define HOENN_DEX_SHELLDER 260 -#define HOENN_DEX_CLOYSTER 261 -#define HOENN_DEX_GASTLY 262 -#define HOENN_DEX_HAUNTER 263 -#define HOENN_DEX_GENGAR 264 -#define HOENN_DEX_ONIX 265 -#define HOENN_DEX_DROWZEE 266 -#define HOENN_DEX_HYPNO 267 -#define HOENN_DEX_KRABBY 268 -#define HOENN_DEX_KINGLER 269 -#define HOENN_DEX_EXEGGCUTE 270 -#define HOENN_DEX_EXEGGUTOR 271 -#define HOENN_DEX_CUBONE 272 -#define HOENN_DEX_MAROWAK 273 -#define HOENN_DEX_HITMONLEE 274 -#define HOENN_DEX_HITMONCHAN 275 -#define HOENN_DEX_LICKITUNG 276 -#define HOENN_DEX_CHANSEY 277 -#define HOENN_DEX_TANGELA 278 -#define HOENN_DEX_KANGASKHAN 279 -#define HOENN_DEX_MR_MIME 280 -#define HOENN_DEX_SCYTHER 281 -#define HOENN_DEX_JYNX 282 -#define HOENN_DEX_ELECTABUZZ 283 -#define HOENN_DEX_MAGMAR 284 -#define HOENN_DEX_TAUROS 285 -#define HOENN_DEX_LAPRAS 286 -#define HOENN_DEX_DITTO 287 -#define HOENN_DEX_EEVEE 288 -#define HOENN_DEX_VAPOREON 289 -#define HOENN_DEX_JOLTEON 290 -#define HOENN_DEX_FLAREON 291 -#define HOENN_DEX_PORYGON 292 -#define HOENN_DEX_OMANYTE 293 -#define HOENN_DEX_OMASTAR 294 -#define HOENN_DEX_KABUTO 295 -#define HOENN_DEX_KABUTOPS 296 -#define HOENN_DEX_AERODACTYL 297 -#define HOENN_DEX_SNORLAX 298 -#define HOENN_DEX_ARTICUNO 299 -#define HOENN_DEX_ZAPDOS 300 -#define HOENN_DEX_MOLTRES 301 -#define HOENN_DEX_DRATINI 302 -#define HOENN_DEX_DRAGONAIR 303 -#define HOENN_DEX_DRAGONITE 304 -#define HOENN_DEX_MEWTWO 305 -#define HOENN_DEX_MEW 306 -#define HOENN_DEX_CHIKORITA 307 -#define HOENN_DEX_BAYLEEF 308 -#define HOENN_DEX_MEGANIUM 309 -#define HOENN_DEX_CYNDAQUIL 310 -#define HOENN_DEX_QUILAVA 311 -#define HOENN_DEX_TYPHLOSION 312 -#define HOENN_DEX_TOTODILE 313 -#define HOENN_DEX_CROCONAW 314 -#define HOENN_DEX_FERALIGATR 315 -#define HOENN_DEX_SENTRET 316 -#define HOENN_DEX_FURRET 317 -#define HOENN_DEX_HOOTHOOT 318 -#define HOENN_DEX_NOCTOWL 319 -#define HOENN_DEX_LEDYBA 320 -#define HOENN_DEX_LEDIAN 321 -#define HOENN_DEX_SPINARAK 322 -#define HOENN_DEX_ARIADOS 323 -#define HOENN_DEX_CLEFFA 324 -#define HOENN_DEX_TOGEPI 325 -#define HOENN_DEX_TOGETIC 326 -#define HOENN_DEX_MAREEP 327 -#define HOENN_DEX_FLAAFFY 328 -#define HOENN_DEX_AMPHAROS 329 -#define HOENN_DEX_SUDOWOODO 330 -#define HOENN_DEX_POLITOED 331 -#define HOENN_DEX_HOPPIP 332 -#define HOENN_DEX_SKIPLOOM 333 -#define HOENN_DEX_JUMPLUFF 334 -#define HOENN_DEX_AIPOM 335 -#define HOENN_DEX_SUNKERN 336 -#define HOENN_DEX_SUNFLORA 337 -#define HOENN_DEX_YANMA 338 -#define HOENN_DEX_WOOPER 339 -#define HOENN_DEX_QUAGSIRE 340 -#define HOENN_DEX_ESPEON 341 -#define HOENN_DEX_UMBREON 342 -#define HOENN_DEX_MURKROW 343 -#define HOENN_DEX_SLOWKING 344 -#define HOENN_DEX_MISDREAVUS 345 -#define HOENN_DEX_UNOWN 346 -#define HOENN_DEX_PINECO 347 -#define HOENN_DEX_FORRETRESS 348 -#define HOENN_DEX_DUNSPARCE 349 -#define HOENN_DEX_GLIGAR 350 -#define HOENN_DEX_STEELIX 351 -#define HOENN_DEX_SNUBBULL 352 -#define HOENN_DEX_GRANBULL 353 -#define HOENN_DEX_QWILFISH 354 -#define HOENN_DEX_SCIZOR 355 -#define HOENN_DEX_SHUCKLE 356 -#define HOENN_DEX_SNEASEL 357 -#define HOENN_DEX_TEDDIURSA 358 -#define HOENN_DEX_URSARING 359 -#define HOENN_DEX_SWINUB 360 -#define HOENN_DEX_PILOSWINE 361 -#define HOENN_DEX_REMORAID 362 -#define HOENN_DEX_OCTILLERY 363 -#define HOENN_DEX_DELIBIRD 364 -#define HOENN_DEX_MANTINE 365 -#define HOENN_DEX_HOUNDOUR 366 -#define HOENN_DEX_HOUNDOOM 367 -#define HOENN_DEX_PORYGON2 368 -#define HOENN_DEX_STANTLER 369 -#define HOENN_DEX_SMEARGLE 370 -#define HOENN_DEX_TYROGUE 371 -#define HOENN_DEX_HITMONTOP 372 -#define HOENN_DEX_SMOOCHUM 373 -#define HOENN_DEX_ELEKID 374 -#define HOENN_DEX_MAGBY 375 -#define HOENN_DEX_MILTANK 376 -#define HOENN_DEX_BLISSEY 377 -#define HOENN_DEX_RAIKOU 378 -#define HOENN_DEX_ENTEI 379 -#define HOENN_DEX_SUICUNE 380 -#define HOENN_DEX_LARVITAR 381 -#define HOENN_DEX_PUPITAR 382 -#define HOENN_DEX_TYRANITAR 383 -#define HOENN_DEX_LUGIA 384 -#define HOENN_DEX_HO_OH 385 -#define HOENN_DEX_CELEBI 386 - -#define HOENN_DEX_OLD_UNOWN_B 387 -#define HOENN_DEX_OLD_UNOWN_C 388 -#define HOENN_DEX_OLD_UNOWN_D 389 -#define HOENN_DEX_OLD_UNOWN_E 390 -#define HOENN_DEX_OLD_UNOWN_F 391 -#define HOENN_DEX_OLD_UNOWN_G 392 -#define HOENN_DEX_OLD_UNOWN_H 393 -#define HOENN_DEX_OLD_UNOWN_I 394 -#define HOENN_DEX_OLD_UNOWN_J 395 -#define HOENN_DEX_OLD_UNOWN_K 396 -#define HOENN_DEX_OLD_UNOWN_L 397 -#define HOENN_DEX_OLD_UNOWN_M 398 -#define HOENN_DEX_OLD_UNOWN_N 399 -#define HOENN_DEX_OLD_UNOWN_O 400 -#define HOENN_DEX_OLD_UNOWN_P 401 -#define HOENN_DEX_OLD_UNOWN_Q 402 -#define HOENN_DEX_OLD_UNOWN_R 403 -#define HOENN_DEX_OLD_UNOWN_S 404 -#define HOENN_DEX_OLD_UNOWN_T 405 -#define HOENN_DEX_OLD_UNOWN_U 406 -#define HOENN_DEX_OLD_UNOWN_V 407 -#define HOENN_DEX_OLD_UNOWN_W 408 -#define HOENN_DEX_OLD_UNOWN_X 409 -#define HOENN_DEX_OLD_UNOWN_Y 410 -#define HOENN_DEX_OLD_UNOWN_Z 411 +#define SPECIES_UNOWN_B (NUM_SPECIES + 1) +#define SPECIES_UNOWN_C (NUM_SPECIES + 2) +#define SPECIES_UNOWN_D (NUM_SPECIES + 3) +#define SPECIES_UNOWN_E (NUM_SPECIES + 4) +#define SPECIES_UNOWN_F (NUM_SPECIES + 5) +#define SPECIES_UNOWN_G (NUM_SPECIES + 6) +#define SPECIES_UNOWN_H (NUM_SPECIES + 7) +#define SPECIES_UNOWN_I (NUM_SPECIES + 8) +#define SPECIES_UNOWN_J (NUM_SPECIES + 9) +#define SPECIES_UNOWN_K (NUM_SPECIES + 10) +#define SPECIES_UNOWN_L (NUM_SPECIES + 11) +#define SPECIES_UNOWN_M (NUM_SPECIES + 12) +#define SPECIES_UNOWN_N (NUM_SPECIES + 13) +#define SPECIES_UNOWN_O (NUM_SPECIES + 14) +#define SPECIES_UNOWN_P (NUM_SPECIES + 15) +#define SPECIES_UNOWN_Q (NUM_SPECIES + 16) +#define SPECIES_UNOWN_R (NUM_SPECIES + 17) +#define SPECIES_UNOWN_S (NUM_SPECIES + 18) +#define SPECIES_UNOWN_T (NUM_SPECIES + 19) +#define SPECIES_UNOWN_U (NUM_SPECIES + 20) +#define SPECIES_UNOWN_V (NUM_SPECIES + 21) +#define SPECIES_UNOWN_W (NUM_SPECIES + 22) +#define SPECIES_UNOWN_X (NUM_SPECIES + 23) +#define SPECIES_UNOWN_Y (NUM_SPECIES + 24) +#define SPECIES_UNOWN_Z (NUM_SPECIES + 25) +#define SPECIES_UNOWN_EMARK (NUM_SPECIES + 26) +#define SPECIES_UNOWN_QMARK (NUM_SPECIES + 27) #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/global.h b/include/global.h index 7bcf61911..05a0e77f1 100644 --- a/include/global.h +++ b/include/global.h @@ -8,6 +8,7 @@ #include "constants/flags.h" #include "constants/vars.h" #include "constants/species.h" +#include "constants/pokedex.h" #include "constants/easy_chat.h" #include "constants/rgb.h" diff --git a/include/pokedex.h b/include/pokedex.h index 8c2281702..0e20648f7 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -1,10 +1,6 @@ #ifndef GUARD_POKEDEX_H #define GUARD_POKEDEX_H -#define KANTO_DEX_COUNT 151 -#define HOENN_DEX_COUNT 202 -#define NATIONAL_DEX_COUNT 386 - enum { DEX_MODE_KANTO, diff --git a/src/menu2.c b/src/menu2.c index 0ee315b55..4074d129c 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -3,6 +3,11 @@ #include "task.h" #include "wild_encounter.h" +// Not actually "old" given these were introduced in Gen 3, +// but they're used as equivalents here alongside the other OLD_UNOWN +#define SPECIES_OLD_UNOWN_EMARK (NUM_SPECIES + 0) +#define SPECIES_OLD_UNOWN_QMARK (NUM_SPECIES + 1) + static void Task_SmoothBlendLayers(u8 taskId); static const u8 sMonSpriteAnchorCoords[][5] = { diff --git a/src/pokemon.c b/src/pokemon.c index dd2917e67..6a164028e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -94,6 +94,9 @@ static const struct CombinedMove sCombinedMoves[2] = {0xFFFF, 0xFFFF, 0xFFFF} }; +// NOTE: The order of the elements in the 3 arrays below is irrelevant. +// To reorder the pokedex, see the values in include/constants/pokedex.h. + static const u16 sSpeciesToHoennPokedexNum[] = // Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex) { SPECIES_TO_HOENN(BULBASAUR), @@ -5008,7 +5011,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) if (gEvolutionTable[species][i].param == heldItem) { targetSpecies = gEvolutionTable[species][i].targetSpecies; - if (IsNationalPokedexEnabled() || targetSpecies <= 151) + if (IsNationalPokedexEnabled() || targetSpecies <= KANTO_SPECIES_END) { heldItem = 0; SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); @@ -5664,7 +5667,7 @@ u16 SpeciesToPokedexNum(u16 species) { species = SpeciesToNationalPokedexNum(species); - if (!IsNationalPokedexEnabled() && species > 151) + if (!IsNationalPokedexEnabled() && species > KANTO_SPECIES_END) return 0xFFFF; return species; } diff --git a/src/prof_pc.c b/src/prof_pc.c index 713912fe5..93d8b97f2 100644 --- a/src/prof_pc.c +++ b/src/prof_pc.c @@ -84,7 +84,7 @@ static const u8 *GetProfOaksRatingMessageByCount(u16 count) if (count < 150) return PokedexRating_Text_LessThan150; - if (count == 150) + if (count == KANTO_DEX_COUNT - 1) { // Mew doesn't count for completing the pokedex if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_MEW), 1)) @@ -94,7 +94,7 @@ static const u8 *GetProfOaksRatingMessageByCount(u16 count) return PokedexRating_Text_Complete; } - if (count == 151) + if (count == KANTO_DEX_COUNT) { gSpecialVar_Result = TRUE; return PokedexRating_Text_Complete; From 483a7f0ddd8d7fe1eeeb3dec832cb49bd9e2d861 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 30 Oct 2022 00:04:53 -0400 Subject: [PATCH 096/105] Sync pokedex.c --- src/pokedex.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/pokedex.c b/src/pokedex.c index e3e83c3c4..914626718 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2,7 +2,8 @@ #include "pokedex.h" #include "pokedex_screen.h" -const u8 *sub_8088E20(u16 dexNum) +// Unused +const u8 *GetPokedexCategoryName(u16 dexNum) { return gPokedexEntries[dexNum].categoryName; } @@ -47,6 +48,30 @@ u16 GetNationalPokedexCount(u8 caseID) return count; } +/* +u16 GetHoennPokedexCount(u8 caseID) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < HOENN_DEX_COUNT; i++) + { + switch (caseID) + { + case FLAG_GET_SEEN: + if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN)) + count++; + break; + case FLAG_GET_CAUGHT: + if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT)) + count++; + break; + } + } + return count; +} +*/ + u16 GetKantoPokedexCount(u8 caseID) { u16 count = 0; @@ -73,6 +98,7 @@ bool16 HasAllHoennMons(void) { u16 i; + // -2 excludes Jirachi and Deoxys for (i = 0; i < HOENN_DEX_COUNT - 2; i++) { if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT)) @@ -85,6 +111,7 @@ bool16 HasAllKantoMons(void) { u16 i; + // -1 excludes Mew for (i = 0; i < KANTO_DEX_COUNT - 1; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) @@ -97,17 +124,22 @@ bool16 HasAllMons(void) { u16 i; - for (i = 0; i < NATIONAL_DEX_MEWTWO; i++) + // -1 excludes Mew + for (i = 0; i < KANTO_DEX_COUNT - 1; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return FALSE; } - for (i = NATIONAL_DEX_MEW; i < NATIONAL_DEX_TYRANITAR; i++) + + // -3 excludes Lugia, Ho-Oh, and Celebi + for (i = KANTO_DEX_COUNT; i < JOHTO_DEX_COUNT - 3; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return FALSE; } - for (i = NATIONAL_DEX_CELEBI; i < NATIONAL_DEX_RAYQUAZA; i++) + + // -2 excludes Jirachi and Deoxys + for (i = JOHTO_DEX_COUNT; i < NATIONAL_DEX_COUNT - 2; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return FALSE; From 8fca2dcf268f069bebfd1ae4f917ab8b093ee7fa Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 30 Oct 2022 21:59:04 -0400 Subject: [PATCH 097/105] Update gitignore/spacing for new region map data --- .gitignore | 1 + src/data/region_map/region_map_layout_kanto.h | 8 +- src/data/region_map/region_map_sections.json | 1756 ++++++++--------- 3 files changed, 883 insertions(+), 882 deletions(-) diff --git a/.gitignore b/.gitignore index cbd751dbf..e94c6a25c 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ src/data/items.h src/data/wild_encounters.h src/data/region_map/region_map_entries.h src/data/region_map/region_map_entry_strings.h +src/data/region_map/porymap_config.json tags tools/agbcc tools/binutils diff --git a/src/data/region_map/region_map_layout_kanto.h b/src/data/region_map/region_map_layout_kanto.h index 630958e7b..80fb433eb 100644 --- a/src/data/region_map/region_map_layout_kanto.h +++ b/src/data/region_map/region_map_layout_kanto.h @@ -1,5 +1,5 @@ static const u8 sRegionMapSections_Kanto[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { - [LAYER_MAP] = + [LAYER_MAP] = { {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_24, MAPSEC_ROUTE_25, MAPSEC_ROUTE_25, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, @@ -15,8 +15,8 @@ static const u8 sRegionMapSections_Kanto[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_PALLET_TOWN, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_14, MAPSEC_ROUTE_13, MAPSEC_ROUTE_13, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_21, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_FUCHSIA_CITY, MAPSEC_ROUTE_15, MAPSEC_ROUTE_15, MAPSEC_ROUTE_14, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_21, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CINNABAR_ISLAND, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - }, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CINNABAR_ISLAND, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + }, [LAYER_DUNGEON] = { {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, @@ -33,6 +33,6 @@ static const u8 sRegionMapSections_Kanto[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KANTO_SAFARI_ZONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POKEMON_MANSION, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEAFOAM_ISLANDS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POKEMON_MANSION, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEAFOAM_ISLANDS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, } }; diff --git a/src/data/region_map/region_map_sections.json b/src/data/region_map/region_map_sections.json index 7c41f3ebd..63947d4f0 100644 --- a/src/data/region_map/region_map_sections.json +++ b/src/data/region_map/region_map_sections.json @@ -1,880 +1,880 @@ { - "map_sections": [ - { - "map_section": "MAPSEC_PALLET_TOWN", - "name": "PALLET TOWN", - "x": 4, - "y": 11, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_VIRIDIAN_CITY", - "name": "VIRIDIAN CITY", - "x": 4, - "y": 8, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_PEWTER_CITY", - "name": "PEWTER CITY", - "x": 4, - "y": 4, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_CERULEAN_CITY", - "name": "CERULEAN CITY", - "x": 14, - "y": 3, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_LAVENDER_TOWN", - "name": "LAVENDER TOWN", - "x": 18, - "y": 6, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_VERMILION_CITY", - "name": "VERMILION CITY", - "x": 14, - "y": 9, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_CELADON_CITY", - "name": "CELADON CITY", - "x": 11, - "y": 6, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_FUCHSIA_CITY", - "name": "FUCHSIA CITY", - "x": 12, - "y": 12, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_CINNABAR_ISLAND", - "name": "CINNABAR ISLAND", - "x": 4, - "y": 14, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_INDIGO_PLATEAU", - "name": "INDIGO PLATEAU", - "x": 2, - "y": 3, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SAFFRON_CITY", - "name": "SAFFRON CITY", - "x": 14, - "y": 6, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_4_POKECENTER", - "name": "ROUTE 4", - "name_clone": true, - "x": 8, - "y": 3, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_10_POKECENTER", - "name": "ROUTE 10", - "name_clone": true, - "x": 18, - "y": 3, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_1", - "name": "ROUTE 1", - "x": 4, - "y": 9, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_2", - "name": "ROUTE 2", - "x": 4, - "y": 5, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_ROUTE_3", - "name": "ROUTE 3", - "x": 5, - "y": 4, - "width": 4, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_4", - "name": "ROUTE 4", - "x": 8, - "y": 3, - "width": 6, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_5", - "name": "ROUTE 5", - "x": 14, - "y": 4, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_6", - "name": "ROUTE 6", - "x": 14, - "y": 7, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_7", - "name": "ROUTE 7", - "x": 12, - "y": 6, - "width": 2, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_8", - "name": "ROUTE 8", - "x": 15, - "y": 6, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_9", - "name": "ROUTE 9", - "x": 15, - "y": 3, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_10", - "name": "ROUTE 10", - "x": 18, - "y": 3, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_ROUTE_11", - "name": "ROUTE 11", - "x": 15, - "y": 9, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_12", - "name": "ROUTE 12", - "x": 18, - "y": 7, - "width": 1, - "height": 5 - }, - { - "map_section": "MAPSEC_ROUTE_13", - "name": "ROUTE 13", - "x": 16, - "y": 11, - "width": 2, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_14", - "name": "ROUTE 14", - "x": 15, - "y": 11, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_15", - "name": "ROUTE 15", - "x": 13, - "y": 12, - "width": 2, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_16", - "name": "ROUTE 16", - "x": 7, - "y": 6, - "width": 4, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_17", - "name": "ROUTE 17", - "x": 7, - "y": 7, - "width": 1, - "height": 5 - }, - { - "map_section": "MAPSEC_ROUTE_18", - "name": "ROUTE 18", - "x": 7, - "y": 12, - "width": 5, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_19", - "name": "ROUTE 19", - "x": 12, - "y": 13, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_20", - "name": "ROUTE 20", - "x": 5, - "y": 14, - "width": 7, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_21", - "name": "ROUTE 21", - "x": 4, - "y": 12, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_22", - "name": "ROUTE 22", - "x": 2, - "y": 8, - "width": 2, - "height": 1 - }, - { - "map_section": "MAPSEC_ROUTE_23", - "name": "ROUTE 23", - "x": 2, - "y": 4, - "width": 1, - "height": 4 - }, - { - "map_section": "MAPSEC_ROUTE_24", - "name": "ROUTE 24", - "x": 14, - "y": 1, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_ROUTE_25", - "name": "ROUTE 25", - "x": 15, - "y": 1, - "width": 2, - "height": 1 - }, - { - "map_section": "MAPSEC_VIRIDIAN_FOREST", - "name": "VIRIDIAN FOREST", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_MT_MOON", - "name": "MT. MOON", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_S_S_ANNE", - "name": "S.S. ANNE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_UNDERGROUND_PATH", - "name": "UNDERGROUND PATH", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_UNDERGROUND_PATH_2", - "name": "UNDERGROUND PATH", - "name_clone": true, - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_DIGLETTS_CAVE", - "name": "DIGLETT'S CAVE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_KANTO_VICTORY_ROAD", - "name": "VICTORY ROAD", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ROCKET_HIDEOUT", - "name": "ROCKET HIDEOUT", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SILPH_CO", - "name": "SILPH CO.", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_POKEMON_MANSION", - "name": "POKéMON MANSION", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_KANTO_SAFARI_ZONE", - "name": "SAFARI ZONE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_POKEMON_LEAGUE", - "name": "POKéMON LEAGUE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ROCK_TUNNEL", - "name": "ROCK TUNNEL", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SEAFOAM_ISLANDS", - "name": "SEAFOAM ISLANDS", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_POKEMON_TOWER", - "name": "POKéMON TOWER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_CERULEAN_CAVE", - "name": "CERULEAN CAVE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_POWER_PLANT", - "name": "POWER PLANT", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ONE_ISLAND", - "name": "ONE ISLAND", - "x": 1, - "y": 8, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_TWO_ISLAND", - "name": "TWO ISLAND", - "x": 9, - "y": 9, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_THREE_ISLAND", - "name": "THREE ISLAND", - "x": 18, - "y": 12, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_FOUR_ISLAND", - "name": "FOUR ISLAND", - "x": 3, - "y": 4, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_FIVE_ISLAND", - "name": "FIVE ISLAND", - "x": 16, - "y": 11, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVEN_ISLAND", - "name": "SEVEN ISLAND", - "x": 5, - "y": 8, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SIX_ISLAND", - "name": "SIX ISLAND", - "x": 17, - "y": 5, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_KINDLE_ROAD", - "name": "KINDLE ROAD", - "x": 2, - "y": 3, - "width": 1, - "height": 6 - }, - { - "map_section": "MAPSEC_TREASURE_BEACH", - "name": "TREASURE BEACH", - "x": 1, - "y": 9, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_CAPE_BRINK", - "name": "CAPE BRINK", - "x": 9, - "y": 7, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_BOND_BRIDGE", - "name": "BOND BRIDGE", - "x": 13, - "y": 12, - "width": 4, - "height": 1 - }, - { - "map_section": "MAPSEC_THREE_ISLE_PORT", - "name": "THREE ISLE PORT", - "x": 18, - "y": 13, - "width": 2, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_6", - "name": "SEVII ISLE 6", - "x": 4, - "y": 3, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_7", - "name": "SEVII ISLE 7", - "x": 5, - "y": 4, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_8", - "name": "SEVII ISLE 8", - "x": 1, - "y": 4, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_9", - "name": "SEVII ISLE 9", - "x": 4, - "y": 5, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_RESORT_GORGEOUS", - "name": "RESORT GORGEOUS", - "x": 16, - "y": 9, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_WATER_LABYRINTH", - "name": "WATER LABYRINTH", - "x": 14, - "y": 10, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_FIVE_ISLE_MEADOW", - "name": "FIVE ISLE MEADOW", - "x": 17, - "y": 10, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_MEMORIAL_PILLAR", - "name": "MEMORIAL PILLAR", - "x": 18, - "y": 12, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_OUTCAST_ISLAND", - "name": "OUTCAST ISLAND", - "x": 15, - "y": 0, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_GREEN_PATH", - "name": "GREEN PATH", - "x": 15, - "y": 3, - "width": 3, - "height": 1 - }, - { - "map_section": "MAPSEC_WATER_PATH", - "name": "WATER PATH", - "x": 18, - "y": 3, - "width": 1, - "height": 5 - }, - { - "map_section": "MAPSEC_RUIN_VALLEY", - "name": "RUIN VALLEY", - "x": 16, - "y": 7, - "width": 2, - "height": 2 - }, - { - "map_section": "MAPSEC_TRAINER_TOWER", - "name": "TRAINER TOWER", - "x": 5, - "y": 6, - "width": 1, - "height": 2 - }, - { - "map_section": "MAPSEC_CANYON_ENTRANCE", - "name": "CANYON ENTRANCE", - "x": 5, - "y": 9, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVAULT_CANYON", - "name": "SEVAULT CANYON", - "x": 6, - "y": 9, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_TANOBY_RUINS", - "name": "TANOBY RUINS", - "x": 3, - "y": 12, - "width": 7, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_22", - "name": "SEVII ISLE 22", - "x": 9, - "y": 12, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_23", - "name": "SEVII ISLE 23", - "x": 3, - "y": 14, - "width": 6, - "height": 1 - }, - { - "map_section": "MAPSEC_SEVII_ISLE_24", - "name": "SEVII ISLE 24", - "x": 2, - "y": 12, - "width": 1, - "height": 3 - }, - { - "map_section": "MAPSEC_NAVEL_ROCK", - "name": "NAVEL ROCK", - "x": 10, - "y": 8, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_MT_EMBER", - "name": "MT. EMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_BERRY_FOREST", - "name": "BERRY FOREST", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ICEFALL_CAVE", - "name": "ICEFALL CAVE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ROCKET_WAREHOUSE", - "name": "ROCKET WAREHOUSE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_TRAINER_TOWER_2", - "name": "TRAINER TOWER", - "name_clone": true, - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_DOTTED_HOLE", - "name": "DOTTED HOLE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_LOST_CAVE", - "name": "LOST CAVE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_PATTERN_BUSH", - "name": "PATTERN BUSH", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_ALTERING_CAVE", - "name": "ALTERING CAVE", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_TANOBY_CHAMBERS", - "name": "TANOBY CHAMBERS", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_THREE_ISLE_PATH", - "name": "THREE ISLE PATH", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_TANOBY_KEY", - "name": "TANOBY KEY", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_BIRTH_ISLAND", - "name": "BIRTH ISLAND", - "x": 18, - "y": 13, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_MONEAN_CHAMBER", - "name": "MONEAN CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_LIPTOO_CHAMBER", - "name": "LIPTOO CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_WEEPTH_CHAMBER", - "name": "WEEPTH CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_DILFORD_CHAMBER", - "name": "DILFORD CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SCUFIB_CHAMBER", - "name": "SCUFIB CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_RIXY_CHAMBER", - "name": "RIXY CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_VIAPOIS_CHAMBER", - "name": "VIAPOIS CHAMBER", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_EMBER_SPA", - "name": "EMBER SPA", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - { - "map_section": "MAPSEC_SPECIAL_AREA", - "name": "CELADON DEPT.", - "x": 0, - "y": 0, - "width": 0, - "height": 0 - } - ] + "map_sections": [ + { + "map_section": "MAPSEC_PALLET_TOWN", + "name": "PALLET TOWN", + "x": 4, + "y": 11, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_VIRIDIAN_CITY", + "name": "VIRIDIAN CITY", + "x": 4, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_PEWTER_CITY", + "name": "PEWTER CITY", + "x": 4, + "y": 4, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CERULEAN_CITY", + "name": "CERULEAN CITY", + "x": 14, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_LAVENDER_TOWN", + "name": "LAVENDER TOWN", + "x": 18, + "y": 6, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_VERMILION_CITY", + "name": "VERMILION CITY", + "x": 14, + "y": 9, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CELADON_CITY", + "name": "CELADON CITY", + "x": 11, + "y": 6, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_FUCHSIA_CITY", + "name": "FUCHSIA CITY", + "x": 12, + "y": 12, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CINNABAR_ISLAND", + "name": "CINNABAR ISLAND", + "x": 4, + "y": 14, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_INDIGO_PLATEAU", + "name": "INDIGO PLATEAU", + "x": 2, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SAFFRON_CITY", + "name": "SAFFRON CITY", + "x": 14, + "y": 6, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_4_POKECENTER", + "name": "ROUTE 4", + "name_clone": true, + "x": 8, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_10_POKECENTER", + "name": "ROUTE 10", + "name_clone": true, + "x": 18, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_1", + "name": "ROUTE 1", + "x": 4, + "y": 9, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_2", + "name": "ROUTE 2", + "x": 4, + "y": 5, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_ROUTE_3", + "name": "ROUTE 3", + "x": 5, + "y": 4, + "width": 4, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_4", + "name": "ROUTE 4", + "x": 8, + "y": 3, + "width": 6, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_5", + "name": "ROUTE 5", + "x": 14, + "y": 4, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_6", + "name": "ROUTE 6", + "x": 14, + "y": 7, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_7", + "name": "ROUTE 7", + "x": 12, + "y": 6, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_8", + "name": "ROUTE 8", + "x": 15, + "y": 6, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_9", + "name": "ROUTE 9", + "x": 15, + "y": 3, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_10", + "name": "ROUTE 10", + "x": 18, + "y": 3, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_ROUTE_11", + "name": "ROUTE 11", + "x": 15, + "y": 9, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_12", + "name": "ROUTE 12", + "x": 18, + "y": 7, + "width": 1, + "height": 5 + }, + { + "map_section": "MAPSEC_ROUTE_13", + "name": "ROUTE 13", + "x": 16, + "y": 11, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_14", + "name": "ROUTE 14", + "x": 15, + "y": 11, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_15", + "name": "ROUTE 15", + "x": 13, + "y": 12, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_16", + "name": "ROUTE 16", + "x": 7, + "y": 6, + "width": 4, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_17", + "name": "ROUTE 17", + "x": 7, + "y": 7, + "width": 1, + "height": 5 + }, + { + "map_section": "MAPSEC_ROUTE_18", + "name": "ROUTE 18", + "x": 7, + "y": 12, + "width": 5, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_19", + "name": "ROUTE 19", + "x": 12, + "y": 13, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_20", + "name": "ROUTE 20", + "x": 5, + "y": 14, + "width": 7, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_21", + "name": "ROUTE 21", + "x": 4, + "y": 12, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_22", + "name": "ROUTE 22", + "x": 2, + "y": 8, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_23", + "name": "ROUTE 23", + "x": 2, + "y": 4, + "width": 1, + "height": 4 + }, + { + "map_section": "MAPSEC_ROUTE_24", + "name": "ROUTE 24", + "x": 14, + "y": 1, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_25", + "name": "ROUTE 25", + "x": 15, + "y": 1, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_VIRIDIAN_FOREST", + "name": "VIRIDIAN FOREST", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_MT_MOON", + "name": "MT. MOON", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_S_S_ANNE", + "name": "S.S. ANNE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_UNDERGROUND_PATH", + "name": "UNDERGROUND PATH", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_UNDERGROUND_PATH_2", + "name": "UNDERGROUND PATH", + "name_clone": true, + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_DIGLETTS_CAVE", + "name": "DIGLETT'S CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "name": "VICTORY ROAD", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROCKET_HIDEOUT", + "name": "ROCKET HIDEOUT", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SILPH_CO", + "name": "SILPH CO.", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POKEMON_MANSION", + "name": "POKéMON MANSION", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "name": "SAFARI ZONE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POKEMON_LEAGUE", + "name": "POKéMON LEAGUE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROCK_TUNNEL", + "name": "ROCK TUNNEL", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEAFOAM_ISLANDS", + "name": "SEAFOAM ISLANDS", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POKEMON_TOWER", + "name": "POKéMON TOWER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CERULEAN_CAVE", + "name": "CERULEAN CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POWER_PLANT", + "name": "POWER PLANT", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ONE_ISLAND", + "name": "ONE ISLAND", + "x": 1, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TWO_ISLAND", + "name": "TWO ISLAND", + "x": 9, + "y": 9, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_THREE_ISLAND", + "name": "THREE ISLAND", + "x": 18, + "y": 12, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_FOUR_ISLAND", + "name": "FOUR ISLAND", + "x": 3, + "y": 4, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_FIVE_ISLAND", + "name": "FIVE ISLAND", + "x": 16, + "y": 11, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVEN_ISLAND", + "name": "SEVEN ISLAND", + "x": 5, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SIX_ISLAND", + "name": "SIX ISLAND", + "x": 17, + "y": 5, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_KINDLE_ROAD", + "name": "KINDLE ROAD", + "x": 2, + "y": 3, + "width": 1, + "height": 6 + }, + { + "map_section": "MAPSEC_TREASURE_BEACH", + "name": "TREASURE BEACH", + "x": 1, + "y": 9, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_CAPE_BRINK", + "name": "CAPE BRINK", + "x": 9, + "y": 7, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_BOND_BRIDGE", + "name": "BOND BRIDGE", + "x": 13, + "y": 12, + "width": 4, + "height": 1 + }, + { + "map_section": "MAPSEC_THREE_ISLE_PORT", + "name": "THREE ISLE PORT", + "x": 18, + "y": 13, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_6", + "name": "SEVII ISLE 6", + "x": 4, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_7", + "name": "SEVII ISLE 7", + "x": 5, + "y": 4, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_8", + "name": "SEVII ISLE 8", + "x": 1, + "y": 4, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_9", + "name": "SEVII ISLE 9", + "x": 4, + "y": 5, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_RESORT_GORGEOUS", + "name": "RESORT GORGEOUS", + "x": 16, + "y": 9, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_WATER_LABYRINTH", + "name": "WATER LABYRINTH", + "x": 14, + "y": 10, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_FIVE_ISLE_MEADOW", + "name": "FIVE ISLE MEADOW", + "x": 17, + "y": 10, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_MEMORIAL_PILLAR", + "name": "MEMORIAL PILLAR", + "x": 18, + "y": 12, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_OUTCAST_ISLAND", + "name": "OUTCAST ISLAND", + "x": 15, + "y": 0, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_GREEN_PATH", + "name": "GREEN PATH", + "x": 15, + "y": 3, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_WATER_PATH", + "name": "WATER PATH", + "x": 18, + "y": 3, + "width": 1, + "height": 5 + }, + { + "map_section": "MAPSEC_RUIN_VALLEY", + "name": "RUIN VALLEY", + "x": 16, + "y": 7, + "width": 2, + "height": 2 + }, + { + "map_section": "MAPSEC_TRAINER_TOWER", + "name": "TRAINER TOWER", + "x": 5, + "y": 6, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_CANYON_ENTRANCE", + "name": "CANYON ENTRANCE", + "x": 5, + "y": 9, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVAULT_CANYON", + "name": "SEVAULT CANYON", + "x": 6, + "y": 9, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_TANOBY_RUINS", + "name": "TANOBY RUINS", + "x": 3, + "y": 12, + "width": 7, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_22", + "name": "SEVII ISLE 22", + "x": 9, + "y": 12, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_23", + "name": "SEVII ISLE 23", + "x": 3, + "y": 14, + "width": 6, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_24", + "name": "SEVII ISLE 24", + "x": 2, + "y": 12, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_NAVEL_ROCK", + "name": "NAVEL ROCK", + "x": 10, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_MT_EMBER", + "name": "MT. EMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_BERRY_FOREST", + "name": "BERRY FOREST", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ICEFALL_CAVE", + "name": "ICEFALL CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROCKET_WAREHOUSE", + "name": "ROCKET WAREHOUSE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TRAINER_TOWER_2", + "name": "TRAINER TOWER", + "name_clone": true, + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_DOTTED_HOLE", + "name": "DOTTED HOLE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_LOST_CAVE", + "name": "LOST CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_PATTERN_BUSH", + "name": "PATTERN BUSH", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ALTERING_CAVE", + "name": "ALTERING CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TANOBY_CHAMBERS", + "name": "TANOBY CHAMBERS", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_THREE_ISLE_PATH", + "name": "THREE ISLE PATH", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TANOBY_KEY", + "name": "TANOBY KEY", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_BIRTH_ISLAND", + "name": "BIRTH ISLAND", + "x": 18, + "y": 13, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_MONEAN_CHAMBER", + "name": "MONEAN CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_LIPTOO_CHAMBER", + "name": "LIPTOO CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_WEEPTH_CHAMBER", + "name": "WEEPTH CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_DILFORD_CHAMBER", + "name": "DILFORD CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SCUFIB_CHAMBER", + "name": "SCUFIB CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_RIXY_CHAMBER", + "name": "RIXY CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_VIAPOIS_CHAMBER", + "name": "VIAPOIS CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_EMBER_SPA", + "name": "EMBER SPA", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SPECIAL_AREA", + "name": "CELADON DEPT.", + "x": 0, + "y": 0, + "width": 0, + "height": 0 + } + ] } From 403cbeded20d540761c986bb583655c5612319ad Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 30 Oct 2022 22:01:45 -0400 Subject: [PATCH 098/105] Fix Marcos/Macros typo --- data/maps/MtMoon_1F/map.json | 2 +- data/maps/MtMoon_1F/scripts.inc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/maps/MtMoon_1F/map.json b/data/maps/MtMoon_1F/map.json index 163749680..500184fa2 100644 --- a/data/maps/MtMoon_1F/map.json +++ b/data/maps/MtMoon_1F/map.json @@ -110,7 +110,7 @@ "movement_range_y": 2, "trainer_type": "TRAINER_TYPE_NORMAL", "trainer_sight_or_berry_tree_id": "1", - "script": "MtMoon_1F_EventScript_Macros", + "script": "MtMoon_1F_EventScript_Marcos", "flag": "0" }, { diff --git a/data/maps/MtMoon_1F/scripts.inc b/data/maps/MtMoon_1F/scripts.inc index f7bb66db1..5aefc39b1 100644 --- a/data/maps/MtMoon_1F/scripts.inc +++ b/data/maps/MtMoon_1F/scripts.inc @@ -10,7 +10,7 @@ MtMoon_1F_EventScript_ZubatSign:: msgbox MtMoon_1F_Text_ZubatIsABloodsucker, MSGBOX_SIGN end -MtMoon_1F_EventScript_Macros:: +MtMoon_1F_EventScript_Marcos:: trainerbattle_single TRAINER_HIKER_MARCOS, MtMoon_1F_Text_MarcosIntro, MtMoon_1F_Text_MarcosDefeat msgbox MtMoon_1F_Text_MarcosPostBattle, MSGBOX_AUTOCLOSE end From b9fd3ec29c21b792a0f036eb66256a2275554de0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 2 Nov 2022 13:53:15 -0400 Subject: [PATCH 099/105] Clean up tileset anims --- src/tileset_anims.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/tileset_anims.c b/src/tileset_anims.c index fcf6a6038..04854a2e4 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -80,7 +80,7 @@ static const u16 sTilesetAnims_CeladonCity_Fountain_Frame1[] = INCBIN_U16("data/ static const u16 sTilesetAnims_CeladonCity_Fountain_Frame2[] = INCBIN_U16("data/tilesets/secondary/celadon_city/anim/fountain/2.4bpp"); static const u16 sTilesetAnims_CeladonCity_Fountain_Frame3[] = INCBIN_U16("data/tilesets/secondary/celadon_city/anim/fountain/3.4bpp"); static const u16 sTilesetAnims_CeladonCity_Fountain_Frame4[] = INCBIN_U16("data/tilesets/secondary/celadon_city/anim/fountain/4.4bpp"); -static const u16 gUnknown_83ABD94[16] = {}; +static const u16 sTilesetAnims_CeladonCity_Fountain_Empty[16] = {}; static const u16 *const sTilesetAnims_CeladonCity_Fountain[] = { sTilesetAnims_CeladonCity_Fountain_Frame0, @@ -94,7 +94,7 @@ static const u16 sTilesetAnims_SilphCo_Fountain_Frame0[] = INCBIN_U16("data/tile static const u16 sTilesetAnims_SilphCo_Fountain_Frame1[] = INCBIN_U16("data/tilesets/secondary/silph_co/anim/fountain/1.4bpp"); static const u16 sTilesetAnims_SilphCo_Fountain_Frame2[] = INCBIN_U16("data/tilesets/secondary/silph_co/anim/fountain/2.4bpp"); static const u16 sTilesetAnims_SilphCo_Fountain_Frame3[] = INCBIN_U16("data/tilesets/secondary/silph_co/anim/fountain/3.4bpp"); -static const u16 gUnknown_83AC1C8[16] = {}; +static const u16 sTilesetAnims_SilphCo_Fountain_Empty[16] = {}; static const u16 *const sTilesetAnims_SilphCo_Fountain[] = { sTilesetAnims_SilphCo_Fountain_Frame0, @@ -207,27 +207,27 @@ static void _InitSecondaryTilesetAnimation(void) static void QueueAnimTiles_General_Flower(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_General_Flower[timer % NELEMS(sTilesetAnims_General_Flower)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 4 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_General_Flower[timer % ARRAY_COUNT(sTilesetAnims_General_Flower)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_Water_Current_LandWatersEdge(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_General_Water_Current_LandWatersEdge[timer % NELEMS(sTilesetAnims_General_Water_Current_LandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(416)), 48 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_General_Water_Current_LandWatersEdge[timer % ARRAY_COUNT(sTilesetAnims_General_Water_Current_LandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(416)), 48 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_SandWatersEdge(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_General_SandWatersEdge[timer % NELEMS(sTilesetAnims_General_SandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 18 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_General_SandWatersEdge[timer % ARRAY_COUNT(sTilesetAnims_General_SandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 18 * TILE_SIZE_4BPP); } static void TilesetAnim_General(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_General_SandWatersEdge(timer >> 3); + QueueAnimTiles_General_SandWatersEdge(timer / 8); if (timer % 16 == 1) - QueueAnimTiles_General_Water_Current_LandWatersEdge(timer >> 4); + QueueAnimTiles_General_Water_Current_LandWatersEdge(timer / 16); if (timer % 16 == 2) - QueueAnimTiles_General_Flower(timer >> 4); + QueueAnimTiles_General_Flower(timer / 16); } void InitTilesetAnim_General(void) @@ -239,7 +239,7 @@ void InitTilesetAnim_General(void) static void QueueAnimTiles_CeladonCity_Fountain(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_CeladonCity_Fountain[timer % NELEMS(sTilesetAnims_CeladonCity_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(744)), 8 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_CeladonCity_Fountain[timer % ARRAY_COUNT(sTilesetAnims_CeladonCity_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(744)), 8 * TILE_SIZE_4BPP); } static void TilesetAnim_CeladonCity(u16 timer) @@ -257,7 +257,7 @@ void InitTilesetAnim_CeladonCity(void) static void QueueAnimTiles_SilphCo_Fountain(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_SilphCo_Fountain[timer % NELEMS(sTilesetAnims_SilphCo_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(976)), 8 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_SilphCo_Fountain[timer % ARRAY_COUNT(sTilesetAnims_SilphCo_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(976)), 8 * TILE_SIZE_4BPP); } static void TilesetAnim_SilphCo(u16 timer) @@ -275,13 +275,13 @@ void InitTilesetAnim_SilphCo(void) static void QueueAnimTiles_MtEmber_Steam(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_MtEmber_Steam[timer % NELEMS(sTilesetAnims_MtEmber_Steam)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(896)), 8 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_MtEmber_Steam[timer % ARRAY_COUNT(sTilesetAnims_MtEmber_Steam)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(896)), 8 * TILE_SIZE_4BPP); } static void TilesetAnim_MtEmber(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_MtEmber_Steam(timer >> 4); + QueueAnimTiles_MtEmber_Steam(timer / 16); } void InitTilesetAnim_MtEmber(void) @@ -293,7 +293,7 @@ void InitTilesetAnim_MtEmber(void) static void QueueAnimTiles_VermilionGym_MotorizedDoor(u16 timer) { - u16 i = timer % NELEMS(sTilesetAnims_VermilionGym_MotorizedDoor); + u16 i = timer % ARRAY_COUNT(sTilesetAnims_VermilionGym_MotorizedDoor); AppendTilesetAnimToBuffer(sTilesetAnims_VermilionGym_MotorizedDoor[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(880)), 7 * TILE_SIZE_4BPP); } @@ -301,7 +301,7 @@ static void QueueAnimTiles_VermilionGym_MotorizedDoor(u16 timer) static void TilesetAnim_VermilionGym(u16 timer) { if (timer % 2 == 0) - QueueAnimTiles_VermilionGym_MotorizedDoor(timer >> 1); + QueueAnimTiles_VermilionGym_MotorizedDoor(timer / 2); } void InitTilesetAnim_VermilionGym(void) @@ -313,7 +313,7 @@ void InitTilesetAnim_VermilionGym(void) static void QueueAnimTiles_CeladonGym_Flowers(u16 timer) { - u16 i = timer % NELEMS(sTilesetAnims_CeladonGym_Flowers); + u16 i = timer % ARRAY_COUNT(sTilesetAnims_CeladonGym_Flowers); AppendTilesetAnimToBuffer(sTilesetAnims_CeladonGym_Flowers[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(739)), 4 * TILE_SIZE_4BPP); } @@ -321,7 +321,7 @@ static void QueueAnimTiles_CeladonGym_Flowers(u16 timer) static void TilesetAnim_CeladonGym(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_CeladonGym_Flowers(timer >> 4); + QueueAnimTiles_CeladonGym_Flowers(timer / 16); } void InitTilesetAnim_CeladonGym(void) From 9e59afca88cda7c2ba909170bf97c1e5ffd83e93 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 2 Nov 2022 13:53:27 -0400 Subject: [PATCH 100/105] Document DrawHelpMessageWindowTiles --- include/help_message.h | 2 +- src/help_message.c | 27 ++++++++++++++------------- src/help_system.c | 2 +- src/party_menu.c | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/include/help_message.h b/include/help_message.h index 61b3787b2..b75abc77e 100644 --- a/include/help_message.h +++ b/include/help_message.h @@ -7,6 +7,6 @@ void DestroyHelpMessageWindow(u8 a0); u8 CreateHelpMessageWindow(void); void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode); void MapNamePopupWindowIdSetDummy(void); -void sub_8112F18(u8 windowId); +void DrawHelpMessageWindowTilesById(u8 windowId); #endif //GUARD_HELP_MESSAGE_H diff --git a/src/help_message.c b/src/help_message.c index bb8975844..425ce88ac 100644 --- a/src/help_message.c +++ b/src/help_message.c @@ -47,13 +47,14 @@ void DestroyHelpMessageWindow(u8 a0) } } -void sub_8112F18(u8 windowId) +// Creates the bottom bar window that displays help text for e.g. the options in the Start menu +void DrawHelpMessageWindowTilesById(u8 windowId) { const u8 *ptr = gHelpMessageWindow_Gfx; u8 *buffer; u8 i, j; u8 width, height; - u8 k; + u8 tileId; width = (u8)GetWindowAttribute(windowId, WINDOW_WIDTH); height = (u8)GetWindowAttribute(windowId, WINDOW_HEIGHT); @@ -66,15 +67,15 @@ void sub_8112F18(u8 windowId) { for (j = 0; j < width; j++) { - if (i == 0) - k = 0; - else if (i == height - 1) - k = 14; - else - k = 5; + if (i == 0) // Top row + tileId = 0; + else if (i == height - 1) // Bottom row + tileId = 14; + else // Middle row + tileId = 5; CpuCopy32( - &ptr[k * 0x20], - &buffer[(i * width + j) * 0x20], + &ptr[tileId * 32], + &buffer[(i * width + j) * 32], 32 ); } @@ -84,9 +85,9 @@ void sub_8112F18(u8 windowId) } } -static void sub_8112FD0(void) +static void DrawHelpMessageWindowTiles(void) { - sub_8112F18(sHelpMessageWindowId); + DrawHelpMessageWindowTilesById(sHelpMessageWindowId); } static const u8 sHelpMessageTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GRAY}; @@ -98,7 +99,7 @@ static void PrintHelpMessageText(const u8 *text) void PrintTextOnHelpMessageWindow(const u8 *text, u8 mode) { - sub_8112FD0(); + DrawHelpMessageWindowTiles(); PrintHelpMessageText(text); if (mode) CopyWindowToVram(sHelpMessageWindowId, mode); diff --git a/src/help_system.c b/src/help_system.c index f29359354..b178fd6ab 100644 --- a/src/help_system.c +++ b/src/help_system.c @@ -1646,7 +1646,7 @@ static const u8 *const sHelpSystemSubmenuItemLists[HELPCONTEXT_COUNT * (TOPIC_CO NULL, NULL, NULL, NULL, NULL // HELPCONTEXT_UNUSED }; -static const u16 unref_845BCB0[] = INCBIN_U16("graphics/help_system/unused.bin"); +static const u16 sUnused[] = INCBIN_U16("graphics/help_system/unused.bin"); static const u8 sHelpSystemContextTopicOrder[TOPIC_COUNT] = { TOPIC_ABOUT_GAME, diff --git a/src/party_menu.c b/src/party_menu.c index 400761801..f9f51c887 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -2636,7 +2636,7 @@ static void ToggleFieldMoveDescriptionWindow(u8 action) { if (ptr->windowId[2] == WINDOW_NONE) ptr->windowId[2] = AddWindow(&sFieldMoveDescriptionWindowTemplate); - sub_8112F18(ptr->windowId[2]); + DrawHelpMessageWindowTilesById(ptr->windowId[2]); letterSpacing = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); AddTextPrinterParameterized4(ptr->windowId[2], FONT_2, 3, 6, letterSpacing, 0, sFontColorTable[5], 0, sFieldMoveDescriptionTable[action - CURSOR_OPTION_FIELD_MOVES]); PutWindowTilemap(ptr->windowId[2]); From 99ce8e358f93ff55267030ad4f4628d559a80f16 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 2 Nov 2022 14:07:06 -0400 Subject: [PATCH 101/105] Document/sync misc remaining symbols --- include/cereader_tool.h | 1 - include/field_specials.h | 3 +- include/link_rfu.h | 2 +- include/new_menu_helpers.h | 2 +- include/strings.h | 2 +- src/bag.c | 2 +- src/battle_controller_opponent.c | 4 +- src/battle_controller_player.c | 4 +- src/battle_controller_pokedude.c | 4 +- src/battle_intro.c | 4 +- src/battle_script_commands.c | 4 +- src/battle_setup.c | 10 ++-- src/battle_tower.c | 11 +++-- src/berry_crush.c | 4 +- src/braille_text.c | 12 +++-- src/cereader_tool.c | 4 +- src/coins.c | 5 +- src/credits.c | 2 +- src/decompress.c | 2 +- src/evolution_graphics.c | 2 +- src/evolution_scene.c | 4 +- src/fame_checker.c | 2 +- src/field_camera.c | 10 ++-- src/field_fadetransition.c | 2 +- src/field_player_avatar.c | 6 +-- src/field_special_scene.c | 10 ++-- src/field_specials.c | 8 +-- src/field_tasks.c | 3 +- src/item_menu.c | 2 +- src/item_use.c | 6 ++- src/itemfinder.c | 6 +-- src/learn_move.c | 10 ++-- src/link_rfu_3.c | 83 ++++++++++++++++++-------------- src/m4a_1.s | 40 +++++++-------- src/menu2.c | 2 +- src/mevent_scripts.c | 4 +- src/mon_markings.c | 8 +-- src/mystery_gift_menu.c | 6 +-- src/new_menu_helpers.c | 2 +- src/overworld.c | 4 +- src/party_menu_specials.c | 8 +-- src/player_pc.c | 8 +-- src/pokemon_special_anim.c | 8 +-- src/rfu_union_tool.c | 19 ++++---- src/save_failed_screen.c | 2 +- src/save_location.c | 34 +++++++------ src/script_menu.c | 7 +-- src/start_menu.c | 2 +- src/strings.c | 2 +- src/trainer_card.c | 42 ++++++++-------- src/trainer_tower.c | 4 +- src/union_room_battle.c | 6 +-- src/union_room_chat_display.c | 8 +-- src/union_room_message.c | 6 +-- 54 files changed, 242 insertions(+), 216 deletions(-) diff --git a/include/cereader_tool.h b/include/cereader_tool.h index 5dd0a7589..5cb5a9ebc 100644 --- a/include/cereader_tool.h +++ b/include/cereader_tool.h @@ -46,7 +46,6 @@ struct EReaderTrainerTowerSet bool32 ValidateTrainerTowerData(struct EReaderTrainerTowerSet * ttdata); bool32 CEReaderTool_SaveTrainerTower(struct EReaderTrainerTowerSet * ttdata); bool32 CEReaderTool_LoadTrainerTower(struct EReaderTrainerTowerSet * ttdata); -u8 sub_815D654(void); bool32 ReadTrainerTowerAndValidate(void); #endif //GUARD_CEREADER_TOOL_H diff --git a/include/field_specials.h b/include/field_specials.h index 08518da03..7bc1e6ad1 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -16,8 +16,7 @@ s32 CountDigits(s32 number); void TV_PrintIntToStringVar(u8 varidx, s32 number); u16 GetStarterSpecies(void); void StopPokemonLeagueLightingEffectTask(void); -void nullsub_60(void); -void nullsub_61(void); +void FieldCB_ShowPortholeView(void); u8 ContextNpcGetTextColor(void); void SetPCBoxToSendMon(u8); u16 GetPCBoxToSendMon(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 1792781ff..e003989c4 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -303,6 +303,6 @@ void sub_80FB030(u32 a0); void ClearRecvCommands(void); #include "mevent_server.h" -extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; +extern const struct mevent_server_cmd gServerScript_ClientCanceledCard[]; #endif //GUARD_LINK_RFU_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index fd7e52547..3f1f074a7 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -35,7 +35,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram); void ClearStdWindowAndFrame(u8 windowId, bool8 copyNow); void EraseFieldMessageBox(bool8 copyToVram); void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram); -void sub_80F7768(u8 windowId, bool8 copyToVram); +void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram); void Menu_LoadStdPal(void); void Menu_LoadStdPalAt(u16 offset); void DisplayItemMessageOnField(u8 taskId, u8 fontId, const u8 *src, TaskFunc callback); diff --git a/include/strings.h b/include/strings.h index 222ed935d..28d425cb0 100644 --- a/include/strings.h +++ b/include/strings.h @@ -761,7 +761,7 @@ extern const u8 gText_QuitLooking[]; extern const u8 gText_FreshWater[]; extern const u8 gText_SodaPop[]; extern const u8 gText_Lemonade[]; -extern const u8 gText_Bicycle_1000000[]; +extern const u8 gText_Bicycle_Price[]; extern const u8 gText_NoThanks[]; extern const u8 gText_Abra_180Coins[]; extern const u8 gText_Clefairy_500Coins[]; diff --git a/src/bag.c b/src/bag.c index cd3b77aa2..c2e8f869a 100644 --- a/src/bag.c +++ b/src/bag.c @@ -189,7 +189,7 @@ static const struct WindowTemplate sWindowTemplates[] = { } }; -static const u8 sUnused_8453174[] = {16, 8, 4}; +static const u8 sUnused[] = {16, 8, 4}; static EWRAM_DATA u8 sOpenWindows[11] = {}; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 88eeda2a2..19ad30441 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -151,8 +151,8 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentCmdEnd }; -// not used -static const u8 gUnknown_8250B18[] = { 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 }; +// unknown unused data +static const u8 sUnused[] = { 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 }; static void OpponentDummy(void) { diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 2c94f1978..7928a7031 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -170,8 +170,8 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = static const u8 sTargetIdentities[] = { B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT }; -// not used -static const u8 gUnknown_8250984[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; +// unknown unused data +static const u8 sUnused[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; void BattleControllerDummy(void) { diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index fbf9977a4..83c44a19c 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -181,8 +181,8 @@ static void (*const sPokedudeBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PokedudeCmdEnd, }; -// not used -static const u8 gUnknown_8479000[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; +// unknown unused data +static const u8 sUnused[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; #define pdHealthboxPal1 simulatedInputState[0] #define pdHealthboxPal2 simulatedInputState[1] diff --git a/src/battle_intro.c b/src/battle_intro.c index c7a0da2b7..0b5b81ef0 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -479,8 +479,8 @@ void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u LoadBgTilemap(bgId, tilemapDest, BG_SCREEN_SIZE, 0); } -// not used -static void sub_80BCFCC(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7) +// Unused +static void DrawBattlerOnBgDMA(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7) { s32 i, j, offset; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index bf947b4fd..9afeb1e58 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -813,8 +813,8 @@ static const u8 sBallCatchBonuses[] = [ITEM_SAFARI_BALL - ITEM_ULTRA_BALL] = 15 }; -// not used -static const u32 gUnknown_8250898 = 0xFF7EAE60; +// unknown unused data +static const u32 sUnused = 0xFF7EAE60; static void Cmd_attackcanceler(void) { diff --git a/src/battle_setup.c b/src/battle_setup.c index 375ba3d43..c056bba39 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -390,20 +390,20 @@ void StartRegiBattle(void) IncrementGameStat(GAME_STAT_WILD_BATTLES); } -// not used -static void sub_807FAF8(void) +// Unused +static void EndPokedudeBattle(void) { LoadPlayerParty(); CB2_EndWildBattle(); } -// not used -static void sub_807FB08(void) +// Unused +static void StartPokedudeBattle(void) { LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); - gMain.savedCallback = sub_807FAF8; + gMain.savedCallback = EndPokedudeBattle; SavePlayerParty(); InitPokedudePartyAndOpponent(); CreateBattleStartTask(GetWildBattleTransition(), 0); diff --git a/src/battle_tower.c b/src/battle_tower.c index 134e82a11..9ec6d3838 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -41,13 +41,14 @@ static u16 GetCurrentBattleTowerWinStreak(u8 levelType); static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer * eReaderTrainer); static void PrintEReaderTrainerFarewellMessage(void); -const u8 unref_83FFAAC[] = { - 0x05, 0x04, 0x01, 0x10, 0x04, 0x02, 0x05, 0x06, - 0x03, 0x10, 0x06, 0x04, 0x00, 0x01, 0x02, 0x03, - 0x00, 0x02, 0x03 +// unknown unused data +static const u8 sUnused[] = { + 5, 4, 1, 16, 4, 2, 5, 6, + 3, 16, 6, 4, 0, 1, 2, 3, + 0, 2, 3 }; -const u8 unref_83FFABF[] = _("100"); +static const u8 sText_100[] = _("100"); static const struct BattleTowerTrainer sBattleTowerTrainers[] = { diff --git a/src/berry_crush.c b/src/berry_crush.c index 5a5d81e81..d116a112f 100644 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -659,7 +659,7 @@ static const u32 sBg_Tilemap[] = INCBIN_U32("graphics/berry_crush/bg.bin.lz"); // Takes the number of players - 2 and a player id and returns the // index into sPlayerCoords where that player should be seated -static const u8 gUnknown_846F280[MAX_RFU_PLAYERS - 1][MAX_RFU_PLAYERS] = { +static const u8 sPlayerIdToPosId[MAX_RFU_PLAYERS - 1][MAX_RFU_PLAYERS] = { {1, 3}, {0, 1, 3}, {1, 3, 2, 4}, @@ -3221,7 +3221,7 @@ static void CreatePlayerNameWindows(struct BerryCrushGame * game) for (i = 0; i < game->playerCount; ++i) { - game->gfx.playerCoords[i] = &sPlayerCoords[gUnknown_846F280[game->playerCount - 2][i]]; + game->gfx.playerCoords[i] = &sPlayerCoords[sPlayerIdToPosId[game->playerCount - 2][i]]; game->gfx.nameWindowIds[i] = AddWindow(&sWindowTemplates_PlayerNames[game->gfx.playerCoords[i]->playerId]); PutWindowTilemap(game->gfx.nameWindowIds[i]); FillWindowPixelBuffer(game->gfx.nameWindowIds[i], PIXEL_FILL(0)); diff --git a/src/braille_text.c b/src/braille_text.c index c58df8e8e..ae61842bd 100644 --- a/src/braille_text.c +++ b/src/braille_text.c @@ -4,7 +4,11 @@ #include "text.h" #include "sound.h" -static const u8 gUnknown_846FB08[] = {1, 2, 4}; +static const u8 sScrollDistances[] = { + [OPTIONS_TEXT_SPEED_SLOW] = 1, + [OPTIONS_TEXT_SPEED_MID] = 2, + [OPTIONS_TEXT_SPEED_FAST] = 4, +}; static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("graphics/fonts/font6.fwjpnfont"); static void DecompressGlyphFont6(u16); @@ -163,15 +167,15 @@ u16 Font6Func(struct TextPrinter *textPrinter) case 4: if (textPrinter->scrollDistance) { - if (textPrinter->scrollDistance < gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]) + if (textPrinter->scrollDistance < sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed]) { ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); - textPrinter->scrollDistance -= gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]; + ScrollWindow(textPrinter->printerTemplate.windowId, 0, sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); + textPrinter->scrollDistance -= sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed]; } CopyWindowToVram(textPrinter->printerTemplate.windowId, COPYWIN_GFX); } diff --git a/src/cereader_tool.c b/src/cereader_tool.c index ebe0965ac..395be0bcb 100644 --- a/src/cereader_tool.c +++ b/src/cereader_tool.c @@ -10,7 +10,7 @@ // The trainer tower data exceeds SECTOR_DATA_SIZE. They're allowed to use the full save sector up to the counter field. STATIC_ASSERT(SEC30_SIZE + SEC31_SIZE <= SECTOR_COUNTER_OFFSET * 2, EReaderTrainerTowerSetFreeSpace); -u8 sub_815D654(void) +static u8 GetTrainerHillUnkVal(void) { return (gSaveBlock1Ptr->trainerTower[0].unk9 + 1) % 256; } @@ -49,7 +49,7 @@ static bool32 CEReaderTool_SaveTrainerTower_r(struct EReaderTrainerTowerSet * tt memset(buffer, 0, SECTOR_SIZE); memcpy(buffer, ttdata, SEC30_SIZE); - buffer[1] = sub_815D654(); + buffer[1] = GetTrainerHillUnkVal(); if (TryWriteSpecialSaveSector(SECTOR_ID_TRAINER_TOWER_1, buffer) != TRUE) return FALSE; memset(buffer, 0, SECTOR_SIZE); diff --git a/src/coins.c b/src/coins.c index c4d0819a8..2de263bb1 100644 --- a/src/coins.c +++ b/src/coins.c @@ -49,14 +49,15 @@ bool8 RemoveCoins(u16 toSub) return FALSE; } -void PrintCoinsString_Parameterized(u8 windowId, u32 coinAmount, u8 x, u8 y, u8 speed) +static void PrintCoinsString_Parameterized(u8 windowId, u32 coinAmount, u8 x, u8 y, u8 speed) { ConvertIntToDecimalStringN(gStringVar1, coinAmount, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_Coins); AddTextPrinterParameterized(windowId, FONT_0, gStringVar4, x, y, speed, NULL); } -void sub_80D0674(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount) +// Unused +static void ShowCoinsWindow_Parameterized(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount) { DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, palette); AddTextPrinterParameterized(windowId, FONT_2, gText_Coins_2, 0, 0, 0xFF, 0); diff --git a/src/credits.c b/src/credits.c index 5252ea682..daa03fb69 100644 --- a/src/credits.c +++ b/src/credits.c @@ -346,7 +346,7 @@ static const u32 sWindow2Map_Blastoise[] = INCBIN_U32("graphics/credits/unk_840F static const u32 sWindow1Map_Pikachu[] = INCBIN_U32("graphics/credits/unk_8410198.bin.lz"); static const u32 sWindow2Map_Pikachu[] = INCBIN_U32("graphics/credits/unk_84105B4.bin.lz"); -static const u32 filler_8410AFC = 0xF0; +static const u32 sUnused = 0xF0; static const u16 sTheEndGfxPal[] = INCBIN_U16("graphics/credits/unk_8410B20.gbapal"); static const u8 sTheEndGfxTiles[] = INCBIN_U8("graphics/credits/unk_8410B20.4bpp.lz"); diff --git a/src/decompress.c b/src/decompress.c index ea61482d0..f4740f917 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -116,7 +116,7 @@ static void Unused_LZDecompressWramIndirect(const void **src, void *dest) LZ77UnCompWram(*src, dest); } -static void sub_800EDDC(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles) +static void StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles) { /* This function appears to emulate behaviour found in the GB(C) versions regarding how the Pokemon images diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index e0ec9197e..3b52e06d1 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -79,7 +79,7 @@ static const u16 sEvolutionSparkleMatrixScales[12] = { 0x100 }; -static const s16 sUnref_841EF28[][2] = { +static const s16 sUnused[][2] = { {-4, 0x10}, {-3, 0x30}, {-2, 0x50}, diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 2531cfc31..c26869606 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -72,9 +72,9 @@ static const u16 sBgAnim_Pal[] = INCBIN_U16("graphics/evolution_scene/transition static const u8 sText_ShedinjaJapaneseName[] = _("ヌケニン"); -static const u8 unref_83F8445[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}"); +static const u8 sText_UnusedColors[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}"); -static const u8 unref_83F844F[][10] = { +static const u8 sText_UnusedArrows[][10] = { _("â–¶\n "), _(" \nâ–¶"), _(" \n ") diff --git a/src/fame_checker.c b/src/fame_checker.c index 36516b986..ba37cdc14 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -530,7 +530,7 @@ static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = { SPRITETAG_SELECTOR_CURSOR, SPRITETAG_SELECTOR_CURSOR, &sSelectorCursorOamData, sSelectorCursorAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const u8 filler_845FC5C[8] = {}; // ??? +static const u8 sUnused[8] = {}; // ??? static const struct OamData sQuestionMarkTileOamData = { .shape = ST_OAM_V_RECTANGLE, diff --git a/src/field_camera.c b/src/field_camera.c index 6f3f0979b..e2839d76e 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -34,7 +34,7 @@ static void CameraPanningCB_PanAhead(void); static struct FieldCameraOffset sFieldCameraOffset; static s16 sHorizontalCameraPan; static s16 sVerticalCameraPan; -static u8 gUnknown_3000E9C; +static u8 sBikeCameraPanFlag; static void (*sFieldCameraPanningCallback)(void); struct CameraObject gFieldCamera; @@ -513,7 +513,7 @@ void SetCameraPanning(s16 a, s16 b) void InstallCameraPanAheadCallback(void) { sFieldCameraPanningCallback = CameraPanningCB_PanAhead; - gUnknown_3000E9C = 0; + sBikeCameraPanFlag = FALSE; sHorizontalCameraPan = 0; sVerticalCameraPan = 32; } @@ -540,13 +540,13 @@ static void CameraPanningCB_PanAhead(void) // this code is never reached. if (gPlayerAvatar.tileTransitionState == 1) { - gUnknown_3000E9C ^= 1; - if (gUnknown_3000E9C == 0) + sBikeCameraPanFlag ^= 1; + if (sBikeCameraPanFlag == FALSE) return; } else { - gUnknown_3000E9C = 0; + sBikeCameraPanFlag = FALSE; } var = GetPlayerMovementDirection(); diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 04978adda..f2e8826b5 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -616,7 +616,7 @@ static void DoPortholeWarp(void) // Unused LockPlayerFieldControls(); WarpFadeOutScreen(); CreateTask(Task_Teleport2Warp, 10); - gFieldCallback = nullsub_60; + gFieldCallback = FieldCB_ShowPortholeView; } static void Task_CableClubWarp(u8 taskId) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 45081c1cc..a198999b6 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -442,7 +442,7 @@ static bool8 ForcedMovement_MatSpin(void) return TRUE; } -static void (*const gUnknown_835B814[])(u8, u16) = { +static void (*const sPlayerNotOnBikeFuncs[])(u8, u16) = { PlayerNotOnBikeNotMoving, PlayerNotOnBikeTurningInPlace, PlayerNotOnBikeMoving @@ -450,7 +450,7 @@ static void (*const gUnknown_835B814[])(u8, u16) = { void MovePlayerNotOnBike(u8 direction, u16 heldKeys) { - gUnknown_835B814[CheckMovementInputNotOnBike(direction)](direction, heldKeys); + sPlayerNotOnBikeFuncs[CheckMovementInputNotOnBike(direction)](direction, heldKeys); } static u8 CheckMovementInputNotOnBike(u8 direction) @@ -1733,7 +1733,7 @@ static bool8 Fishing4(struct Task *task) { u32 randVal; - sub_80F7768(0, TRUE); + LoadMessageBoxAndFrameGfx(0, TRUE); task->tStep++; task->tFrameCounter = 0; task->tNumDots = 0; diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 327426231..90910bc56 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -1,23 +1,23 @@ #include "global.h" -static u32 sub_80A0E78(void) +static u32 FieldSpecialScene_Dummy0(void) { return 0; } -static void nullsub_57(void) +static void FieldSpecialScene_Dummy1(void) { } -static void nullsub_58(void) +static void FieldSpecialScene_Dummy2(void) { } -static void nullsub_59(void) +static void FieldSpecialScene_Dummy3(void) { } -void nullsub_60(void) +void FieldCB_ShowPortholeView(void) { } diff --git a/src/field_specials.c b/src/field_specials.c index cf500e59f..84ffd75e3 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -325,7 +325,7 @@ void SpawnCameraObject(void) void RemoveCameraObject(void) { CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); - RemoveObjectEventByLocalIdAndMap(127, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + RemoveObjectEventByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } void BufferEReaderTrainerName(void) @@ -333,7 +333,8 @@ void BufferEReaderTrainerName(void) CopyEReaderTrainerName5(gStringVar1); } -static const u8 sUnused_83F5B04[] = { +// Unused +static const u8 sSlotMachineRandomSeeds[] = { 13, 14, 15, @@ -752,7 +753,8 @@ static const u8 *const sFloorNamePointers[] = { gText_Rooftop }; -static const u8 sUnused_83F5B84[] = { +// Unused +static const u8 sFloorNameWidthPadding[] = { 26, 26, 26, diff --git a/src/field_tasks.c b/src/field_tasks.c index a1f32b895..5c60b98b9 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -288,7 +288,8 @@ static void CrackedFloorPerStepCallback(u8 taskId) } } -static void sub_806ED38(void) +// Unused +static void SetHasPokedexAndPokemon(void) { FlagSet(FLAG_SYS_POKEDEX_GET); FlagSet(FLAG_SYS_POKEMON_GET); diff --git a/src/item_menu.c b/src/item_menu.c index 3ee223343..02696ab4d 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1662,7 +1662,7 @@ void Task_ReturnToBagFromContextMenu(u8 taskId) Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -static void unref_sub_810A288(u8 taskId) +static void Task_UnusedReturnToBad(u8 taskId) { s16 *data = gTasks[taskId].data; u16 itemsAbove; diff --git a/src/item_use.c b/src/item_use.c index 7c5091ccd..a0dfc50f2 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -70,8 +70,10 @@ static void Task_UseFameCheckerFromField(u8 taskId); static void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId); static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId); -// No clue what this is -static const u8 sUnref_83E27B4[] = { +// unknown unused data. +// It's curiously about the size of an array of values indexed by species (including padding), +// but the arrangement of values is not sensible (e.g., not giving all "old unown" the same value). +static const u8 sUnused[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/src/itemfinder.c b/src/itemfinder.c index 375b4ac38..ba96e6698 100644 --- a/src/itemfinder.c +++ b/src/itemfinder.c @@ -104,7 +104,7 @@ static const union AffineAnimCmd *const sArrowAndStarSpriteAffineAnimTable[] = { sAffineAnim_Up }; -static const struct SpriteTemplate gUnknown_84647E4 = { +static const struct SpriteTemplate sSpriteTemplate_ArrowAndStar = { .tileTag = ARROW_TILE_TAG, .paletteTag = 0xFFFF, .oam = &sArrowAndStarSpriteOamData, @@ -534,7 +534,7 @@ static void DestroyArrowAndStarTiles(void) static void CreateArrowSprite(u8 animNum, u8 direction) { - u8 spriteId = CreateSprite(&gUnknown_84647E4, 120, 76, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ArrowAndStar, 120, 76, 0); gSprites[spriteId].oam.paletteNum = 0; StartSpriteAnim(&gSprites[spriteId], animNum); gSprites[spriteId].spAnimNum = animNum; @@ -614,7 +614,7 @@ static void SpriteCallback_DestroyArrow(struct Sprite *sprite) static u8 CreateStarSprite(void) { - u8 spriteId = CreateSprite(&gUnknown_84647E4, 120, 76, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ArrowAndStar, 120, 76, 0); gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].callback = SpriteCallback_Star; StartSpriteAnim(&gSprites[spriteId], 4); diff --git a/src/learn_move.c b/src/learn_move.c index 7ebdcb27b..283cc4f41 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -326,7 +326,7 @@ static const struct WindowTemplate sWindowTemplates[9] = { }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_83FFA8C = { +static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = { .bg = 0, .tilemapLeft = 21, .tilemapTop = 8, @@ -506,7 +506,7 @@ static void MoveRelearnerStateMachine(void) MoveRelearnerMenuHandleInput(); break; case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state++; break; case MENU_STATE_TEACH_MOVE_CONFIRM : @@ -531,7 +531,7 @@ static void MoveRelearnerStateMachine(void) } break; case MENU_STATE_PRINT_GIVE_UP_PROMPT: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state++; break; case MENU_STATE_GIVE_UP_CONFIRM: @@ -552,7 +552,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state++; break; case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state = 18; break; case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: @@ -573,7 +573,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state++; break; case MENU_STATE_WAIT_FOR_STOP_TEACHING: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state = 26; break; case MENU_STATE_CONFIRM_STOP_TEACHING: diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 06f01ad80..076a03943 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -559,49 +559,60 @@ static bool8 RfuUnusedQueue_Enqueue(struct RfuUnusedQueue *queue, u8 *dest) } // Unused -static void sub_80FC9B8(u8 *q1, u8 mode) +// Populates an array with a sequence of numbers (which numbers depends on the mode) +// and sets the final element to the total of the other elements +#define SEQ_ARRAY_MAX_SIZE 200 +static void PopulateArrayWithSequence(u8 *arr, u8 mode) { s32 i; u8 rval; - u16 r5 = 0; + u16 total = 0; static u8 counter; switch (mode) { - case 0: - for (i = 0; i < 200; i++) - { - q1[i] = i + 1; - r5 += i + 1; - } - *((u16 *)(q1 + i)) = r5; - break; - case 1: - for (i = 0; i < 100; i++) - { - q1[i] = i + 1; - r5 += i + 1; - } - *((u16 *)(q1 + 200)) = r5; - break; - case 2: - for (i = 0; i < 200; i++) - { - rval = Random(); - q1[i] = rval; - r5 += rval; - } - *((u16 *)(q1 + i)) = r5; - break; - case 3: - for (i = 0; i < 200; i++) - { - q1[i] = i + 1 + counter; - r5 += (i + 1 + counter) & 0xFF; - } - *((u16 *)(q1 + i)) = r5; - counter++; - break; + case 0: + // Populate with numbers 1-200 + // Total will be 20100 + for (i = 0; i < SEQ_ARRAY_MAX_SIZE; i++) + { + arr[i] = i + 1; + total += i + 1; + } + *((u16 *)(arr + i)) = total; + break; + case 1: + // Populate with numbers 1-100 + // Total will be 5050 + for (i = 0; i < 100; i++) + { + arr[i] = i + 1; + total += i + 1; + } + *((u16 *)(arr + SEQ_ARRAY_MAX_SIZE)) = total; + break; + case 2: + // Populate with random numbers 0-255 + // Total will be a number 0-51000 + for (i = 0; i < SEQ_ARRAY_MAX_SIZE; i++) + { + rval = Random(); + arr[i] = rval; + total += rval; + } + *((u16 *)(arr + i)) = total; + break; + case 3: + // Populate with numbers 1-200 + counter + // Total will be a number 20100-51000 + for (i = 0; i < SEQ_ARRAY_MAX_SIZE; i++) + { + arr[i] = i + 1 + counter; + total += (i + 1 + counter) & 0xFF; + } + *((u16 *)(arr + i)) = total; + counter++; + break; } } diff --git a/src/m4a_1.s b/src/m4a_1.s index 7cb36580f..994f8892d 100644 --- a/src/m4a_1.s +++ b/src/m4a_1.s @@ -302,7 +302,7 @@ _081DD044: ldrb r0, [r4, o_SoundChannel_type] tst r0, 0x30 beq _081DD068 - bl sub_81DC460 + bl SoundMainRAM_Unk1 b _081DD228 _081DD068: mov r10, r10, lsl 16 @@ -465,8 +465,9 @@ _081DD25E: .pool thumb_func_end SoundMainRAM - arm_func_start sub_81DC460 -sub_81DC460: +@ Not present in GBA SDK 3.0 + arm_func_start SoundMainRAM_Unk1 +SoundMainRAM_Unk1: ldr r6, [r4, o_SoundChannel_wav] ldrb r0, [r4, o_SoundChannel_status] tst r0, 0x20 @@ -505,10 +506,10 @@ _081DD2B4: ldrb r0, [r4, o_SoundChannel_type] tst r0, 0x10 bne _081DD3C0 - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 add r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD308: ldr r6, [r5] @@ -534,11 +535,11 @@ _081DD310: b _081DD364 _081DD358: add r3, r3, lr - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 _081DD364: add r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD370: adds r5, r5, 0x40000000 @@ -565,10 +566,10 @@ _081DD3B0: b _081DD3B0 _081DD3C0: sub r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 sub r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD3D8: ldr r6, [r5] @@ -594,11 +595,11 @@ _081DD3E0: b _081DD434 _081DD428: sub r3, r3, lr - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 _081DD434: sub r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD440: adds r5, r5, 0x40000000 @@ -663,10 +664,11 @@ _081DD4F4: str r7, [r5, 0x630] str r6, [r5], 0x4 pop {r8,r12,pc} - arm_func_end sub_81DC460 + arm_func_end SoundMainRAM_Unk1 - arm_func_start sub_81DC71C -sub_81DC71C: +@ Not present in GBA SDK 3.0 + arm_func_start SoundMainRAM_Unk2 +SoundMainRAM_Unk2: push {r0,r2,r5-r7,lr} mov r0, r3, lsr 6 ldr r1, [r4, o_SoundChannel_xpi] @@ -678,7 +680,7 @@ sub_81DC71C: ldr r1, [r4, o_SoundChannel_wav] add r2, r2, r1 add r2, r2, 0x10 - ldr r5, =gUnknown_030007B8 + ldr r5, =sDecodingBuffer ldr r6, =gDeltaEncodingTable mov r7, 0x40 ldrb lr, [r2], 1 @@ -699,12 +701,12 @@ _081DD57C: subs r7, r7, 2 bgt _081DD568 _081DD594: - ldr r5, =gUnknown_030007B8 + ldr r5, =sDecodingBuffer and r0, r3, 0x3F ldrsb r1, [r5, r0] pop {r0,r2,r5-r7,pc} .pool - arm_func_end sub_81DC71C + arm_func_end SoundMainRAM_Unk2 thumb_func_start SoundMainBTM SoundMainBTM: @@ -1910,9 +1912,9 @@ _081DDD90: .bss .align 3 -gUnknown_030007B8: +sDecodingBuffer: .space 0x40 - .size gUnknown_030007B8, .-gUnknown_030007B8 + .size sDecodingBuffer, .-sDecodingBuffer .global gMPlayTrack_BGM gMPlayTrack_BGM: diff --git a/src/menu2.c b/src/menu2.c index 4074d129c..0f372140e 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -508,7 +508,7 @@ void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y) } } -static void sub_812E768(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height) +static void UnusedBlitBitmapRect(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height) { s32 loopSrcY, loopDstY, loopSrcX, loopDstX, xEnd, yEnd, multiplierSrcY, multiplierDstY; u16 toOrr; diff --git a/src/mevent_scripts.c b/src/mevent_scripts.c index 04d44f603..0c2918655 100644 --- a/src/mevent_scripts.c +++ b/src/mevent_scripts.c @@ -1,7 +1,7 @@ #include "global.h" #include "mevent_server.h" -extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; +extern const struct mevent_server_cmd gServerScript_ClientCanceledCard[]; // Unreferenced const u8 gUnknown_84687A0[] = _("You have collected all STAMPs!\nWant to input a CARD as a prize?"); @@ -148,7 +148,7 @@ const struct mevent_server_cmd gMEventSrvScript_AskClientToOverwriteCard[] = { SRV_RECV(0x13), SRV_READWORD, SRV_BRANCHIF(0x00, gMEventSrvScript_SendCardSuccess), - SRV_BRANCH(gMEventSrvScript_OtherTrainerCanceled) + SRV_BRANCH(gServerScript_ClientCanceledCard) }; const struct mevent_server_cmd gMEventSrvScript_OtherTrnHasCard[] = { diff --git a/src/mon_markings.c b/src/mon_markings.c index 6be89222b..e26ae9443 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -17,9 +17,9 @@ static void SpriteCB_Marking(struct Sprite *); static void SpriteCB_Cursor(struct Sprite *); static struct Sprite *CreateMarkingComboSprite(u16, u16, const u16 *, u16); -static const u16 sMonMarkingsPal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); +static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); static const u16 sMonMarkings_Gfx[] = INCBIN_U16("graphics/misc/mon_markings.4bpp"); -static const u8 sUnref_83EE828[] = {0x09, 0x50, 0x13, 0x02, 0xFF}; +static const u8 sUnused[] = {0x09, 0x50, 0x13, 0x02, 0xFF}; static const struct OamData sOamData_MenuWindow = { @@ -558,7 +558,7 @@ static void SpriteCB_Cursor(struct Sprite *sprite) struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette) { if (palette == NULL) - palette = sMonMarkingsPal; + palette = sMonMarkings_Pal; return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1 << NUM_MON_MARKINGS); } @@ -566,7 +566,7 @@ struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, cons struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette) { if (palette == NULL) - palette = sMonMarkingsPal; + palette = sMonMarkings_Pal; return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1); } diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index d71aebd6a..3dfce13a0 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -333,7 +333,7 @@ const struct ListMenuTemplate sListMenu_Receive = { .cursorKind = 0 }; -const u8 *const Unref_08366ED8[] = { +static const u8 *const sUnusedMenuTexts[] = { gText_VarietyOfEventsImportedWireless, gText_WonderCardsInPossession, gText_ReadNewsThatArrived, @@ -344,8 +344,8 @@ ALIGNED(4) const u8 sMG_Ereader_TextColor_1[3] = { 0, 1, 2 }; ALIGNED(4) const u8 sMG_Ereader_TextColor_1_Copy[3] = { 0, 1, 2 }; ALIGNED(4) const u8 sMG_Ereader_TextColor_2[3] = { 1, 2, 3 }; -const u8 gUnknown_8466EF3[] = _("テスト"); -const u8 gUnknown_8466EF7[] = _("ã‚€ã’ã‚“ã®ãƒã‚±ãƒƒãƒˆ"); +static const u8 sText_Test[] = _("テスト"); +static const u8 sText_EonTicket[] = _("ã‚€ã’ã‚“ã®ãƒã‚±ãƒƒãƒˆ"); void vblankcb_mystery_gift_e_reader_run(void) { diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index 8f60a8628..85521d0e9 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -609,7 +609,7 @@ void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram) DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM); } -void sub_80F7768(u8 windowId, bool8 copyToVram) +void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram) { if (gQuestLogState == QL_STATE_PLAYBACK) { diff --git a/src/overworld.c b/src/overworld.c index 3a4c8dc7b..8a99ea519 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -807,7 +807,7 @@ static void LoadMapFromWarp(bool32 unused) InitMap(); } -static void sub_80559A8(void) +static void QL_LoadMapNormal(void) { bool8 isOutdoors; @@ -2249,7 +2249,7 @@ static bool32 LoadMap_QLPlayback(u8 *state) else { gExitStairsMovementDisabled = TRUE; - sub_80559A8(); + QL_LoadMapNormal(); } (*state)++; break; diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c index 9b17a73ed..567f6b860 100644 --- a/src/party_menu_specials.c +++ b/src/party_menu_specials.c @@ -9,14 +9,14 @@ #include "event_data.h" #include "constants/moves.h" -static void sub_80BF97C(u8 taskId); +static void Task_ChoosePartyMon(u8 taskId); void ChoosePartyMon(void) { u8 taskId; LockPlayerFieldControls(); - taskId = CreateTask(sub_80BF97C, 10); + taskId = CreateTask(Task_ChoosePartyMon, 10); gTasks[taskId].data[0] = PARTY_MENU_TYPE_CHOOSE_SINGLE_MON; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } @@ -26,12 +26,12 @@ void SelectMoveTutorMon(void) u8 taskId; LockPlayerFieldControls(); - taskId = CreateTask(sub_80BF97C, 10); + taskId = CreateTask(Task_ChoosePartyMon, 10); gTasks[taskId].data[0] = PARTY_MENU_TYPE_MOVE_RELEARNER; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } -static void sub_80BF97C(u8 taskId) +static void Task_ChoosePartyMon(u8 taskId) { if (!gPaletteFade.active) { diff --git a/src/player_pc.c b/src/player_pc.c index dd5df17d3..9428fb026 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -88,8 +88,8 @@ static const struct MenuAction sMenuActions_TopMenu[] = { {gText_TurnOff, Task_PlayerPcTurnOff} }; -static const u8 gUnknown_8402200[] = { 0, 1, 2 }; -static const u8 gUnknown_8402203[] = { 0, 1, 2 }; +static const u8 sItemOrder_BedroomPC[] = { 0, 1, 2 }; +static const u8 sItemOrder_PlayerPC[] = { 0, 1, 2 }; static const struct MenuAction sMenuActions_ItemPc[] = { {gText_WithdrawItem2, Task_PlayerPcWithdrawItem}, @@ -154,7 +154,7 @@ void BedroomPC(void) gPlayerPcMenuManager.notInRoom = FALSE; BackupHelpContext(); - sItemOrder = gUnknown_8402200; + sItemOrder = sItemOrder_BedroomPC; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); DisplayItemMessageOnField(taskId, FONT_2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu); @@ -166,7 +166,7 @@ void PlayerPC(void) gPlayerPcMenuManager.notInRoom = TRUE; BackupHelpContext(); - sItemOrder = gUnknown_8402203; + sItemOrder = sItemOrder_PlayerPC; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); DisplayItemMessageOnField(taskId, FONT_2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu); diff --git a/src/pokemon_special_anim.c b/src/pokemon_special_anim.c index f13732e2a..bf56a5c21 100644 --- a/src/pokemon_special_anim.c +++ b/src/pokemon_special_anim.c @@ -601,7 +601,7 @@ static void Task_CleanUp(u8 taskId) static const struct { u16 itemId; u16 animType; -} gUnknown_8459634[2] = { +} sItemAnimMap[2] = { {ITEM_RARE_CANDY, 0}, {ITEM_POTION, 1} }; @@ -610,10 +610,10 @@ static u16 GetAnimTypeByItemId(u16 itemId) { int i; - for (i = 0; i < NELEMS(gUnknown_8459634); i++) + for (i = 0; i < ARRAY_COUNT(sItemAnimMap); i++) { - if (gUnknown_8459634[i].itemId == itemId) - return gUnknown_8459634[i].animType; + if (sItemAnimMap[i].itemId == itemId) + return sItemAnimMap[i].animType; } if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08) diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c index f08291445..f8ad88d9a 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -86,15 +86,16 @@ static const u8 sUnionRoomLocalIds[] = { 3 }; -static const u16 sUnref_8457128[] = { - 0x63, - 0x64, - 0x65, - 0x66, - 0x67, - 0x68, - 0x69, - 0x6A +// Unused +static const u16 sHidePlayerFlags[] = { + FLAG_HIDE_UNION_ROOM_PLAYER_1, + FLAG_HIDE_UNION_ROOM_PLAYER_2, + FLAG_HIDE_UNION_ROOM_PLAYER_3, + FLAG_HIDE_UNION_ROOM_PLAYER_4, + FLAG_HIDE_UNION_ROOM_PLAYER_5, + FLAG_HIDE_UNION_ROOM_PLAYER_6, + FLAG_HIDE_UNION_ROOM_PLAYER_7, + FLAG_HIDE_UNION_ROOM_PLAYER_8 }; static bool32 is_walking_or_running(void) diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 1133f7e04..ddb45171a 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -10,7 +10,7 @@ bool32 sIsInSaveFailedScreen; static EWRAM_DATA u16 sSaveType = SAVE_NORMAL; -static EWRAM_DATA u16 unused_203AB4E = 0; +static EWRAM_DATA u16 sUnused = 0; static EWRAM_DATA u8 sSaveFailedScreenState = 0; static void BlankPalettes(void); diff --git a/src/save_location.c b/src/save_location.c index 3dc58f32e..52220739c 100644 --- a/src/save_location.c +++ b/src/save_location.c @@ -7,7 +7,7 @@ static bool32 IsCurMapInLocationList(const u16 *list) s32 i; u16 locSum = (gSaveBlock1Ptr->location.mapGroup << 8) + (gSaveBlock1Ptr->location.mapNum); - for (i = 0; list[i] != 0xFFFF; i++) + for (i = 0; list[i] != MAP_UNDEFINED; i++) { if (list[i] == locSum) return TRUE; @@ -40,7 +40,7 @@ static const u16 sSaveLocationPokeCenterList[] = MAP_TRADE_CENTER, MAP_BATTLE_COLOSSEUM_4P, MAP_UNION_ROOM, - 0xFFFF, + MAP_UNDEFINED, }; bool32 IsCurMapPokeCenter(void) @@ -48,18 +48,19 @@ bool32 IsCurMapPokeCenter(void) return IsCurMapInLocationList(sSaveLocationPokeCenterList); } -static const u16 sSaveLocationReloadLocList[] = { 0xFFFF }; +static const u16 sSaveLocationReloadLocList[] = { MAP_UNDEFINED }; static bool32 IsCurMapReloadLocation(void) { return IsCurMapInLocationList(sSaveLocationReloadLocList); } -static const u16 sUnknown_8453094[] = { 0xFFFF }; +// Nulled out list. Unknown what this would have been. +static const u16 sEmptyMapList[] = { MAP_UNDEFINED }; -static bool32 sub_810B75C(void) +static bool32 IsCurMapInEmptyList(void) { - return IsCurMapInLocationList(sUnknown_8453094); + return IsCurMapInLocationList(sEmptyMapList); } static void TrySetPokeCenterWarpStatus(void) @@ -78,9 +79,10 @@ static void TrySetReloadWarpStatus(void) gSaveBlock2Ptr->specialSaveWarpFlags |= LOBBY_SAVEWARP; } -static void sub_810B7CC(void) +// Unknown save warp flag. Never set because map list is empty. +static void TrySetUnknownWarpStatus(void) { - if (!sub_810B75C()) + if (!IsCurMapInEmptyList()) gSaveBlock2Ptr->specialSaveWarpFlags &= ~(UNK_SPECIAL_SAVE_WARP_FLAG_3); else gSaveBlock2Ptr->specialSaveWarpFlags |= UNK_SPECIAL_SAVE_WARP_FLAG_3; @@ -90,21 +92,21 @@ void TrySetMapSaveWarpStatus(void) { TrySetPokeCenterWarpStatus(); TrySetReloadWarpStatus(); - sub_810B7CC(); + TrySetUnknownWarpStatus(); } void SetUnlockedPokedexFlags(void) { - gSaveBlock2Ptr->gcnLinkFlags |= 0x1; - gSaveBlock2Ptr->gcnLinkFlags |= 0x10; - gSaveBlock2Ptr->gcnLinkFlags |= 0x20; + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 0); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 4); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 5); } void SetPostgameFlags(void) { gSaveBlock2Ptr->specialSaveWarpFlags |= CHAMPION_SAVEWARP; - gSaveBlock2Ptr->gcnLinkFlags |= 0x2; - gSaveBlock2Ptr->gcnLinkFlags |= 0x4; - gSaveBlock2Ptr->gcnLinkFlags |= 0x8; - gSaveBlock2Ptr->gcnLinkFlags |= 0x8000; + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 1); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 2); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 3); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 15); } diff --git a/src/script_menu.c b/src/script_menu.c index 2739ffc91..921a12682 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -306,7 +306,7 @@ static const struct MenuAction sScriptMultiChoiceMenu_Eeveelutions[] = { }; static const struct MenuAction sScriptMultiChoiceMenu_BikeShop[] = { - { gText_Bicycle_1000000 }, + { gText_Bicycle_Price }, { gText_NoThanks } }; @@ -853,7 +853,8 @@ bool8 ScriptMenu_YesNo(u8 unused, u8 stuff) return TRUE; } -bool8 sub_809CE38(void) +// Unused +static bool8 IsScriptActive(void) { if (gSpecialVar_Result == SCR_MENU_UNSET) return FALSE; @@ -1002,7 +1003,7 @@ static void CreatePCMenuWindow(void) void ScriptMenu_DisplayPCStartupPrompt(void) { - sub_80F7768(0, TRUE); + LoadMessageBoxAndFrameGfx(0, TRUE); AddTextPrinterParameterized2(0, FONT_2, Text_AccessWhichPC, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); } diff --git a/src/start_menu.c b/src/start_menu.c index 27eef2de5..ec2616338 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -620,7 +620,7 @@ void Field_AskSaveTheGame(void) static void PrintSaveTextWithFollowupFunc(const u8 *str, bool8 (*saveDialogCB)(void)) { StringExpandPlaceholders(gStringVar4, str); - sub_80F7768(0, TRUE); + LoadMessageBoxAndFrameGfx(0, TRUE); AddTextPrinterForMessage(TRUE); sSaveDialogIsPrinting = TRUE; sSaveDialogCB = saveDialogCB; diff --git a/src/strings.c b/src/strings.c index 9ce0e031c..414178229 100644 --- a/src/strings.c +++ b/src/strings.c @@ -485,7 +485,7 @@ const u8 gText_FreshWater[] = _("FRESH WATER"); const u8 gText_SodaPop[] = _("SODA POP"); const u8 gText_Lemonade[] = _("LEMONADE"); const u8 gText_Coins_2[] = _("COINS"); -const u8 gText_Bicycle_1000000[] = _("BICYCLE{CLEAR_TO 0x49}{FONT_0}Â¥1,000,000"); +const u8 gText_Bicycle_Price[] = _("BICYCLE{CLEAR_TO 0x49}{FONT_0}Â¥1,000,000"); const u8 gText_NoThanks[] = _("NO THANKS"); const u8 gText_Abra_180Coins[] = _("ABRA{CLEAR_TO 0x55}{FONT_0} 180 COINS"); const u8 gText_Clefairy_500Coins[] = _("CLEFAIRY{CLEAR_TO 0x55}{FONT_0} 500 COINS"); diff --git a/src/trainer_card.c b/src/trainer_card.c index 4a9b99361..98a2f62e2 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -99,9 +99,9 @@ static void HandleGpuRegs(void); static void UpdateCardFlipRegs(u16 cardTop); static void ResetGpuRegs(void); static void TrainerCardNull(void); -static void sub_8089C5C(void); -static void sub_8089C80(void); -static void sub_8089CA4(void); +static void DmaClearOam(void); +static void DmaClearPltt(void); +static void ResetBgRegs(void); static void InitBgsAndWindows(void); static void SetTrainerCardCB2(void); static void SetUpTrainerCardTask(void); @@ -713,15 +713,15 @@ static void CB2_InitTrainerCard(void) gMain.state++; break; case 2: - sub_8089C5C(); + DmaClearOam(); gMain.state++; break; case 3: - sub_8089C80(); + DmaClearPltt(); gMain.state++; // fallthrough case 4: - sub_8089CA4(); + ResetBgRegs(); gMain.state++; break; case 5: @@ -984,30 +984,30 @@ static void TrainerCardNull(void) { } -static void sub_8089C5C(void) +static void DmaClearOam(void) { DmaClear32(3, (void *)OAM, OAM_SIZE); } -static void sub_8089C80(void) +static void DmaClearPltt(void) { DmaClear16(3, (void *)PLTT, PLTT_SIZE); } -static void sub_8089CA4(void) +static void ResetBgRegs(void) { - SetGpuReg(REG_OFFSET_BG0CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3VOFS, DISPCNT_MODE_0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); } static void InitBgsAndWindows(void) diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 9bc2090f1..71b383531 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -64,7 +64,7 @@ struct TrainerEncounterMusicPairs static EWRAM_DATA struct TrainerTowerState * sTrainerTowerState = NULL; static EWRAM_DATA struct TrainerTowerOpponent * sTrainerTowerOpponent = NULL; -static EWRAM_DATA u8 sUnused_203F460 = 0; +static EWRAM_DATA u8 sUnused = 0; static void SetUpTrainerTowerDataStruct(void); static void FreeTrainerTowerDataStruct(void); @@ -321,7 +321,7 @@ static const struct WindowTemplate sTimeBoardWindowTemplate[] = { }, DUMMY_WIN_TEMPLATE }; -static const u32 sUnused_847A228 = 0x70; +static const u32 sUnusedValue = 112; static const u8 sTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 18b0547fd..9d2b8a756 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -38,7 +38,7 @@ static const struct WindowTemplate sWindowTemplates[] = { }, DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_84571A8[] = {1, 2, 3}; +static const u8 sTextColors[] = {1, 2, 3}; static void SetUpPartiesAndStartBattle(void) { @@ -66,8 +66,8 @@ static void UnionRoomBattle_CreateTextPrinter(u8 windowId, const u8 * str, u8 x, { s32 letterSpacing = 1; s32 lineSpacing = 1; - FillWindowPixelBuffer(windowId, PIXEL_FILL(gUnknown_84571A8[0])); - AddTextPrinterParameterized4(windowId, FONT_3, x, y, letterSpacing, lineSpacing, gUnknown_84571A8, speed, str); + FillWindowPixelBuffer(windowId, PIXEL_FILL(sTextColors[0])); + AddTextPrinterParameterized4(windowId, FONT_3, x, y, letterSpacing, lineSpacing, sTextColors, speed, str); } static bool32 UnionRoomBattle_PrintTextOnWindow0(s16 * state, const u8 * str, s32 speed) diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c index a6a716365..bda658f30 100644 --- a/src/union_room_chat_display.c +++ b/src/union_room_chat_display.c @@ -123,7 +123,7 @@ static const u16 sUnionRoomChatPanelBgPal_C[] = INCBIN_U16("graphics/union_room_ static const u16 sBg1Pal8[] = INCBIN_U16("graphics/union_room_chat/unk_845AA44.gbapal"); static const u16 sWin0PalF[] = INCBIN_U16("graphics/union_room_chat/unk_845AA64.gbapal"); -static const struct BgTemplate gUnknown_845AA84[] = { +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, .charBaseIndex = 0, @@ -159,7 +159,7 @@ static const struct BgTemplate gUnknown_845AA84[] = { } }; -static const struct WindowTemplate gUnknown_845AA94[] = { +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 3, .tilemapLeft = 8, @@ -349,8 +349,8 @@ bool8 UnionRoomChat_TryAllocGraphicsWork(void) if (sWork && UnionRoomChat_TryAllocSpriteWork()) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_845AA84, NELEMS(gUnknown_845AA84)); - InitWindows(gUnknown_845AA94); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); ResetTempTileDataBuffers(); InitScanlineEffect(); InitWork(sWork); diff --git a/src/union_room_message.c b/src/union_room_message.c index e84e666e1..21d74736f 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -558,15 +558,15 @@ const u8 *const gTexts_UR_GladToMeetYou[GENDER_COUNT] = { ALIGNED(4) const u8 gText_UR_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); ALIGNED(4) static const u8 sText_CanceledReadingCard[] = _("Canceled reading the Card."); -const struct mevent_client_cmd gUnknown_84595CC[] = { +static const struct mevent_client_cmd sClientScript_DynamicError[] = { CLI_RECEIVE(0x15), CLI_RECVBUF, CLI_SENDALL, CLI_RETURN(0x0e) }; -const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[] = { - SRV_SEND(0x20, gUnknown_84595CC), +const struct mevent_server_cmd gServerScript_ClientCanceledCard[] = { + SRV_SEND(0x20, sClientScript_DynamicError), SRV_WAITSND, SRV_SENDSTR(0x1b, sText_CanceledReadingCard), SRV_WAITSND, From 2f39d4ef993fdd309765de0233960adca7415335 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 2 Nov 2022 16:58:13 -0400 Subject: [PATCH 102/105] Fix typo --- src/item_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/item_menu.c b/src/item_menu.c index 02696ab4d..ae8d98235 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1662,7 +1662,7 @@ void Task_ReturnToBagFromContextMenu(u8 taskId) Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -static void Task_UnusedReturnToBad(u8 taskId) +static void Task_UnusedReturnToBag(u8 taskId) { s16 *data = gTasks[taskId].data; u16 itemsAbove; From dea9552563313740724ebbf9623dd93da1069e4f Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Mon, 7 Nov 2022 14:52:23 +0800 Subject: [PATCH 103/105] Document src/event_data.c --- include/constants/flags.h | 88 +++++++++++++++++++++------------------ include/constants/vars.h | 44 ++++++++++---------- include/event_data.h | 2 +- include/global.h | 4 +- src/event_data.c | 77 +++++++++++++++++++--------------- src/new_game.c | 2 +- 6 files changed, 118 insertions(+), 99 deletions(-) diff --git a/include/constants/flags.h b/include/constants/flags.h index e4c13dce6..5baa6c75c 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -3,37 +3,45 @@ #include "constants/trainers.h" -#define FLAG_TEMP_1 0x001 -#define FLAG_TEMP_2 0x002 -#define FLAG_TEMP_3 0x003 -#define FLAG_TEMP_4 0x004 -#define FLAG_TEMP_5 0x005 -#define FLAG_TEMP_6 0x006 -#define FLAG_TEMP_7 0x007 -#define FLAG_TEMP_8 0x008 -#define FLAG_TEMP_9 0x009 -#define FLAG_TEMP_A 0x00A -#define FLAG_TEMP_B 0x00B -#define FLAG_TEMP_C 0x00C -#define FLAG_TEMP_D 0x00D -#define FLAG_TEMP_E 0x00E -#define FLAG_TEMP_F 0x00F -#define FLAG_TEMP_10 0x010 -#define FLAG_TEMP_11 0x011 -#define FLAG_TEMP_12 0x012 -#define FLAG_TEMP_13 0x013 -#define FLAG_TEMP_14 0x014 -#define FLAG_TEMP_15 0x015 -#define FLAG_TEMP_16 0x016 -#define FLAG_TEMP_17 0x017 -#define FLAG_TEMP_18 0x018 -#define FLAG_TEMP_19 0x019 -#define FLAG_TEMP_1A 0x01A -#define FLAG_TEMP_1B 0x01B -#define FLAG_TEMP_1C 0x01C -#define FLAG_TEMP_1D 0x01D -#define FLAG_TEMP_1E 0x01E -#define FLAG_TEMP_1F 0x01F +// Temporary Flags +// These temporary flags are are cleared every time a map is loaded. They are used +// for things like shortening an NPCs introduction text if the player already spoke +// to them once. +#define TEMP_FLAGS_START 0x0 +#define FLAG_TEMP_1 (TEMP_FLAGS_START + 0x01) +#define FLAG_TEMP_2 (TEMP_FLAGS_START + 0x02) +#define FLAG_TEMP_3 (TEMP_FLAGS_START + 0x03) +#define FLAG_TEMP_4 (TEMP_FLAGS_START + 0x04) +#define FLAG_TEMP_5 (TEMP_FLAGS_START + 0x05) +#define FLAG_TEMP_6 (TEMP_FLAGS_START + 0x06) +#define FLAG_TEMP_7 (TEMP_FLAGS_START + 0x07) +#define FLAG_TEMP_8 (TEMP_FLAGS_START + 0x08) +#define FLAG_TEMP_9 (TEMP_FLAGS_START + 0x09) +#define FLAG_TEMP_A (TEMP_FLAGS_START + 0x0A) +#define FLAG_TEMP_B (TEMP_FLAGS_START + 0x0B) +#define FLAG_TEMP_C (TEMP_FLAGS_START + 0x0C) +#define FLAG_TEMP_D (TEMP_FLAGS_START + 0x0D) +#define FLAG_TEMP_E (TEMP_FLAGS_START + 0x0E) +#define FLAG_TEMP_F (TEMP_FLAGS_START + 0x0F) +#define FLAG_TEMP_10 (TEMP_FLAGS_START + 0x10) + +// Used for obstacles (e.g. cut trees and rock smash rocks) +#define FLAG_TEMP_11 (TEMP_FLAGS_START + 0x11) +#define FLAG_TEMP_12 (TEMP_FLAGS_START + 0x12) +#define FLAG_TEMP_13 (TEMP_FLAGS_START + 0x13) +#define FLAG_TEMP_14 (TEMP_FLAGS_START + 0x14) +#define FLAG_TEMP_15 (TEMP_FLAGS_START + 0x15) +#define FLAG_TEMP_16 (TEMP_FLAGS_START + 0x16) +#define FLAG_TEMP_17 (TEMP_FLAGS_START + 0x17) +#define FLAG_TEMP_18 (TEMP_FLAGS_START + 0x18) +#define FLAG_TEMP_19 (TEMP_FLAGS_START + 0x19) +#define FLAG_TEMP_1A (TEMP_FLAGS_START + 0x1A) +#define FLAG_TEMP_1B (TEMP_FLAGS_START + 0x1B) +#define FLAG_TEMP_1C (TEMP_FLAGS_START + 0x1C) +#define FLAG_TEMP_1D (TEMP_FLAGS_START + 0x1D) +#define FLAG_TEMP_1E (TEMP_FLAGS_START + 0x1E) +#define FLAG_TEMP_1F (TEMP_FLAGS_START + 0x1F) +#define TEMP_FLAGS_END FLAG_TEMP_1F #define FLAG_0x020 0x020 #define FLAG_0x021 0x021 @@ -1376,8 +1384,8 @@ #define FLAG_SYS_NOT_SOMEONES_PC (SYS_FLAGS + 0x34) #define FLAG_0x835 (SYS_FLAGS + 0x35) #define FLAG_0x836 (SYS_FLAGS + 0x36) -#define FLAG_0x837 (SYS_FLAGS + 0x37) -#define FLAG_0x838 (SYS_FLAGS + 0x38) +#define FLAG_SYS_RESET_RTC_ENABLE (SYS_FLAGS + 0x37) +#define FLAG_0x838 (SYS_FLAGS + 0x38) // Set, never read #define FLAG_SYS_MYSTERY_GIFT_ENABLED (SYS_FLAGS + 0x39) #define FLAG_0x83A (SYS_FLAGS + 0x3A) #define FLAG_SYS_RIBBON_GET (SYS_FLAGS + 0x3B) @@ -1515,13 +1523,11 @@ #define FLAGS_COUNT (FLAG_0x8FF + 1) -// SPECIAL FLAGS (unknown purpose) -#define SPECIAL_FLAGS_START 0x4000 -#define SPECIAL_FLAGS_COUNT 16 -#define FLAG_DONT_SHOW_MAP_NAME_POPUP 0x4000 -#define FLAG_DONT_TRANSITION_MUSIC 0x4001 -#define FLAG_SPECIAL_FLAG_0x4002 0x4002 -#define FLAG_SPECIAL_FLAG_0x4003 0x4003 -#define FLAG_SPECIAL_FLAG_0x4004 0x4004 +// Special Flags (Stored in EWRAM (sSpecialFlags, not in the SaveBlock) +#define SPECIAL_FLAGS_START 0x4000 +#define FLAG_DONT_SHOW_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0) +#define FLAG_DONT_TRANSITION_MUSIC (SPECIAL_FLAGS_START + 0x1) +// FLAG_SPECIAL_FLAG_0x4002 - 0x407F also exist and are unused +#define SPECIAL_FLAGS_END (SPECIAL_FLAGS_START + 0x7F) #endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 0a88f6508..56dafee12 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -3,23 +3,25 @@ #define VARS_START 0x4000 -// Temporary variables. Reset on map load. -#define VAR_TEMP_0 0x4000 -#define VAR_TEMP_1 0x4001 -#define VAR_TEMP_2 0x4002 -#define VAR_TEMP_3 0x4003 -#define VAR_TEMP_4 0x4004 -#define VAR_TEMP_5 0x4005 -#define VAR_TEMP_6 0x4006 -#define VAR_TEMP_7 0x4007 -#define VAR_TEMP_8 0x4008 -#define VAR_TEMP_9 0x4009 -#define VAR_TEMP_A 0x400A -#define VAR_TEMP_B 0x400B -#define VAR_TEMP_C 0x400C -#define VAR_TEMP_D 0x400D -#define VAR_TEMP_E 0x400E -#define VAR_TEMP_F 0x400F +// Temporary variables. Temp vars are cleared every time a map is loaded. +#define TEMP_VARS_START 0x4000 +#define VAR_TEMP_0 (TEMP_VARS_START + 0x0) +#define VAR_TEMP_1 (TEMP_VARS_START + 0x1) +#define VAR_TEMP_2 (TEMP_VARS_START + 0x2) +#define VAR_TEMP_3 (TEMP_VARS_START + 0x3) +#define VAR_TEMP_4 (TEMP_VARS_START + 0x4) +#define VAR_TEMP_5 (TEMP_VARS_START + 0x5) +#define VAR_TEMP_6 (TEMP_VARS_START + 0x6) +#define VAR_TEMP_7 (TEMP_VARS_START + 0x7) +#define VAR_TEMP_8 (TEMP_VARS_START + 0x8) +#define VAR_TEMP_9 (TEMP_VARS_START + 0x9) +#define VAR_TEMP_A (TEMP_VARS_START + 0xA) +#define VAR_TEMP_B (TEMP_VARS_START + 0xB) +#define VAR_TEMP_C (TEMP_VARS_START + 0xC) +#define VAR_TEMP_D (TEMP_VARS_START + 0xD) +#define VAR_TEMP_E (TEMP_VARS_START + 0xE) +#define VAR_TEMP_F (TEMP_VARS_START + 0xF) +#define TEMP_VARS_END VAR_TEMP_F // Object event graphics IDs which can be changed by // script commands. @@ -86,7 +88,7 @@ #define VAR_0x4029 0x4029 #define VAR_0x402A 0x402A #define VAR_0x402B 0x402B -#define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_0x402C 0x402C #define VAR_0x402D 0x402D #define VAR_0x402E 0x402E @@ -94,7 +96,7 @@ #define VAR_ICE_STEP_COUNT 0x4030 #define VAR_STARTER_MON 0x4031 // 0: Bulbasaur, 1: Squirtle, 2: Charmander -#define VAR_0x4032 0x4032 +#define VAR_RESET_RTC_ENABLE 0x4032 #define VAR_ENIGMA_BERRY_AVAILABLE 0x4033 #define VAR_0x4034 0x4034 @@ -105,7 +107,7 @@ #define VAR_FANCLUB_LOSE_FAN_TIMER 0x4039 #define VAR_ELEVATOR_FLOOR 0x403A #define VAR_RESORT_GORGEOUS_REWARD 0x403B -#define VAR_0x403C 0x403C +#define VAR_0x403C 0x403C // Set to 0x0302, never read #define VAR_HERACROSS_SIZE_RECORD 0x403D #define VAR_DEOXYS_INTERACTION_NUM 0x403E #define VAR_0x403F 0x403F @@ -158,7 +160,7 @@ #define VAR_MAP_SCENE_PEWTER_CITY 0x406C #define VAR_0x406D 0x406D #define VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 0x406E -#define VAR_CABLE_CLUB_STATE 0x406F +#define VAR_CABLE_CLUB_STATE 0x406F #define VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY 0x4070 #define VAR_MAP_SCENE_CINNABAR_ISLAND 0x4071 #define VAR_0x4072 0x4072 diff --git a/include/event_data.h b/include/event_data.h index fcad84b6a..5a6f98c6c 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -52,7 +52,7 @@ void ResetSpecialVars(void); void ResetMysteryEventFlags(void); void ResetMysteryEventVars(void); bool32 IsNationalPokedexEnabled(void); -void sub_806E190(void); +void EnableNationalPokedex_RSE(void); void ClearTempFieldEventData(void); #endif // GUARD_EVENT_DATA_H diff --git a/include/global.h b/include/global.h index 05a0e77f1..79dedcdc2 100644 --- a/include/global.h +++ b/include/global.h @@ -183,8 +183,8 @@ struct Pokedex { /*0x00*/ u8 order; /*0x01*/ u8 mode; - /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode - /*0x03*/ u8 unknown2; // set to 0xB9 when national dex is first enabled + /*0x02*/ u8 unused; // set to 0xDA, never read + /*0x03*/ u8 nationalMagic; // set to 0xB9 when national dex is first enabled /*0x04*/ u32 unownPersonality; // set when you first see Unown /*0x08*/ u32 spindaPersonality; // set when you first see Spinda /*0x0C*/ u32 unknown3; diff --git a/src/event_data.c b/src/event_data.c index ac227177d..5d3bad5d6 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -5,6 +5,14 @@ static bool8 IsFlagOrVarStoredInQuestLog(u16 idx, u8 a1); +#define NUM_SPECIAL_FLAGS (SPECIAL_FLAGS_END - SPECIAL_FLAGS_START + 1) +#define NUM_TEMP_FLAGS (TEMP_FLAGS_END - TEMP_FLAGS_START + 1) +#define NUM_TEMP_VARS (TEMP_VARS_END - TEMP_VARS_START + 1) + +#define SPECIAL_FLAGS_SIZE (NUM_SPECIAL_FLAGS / 8) // 8 flags per byte +#define TEMP_FLAGS_SIZE (NUM_TEMP_FLAGS / 8) +#define TEMP_VARS_SIZE (NUM_TEMP_VARS * 2) // 1/2 var per byte + EWRAM_DATA u16 gSpecialVar_0x8000 = 0; EWRAM_DATA u16 gSpecialVar_0x8001 = 0; EWRAM_DATA u16 gSpecialVar_0x8002 = 0; @@ -25,7 +33,7 @@ EWRAM_DATA u16 gSpecialVar_MonBoxPos = 0; EWRAM_DATA u16 gSpecialVar_TextColor = 0; EWRAM_DATA u16 gSpecialVar_PrevTextColor = 0; EWRAM_DATA u16 gSpecialVar_0x8014 = 0; -EWRAM_DATA u8 sSpecialFlags[SPECIAL_FLAGS_COUNT] = {}; +EWRAM_DATA u8 sSpecialFlags[SPECIAL_FLAGS_SIZE] = {}; u16 gLastQuestLogStoredFlagOrVarIdx; @@ -33,15 +41,15 @@ extern u16 *const gSpecialVars[]; void InitEventData(void) { - memset(gSaveBlock1Ptr->flags, 0, NUM_FLAG_BYTES); - memset(gSaveBlock1Ptr->vars, 0, VARS_COUNT * 2); - memset(sSpecialFlags, 0, SPECIAL_FLAGS_COUNT); + memset(gSaveBlock1Ptr->flags, 0, sizeof(gSaveBlock1Ptr->flags)); + memset(gSaveBlock1Ptr->vars, 0, sizeof(gSaveBlock1Ptr->vars)); + memset(sSpecialFlags, 0, sizeof(sSpecialFlags)); } void ClearTempFieldEventData(void) { - memset(gSaveBlock1Ptr->flags, 0, 4); - memset(gSaveBlock1Ptr->vars, 0, 16 * 2); + memset(gSaveBlock1Ptr->flags + (TEMP_FLAGS_START / 8), 0, TEMP_FLAGS_SIZE); + memset(gSaveBlock1Ptr->vars + ((TEMP_VARS_START - VARS_START) * 2), 0, TEMP_VARS_SIZE); FlagClear(FLAG_SYS_WHITE_FLUTE_ACTIVE); FlagClear(FLAG_SYS_BLACK_FLUTE_ACTIVE); FlagClear(FLAG_SYS_USE_STRENGTH); @@ -49,37 +57,41 @@ void ClearTempFieldEventData(void) FlagClear(FLAG_SYS_INFORMED_OF_LOCAL_WIRELESS_PLAYER); } -void sub_806E168(void) // Unused +// Unused +static void DisableNationalPokedex_RSE(void) { u16 *ptr = GetVarPointer(VAR_0x403C); - gSaveBlock2Ptr->pokedex.nationalMagic = 0; + gSaveBlock2Ptr->pokedex.unused = 0; *ptr = 0; FlagClear(FLAG_0x838); } -void sub_806E190(void) +// The magic numbers used here (0xDA and 0x0302) correspond to those +// used in RSE for enabling the national Pokedex +void EnableNationalPokedex_RSE(void) { + // Note: the var, struct member, and flag are never used u16 *ptr = GetVarPointer(VAR_0x403C); - gSaveBlock2Ptr->pokedex.nationalMagic = 0xDA; + gSaveBlock2Ptr->pokedex.unused = 0xDA; *ptr = 0x0302; FlagSet(FLAG_0x838); } -bool32 sub_806E1C0(void) // Unused +// Unused +static bool32 IsNationalPokedexEnabled_RSE(void) { - if (gSaveBlock2Ptr->pokedex.nationalMagic != 0xDA) - return FALSE; - if (VarGet(VAR_0x403C) != 0x0302) - return FALSE; - if (!FlagGet(FLAG_0x838)) - return FALSE; - return TRUE; + if (gSaveBlock2Ptr->pokedex.unused == 0xDA + && VarGet(VAR_0x403C) == 0x0302 + && FlagGet(FLAG_0x838)) + return TRUE; + + return FALSE; } void DisableNationalPokedex(void) { u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); - gSaveBlock2Ptr->pokedex.unknown2 = 0; + gSaveBlock2Ptr->pokedex.nationalMagic = 0; *nationalDexVar = 0; FlagClear(FLAG_SYS_NATIONAL_DEX); } @@ -87,20 +99,19 @@ void DisableNationalPokedex(void) void EnableNationalPokedex(void) { u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); - gSaveBlock2Ptr->pokedex.unknown2 = 0xB9; + gSaveBlock2Ptr->pokedex.nationalMagic = 0xB9; *nationalDexVar = 0x6258; FlagSet(FLAG_SYS_NATIONAL_DEX); } bool32 IsNationalPokedexEnabled(void) { - if (gSaveBlock2Ptr->pokedex.unknown2 != 0xB9) - return FALSE; - if (VarGet(VAR_NATIONAL_DEX) != 0x6258) - return FALSE; - if (!FlagGet(FLAG_SYS_NATIONAL_DEX)) - return FALSE; - return TRUE; + if (gSaveBlock2Ptr->pokedex.nationalMagic == 0xB9 + && VarGet(VAR_NATIONAL_DEX) == 0x6258 + && FlagGet(FLAG_SYS_NATIONAL_DEX)) + return TRUE; + + return FALSE; } void DisableMysteryGift(void) @@ -153,21 +164,21 @@ void ResetMysteryEventVars(void) void DisableResetRTC(void) { - VarSet(VAR_0x4032, 0); - FlagClear(FLAG_0x837); + VarSet(VAR_RESET_RTC_ENABLE, 0); + FlagClear(FLAG_SYS_RESET_RTC_ENABLE); } void EnableResetRTC(void) { - VarSet(VAR_0x4032, 0x0920); - FlagSet(FLAG_0x837); + VarSet(VAR_RESET_RTC_ENABLE, 0x0920); + FlagSet(FLAG_SYS_RESET_RTC_ENABLE); } bool32 CanResetRTC(void) { - if (!FlagGet(FLAG_0x837)) + if (!FlagGet(FLAG_SYS_RESET_RTC_ENABLE)) return FALSE; - if (VarGet(VAR_0x4032) != 0x0920) + if (VarGet(VAR_RESET_RTC_ENABLE) != 0x0920) return FALSE; return TRUE; } diff --git a/src/new_game.c b/src/new_game.c index 0bd25b23c..d6400d763 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -130,7 +130,7 @@ void NewGameInitData(void) ClearPlayerLinkBattleRecords(); InitHeracrossSizeRecord(); InitMagikarpSizeRecord(); - sub_806E190(); + EnableNationalPokedex_RSE(); gPlayerPartyCount = 0; ZeroPlayerPartyMons(); ResetPokemonStorageSystem(); From 8998b19435b823b9db12529648265bfb47ecfe65 Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Mon, 7 Nov 2022 14:53:37 +0800 Subject: [PATCH 104/105] Document src/event_object_movement.c --- include/constants/event_object_movement.h | 1 + include/event_object_movement.h | 53 ++- src/event_object_movement.c | 508 ++++++++++------------ src/fame_checker.c | 2 +- src/field_effect_helpers.c | 26 +- src/naming_screen.c | 4 +- src/overworld.c | 8 +- src/quest_log.c | 4 +- src/rfu_union_tool.c | 18 +- src/shop.c | 2 +- src/teachy_tv.c | 2 +- 11 files changed, 305 insertions(+), 323 deletions(-) diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 200c99086..936ef4dfd 100644 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -260,6 +260,7 @@ #define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT 0xA9 #define MOVEMENT_ACTION_STEP_END 0xFE +#define MOVEMENT_ACTION_NONE 0xFF #define ANIM_STD_FACE_SOUTH 0 #define ANIM_STD_FACE_NORTH 1 diff --git a/include/event_object_movement.h b/include/event_object_movement.h index c9c1fe152..814c7b1ad 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -1,9 +1,27 @@ #ifndef GUARD_EVENT_OBJECT_MOVEMENT_H #define GUARD_EVENT_OBJECT_MOVEMENT_H -#include "global.h" - -// Exported struct declarations +// Palette slots for overworld NPCs. +// The same standard set of palettes for overworld objects are normally always loaded at the same +// time while walking around the overworld. The only exceptions are the palettes for the player and +// the "special" NPC, which can be swapped out. This also means that e.g. two "special" NPCs +// with competing palettes cannot be properly loaded at the same time. +enum { + PALSLOT_PLAYER, + PALSLOT_PLAYER_REFLECTION, + PALSLOT_NPC_1, + PALSLOT_NPC_2, + PALSLOT_NPC_3, + PALSLOT_NPC_4, + PALSLOT_NPC_1_REFLECTION, + PALSLOT_NPC_2_REFLECTION, + PALSLOT_NPC_3_REFLECTION, + PALSLOT_NPC_4_REFLECTION, + PALSLOT_NPC_SPECIAL, + PALSLOT_NPC_SPECIAL_REFLECTION, + OBJ_PALSLOT_COUNT + // the remaining sprite palette slots (12-15) are used by field effects, the interface, etc. +}; enum SpinnerRunnerFollowPatterns { @@ -69,15 +87,14 @@ void LoadPlayerObjectReflectionPalette(u16, u8); void LoadSpecialObjectReflectionPalette(u16, u8); void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16); void PatchObjectPalette(u16, u8); -void ReloadMapObjectsWithOffset(s16 x, s16 y); +void SpawnObjectEventsOnReturnToField(s16 x, s16 y); void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *); u8 GetFaceDirectionAnimNum(u8); void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16); void ObjectEventClearHeldMovement(struct ObjectEvent *); void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *); -void SpawnObjectEventsInView(s16, s16); -u8 CreateVirtualObject(u8, u8, s16, s16, u8, u8); -u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8); +u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction); +u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority); u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup); int SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *); @@ -109,7 +126,7 @@ void MoveCoords(u8, s16 *, s16 *); bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *); u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *); u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation); -void sub_8063E28(struct ObjectEvent *, struct Sprite *); +void UpdateQuestLogObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *); bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8); void ShiftStillObjectEventCoords(struct ObjectEvent *); void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8); @@ -117,7 +134,7 @@ void SetTrainerMovementType(struct ObjectEvent *, u8); u8 GetFishingDirectionAnimNum(u8 direction); u8 GetFishingNoCatchDirectionAnimNum(u8 a0); void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1); -u8 sub_805EB44(u8, u8, s16, s16); +u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y); void InitObjectEventPalettes(u8 mode); bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent); u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent); @@ -138,7 +155,7 @@ bool8 UpdateWalkSlowerAnim(struct Sprite *sprite); void SetJumpSpriteData(struct Sprite *, u8, u8, u8); u8 DoJumpSpriteMovement(struct Sprite *); u8 DoJumpSpecialSpriteMovement(struct Sprite *); -void TurnVirtualObject(u8, u8); +void TurnVirtualObject(u8 virtualObjId, u8 direction); const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId); u8 GetFirstInactiveObjectEventId(void); u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction); @@ -148,25 +165,25 @@ void FreezeObjectEvents(void); bool8 FreezeObjectEvent(struct ObjectEvent *); void UnfreezeObjectEvent(struct ObjectEvent *); void FreezeObjectEventsExceptOne(u8 objEventId); -void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction); -void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible); -bool32 RfuUnionObjectIsInvisible(u8 objectEventId); -void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo); -bool32 RfuUnionObjectIsWarping(u8 objectEventId); +void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction); +void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible); +bool32 IsVirtualObjectInvisible(u8 virtualObjId); +void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNo); +bool32 IsVirtualObjectAnimating(u8 virtualObjId); u8 GetJumpSpecialMovementAction(u32 direction); void EnableObjectGroundEffectsByXY(s16 x, s16 y); void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y); u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority); u16 GetObjectPaletteTag(u8 paletteIndex); void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2); -void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); +void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible); u8 ElevationToPriority(u8 elevation); void ObjectEventUpdateElevation(struct ObjectEvent *pObject); void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 offset); -void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); +void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); u8 AddCameraObject(u8 trackedSpriteId); void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); -void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *); +void SpriteCB_VirtualObject(struct Sprite *); void SetMovementDelay(struct Sprite *, s16); bool8 WaitForMovementDelay(struct Sprite *); void SetSpriteDataForNormalStep(struct Sprite *, u8, u8); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 36b85be4f..0a1fe3bd7 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -19,6 +19,7 @@ #include "constants/event_object_movement.h" #include "constants/event_objects.h" #include "constants/trainer_types.h" +#include "constants/union_room.h" static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16); static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *, struct Sprite *); @@ -71,7 +72,7 @@ static void GetObjectEventMovingCameraOffset(s16 *, s16 *); static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8); static void LoadObjectEventPalette(u16); static void RemoveObjectEventIfOutsideView(struct ObjectEvent *); -static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y); +static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y); static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8); static void ResetObjectEventFldEffData(struct ObjectEvent *); static u8 TryLoadObjectPalette(const struct SpritePalette *spritePalette); @@ -86,17 +87,17 @@ static void CameraObject_2(struct Sprite *); static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); -static bool8 sub_805E238(struct ObjectEventTemplate *, u8, s16, s16); -static bool8 sub_805E27C(struct ObjectEventTemplate *, s16, s16); -static bool8 sub_805E2E8(struct ObjectEventTemplate *, s16, s16); -static void sub_805E384(struct ObjectEventTemplate *); +static bool8 ShouldInitObjectEventStateFromTemplate(struct ObjectEventTemplate *, u8, s16, s16); +static bool8 TemplateIsObstacleAndWithinView(struct ObjectEventTemplate *, s16, s16); +static bool8 TemplateIsObstacleAndVisibleFromConnectingMap(struct ObjectEventTemplate *, s16, s16); +static void SetHideObstacleFlag(struct ObjectEventTemplate *); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); static u8 MovementType_RaiseHandAndStop_Callback(struct ObjectEvent *, struct Sprite *); static u8 MovementType_RaiseHandAndJump_Callback(struct ObjectEvent *, struct Sprite *); static u8 MovementType_RaiseHandAndSwim_Callback(struct ObjectEvent *, struct Sprite *); -static void sub_8064544(struct ObjectEvent *, struct Sprite *); -static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite); +static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *, struct Sprite *); +static void VirtualObject_UpdateAnim(struct Sprite *sprite); static void MovementType_None(struct Sprite *); static void MovementType_LookAround(struct Sprite *); static void MovementType_WanderAround(struct Sprite *); @@ -193,7 +194,20 @@ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprit EWRAM_DATA u8 sCurrentReflectionType = 0; EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; -const u8 gReflectionEffectPaletteMap[16] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; +const u8 gReflectionEffectPaletteMap[16] = { + [PALSLOT_PLAYER] = PALSLOT_PLAYER_REFLECTION, + [PALSLOT_PLAYER_REFLECTION] = PALSLOT_PLAYER_REFLECTION, + [PALSLOT_NPC_1] = PALSLOT_NPC_1_REFLECTION, + [PALSLOT_NPC_2] = PALSLOT_NPC_2_REFLECTION, + [PALSLOT_NPC_3] = PALSLOT_NPC_3_REFLECTION, + [PALSLOT_NPC_4] = PALSLOT_NPC_4_REFLECTION, + [PALSLOT_NPC_1_REFLECTION] = PALSLOT_NPC_1_REFLECTION, + [PALSLOT_NPC_2_REFLECTION] = PALSLOT_NPC_2_REFLECTION, + [PALSLOT_NPC_3_REFLECTION] = PALSLOT_NPC_3_REFLECTION, + [PALSLOT_NPC_4_REFLECTION] = PALSLOT_NPC_4_REFLECTION, + [PALSLOT_NPC_SPECIAL] = PALSLOT_NPC_SPECIAL_REFLECTION, + [PALSLOT_NPC_SPECIAL_REFLECTION] = PALSLOT_NPC_SPECIAL_REFLECTION +}; static const struct SpriteTemplate gCameraSpriteTemplate = { .tileTag = 0, @@ -1195,7 +1209,7 @@ static void ClearObjectEvent(struct ObjectEvent *objectEvent) objectEvent->localId = 0xFF; objectEvent->mapNum = MAP_NUM(UNDEFINED); objectEvent->mapGroup = MAP_GROUP(UNDEFINED); - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; } static void ClearAllObjectEvents(void) @@ -1300,28 +1314,21 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, struct ObjectEvent *objectEvent; const struct MapHeader *mapHeader; u8 objectEventId; - u8 var0; - u8 localId; s16 x; s16 y; - s16 x2; - s16 y2; - s16 x3; - s16 y3; - - var0 = 0; - localId = 0; - x2 = 0; - y2 = 0; - x3 = 0; - y3 = 0; + bool8 isClone = FALSE; + u8 localId = 0; + s16 x2 = 0; + s16 y2 = 0; + s16 x3 = 0; + s16 y3 = 0; if (template->kind == OBJ_KIND_CLONE) { - var0 = 1; + isClone = TRUE; localId = template->objUnion.clone.targetLocalId; mapNum = template->objUnion.clone.targetMapNum; - mapGroup = template->objUnion.clone.targetMapGroup & 0xFF; + mapGroup = template->objUnion.clone.targetMapGroup; x2 = template->x; y2 = template->y; x3 = template->x; @@ -1329,20 +1336,24 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); template = &(mapHeader->events->objectEvents[localId - 1]); } - if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId) - || !sub_805E238(template, var0, x3, y3)) + + if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId)) return OBJECT_EVENTS_COUNT; + + if (!ShouldInitObjectEventStateFromTemplate(template, isClone, x3, y3)) + return OBJECT_EVENTS_COUNT; + objectEvent = &gObjectEvents[objectEventId]; ClearObjectEvent(objectEvent); - if (var0) + if (isClone) { - x = x2 + 7; - y = y2 + 7; + x = x2 + MAP_OFFSET; + y = y2 + MAP_OFFSET; } else { - x = template->x + 7; - y = template->y + 7; + x = template->x + MAP_OFFSET; + y = template->y + MAP_OFFSET; } objectEvent->active = TRUE; objectEvent->triggerGroundEffectsOnMove = TRUE; @@ -1370,110 +1381,87 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, if (gRangedMovementTypes[objectEvent->movementType]) { if (objectEvent->rangeX == 0) - { objectEvent->rangeX++; - } if (objectEvent->rangeY == 0) - { objectEvent->rangeY++; - } } return objectEventId; } -static bool8 sub_805E238(struct ObjectEventTemplate *template, u8 var, s16 x, s16 y) +static bool8 ShouldInitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, bool8 isClone, s16 x, s16 y) { - if (var) - { - if (!sub_805E27C(template, x, y)) - return FALSE; - } - if (!sub_805E2E8(template, x, y)) + if (isClone && !TemplateIsObstacleAndWithinView(template, x, y)) + return FALSE; + + if (!TemplateIsObstacleAndVisibleFromConnectingMap(template, x, y)) return FALSE; return TRUE; } -static bool8 sub_805E27C(struct ObjectEventTemplate *template, s16 x, s16 y) +static bool8 TemplateIsObstacleAndWithinView(struct ObjectEventTemplate *template, s16 x, s16 y) { - if ((u8)(template->graphicsId - OBJ_EVENT_GFX_CUT_TREE) > 1) - return TRUE; - - if (gSaveBlock1Ptr->pos.x < x) + if (template->graphicsId == OBJ_EVENT_GFX_CUT_TREE || template->graphicsId == OBJ_EVENT_GFX_ROCK_SMASH_ROCK) { - if (gSaveBlock1Ptr->pos.x + 8 < x) - return TRUE; + if (gSaveBlock1Ptr->pos.x < x) + { + if (gSaveBlock1Ptr->pos.x + (MAP_OFFSET + 1) < x) + return TRUE; + if (gSaveBlock1Ptr->pos.y - (MAP_OFFSET - 1) <= y && gSaveBlock1Ptr->pos.y + (MAP_OFFSET - 1) >= y) + return FALSE; + } + else + { + if (gSaveBlock1Ptr->pos.x - (MAP_OFFSET + 1) > x) + return TRUE; - if (gSaveBlock1Ptr->pos.y - 6 <= y && gSaveBlock1Ptr->pos.y + 6 >= y) - return FALSE; + if (gSaveBlock1Ptr->pos.y - (MAP_OFFSET - 1) <= y && gSaveBlock1Ptr->pos.y + (MAP_OFFSET - 1) >= y) + return FALSE; + } } - else - { - if (gSaveBlock1Ptr->pos.x - 8 > x) - return TRUE; - - if (gSaveBlock1Ptr->pos.y - 6 <= y && gSaveBlock1Ptr->pos.y + 6 >= y) - return FALSE; - } - return TRUE; } -static bool8 sub_805E2E8(struct ObjectEventTemplate *template, s16 x, s16 y) +static bool8 TemplateIsObstacleAndVisibleFromConnectingMap(struct ObjectEventTemplate *template, s16 unused1, s16 unused2) { - s32 x2, y2; - - if (!IsMapTypeOutdoors(GetCurrentMapType())) - return TRUE; - - x2 = VMap.Xsize - 16; - y2 = VMap.Ysize - 15; - - if ((u8)(template->graphicsId - OBJ_EVENT_GFX_CUT_TREE) > 1) - return TRUE; - - if (!gSaveBlock1Ptr->pos.x) + if (IsMapTypeOutdoors(GetCurrentMapType())) { - if (template->x <= 8) + s32 width = VMap.Xsize - MAP_OFFSET_W - 1; + s32 height = VMap.Ysize - MAP_OFFSET_H - 1; + + if (template->graphicsId == OBJ_EVENT_GFX_CUT_TREE || template->graphicsId == OBJ_EVENT_GFX_ROCK_SMASH_ROCK) { - sub_805E384(template); - return FALSE; + if (gSaveBlock1Ptr->pos.x == 0 && template->x <= (MAP_OFFSET + 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } + + if (gSaveBlock1Ptr->pos.x == width && template->x >= width - (MAP_OFFSET + 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } + + if (gSaveBlock1Ptr->pos.y == 0 && template->y <= (MAP_OFFSET - 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } + + if (gSaveBlock1Ptr->pos.y == height && template->y >= height - (MAP_OFFSET - 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } } } - - if (gSaveBlock1Ptr->pos.x == x2) - { - if (template->x >= x2 - 8) - { - sub_805E384(template); - return FALSE; - } - } - - if (!gSaveBlock1Ptr->pos.y) - { - if (template->y <= 6) - { - sub_805E384(template); - return FALSE; - } - } - - if (gSaveBlock1Ptr->pos.y == y2) - { - if (template->y >= y2 - 6) - { - sub_805E384(template); - return FALSE; - } - } - return TRUE; } -static void sub_805E384(struct ObjectEventTemplate *template) +static void SetHideObstacleFlag(struct ObjectEventTemplate *template) { - if ((u16)(template->flagId - 17) < 15) + if (template->flagId >= FLAG_TEMP_11 && template->flagId <= FLAG_TEMP_1F) FlagSet(template->flagId); } @@ -1575,14 +1563,11 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl objectEvent = &gObjectEvents[objectEventId]; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - if (graphicsInfo->paletteSlot == 0) - { + if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - else if (graphicsInfo->paletteSlot == 10) - { + else if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } + if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE) objectEvent->invisible = TRUE; @@ -1650,8 +1635,8 @@ int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 { struct ObjectEventTemplate objectEventTemplate; - x -= 7; - y -= 7; + x -= MAP_OFFSET; + y -= MAP_OFFSET; objectEventTemplate.localId = localId; objectEventTemplate.graphicsId = graphicsId; objectEventTemplate.kind = OBJ_KIND_NORMAL; @@ -1679,7 +1664,7 @@ u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup) return TrySpawnObjectEventTemplate(objectEventTemplate, mapNum, mapGroup, cameraX, cameraY); } -void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); @@ -1692,7 +1677,7 @@ void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callba do { - if (ScriptContext_IsEnabled() != TRUE && sub_8112CAC() == TRUE) + if (ScriptContext_IsEnabled() != TRUE && sub_8112CAC() == 1) spriteTemplate->callback = sub_811246C; else spriteTemplate->callback = callback; @@ -1701,27 +1686,27 @@ void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callba *subspriteTables = graphicsInfo->subspriteTables; } -static void MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, sMovementTypeCallbacks[callbackIndex], spriteTemplate, subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, sMovementTypeCallbacks[movementType], spriteTemplate, subspriteTables); } static void MakeObjectTemplateFromObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEventTemplate->graphicsId, objectEventTemplate->objUnion.normal.movementType, spriteTemplate, subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEventTemplate->graphicsId, objectEventTemplate->objUnion.normal.movementType, spriteTemplate, subspriteTables); } -u8 AddPseudoObjectEvent(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority) +// Used to create a sprite using a graphicsId associated with object events. +u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority) { struct SpriteTemplate spriteTemplate; const struct SubspriteTable *subspriteTables; u8 spriteId; - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, callback, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, callback, &spriteTemplate, &subspriteTables); if (spriteTemplate.paletteTag != TAG_NONE) - { LoadObjectEventPalette(spriteTemplate.paletteTag); - } + spriteId = CreateSprite(&spriteTemplate, x, y, subpriority); if (spriteId != MAX_SPRITES && subspriteTables != NULL) { @@ -1731,7 +1716,10 @@ u8 AddPseudoObjectEvent(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u return spriteId; } -u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 elevation, u8 direction) +#define sVirtualObjId data[0] +#define sVirtualObjElev data[1] + +u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction) { u8 spriteId; struct Sprite *sprite; @@ -1740,10 +1728,10 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 elevation, u8 dire const struct ObjectEventGraphicsInfo *graphicsInfo; graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, UpdateObjectEventSpriteSubpriorityAndVisibility, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCB_VirtualObject, &spriteTemplate, &subspriteTables); *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; - x += 7; - y += 7; + x += MAP_OFFSET; + y += MAP_OFFSET; SetSpritePosToOffsetMapCoords(&x, &y, 8, 16); spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0); if (spriteId != MAX_SPRITES) @@ -1754,12 +1742,10 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 elevation, u8 dire sprite->y += sprite->centerToCornerVecY; sprite->oam.paletteNum = graphicsInfo->paletteSlot; sprite->coordOffsetEnabled = TRUE; - sprite->data[0] = a1; - sprite->data[1] = elevation; - if (graphicsInfo->paletteSlot == 10) - { + sprite->sVirtualObjId = virtualObjId; + sprite->sVirtualObjElev = elevation; + if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } if (subspriteTables != NULL) { @@ -1773,7 +1759,7 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 elevation, u8 dire return spriteId; } -u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y) +u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y) { u8 spriteId; struct Sprite *sprite; @@ -1782,7 +1768,7 @@ u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y) const struct ObjectEventGraphicsInfo *graphicsInfo; graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, SpriteCallbackDummy, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCallbackDummy, &spriteTemplate, &subspriteTables); *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0); @@ -1792,11 +1778,9 @@ u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y) sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); sprite->y += sprite->centerToCornerVecY; sprite->oam.paletteNum = graphicsInfo->paletteSlot; - sprite->data[0] = a1; - if (graphicsInfo->paletteSlot == 10) - { + sprite->data[0] = localId; + if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } if (subspriteTables != NULL) { @@ -1816,17 +1800,17 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) if (gMapHeader.events != NULL) { s16 left = gSaveBlock1Ptr->pos.x - 2; - s16 right = gSaveBlock1Ptr->pos.x + 17; + s16 right = gSaveBlock1Ptr->pos.x + MAP_OFFSET_W + 2; s16 top = gSaveBlock1Ptr->pos.y; - s16 bottom = gSaveBlock1Ptr->pos.y + 16; + s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2; objectCount = gMapHeader.events->objectEventCount; for (i = 0; i < objectCount; i++) { struct ObjectEventTemplate *template = &gSaveBlock1Ptr->objectEventTemplates[i]; - s16 npcX = template->x + 7; - s16 npcY = template->y + 7; + s16 npcX = template->x + MAP_OFFSET; + s16 npcY = template->y + MAP_OFFSET; if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX && !FlagGet(template->flagId)) @@ -1860,9 +1844,9 @@ void RemoveObjectEventsOutsideView(void) static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent) { s16 left = gSaveBlock1Ptr->pos.x - 2; - s16 right = gSaveBlock1Ptr->pos.x + 17; + s16 right = gSaveBlock1Ptr->pos.x + MAP_OFFSET_W + 2; s16 top = gSaveBlock1Ptr->pos.y; - s16 bottom = gSaveBlock1Ptr->pos.y + 16; + s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2; if (objectEvent->currentCoords.x >= left && objectEvent->currentCoords.x <= right && objectEvent->currentCoords.y >= top && objectEvent->currentCoords.y <= bottom) @@ -1873,7 +1857,7 @@ static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent) RemoveObjectEvent(objectEvent); } -void ReloadMapObjectsWithOffset(s16 x, s16 y) +void SpawnObjectEventsOnReturnToField(s16 x, s16 y) { u8 i; @@ -1881,14 +1865,12 @@ void ReloadMapObjectsWithOffset(s16 x, s16 y) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { if (gObjectEvents[i].active) - { - ReloadMapObjectWithOffset(i, x, y); - } + SpawnObjectEventOnReturnToField(i, x, y); } CreateReflectionEffectSprites(); } -static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) +static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) { u8 spriteId; struct Sprite *sprite; @@ -1902,9 +1884,7 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) for (i = 0; i < NELEMS(gLinkPlayerObjectEvents); i++) { if (gLinkPlayerObjectEvents[i].active && objectEventId == gLinkPlayerObjectEvents[i].objEventId) - { return; - } } #undef i @@ -1913,17 +1893,16 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) subspriteTables = NULL; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); spriteFrameImage.size = graphicsInfo->size; - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); spriteTemplate.images = &spriteFrameImage; + *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; - if (graphicsInfo->paletteSlot == 0) - { + if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - if (graphicsInfo->paletteSlot > 9) - { + + if (graphicsInfo->paletteSlot >= PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } + *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; spriteId = CreateSprite(&spriteTemplate, 0, 0, 0); if (spriteId != MAX_SPRITES) @@ -1941,17 +1920,15 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) objectEvent->warpArrowSpriteId = CreateWarpArrowSprite(); } if (subspriteTables != NULL) - { SetSubspriteTables(sprite, subspriteTables); - } + sprite->oam.paletteNum = graphicsInfo->paletteSlot; sprite->coordOffsetEnabled = TRUE; sprite->data[0] = objectEventId; objectEvent->spriteId = spriteId; if (!objectEvent->inanimate && objectEvent->movementType != MOVEMENT_TYPE_PLAYER) - { StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); - } + ResetObjectEventFldEffData(objectEvent); SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); } @@ -1987,14 +1964,11 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); sprite = &gSprites[objectEvent->spriteId]; - if (graphicsInfo->paletteSlot == 0) - { + if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - if (graphicsInfo->paletteSlot == 10) - { + + if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } var = sprite->images->size / TILE_SIZE_4BPP; if (!sprite->usingSheet) @@ -2159,7 +2133,7 @@ void SetObjectPositionByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, void FreeAndReserveObjectSpritePalettes(void) { FreeAllSpritePalettes(); - gReservedSpritePaletteCount = 12; + gReservedSpritePaletteCount = OBJ_PALSLOT_COUNT; } static void LoadObjectEventPalette(u16 paletteTag) @@ -2260,9 +2234,10 @@ void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot) } } -u8 sub_805F6D0(u8 var) +// Unused +static u8 GetReflectionEffectPaletteSlot(u8 slot) { - return gReflectionEffectPaletteMap[var]; + return gReflectionEffectPaletteMap[slot]; } // Unused @@ -2313,8 +2288,8 @@ void TryMoveObjectEventToMapCoords(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s1 u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) { - x += 7; - y += 7; + x += MAP_OFFSET; + y += MAP_OFFSET; MoveObjectEventToMapCoords(&gObjectEvents[objectEventId], x, y); } } @@ -2655,8 +2630,8 @@ void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent) objectEventTemplate = GetBaseTemplateForObjectEvent(objectEvent); if (objectEventTemplate != NULL) { - objectEventTemplate->x = objectEvent->currentCoords.x - 7; - objectEventTemplate->y = objectEvent->currentCoords.y - 7; + objectEventTemplate->x = objectEvent->currentCoords.x - MAP_OFFSET; + objectEventTemplate->y = objectEvent->currentCoords.y - MAP_OFFSET; } } @@ -4294,7 +4269,7 @@ static bool8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, stru static bool8 MovementType_CopyPlayer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) + if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == MOVEMENT_ACTION_NONE || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) { return FALSE; } @@ -4456,7 +4431,7 @@ movement_type_def(MovementType_CopyPlayerInGrass, gMovementTypeFuncs_CopyPlayerI static bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) + if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == MOVEMENT_ACTION_NONE || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) { return FALSE; } @@ -4672,7 +4647,7 @@ static void ClearObjectEventMovement(struct ObjectEvent *objectEvent, struct Spr objectEvent->singleMovementActive = FALSE; objectEvent->heldMovementActive = FALSE; objectEvent->heldMovementFinished = FALSE; - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; sprite->data[1] = 0; } @@ -5063,7 +5038,7 @@ bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent) bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *objectEvent) { - if (objectEvent->heldMovementActive && objectEvent->movementActionId != 0xFF) + if (objectEvent->heldMovementActive && objectEvent->movementActionId != MOVEMENT_ACTION_NONE) return TRUE; return FALSE; @@ -5098,7 +5073,7 @@ void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *objectEvent) void ObjectEventClearHeldMovement(struct ObjectEvent *objectEvent) { - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; objectEvent->heldMovementActive = FALSE; objectEvent->heldMovementFinished = FALSE; gSprites[objectEvent->spriteId].data[1] = 0; @@ -5127,21 +5102,19 @@ u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent) if (objectEvent->heldMovementActive) return objectEvent->movementActionId; - return 0xFF; + return MOVEMENT_ACTION_NONE; } void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, bool8 (*callback)(struct ObjectEvent *, struct Sprite *)) { DoGroundEffects_OnSpawn(objectEvent, sprite); TryEnableObjectEventAnim(objectEvent, sprite); + if (ObjectEventIsHeldMovementActive(objectEvent)) - { ObjectEventExecHeldMovementAction(objectEvent, sprite); - } else if (!objectEvent->frozen) - { while (callback(objectEvent, sprite)); - } + DoGroundEffects_OnBeginStep(objectEvent, sprite); DoGroundEffects_OnFinishStep(objectEvent, sprite); UpdateObjectEventSpriteAnimPause(objectEvent, sprite); @@ -5149,21 +5122,20 @@ void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sp ObjectEventUpdateSubpriority(objectEvent, sprite); } -void sub_8063E28(struct ObjectEvent *objectEvent, struct Sprite *sprite) +void UpdateQuestLogObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite) { DoGroundEffects_OnSpawn(objectEvent, sprite); TryEnableObjectEventAnim(objectEvent, sprite); - if (ObjectEventIsHeldMovementActive(objectEvent)) - { - if(!sprite->animBeginning) - sub_8064544(objectEvent, sprite); - } + + if (ObjectEventIsHeldMovementActive(objectEvent) && !sprite->animBeginning) + QuestLogObjectEventExecHeldMovementAction(objectEvent, sprite); if (MetatileBehavior_IsIce_2(objectEvent->currentMetatileBehavior) == TRUE - || MetatileBehavior_IsTrickHouseSlipperyFloor(objectEvent->currentMetatileBehavior) == TRUE) + || MetatileBehavior_IsTrickHouseSlipperyFloor(objectEvent->currentMetatileBehavior) == TRUE) objectEvent->disableAnim = TRUE; else objectEvent->disableAnim = FALSE; + DoGroundEffects_OnBeginStep(objectEvent, sprite); DoGroundEffects_OnFinishStep(objectEvent, sprite); UpdateObjectEventSpriteAnimPause(objectEvent, sprite); @@ -5269,7 +5241,7 @@ static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, s } } -static void sub_8064544(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { @@ -5283,7 +5255,7 @@ static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent { if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; sprite->data[2] = 0; return TRUE; } @@ -6110,7 +6082,7 @@ static bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *objectEvent, st return FALSE; } -void sub_80655A8(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +void FaceDirectionFast(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { SetObjectEventDirection(objectEvent, direction); ShiftStillObjectEventCoords(objectEvent); @@ -6124,7 +6096,7 @@ u8 MovementAction_FaceDownFast_Step0(struct ObjectEvent *objectEvent, struct Spr StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_SOUTH)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_SOUTH); + FaceDirectionFast(objectEvent, sprite, DIR_SOUTH); return TRUE; } @@ -6134,7 +6106,7 @@ u8 MovementAction_FaceUpFast_Step0(struct ObjectEvent *objectEvent, struct Sprit StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_NORTH)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_NORTH); + FaceDirectionFast(objectEvent, sprite, DIR_NORTH); return TRUE; } @@ -6144,7 +6116,7 @@ u8 MovementAction_FaceLeftFast_Step0(struct ObjectEvent *objectEvent, struct Spr StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_WEST)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_WEST); + FaceDirectionFast(objectEvent, sprite, DIR_WEST); return TRUE; } @@ -6154,7 +6126,7 @@ u8 MovementAction_FaceRightFast_Step0(struct ObjectEvent *objectEvent, struct Sp StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_EAST)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_EAST); + FaceDirectionFast(objectEvent, sprite, DIR_EAST); return TRUE; } @@ -8796,7 +8768,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent *objEvent, struct Sp } } -bool8 FreezeObjectEvent(struct ObjectEvent * objectEvent) +bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent) { if (objectEvent->heldMovementActive || objectEvent->frozen) return TRUE; @@ -8828,7 +8800,7 @@ void FreezeObjectEventsExceptOne(u8 noFreeze) } } -void UnfreezeObjectEvent(struct ObjectEvent * objectEvent) +void UnfreezeObjectEvent(struct ObjectEvent *objectEvent) { if (objectEvent->active && objectEvent->frozen) { @@ -8848,10 +8820,6 @@ void UnfreezeObjectEvents(void) } } -#define tObjectEventId data[0] -#define tElevation data[1] -#define tInvisible data[2] - #define tDirection data[3] #define tSpeed data[4] #define tStepNo data[5] @@ -9215,7 +9183,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite) return FALSE; } -void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) +void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible) { u16 x, y; s16 x2, y2; @@ -9236,53 +9204,51 @@ void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) x2 = x - (sprite->centerToCornerVecX >> 1); y2 = y - (sprite->centerToCornerVecY >> 1); - if ((s16)x > 255 || x2 < -16) + if ((s16)x >= DISPLAY_WIDTH + 16 || x2 < -16) sprite->invisible = TRUE; - if ((s16)y > 175 || y2 < -16) + if ((s16)y >= DISPLAY_HEIGHT + 16 || y2 < -16) sprite->invisible = TRUE; } -void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *sprite) +#define sInvisible data[2] +#define sAnimNum data[3] +#define sAnimState data[4] + +void SpriteCB_VirtualObject(struct Sprite *sprite) { - DoObjectUnionRoomWarpYDisplacement(sprite); - SetObjectSubpriorityByElevation(sprite->tElevation, sprite, 1); - UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible); + VirtualObject_UpdateAnim(sprite); + SetObjectSubpriorityByElevation(sprite->sVirtualObjElev, sprite, 1); + UpdateObjectEventSpriteInvisibility(sprite, sprite->sInvisible); } -void sub_8068FD0(void) +// Unused +static void DestroyVirtualObjects(void) { s32 i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility) - { + if (sprite->inUse && sprite->callback == SpriteCB_VirtualObject) DestroySprite(sprite); - } } } -#define tUnionRoomWarpAnimNo data[3] -#define tUnionRoomWarpAnimState data[4] - -static int GetObjectEventSpriteId(u8 objectEventId) +static int GetVirtualObjectSpriteId(u8 virtualObjId) { int i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility && (u8)sprite->tObjectEventId == objectEventId) - { + if (sprite->inUse && sprite->callback == SpriteCB_VirtualObject && (u8)sprite->sVirtualObjId == virtualObjId) return i; - } } return MAX_SPRITES; } -void TurnVirtualObject(u8 objectEventId, u8 direction) +void TurnVirtualObject(u8 virtualObjId, u8 direction) { u8 animNum; - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; @@ -9290,16 +9256,14 @@ void TurnVirtualObject(u8 objectEventId, u8 direction) } } -void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction) +void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction) { - u8 animNum; - int spriteId = GetObjectEventSpriteId(objectEventId); - u16 baseBlock; + int spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; - const struct ObjectEventGraphicsInfo * info = GetObjectEventGraphicsInfo(direction); - baseBlock = sprite->oam.tileNum; + const struct ObjectEventGraphicsInfo *info = GetObjectEventGraphicsInfo(direction); + u16 baseBlock = sprite->oam.tileNum; sprite->oam = *info->oam; sprite->oam.tileNum = baseBlock; sprite->oam.paletteNum = info->paletteSlot; @@ -9319,110 +9283,110 @@ void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction) } } -void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible) +void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { if (invisible) - gSprites[spriteId].tInvisible = TRUE; + gSprites[spriteId].sInvisible = TRUE; else - gSprites[spriteId].tInvisible = FALSE; + gSprites[spriteId].sInvisible = FALSE; } } -bool32 RfuUnionObjectIsInvisible(u8 objectEventId) +bool32 IsVirtualObjectInvisible(u8 virtualObjId) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return FALSE; - return gSprites[spriteId].tInvisible == TRUE; + return gSprites[spriteId].sInvisible == TRUE; } -void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo) +void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNo) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].tUnionRoomWarpAnimNo = animNo; - gSprites[spriteId].tUnionRoomWarpAnimState = 0; + gSprites[spriteId].sAnimNum = animNo; + gSprites[spriteId].sAnimState = 0; } } -static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite *sprite) +static void MoveUnionRoomObjectUp(struct Sprite *sprite) { - switch (sprite->tUnionRoomWarpAnimState) + switch (sprite->sAnimState) { case 0: sprite->y2 = 0; - sprite->tUnionRoomWarpAnimState++; + sprite->sAnimState++; // fallthrough case 1: - if ((sprite->y2 -= 8) == -160) + if ((sprite->y2 -= 8) == -DISPLAY_HEIGHT) { sprite->y2 = 0; - sprite->tInvisible = 1; - sprite->tUnionRoomWarpAnimNo = 0; - sprite->tUnionRoomWarpAnimState = 0; + sprite->sInvisible = TRUE; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; } break; } } -static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite *sprite) +static void MoveUnionRoomObjectDown(struct Sprite *sprite) { - switch (sprite->tUnionRoomWarpAnimState) + switch (sprite->sAnimState) { case 0: - sprite->y2 = -160; - sprite->tUnionRoomWarpAnimState++; + sprite->y2 = -DISPLAY_HEIGHT; + sprite->sAnimState++; // fallthrough case 1: if ((sprite->y2 += 8) == 0) { - sprite->tUnionRoomWarpAnimNo = 0; - sprite->tUnionRoomWarpAnimState = 0; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; } break; } } -static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite) +static void VirtualObject_UpdateAnim(struct Sprite *sprite) { - switch (sprite->tUnionRoomWarpAnimNo) + switch (sprite->sAnimNum) { - case 0: + case UNION_ROOM_SPAWN_NONE: break; - case 1: - DoObjectUnionRoomWarpYDisplacementDownwards(sprite); + case UNION_ROOM_SPAWN_IN: + MoveUnionRoomObjectDown(sprite); break; - case 2: - DoObjectUnionRoomWarpYDisplacementUpwards(sprite); + case UNION_ROOM_SPAWN_OUT: + MoveUnionRoomObjectUp(sprite); break; default: - sprite->tUnionRoomWarpAnimNo = 0; + sprite->sAnimNum = 0; AGB_ASSERT_EX(0, ABSPATH("evobjmv.c"), 13331); } } -bool32 RfuUnionObjectIsWarping(u8 objectEventId) +bool32 IsVirtualObjectAnimating(u8 virtualObjId) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return FALSE; - if (gSprites[spriteId].tUnionRoomWarpAnimNo) + if (gSprites[spriteId].sAnimNum) return TRUE; else return FALSE; } -#undef tUnionRoomWarpAnimState -#undef tUnionRoomWarpAnimNo -#undef tInvisible -#undef tElevation -#undef tObjectEventId +#undef sVirtualObjId +#undef sVirtualObjElev +#undef sInvisible +#undef sAnimNum +#undef sAnimState -u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent * objectEvent) +u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent *objectEvent) { ObjectEventGetLocalIdAndMap(objectEvent, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); return FieldEffectStart(fieldEffectId); diff --git a/src/fame_checker.c b/src/fame_checker.c index ba37cdc14..ac19ef373 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1104,7 +1104,7 @@ static bool8 CreateAllFlavorTextIcons(u8 who) { if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) { - sFameCheckerData->spriteIds[i] = sub_805EB44( + sFameCheckerData->spriteIds[i] = CreateFameCheckerObject( sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[who] * 6 + i], i, 47 * (i % 3) + 0x72, diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 5b791af40..7a9a59f66 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -331,7 +331,7 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite) if (sprite->animCmdIndex == 0) metatileBehavior = 4; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); UpdateGrassFieldEffectSubpriority(sprite, sprite->data[0], metatileBehavior); } } @@ -434,7 +434,7 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) { sprite->data[7] = TRUE; } - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); UpdateGrassFieldEffectSubpriority(sprite, sprite->data[0], 0); } } @@ -513,7 +513,7 @@ void UpdateShortGrassFieldEffect(struct Sprite *sprite) sprite->y2 = (graphicsInfo->height >> 1) - 8; sprite->subpriority = linkedSprite->subpriority - 1; sprite->oam.priority = linkedSprite->oam.priority; - UpdateObjectEventSpriteVisibility(sprite, linkedSprite->invisible); + UpdateObjectEventSpriteInvisibility(sprite, linkedSprite->invisible); } } @@ -587,14 +587,14 @@ static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite) if (++sprite->data[1] > 40) sprite->data[0] = 1; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite) { sprite->invisible ^= 1; sprite->data[1]++; - UpdateObjectEventSpriteVisibility(sprite, sprite->invisible); + UpdateObjectEventSpriteInvisibility(sprite, sprite->invisible); if (sprite->data[1] > 56) { FieldEffectStop(sprite, sprite->data[7]); @@ -641,7 +641,7 @@ void UpdateSplashFieldEffect(struct Sprite *sprite) { sprite->x = gSprites[gObjectEvents[objectEventId].spriteId].x; sprite->y = gSprites[gObjectEvents[objectEventId].spriteId].y; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -727,7 +727,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) sprite->x = linkedSprite->x; sprite->y = linkedSprite->y; sprite->subpriority = linkedSprite->subpriority; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (objectEvent->currentCoords.x != sprite->data[3] || objectEvent->currentCoords.y != sprite->data[4]) { sprite->data[3] = objectEvent->currentCoords.x; @@ -797,7 +797,7 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) sprite->x = linkedSprite->x; sprite->y = (graphicsInfo->height >> 1) + linkedSprite->y - 8; sprite->subpriority = linkedSprite->subpriority - 1; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -935,7 +935,7 @@ static void UpdateAshFieldEffect_Step1(struct Sprite *sprite) static void UpdateAshFieldEffect_Step2(struct Sprite *sprite) { - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->animEnded) FieldEffectStop(sprite, FLDEFF_ASH); } @@ -1187,7 +1187,7 @@ void UpdateSandPileFieldEffect(struct Sprite *sprite) sprite->x = x; sprite->y = y; sprite->subpriority = gSprites[gObjectEvents[objectEventId].spriteId].subpriority; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -1212,7 +1212,7 @@ void UpdateBubblesFieldEffect(struct Sprite *sprite) sprite->data[0] += 0x80; sprite->data[0] &= 0x100; sprite->y -= sprite->data[0] >> 8; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->invisible || sprite->animEnded) { FieldEffectStop(sprite, FLDEFF_BUBBLES); @@ -1380,7 +1380,7 @@ void UpdateJumpImpactEffect(struct Sprite *sprite) } else { - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); SetObjectSubpriorityByElevation(sprite->data[0], sprite, 0); } } @@ -1390,7 +1390,7 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite) if (sprite->animEnded) FieldEffectStop(sprite, sprite->data[0]); else - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset) diff --git a/src/naming_screen.c b/src/naming_screen.c index 514629ae4..32d1bd087 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1393,7 +1393,7 @@ static void NamingScreen_CreatePlayerIcon(void) u8 spriteId; rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, sNamingScreen->monSpecies); - spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); + spriteId = CreateObjectGraphicsSprite(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH); } @@ -1440,7 +1440,7 @@ static void NamingScreen_CreateRivalIcon(void) const struct SubspriteTable * tables_p; u8 spriteId; - MakeObjectTemplateFromObjectEventGraphicsInfo(OBJ_EVENT_GFX_RED_NORMAL, SpriteCallbackDummy, &template, &tables_p); + CopyObjectGraphicsInfoToSpriteTemplate(OBJ_EVENT_GFX_RED_NORMAL, SpriteCallbackDummy, &template, &tables_p); template.tileTag = sheet.tag; template.paletteTag = palette.tag; diff --git a/src/overworld.c b/src/overworld.c index 8a99ea519..8c6037ca3 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2138,7 +2138,7 @@ static void InitObjectEventsLocal(void) static void ReloadObjectsAndRunReturnToFieldMapScript(void) { - ReloadMapObjectsWithOffset(0, 0); + SpawnObjectEventsOnReturnToField(0, 0); RunOnReturnToFieldMapScript(); } @@ -3515,13 +3515,13 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion) { if (gameVersion == VERSION_FIRE_RED || gameVersion == VERSION_LEAF_GREEN) { - objEvent->spriteId = AddPseudoObjectEvent( + objEvent->spriteId = CreateObjectGraphicsSprite( GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); } else { - objEvent->spriteId = AddPseudoObjectEvent(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); + objEvent->spriteId = CreateObjectGraphicsSprite(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); } sprite = &gSprites[objEvent->spriteId]; @@ -3545,7 +3545,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(linkDirection(objEvent))); - UpdateObjectEventSpriteVisibility(sprite, 0); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (objEvent->triggerGroundEffectsOnMove) { sprite->invisible = ((sprite->data[7] & 4) >> 2); diff --git a/src/quest_log.c b/src/quest_log.c index a041aeb6d..e2d55f544 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1297,7 +1297,7 @@ void sub_811246C(struct Sprite *sprite) QuestLogUpdatePlayerSprite(sMovementScripts[0][1]); sMovementScripts[0][1] = 0xFF; } - sub_8063E28(objectEvent, sprite); + UpdateQuestLogObjectEventCurrentMovement(objectEvent, sprite); } else { @@ -1306,7 +1306,7 @@ void sub_811246C(struct Sprite *sprite) ObjectEventSetHeldMovement(objectEvent, sMovementScripts[objectEvent->localId][0]); sMovementScripts[objectEvent->localId][0] = 0xFF; } - sub_8063E28(objectEvent, sprite); + UpdateQuestLogObjectEventCurrentMovement(objectEvent, sprite); } } diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c index f8ad88d9a..0d5180e0f 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -441,7 +441,7 @@ void CreateGroupMemberObjectsInvisible(u8 * sprite_ids, s32 group) { s32 obj_id = 5 * group + i; sprite_ids[obj_id] = CreateVirtualObject(OBJ_EVENT_GFX_MAN, obj_id - 0x38, sUnionPartnerCoords[group][0] + sFacingDirectionOffsets[i][0], sUnionPartnerCoords[group][1] + sFacingDirectionOffsets[i][1], 3, 1); - RfuUnionObjectToggleInvisibility(obj_id - 0x38, TRUE); + SetVirtualObjectInvisibility(obj_id - 0x38, TRUE); } } @@ -485,7 +485,7 @@ static u8 UnionPartnerObjectGetFacing(u32 member, u32 group, struct GFtgtGname * static u32 RfuUnionGroupMemberIsInvisible(u32 group, u32 member) { - return RfuUnionObjectIsInvisible(5 * group + member - 0x38); + return IsVirtualObjectInvisible(5 * group + member - 0x38); } static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct GFtgtGname * gname) @@ -494,10 +494,10 @@ static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct GFt s32 objId = 5 * groupNo + memberNo; if (RfuUnionGroupMemberIsInvisible(groupNo, memberNo) == TRUE) { - RfuUnionObjectToggleInvisibility(objId - 0x38, FALSE); - RfuUnionObjectStartWarp(objId - 0x38, UNION_ROOM_SPAWN_IN); + SetVirtualObjectInvisibility(objId - 0x38, FALSE); + SetVirtualObjectSpriteAnim(objId - 0x38, UNION_ROOM_SPAWN_IN); } - RfuUnionObjectSetFacingDirection(objId - 0x38, direction); + SetVirtualObjectGraphics(objId - 0x38, direction); UnionPartnerObjectSetFacing(memberNo, groupNo, UnionPartnerObjectGetFacing(memberNo, groupNo, gname)); GetUnionRoomPlayerFacingCoords(groupNo, memberNo, &x, &y); MapGridSetMetatileImpassabilityAt(x, y, TRUE); @@ -506,7 +506,7 @@ static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct GFt static void DespawnGroupMember(u32 group, u32 member) { s32 x, y; - RfuUnionObjectStartWarp(5 * group + member - 0x38, UNION_ROOM_SPAWN_OUT); + SetVirtualObjectSpriteAnim(5 * group + member - 0x38, UNION_ROOM_SPAWN_OUT); GetUnionRoomPlayerFacingCoords(group, member, &x, &y); MapGridSetMetatileImpassabilityAt(x, y, FALSE); } @@ -518,7 +518,7 @@ static void AssembleGroup(u32 group, struct GFtgtGname * gname) PlayerGetDestCoords(&x, &y); player_get_pos_including_state_based_drift(&x2, &y2); - if (RfuUnionObjectIsInvisible(5 * group - 0x38) == TRUE) + if (IsVirtualObjectInvisible(5 * group - 0x38) == TRUE) { if (IsUnionRoomPlayerFacingTileAt(group, 0, x, y) == TRUE || IsUnionRoomPlayerFacingTileAt(group, 0, x2, y2) == TRUE) { @@ -631,11 +631,11 @@ bool32 RfuUnionTool_GetGroupAndMemberInFrontOfPlayer(struct UnkStruct_Main0 *mai { continue; } - if (RfuUnionObjectIsInvisible(objId - 0x38) != 0) + if (IsVirtualObjectInvisible(objId - 0x38) != FALSE) { continue; } - if (RfuUnionObjectIsWarping(objId - 0x38) != 0) + if (IsVirtualObjectAnimating(objId - 0x38) != FALSE) { continue; } diff --git a/src/shop.c b/src/shop.c index eee6ff70e..a81e6e824 100644 --- a/src/shop.c +++ b/src/shop.c @@ -844,7 +844,7 @@ static void BuyMenuDrawObjectEvents(void) continue; graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId); - spriteId = AddPseudoObjectEvent( + spriteId = CreateObjectGraphicsSprite( gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId, SpriteCallbackDummy, (u16)sViewportObjectEvents[i][X_COORD] * 16 - 8, diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 3c3729d04..ed90dc7cb 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -602,7 +602,7 @@ static void TeachyTvInitIo(void) static u8 TeachyTvSetupObjEventAndOam(void) { - u8 objId = AddPseudoObjectEvent(90, SpriteCallbackDummy, 0, 0, 8); + u8 objId = CreateObjectGraphicsSprite(90, SpriteCallbackDummy, 0, 0, 8); gSprites[objId].oam.priority = 2; gSprites[objId].invisible = 1; return objId; From 7a3c11a9c5d8f5cf4b0c1897ecddc617bbfc1dde Mon Sep 17 00:00:00 2001 From: cbt6 <91667135+cbt6@users.noreply.github.com> Date: Mon, 7 Nov 2022 23:04:39 +0800 Subject: [PATCH 105/105] Use constant for object event graphic --- src/teachy_tv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/teachy_tv.c b/src/teachy_tv.c index ed90dc7cb..93134bcd2 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -26,6 +26,7 @@ #include "fieldmap.h" #include "strings.h" #include "constants/field_effects.h" +#include "constants/event_objects.h" struct TeachyTvCtrlBlk { @@ -602,7 +603,7 @@ static void TeachyTvInitIo(void) static u8 TeachyTvSetupObjEventAndOam(void) { - u8 objId = CreateObjectGraphicsSprite(90, SpriteCallbackDummy, 0, 0, 8); + u8 objId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_TEACHY_TV_HOST, SpriteCallbackDummy, 0, 0, 8); gSprites[objId].oam.priority = 2; gSprites[objId].invisible = 1; return objId;