diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-16 14:00:52 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-16 14:00:52 -0500 |
commit | 7860ce8dbe3d4abca3a8d3fb336705e3d09b32e0 (patch) | |
tree | d7523d81e21a48bad1891dacb42c05d162849b06 | |
parent | 0432df3afaa917f7df50820206bc7b42316ea505 (diff) |
split data2a and make shop.c stuff static
-rw-r--r-- | data/btl_attrs.s | 337 | ||||
-rw-r--r-- | data/mon_attrs.s (renamed from data/data2a.s) | 328 | ||||
-rw-r--r-- | include/decoration.h | 1 | ||||
-rw-r--r-- | include/shop.h | 19 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/field/decoration.c | 1 | ||||
-rw-r--r-- | src/field/scrcmd.c | 6 | ||||
-rw-r--r-- | src/field/shop.c | 137 |
8 files changed, 421 insertions, 411 deletions
diff --git a/data/btl_attrs.s b/data/btl_attrs.s new file mode 100644 index 000000000..1bd5ed6e5 --- /dev/null +++ b/data/btl_attrs.s @@ -0,0 +1,337 @@ +@ the second big chunk of data + +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" + .include "include/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +@ 81ECAD8 + .include "data/graphics/trainers/back_pic_coords.inc" + +@ 81ECAE4 + .include "data/graphics/trainers/back_pic_table.inc" + +@ 81ECAFC + .include "data/graphics/trainers/back_pic_palette_table.inc" + +@ 81ECB14 + .include "data/enemy_mon_elevation.inc" + +@ 81ECCB0 + .include "data/trainer_parties.inc" + +@ 81F0208 + .include "data/text/trainer_class_names.inc" + +@ 81F04FC + .include "data/trainers.inc" + +@ 81F716C + .include "data/text/species_names.inc" + +@ 81F8320 + .include "data/text/move_names.inc" + + .align 2 +@ 81F9528 + .4byte 0x101 @ unknown data + + .align 2 +gOamData_81F952C:: @ 81F952C + .2byte 0x0300 + .2byte 0xC000 + .2byte 0x0000 + + .align 2 +gOamData_81F9534:: @ 81F9534 + .2byte 0x0300 + .2byte 0xC000 + .2byte 0x0040 + + .align 2 +gSpriteAffineAnim_81F953C:: @ 81F953C + obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 + obj_rot_scal_anim_end + + .align 2 +gSpriteAffineAnim_81F954C:: @ 81F954C + obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 + obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 + obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 + obj_rot_scal_anim_end + + .align 2 +gSpriteAffineAnimTable_81F956C:: @ 81F956C + .4byte gSpriteAffineAnim_81F953C + .4byte gSpriteAffineAnim_81F954C + + .align 2 +gSpriteTemplate_81F9574:: @ 81F9574 + spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 + + .align 2 +gSpriteTemplate_81F958C:: @ 81F958C + spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 + + .align 2 +gUnknown_081F95A4:: @ 81F95A4 + obj_tiles gUnknown_08E5DC2C, 4096, 0x2710 + + .align 2 +gBattleTerrainTable:: @ 81F95AC + @ tall_grass + .4byte gBattleTerrainTiles_TallGrass + .4byte gBattleTerrainTilemap_TallGrass + .4byte gBattleTerrainAnimTiles_TallGrass + .4byte gBattleTerrainAnimTilemap_TallGrass + .4byte gBattleTerrainPalette_TallGrass + + @ long_grass + .4byte gBattleTerrainTiles_LongGrass + .4byte gBattleTerrainTilemap_LongGrass + .4byte gBattleTerrainAnimTiles_LongGrass + .4byte gBattleTerrainAnimTilemap_LongGrass + .4byte gBattleTerrainPalette_LongGrass + + @ sand + .4byte gBattleTerrainTiles_Sand + .4byte gBattleTerrainTilemap_Sand + .4byte gBattleTerrainAnimTiles_Sand + .4byte gBattleTerrainAnimTilemap_Sand + .4byte gBattleTerrainPalette_Sand + + @ underwater + .4byte gBattleTerrainTiles_Underwater + .4byte gBattleTerrainTilemap_Underwater + .4byte gBattleTerrainAnimTiles_Underwater + .4byte gBattleTerrainAnimTilemap_Underwater + .4byte gBattleTerrainPalette_Underwater + + @ water + .4byte gBattleTerrainTiles_Water + .4byte gBattleTerrainTilemap_Water + .4byte gBattleTerrainAnimTiles_Water + .4byte gBattleTerrainAnimTilemap_Water + .4byte gBattleTerrainPalette_Water + + @ pond_water + .4byte gBattleTerrainTiles_PondWater + .4byte gBattleTerrainTilemap_PondWater + .4byte gBattleTerrainAnimTiles_PondWater + .4byte gBattleTerrainAnimTilemap_PondWater + .4byte gBattleTerrainPalette_PondWater + + @ rock + .4byte gBattleTerrainTiles_Rock + .4byte gBattleTerrainTilemap_Rock + .4byte gBattleTerrainAnimTiles_Rock + .4byte gBattleTerrainAnimTilemap_Rock + .4byte gBattleTerrainPalette_Rock + + @ cave + .4byte gBattleTerrainTiles_Cave + .4byte gBattleTerrainTilemap_Cave + .4byte gBattleTerrainAnimTiles_Cave + .4byte gBattleTerrainAnimTilemap_Cave + .4byte gBattleTerrainPalette_Cave + + @ building + .4byte gBattleTerrainTiles_Building + .4byte gBattleTerrainTilemap_Building + .4byte gBattleTerrainAnimTiles_Building + .4byte gBattleTerrainAnimTilemap_Building + .4byte gBattleTerrainPalette_Building + + @ plain + .4byte gBattleTerrainTiles_Building + .4byte gBattleTerrainTilemap_Building + .4byte gBattleTerrainAnimTiles_Building + .4byte gBattleTerrainAnimTilemap_Building + .4byte gBattleTerrainPalette_Plain + + .align 2 +gUnknown_081F9674:: @ 81F9674 + .4byte REG_BG3HOFS + .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1 + .4byte 1 + + .align 2 +gUnknown_081F9680:: @ 81F9680 + .4byte gUnknown_030041D0 + .2byte 0x20 + .byte 0x13 + .byte 0x10 + .4byte BG_VRAM + 0xE104 + + .4byte gUnknown_03004250 + .2byte 0x40 + .byte 0x13 + .byte 0x10 + .4byte BG_VRAM + 0xF104 + + .4byte gUnknown_030041D0 + .2byte 0x60 + .byte 0x13 + .byte 0x30 + .4byte BG_VRAM + 0xE204 + + .4byte gUnknown_03004250 + .2byte 0x80 + .byte 0x13 + .byte 0x30 + .4byte BG_VRAM + 0xF204 + + .4byte gUnknown_030041D0 + .2byte 0x20 + .byte 0x13 + .byte 0x18 + .4byte BG_VRAM + 0xE1C4 + + .4byte gUnknown_03004250 + .2byte 0x40 + .byte 0x13 + .byte 0x18 + .4byte BG_VRAM + 0xF1C4 + +gUnknown_081F96C8:: @ 81F96C8 + .string "ヌケニン$" @ "Nukenin" (Shedinja) + + .align 2 +gSpriteTemplate_81F96D0:: @ 81F96D0 + spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_800F828 + + .align 2 +gOamData_81F96E8:: @ 81F96E8 + .2byte 0x0100 + .2byte 0xC000 + .2byte 0x0800 + + .align 2 +gOamData_81F96F0:: @ 81F96F0 + .2byte 0x0100 + .2byte 0xC000 + .2byte 0x2800 + + .align 2 +gSpriteAnim_81F96F8:: @ 81F96F8 + obj_image_anim_frame 0, 5 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnimTable_81F9700:: @ 81F9700 + .4byte gSpriteAnim_81F96F8 + + .align 2 +gSpriteAffineAnim_81F9704:: @ 81F9704 + obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 4 + obj_rot_scal_anim_frame 0x0, 0x0, 0, 60 + obj_rot_scal_anim_jump 1 + + .align 2 +gSpriteAffineAnimTable_81F971C:: @ 81F971C + .4byte gSpriteAffineAnim_81F9704 + +@ 81F9720 + .include "data/type_effectiveness.inc" + +@ 81F9870 + .include "data/text/type_names.inc" + +@ 81F98F0 + .include "data/trainer_money.inc" + +@ 81F99CC + .include "data/text/ability_descriptions.inc" + +@ 81FA248 + .include "data/text/ability_names.inc" + + .align 2 +gUnknown_081FA640:: @ 81FA640 + .4byte HandleAction_UseMove + .4byte HandleAction_UseItem + .4byte HandleAction_Switch + .4byte HandleAction_Run + .4byte HandleAction_WatchesCarefully + .4byte HandleAction_SafariZoneBallThrow + .4byte HandleAction_ThrowPokeblock + .4byte HandleAction_GoNear + .4byte HandleAction_SafriZoneRun + .4byte HandleAction_Action9 + .4byte sub_801B594 + .4byte HandleAction_Action11 + .4byte HandleAction_ActionFinished + .4byte HandleAction_NothingIsFainted + + .align 2 +gUnknown_081FA678:: @ 81FA678 + .4byte bc_8013B1C + .4byte HandleEndTurn_BattleWon + .4byte HandleEndTurn_BattleLost + .4byte HandleEndTurn_BattleLost + .4byte HandleEndTurn_RanFromBattle + .4byte HandleEndTurn_FinishBattle + .4byte HandleEndTurn_MonFled + .4byte HandleEndTurn_FinishBattle + .4byte HandleEndTurn_FinishBattle + +gStatusConditionString_PoisonJpn:: @ 81FA69C + .string "どく$$$$$$" + +gStatusConditionString_SleepJpn:: @ 81FA6A4 + .string "ねむり$$$$$" + +gStatusConditionString_ParalysisJpn:: @ 81FA6AC + .string "まひ$$$$$$" + +gStatusConditionString_BurnJpn:: @ 81FA6B4 + .string "やけど$$$$$" + +gStatusConditionString_IceJpn:: @ 81FA6BC + .string "こおり$$$$$" + +gStatusConditionString_ConfusionJpn:: @ 81FA6C4 + .string "こんらん$$$$" + +gStatusConditionString_LoveJpn:: @ 81FA6CC + .string "メロメロ$$$$" + + .align 2 +gUnknown_081FA6D4:: @ 81FA6D4 + .4byte gStatusConditionString_PoisonJpn, BattleText_PoisonStatus + .4byte gStatusConditionString_SleepJpn, BattleText_Sleep + .4byte gStatusConditionString_ParalysisJpn, BattleText_Paralysis + .4byte gStatusConditionString_BurnJpn, BattleText_Burn + .4byte gStatusConditionString_IceJpn, BattleText_IceStatus + .4byte gStatusConditionString_ConfusionJpn, BattleText_Confusion + .4byte gStatusConditionString_LoveJpn, BattleText_Love + +gUnknown_081FA70C:: @ 81FA70C + .byte 0, 0, 0 + .byte 3, 5, 0 + .byte 2, 3, 0 + .byte 1, 2, 0 + .byte 1, 1, 0 + +gUnknown_081FA71B:: @ 81FA71B + .byte 4, 3, 2, 1 + +gUnknown_081FA71F:: @ 81FA71F + .byte 4, 4, 4, 4 + + .align 1 +gSoundMovesTable:: @ 81FA724 + .2byte 0x2D + .2byte 0x2E + .2byte 0x2F + .2byte 0x30 + .2byte 0x67 + .2byte 0xAD + .2byte 0xFD + .2byte 0x13F + .2byte 0x140 + .2byte 0x130 + .2byte 0xFFFF diff --git a/data/data2a.s b/data/mon_attrs.s index c4d6343d8..ea47c8de6 100644 --- a/data/data2a.s +++ b/data/mon_attrs.s @@ -702,331 +702,3 @@ gUnknown_081ECACC:: @ 81ECACC .4byte gSpriteAnimTable_81ECAB4 .4byte gSpriteAnimTable_81ECABC .4byte gSpriteAnimTable_81ECAC4 - -@ 81ECAD8 - .include "data/graphics/trainers/back_pic_coords.inc" - -@ 81ECAE4 - .include "data/graphics/trainers/back_pic_table.inc" - -@ 81ECAFC - .include "data/graphics/trainers/back_pic_palette_table.inc" - -@ 81ECB14 - .include "data/enemy_mon_elevation.inc" - -@ 81ECCB0 - .include "data/trainer_parties.inc" - -@ 81F0208 - .include "data/text/trainer_class_names.inc" - -@ 81F04FC - .include "data/trainers.inc" - -@ 81F716C - .include "data/text/species_names.inc" - -@ 81F8320 - .include "data/text/move_names.inc" - - .align 2 -@ 81F9528 - .4byte 0x101 @ unknown data - - .align 2 -gOamData_81F952C:: @ 81F952C - .2byte 0x0300 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_81F9534:: @ 81F9534 - .2byte 0x0300 - .2byte 0xC000 - .2byte 0x0040 - - .align 2 -gSpriteAffineAnim_81F953C:: @ 81F953C - obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_81F954C:: @ 81F954C - obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 - obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 - obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_81F956C:: @ 81F956C - .4byte gSpriteAffineAnim_81F953C - .4byte gSpriteAffineAnim_81F954C - - .align 2 -gSpriteTemplate_81F9574:: @ 81F9574 - spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 - - .align 2 -gSpriteTemplate_81F958C:: @ 81F958C - spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 - - .align 2 -gUnknown_081F95A4:: @ 81F95A4 - obj_tiles gUnknown_08E5DC2C, 4096, 0x2710 - - .align 2 -gBattleTerrainTable:: @ 81F95AC - @ tall_grass - .4byte gBattleTerrainTiles_TallGrass - .4byte gBattleTerrainTilemap_TallGrass - .4byte gBattleTerrainAnimTiles_TallGrass - .4byte gBattleTerrainAnimTilemap_TallGrass - .4byte gBattleTerrainPalette_TallGrass - - @ long_grass - .4byte gBattleTerrainTiles_LongGrass - .4byte gBattleTerrainTilemap_LongGrass - .4byte gBattleTerrainAnimTiles_LongGrass - .4byte gBattleTerrainAnimTilemap_LongGrass - .4byte gBattleTerrainPalette_LongGrass - - @ sand - .4byte gBattleTerrainTiles_Sand - .4byte gBattleTerrainTilemap_Sand - .4byte gBattleTerrainAnimTiles_Sand - .4byte gBattleTerrainAnimTilemap_Sand - .4byte gBattleTerrainPalette_Sand - - @ underwater - .4byte gBattleTerrainTiles_Underwater - .4byte gBattleTerrainTilemap_Underwater - .4byte gBattleTerrainAnimTiles_Underwater - .4byte gBattleTerrainAnimTilemap_Underwater - .4byte gBattleTerrainPalette_Underwater - - @ water - .4byte gBattleTerrainTiles_Water - .4byte gBattleTerrainTilemap_Water - .4byte gBattleTerrainAnimTiles_Water - .4byte gBattleTerrainAnimTilemap_Water - .4byte gBattleTerrainPalette_Water - - @ pond_water - .4byte gBattleTerrainTiles_PondWater - .4byte gBattleTerrainTilemap_PondWater - .4byte gBattleTerrainAnimTiles_PondWater - .4byte gBattleTerrainAnimTilemap_PondWater - .4byte gBattleTerrainPalette_PondWater - - @ rock - .4byte gBattleTerrainTiles_Rock - .4byte gBattleTerrainTilemap_Rock - .4byte gBattleTerrainAnimTiles_Rock - .4byte gBattleTerrainAnimTilemap_Rock - .4byte gBattleTerrainPalette_Rock - - @ cave - .4byte gBattleTerrainTiles_Cave - .4byte gBattleTerrainTilemap_Cave - .4byte gBattleTerrainAnimTiles_Cave - .4byte gBattleTerrainAnimTilemap_Cave - .4byte gBattleTerrainPalette_Cave - - @ building - .4byte gBattleTerrainTiles_Building - .4byte gBattleTerrainTilemap_Building - .4byte gBattleTerrainAnimTiles_Building - .4byte gBattleTerrainAnimTilemap_Building - .4byte gBattleTerrainPalette_Building - - @ plain - .4byte gBattleTerrainTiles_Building - .4byte gBattleTerrainTilemap_Building - .4byte gBattleTerrainAnimTiles_Building - .4byte gBattleTerrainAnimTilemap_Building - .4byte gBattleTerrainPalette_Plain - - .align 2 -gUnknown_081F9674:: @ 81F9674 - .4byte REG_BG3HOFS - .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1 - .4byte 1 - - .align 2 -gUnknown_081F9680:: @ 81F9680 - .4byte gUnknown_030041D0 - .2byte 0x20 - .byte 0x13 - .byte 0x10 - .4byte BG_VRAM + 0xE104 - - .4byte gUnknown_03004250 - .2byte 0x40 - .byte 0x13 - .byte 0x10 - .4byte BG_VRAM + 0xF104 - - .4byte gUnknown_030041D0 - .2byte 0x60 - .byte 0x13 - .byte 0x30 - .4byte BG_VRAM + 0xE204 - - .4byte gUnknown_03004250 - .2byte 0x80 - .byte 0x13 - .byte 0x30 - .4byte BG_VRAM + 0xF204 - - .4byte gUnknown_030041D0 - .2byte 0x20 - .byte 0x13 - .byte 0x18 - .4byte BG_VRAM + 0xE1C4 - - .4byte gUnknown_03004250 - .2byte 0x40 - .byte 0x13 - .byte 0x18 - .4byte BG_VRAM + 0xF1C4 - -gUnknown_081F96C8:: @ 81F96C8 - .string "ヌケニン$" @ "Nukenin" (Shedinja) - - .align 2 -gSpriteTemplate_81F96D0:: @ 81F96D0 - spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_800F828 - - .align 2 -gOamData_81F96E8:: @ 81F96E8 - .2byte 0x0100 - .2byte 0xC000 - .2byte 0x0800 - - .align 2 -gOamData_81F96F0:: @ 81F96F0 - .2byte 0x0100 - .2byte 0xC000 - .2byte 0x2800 - - .align 2 -gSpriteAnim_81F96F8:: @ 81F96F8 - obj_image_anim_frame 0, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_81F9700:: @ 81F9700 - .4byte gSpriteAnim_81F96F8 - - .align 2 -gSpriteAffineAnim_81F9704:: @ 81F9704 - obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 4 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 60 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_81F971C:: @ 81F971C - .4byte gSpriteAffineAnim_81F9704 - -@ 81F9720 - .include "data/type_effectiveness.inc" - -@ 81F9870 - .include "data/text/type_names.inc" - -@ 81F98F0 - .include "data/trainer_money.inc" - -@ 81F99CC - .include "data/text/ability_descriptions.inc" - -@ 81FA248 - .include "data/text/ability_names.inc" - - .align 2 -gUnknown_081FA640:: @ 81FA640 - .4byte HandleAction_UseMove - .4byte HandleAction_UseItem - .4byte HandleAction_Switch - .4byte HandleAction_Run - .4byte HandleAction_WatchesCarefully - .4byte HandleAction_SafariZoneBallThrow - .4byte HandleAction_ThrowPokeblock - .4byte HandleAction_GoNear - .4byte HandleAction_SafriZoneRun - .4byte HandleAction_Action9 - .4byte sub_801B594 - .4byte HandleAction_Action11 - .4byte HandleAction_ActionFinished - .4byte HandleAction_NothingIsFainted - - .align 2 -gUnknown_081FA678:: @ 81FA678 - .4byte bc_8013B1C - .4byte HandleEndTurn_BattleWon - .4byte HandleEndTurn_BattleLost - .4byte HandleEndTurn_BattleLost - .4byte HandleEndTurn_RanFromBattle - .4byte HandleEndTurn_FinishBattle - .4byte HandleEndTurn_MonFled - .4byte HandleEndTurn_FinishBattle - .4byte HandleEndTurn_FinishBattle - -gStatusConditionString_PoisonJpn:: @ 81FA69C - .string "どく$$$$$$" - -gStatusConditionString_SleepJpn:: @ 81FA6A4 - .string "ねむり$$$$$" - -gStatusConditionString_ParalysisJpn:: @ 81FA6AC - .string "まひ$$$$$$" - -gStatusConditionString_BurnJpn:: @ 81FA6B4 - .string "やけど$$$$$" - -gStatusConditionString_IceJpn:: @ 81FA6BC - .string "こおり$$$$$" - -gStatusConditionString_ConfusionJpn:: @ 81FA6C4 - .string "こんらん$$$$" - -gStatusConditionString_LoveJpn:: @ 81FA6CC - .string "メロメロ$$$$" - - .align 2 -gUnknown_081FA6D4:: @ 81FA6D4 - .4byte gStatusConditionString_PoisonJpn, BattleText_PoisonStatus - .4byte gStatusConditionString_SleepJpn, BattleText_Sleep - .4byte gStatusConditionString_ParalysisJpn, BattleText_Paralysis - .4byte gStatusConditionString_BurnJpn, BattleText_Burn - .4byte gStatusConditionString_IceJpn, BattleText_IceStatus - .4byte gStatusConditionString_ConfusionJpn, BattleText_Confusion - .4byte gStatusConditionString_LoveJpn, BattleText_Love - -gUnknown_081FA70C:: @ 81FA70C - .byte 0, 0, 0 - .byte 3, 5, 0 - .byte 2, 3, 0 - .byte 1, 2, 0 - .byte 1, 1, 0 - -gUnknown_081FA71B:: @ 81FA71B - .byte 4, 3, 2, 1 - -gUnknown_081FA71F:: @ 81FA71F - .byte 4, 4, 4, 4 - - .align 1 -gSoundMovesTable:: @ 81FA724 - .2byte 0x2D - .2byte 0x2E - .2byte 0x2F - .2byte 0x30 - .2byte 0x67 - .2byte 0xAD - .2byte 0xFD - .2byte 0x13F - .2byte 0x140 - .2byte 0x130 - .2byte 0xFFFF diff --git a/include/decoration.h b/include/decoration.h index 5e73df071..74ca47a3a 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -151,7 +151,6 @@ extern const struct YesNoFuncTable gUnknown_083EC634[]; extern const u8 gUnknown_083EC65A[]; extern const u8 gUnknown_083EC97C[]; extern const u8 gUnknown_083EC984[]; -extern void Shop_RunExitSellMenuTask(u8); // src/shop extern const struct YesNoFuncTable gUnknown_083EC95C; extern const struct YesNoFuncTable gUnknown_083EC964; extern const struct YesNoFuncTable gUnknown_083EC9CC; diff --git a/include/shop.h b/include/shop.h index 63dd6cc81..76b68d0e9 100644 --- a/include/shop.h +++ b/include/shop.h @@ -37,20 +37,9 @@ struct MartInfo /* 0xD */ u8 curItemCount; // if you are selling an item, this is the count of the current item stack you have. }; -void Task_DoBuySellMenu(u8); -void Task_HandleShopMenuQuit(u8); -void Shop_FadeAndRunBuySellCallback(u8); -void BuyMenuDrawGraphics(void); -void sub_80B3240(void); -void DrawFirstMartScrollIndicators(void); -void Shop_DrawViewport(void); -void Shop_InitMenus(int, int); -void Shop_PrintItemDesc(void); -void Shop_DoCursorAction(u8); -void CreatePokemartMenu(u16 *); -void CreateDecorationShop1Menu(u16 *); -void CreateDecorationShop2Menu(u16 *); -void Shop_LoadViewportObjects(void); -void Shop_AnimViewportObjects(void); +void Shop_CreatePokemartMenu(u16 *); +void Shop_CreateDecorationShop1Menu(u16 *); +void Shop_CreateDecorationShop2Menu(u16 *); +void Shop_RunExitSellMenuTask(u8 taskId); #endif // GUARD_SHOP_H diff --git a/ld_script.txt b/ld_script.txt index afa71a0c5..3749b49f5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -481,7 +481,8 @@ SECTIONS { src/engine/link.o(.rodata); src/engine/rtc.o(.rodata); src/engine/main_menu.o(.rodata); - data/data2a.o(.rodata); + data/mon_attrs.o(.rodata); + data/btl_attrs.o(.rodata); src/battle/battle_4.o(.rodata); src/battle/battle_controller_player.o(.rodata); data/data2b.o(.rodata); diff --git a/src/field/decoration.c b/src/field/decoration.c index 889e8e8a2..e1604cfa1 100644 --- a/src/field/decoration.c +++ b/src/field/decoration.c @@ -19,6 +19,7 @@ #include "event_data.h" #include "field_weather.h" #include "decoration.h" +#include "shop.h" #include "ewram.h" EWRAM_DATA u8 *gUnknown_020388D0 = NULL; diff --git a/src/field/scrcmd.c b/src/field/scrcmd.c index e795fd8ed..36edbe472 100644 --- a/src/field/scrcmd.c +++ b/src/field/scrcmd.c @@ -1755,7 +1755,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext *ctx) { void *ptr = (void *)ScriptReadWord(ctx); - CreatePokemartMenu(ptr); + Shop_CreatePokemartMenu(ptr); ScriptContext1_Stop(); return TRUE; } @@ -1764,7 +1764,7 @@ bool8 ScrCmd_pokemartdecoration(struct ScriptContext *ctx) { void *ptr = (void *)ScriptReadWord(ctx); - CreateDecorationShop1Menu(ptr); + Shop_CreateDecorationShop1Menu(ptr); ScriptContext1_Stop(); return TRUE; } @@ -1773,7 +1773,7 @@ bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx) { void *ptr = (void *)ScriptReadWord(ctx); - CreateDecorationShop2Menu(ptr); + Shop_CreateDecorationShop2Menu(ptr); ScriptContext1_Stop(); return TRUE; } diff --git a/src/field/shop.c b/src/field/shop.c index 233e430ee..5a47b033b 100644 --- a/src/field/shop.c +++ b/src/field/shop.c @@ -34,17 +34,28 @@ extern u8 gBuyMenuFrame_Gfx[]; extern u16 gBuyMenuFrame_Tilemap[]; extern u16 gMenuMoneyPal[16]; -void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlCode); -void Shop_PrintItemDescText(void); -void Task_ReturnToBuyMenu(u8); -void Task_ExitBuyMenu(u8); -void Task_ExitBuyMenuDoFade(u8); -void Task_UpdatePurchaseHistory(u8); -void Task_HandleShopMenuBuy(u8 taskId); -void Task_HandleShopMenuSell(u8 taskId); -void Task_HandleShopMenuQuit(u8 taskId); -void Task_DoItemPurchase(u8 taskId); -void Task_CancelItemPurchase(u8 taskId); +static void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlCode); +static void Shop_PrintItemDescText(void); +static void Task_ReturnToBuyMenu(u8); +static void Task_ExitBuyMenu(u8); +static void Task_ExitBuyMenuDoFade(u8); +static void Task_UpdatePurchaseHistory(u8); +static void Task_HandleShopMenuBuy(u8 taskId); +static void Task_HandleShopMenuSell(u8 taskId); +static void Task_HandleShopMenuQuit(u8 taskId); +static void Task_DoItemPurchase(u8 taskId); +static void Task_CancelItemPurchase(u8 taskId); +static void Task_DoBuySellMenu(u8); +static void Shop_FadeAndRunBuySellCallback(u8); +static void BuyMenuDrawGraphics(void); +static void sub_80B3240(void); +static void DrawFirstMartScrollIndicators(void); +static void Shop_DrawViewport(void); +static void Shop_InitMenus(int, int); +static void Shop_PrintItemDesc(void); +static void Shop_DoCursorAction(u8); +static void Shop_LoadViewportObjects(void); +static void Shop_AnimViewportObjects(void); // iwram static struct MartInfo gMartInfo; @@ -76,7 +87,7 @@ static const struct YesNoFuncTable sShopPurchaseYesNoFuncs[] = Task_CancelItemPurchase }; -u8 CreateShopMenu(u8 martType) +static u8 CreateShopMenu(u8 martType) { ScriptContext2_Enable(); gMartInfo.martType = martType; @@ -99,12 +110,12 @@ u8 CreateShopMenu(u8 martType) return CreateTask(Task_DoBuySellMenu, 8); } -void SetShopMenuCallback(void *callbackPtr) +static void SetShopMenuCallback(void *callbackPtr) { gMartInfo.callback = callbackPtr; } -void SetShopItemsForSale(u16 *items) +static void SetShopItemsForSale(u16 *items) { u16 i = 0; @@ -118,7 +129,7 @@ void SetShopItemsForSale(u16 *items) } } -void Task_DoBuySellMenu(u8 taskId) +static void Task_DoBuySellMenu(u8 taskId) { const u8 taskIdConst = taskId; // why is a local const needed to match? @@ -157,7 +168,7 @@ void Task_DoBuySellMenu(u8 taskId) } } -void Task_HandleShopMenuBuy(u8 taskId) +static void Task_HandleShopMenuBuy(u8 taskId) { gTasks[taskId].data[8] = (u32)BuyMenuDrawGraphics >> 16; gTasks[taskId].data[9] = (u32)BuyMenuDrawGraphics; @@ -165,7 +176,7 @@ void Task_HandleShopMenuBuy(u8 taskId) fade_screen(1, 0); } -void Task_HandleShopMenuSell(u8 taskId) +static void Task_HandleShopMenuSell(u8 taskId) { gTasks[taskId].data[8] = (u32)ItemMenu_LoadSellMenu >> 16; gTasks[taskId].data[9] = (u32)ItemMenu_LoadSellMenu; @@ -173,7 +184,7 @@ void Task_HandleShopMenuSell(u8 taskId) fade_screen(1, 0); } -void Task_HandleShopMenuQuit(u8 taskId) +static void Task_HandleShopMenuQuit(u8 taskId) { Menu_DestroyCursor(); Menu_EraseWindowRect(0, 0, 11, 8); @@ -185,7 +196,7 @@ void Task_HandleShopMenuQuit(u8 taskId) gMartInfo.callback(); // run the callback if it exists. } -void Shop_FadeAndRunBuySellCallback(u8 taskId) +static void Shop_FadeAndRunBuySellCallback(u8 taskId) { if (!gPaletteFade.active) { @@ -194,13 +205,13 @@ void Shop_FadeAndRunBuySellCallback(u8 taskId) } } -void ReturnToShopMenuAfterExitingSellMenu(u8 taskId) +static void ReturnToShopMenuAfterExitingSellMenu(u8 taskId) { CreateShopMenu(gMartInfo.martType); DestroyTask(taskId); } -void Task_ReturnToMartMenu(u8 taskId) +static void Task_ReturnToMartMenu(u8 taskId) { if (sub_807D770() == 1) { @@ -246,7 +257,7 @@ static void VBlankCB(void) DmaCopy16Defvars(3, gBGTilemapBuffers[3], (void *)(VRAM + 0xF000), 0x800); } -void BuyMenuDrawGraphics(void) +static void BuyMenuDrawGraphics(void) { ClearVideoCallbacks(); ScanlineEffect_Stop(); @@ -298,7 +309,7 @@ void BuyMenuDrawGraphics(void) SetMainCallback2(MainCB2); } -void sub_80B3240(void) +static void sub_80B3240(void) { u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE}; @@ -306,7 +317,7 @@ void sub_80B3240(void) LoadPalette(&colors[0], 0xD8, sizeof colors[0]); } -void DrawFirstMartScrollIndicators(void) +static void DrawFirstMartScrollIndicators(void) { ClearVerticalScrollIndicatorPalettes(); @@ -318,7 +329,7 @@ void DrawFirstMartScrollIndicators(void) } } -void Shop_TryDrawVerticalScrollIndicators(void) +static void Shop_TryDrawVerticalScrollIndicators(void) { if (gMartInfo.choicesAbove == 0) SetVerticalScrollIndicators(TOP_ARROW, INVISIBLE); @@ -332,13 +343,13 @@ void Shop_TryDrawVerticalScrollIndicators(void) } // what is the point of this function? the tiles always get overwritten by BuyMenuDrawTextboxBG. -void BuyMenuDrawTextboxBG_Old(u16 *array, s16 offset1, s16 offset2) +static void BuyMenuDrawTextboxBG_Old(u16 *array, s16 offset1, s16 offset2) { array[offset1 + offset2] = 0xC3E1; array[offset1 + offset2 + 1] = 0xC3E1; } -void BuyMenuDrawMapMetatileLayer(u16 *array, s16 offset1, s16 offset2, u16 *array2) +static void BuyMenuDrawMapMetatileLayer(u16 *array, s16 offset1, s16 offset2, u16 *array2) { // This function draws a whole 2x2 metatile. array[offset1 + offset2] = array2[0]; // top left @@ -347,7 +358,7 @@ void BuyMenuDrawMapMetatileLayer(u16 *array, s16 offset1, s16 offset2, u16 *arra array[offset1 + offset2 + 33] = array2[3]; // bottom right } -void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s32 var4) +static void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s32 var4) { u8 tempVar4 = var4; s16 offset1 = var1 * 2; @@ -371,7 +382,7 @@ void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s32 var4) } // used to draw the border tiles around the viewport. -void BuyMenuDrawMapPartialMetatile(s16 var1, int var2, u16 *var3) +static void BuyMenuDrawMapPartialMetatile(s16 var1, int var2, u16 *var3) { s16 offset1 = var1 * 2; s16 offset2 = (var2 * 0x40) + 0x40; @@ -380,7 +391,7 @@ void BuyMenuDrawMapPartialMetatile(s16 var1, int var2, u16 *var3) BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3 + 4); } -void Shop_DrawViewportTiles(void) +static void Shop_DrawViewportTiles(void) { s16 facingX; s16 facingY; @@ -420,7 +431,7 @@ void Shop_DrawViewportTiles(void) } } -void Shop_DrawViewport(void) +static void Shop_DrawViewport(void) { ClearBGTilemapBuffers(); Shop_LoadViewportObjects(); @@ -428,7 +439,7 @@ void Shop_DrawViewport(void) Shop_DrawViewportTiles(); } -void Shop_LoadViewportObjects(void) +static void Shop_LoadViewportObjects(void) { s16 facingX; s16 facingY; @@ -466,7 +477,7 @@ void Shop_LoadViewportObjects(void) } } -void Shop_AnimViewportObjects(void) +static void Shop_AnimViewportObjects(void) { u8 i; @@ -485,7 +496,7 @@ void Shop_AnimViewportObjects(void) } } -void BuyMenuDrawTextboxBG(void) +static void BuyMenuDrawTextboxBG(void) { s16 i; @@ -496,7 +507,7 @@ void BuyMenuDrawTextboxBG(void) } } -void Shop_InitMenus(int firstItemId, int lastItemId) +static void Shop_InitMenus(int firstItemId, int lastItemId) { BuyMenuDrawTextboxBG(); Shop_DisplayPriceInList(firstItemId, lastItemId, 0); @@ -504,7 +515,7 @@ void Shop_InitMenus(int firstItemId, int lastItemId) } // after printing the item quantity and price, restore the textbox tiles before the Yes/No prompt. -void BuyMenuDrawTextboxBG_Restore(void) +static void BuyMenuDrawTextboxBG_Restore(void) { u16 i, j; @@ -513,14 +524,14 @@ void BuyMenuDrawTextboxBG_Restore(void) gBGTilemapBuffers[1][32 * (i + 12) + j] = ewram18300[32 * i + j] + 0xC3E0; } -void Shop_PrintItemDesc(void) +static void Shop_PrintItemDesc(void) { Shop_PrintItemDescText(); } #define tItemCount data[1] -void Shop_DisplayPriceInCheckoutWindow(u8 taskId) +static void Shop_DisplayPriceInCheckoutWindow(u8 taskId) { u16 itemListIndex = gMartInfo.choicesAbove + gMartInfo.cursor; u16 itemId = gMartInfo.itemList[itemListIndex]; @@ -535,7 +546,7 @@ void Shop_DisplayPriceInCheckoutWindow(u8 taskId) sub_80A3FA0(gBGTilemapBuffers[1], 1, 11, 12, 2, 0xC3E1); } -void Shop_DisplayNormalPriceInList(u16 itemId, u8 var2, bool32 hasControlCode) +static void Shop_DisplayNormalPriceInList(u16 itemId, u8 var2, bool32 hasControlCode) { u8 *stringPtr = gStringVar1; @@ -559,7 +570,7 @@ void Shop_DisplayNormalPriceInList(u16 itemId, u8 var2, bool32 hasControlCode) Menu_PrintTextPixelCoords(&gStringVar1[0], 0xCA, var2 << 3, 1); } -void Shop_DisplayDecorationPriceInList(u16 itemId, u8 var2, bool32 hasControlCode) +static void Shop_DisplayDecorationPriceInList(u16 itemId, u8 var2, bool32 hasControlCode) { u8 *stringPtr = gStringVar1; @@ -592,7 +603,7 @@ void Shop_DisplayDecorationPriceInList(u16 itemId, u8 var2, bool32 hasControlCod } } -void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlCode) +static void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlCode) { u8 i; @@ -611,7 +622,7 @@ void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlC } } -void Shop_PrintItemDescText(void) +static void Shop_PrintItemDescText(void) { if (gMartInfo.choicesAbove + gMartInfo.cursor != gMartInfo.itemCount) { @@ -630,7 +641,7 @@ void Shop_PrintItemDescText(void) } } -void Shop_DoPremierBallCheck(u8 taskId) +static void Shop_DoPremierBallCheck(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { @@ -644,7 +655,7 @@ void Shop_DoPremierBallCheck(u8 taskId) } } -void Shop_DoItemTransaction(u8 taskId) +static void Shop_DoItemTransaction(u8 taskId) { IncrementGameStat(0x26); RemoveMoney(&gSaveBlock1.money, gMartTotalCost); @@ -653,13 +664,13 @@ void Shop_DoItemTransaction(u8 taskId) gTasks[taskId].func = Shop_DoPremierBallCheck; } -void Shop_DoPricePrintAndReturnToBuyMenu(u8 taskId) +static void Shop_DoPricePrintAndReturnToBuyMenu(u8 taskId) { Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 0); Task_ReturnToBuyMenu(taskId); } -void Task_DoItemPurchase(u8 taskId) +static void Task_DoItemPurchase(u8 taskId) { Menu_EraseWindowRect(0x7, 0x8, 0xD, 0xD); sub_80A3FA0(gBGTilemapBuffers[1], 8, 9, 4, 4, 0); @@ -698,14 +709,14 @@ void Task_DoItemPurchase(u8 taskId) DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, Shop_DoPricePrintAndReturnToBuyMenu, 0xC3E1); } -void Shop_DoYesNoPurchase(u8 taskId) +static void Shop_DoYesNoPurchase(u8 taskId) { DisplayYesNoMenu(7, 8, 1); sub_80A3FA0(gBGTilemapBuffers[1], 8, 9, 4, 4, 0xC3E1); DoYesNoFuncWithChoice(taskId, sShopPurchaseYesNoFuncs); } -void Task_CancelItemPurchase(u8 taskId) +static void Task_CancelItemPurchase(u8 taskId) { Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 0); Menu_EraseWindowRect(0x7, 0x8, 0xD, 0xD); @@ -713,7 +724,7 @@ void Task_CancelItemPurchase(u8 taskId) Task_ReturnToBuyMenu(taskId); } -void Shop_PrintPrice(u8 taskId) +static void Shop_PrintPrice(u8 taskId) { if (SellMenu_QuantityRoller(taskId, gMartInfo.curItemCount) == TRUE) Shop_DisplayPriceInCheckoutWindow(taskId); @@ -739,7 +750,7 @@ void Shop_PrintPrice(u8 taskId) } // set the item count in the mart info to the maximum allowed by the player's budget. -void Shop_UpdateCurItemCountToMax(u8 taskId) +static void Shop_UpdateCurItemCountToMax(u8 taskId) { u16 var; @@ -757,7 +768,7 @@ void Shop_UpdateCurItemCountToMax(u8 taskId) } #ifdef NONMATCHING -void Shop_MoveItemListUp(void) +static void Shop_MoveItemListUp(void) { u16 *r1; u16 *r2; @@ -799,7 +810,7 @@ void Shop_MoveItemListUp(void) } #else __attribute__((naked)) -void Shop_MoveItemListUp(void) +static void Shop_MoveItemListUp(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -894,7 +905,7 @@ _080B4038: .4byte 0xfffffc40\n\ #endif #ifdef NONMATCHING -void Shop_MoveItemListDown(void) +static void Shop_MoveItemListDown(void) { u16 *r1; u16 *r2; @@ -938,7 +949,7 @@ void Shop_MoveItemListDown(void) } #else __attribute__((naked)) -void Shop_MoveItemListDown(void) +static void Shop_MoveItemListDown(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1031,7 +1042,7 @@ _080B40E4: .4byte 0x800000f0\n\ } #endif -void Shop_DoCursorAction(u8 taskId) +static void Shop_DoCursorAction(u8 taskId) { if (!gPaletteFade.active) { @@ -1140,7 +1151,7 @@ void Shop_DoCursorAction(u8 taskId) } } -void Task_ReturnToBuyMenu(u8 taskId) +static void Task_ReturnToBuyMenu(u8 taskId) { Menu_EraseWindowRect(0, 0xE, 0x1D, 0x13); Menu_EraseWindowRect(0, 0xA, 0xD, 0xD); @@ -1154,14 +1165,14 @@ void Task_ReturnToBuyMenu(u8 taskId) gTasks[taskId].func = Shop_DoCursorAction; } -void Task_ExitBuyMenu(u8 taskId) +static void Task_ExitBuyMenu(u8 taskId) { gFieldCallback = Shop_FadeReturnToMartMenu; BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ExitBuyMenuDoFade; } -void Task_ExitBuyMenuDoFade(u8 taskId) +static void Task_ExitBuyMenuDoFade(u8 taskId) { if (!gPaletteFade.active) { @@ -1173,7 +1184,7 @@ void Task_ExitBuyMenuDoFade(u8 taskId) } // Task_UpdatePurchaseHistory -void Task_UpdatePurchaseHistory(u8 taskId) +static void Task_UpdatePurchaseHistory(u8 taskId) { u16 i; @@ -1200,13 +1211,13 @@ void Task_UpdatePurchaseHistory(u8 taskId) #undef tItemCount -void ClearItemPurchases(void) +static void ClearItemPurchases(void) { gMartPurchaseHistoryId = 0; ClearItemSlots(gMartPurchaseHistory, 3); } -void CreatePokemartMenu(u16 *itemList) +void Shop_CreatePokemartMenu(u16 *itemList) { CreateShopMenu(MART_TYPE_0); SetShopItemsForSale(itemList); @@ -1214,14 +1225,14 @@ void CreatePokemartMenu(u16 *itemList) SetShopMenuCallback(EnableBothScriptContexts); } -void CreateDecorationShop1Menu(u16 *itemList) +void Shop_CreateDecorationShop1Menu(u16 *itemList) { CreateShopMenu(MART_TYPE_1); SetShopItemsForSale(itemList); SetShopMenuCallback(EnableBothScriptContexts); } -void CreateDecorationShop2Menu(u16 *itemList) +void Shop_CreateDecorationShop2Menu(u16 *itemList) { CreateShopMenu(MART_TYPE_2); SetShopItemsForSale(itemList); |