Document some overworld and field effects

This commit is contained in:
GriffinR 2020-06-19 19:58:56 -04:00
parent 46f4a4bbf7
commit 18d57a3802
71 changed files with 1379 additions and 1302 deletions

View File

@ -5,73 +5,73 @@
.align 2
gFieldEffectScriptPointers:: @ 82DB9D4
.4byte gFieldEffectScript_ExclamationMarkIcon1
.4byte gFieldEffectScript_UseCutOnTallGrass
.4byte gFieldEffectScript_UseCutOnTree
.4byte gFieldEffectScript_Shadow
.4byte gFieldEffectScript_TallGrass
.4byte gFieldEffectScript_Ripple
.4byte gFieldEffectScript_FieldMoveShowMon
.4byte gFieldEffectScript_Ash
.4byte gFieldEffectScript_SurfBlob
.4byte gFieldEffectScript_UseSurf
.4byte gFieldEffectScript_GroundImpactDust
.4byte gFieldEffectScript_UseSecretPowerCave
.4byte gFieldEffectScript_BikeHopTallGrass
.4byte gFieldEffectScript_SandFootprints
.4byte gFieldEffectScript_BikeHopBigSplash
.4byte gFieldEffectScript_Splash
.4byte gFieldEffectScript_BikeHopSmallSplash
.4byte gFieldEffectScript_LongGrass
.4byte gFieldEffectScript_JumpLongGrass
.4byte gFieldEffectScript_Unknown19
.4byte gFieldEffectScript_Unknown20
.4byte gFieldEffectScript_Unknown21
.4byte gFieldEffectScript_Unknown22
.4byte gFieldEffectScript_BerryTreeGrowthSparkle
.4byte gFieldEffectScript_DeepSandFootprints
.4byte gFieldEffectScript_PokeCenterHeal
.4byte gFieldEffectScript_UseSecretPowerTree
.4byte gFieldEffectScript_UseSecretPowerShrub
.4byte gFieldEffectScript_TreeDisguise
.4byte gFieldEffectScript_MountainDisguise
.4byte gFieldEffectScript_NPCUseFly
.4byte gFieldEffectScript_UseFly
.4byte gFieldEffectScript_FlyIn
.4byte gFieldEffectScript_QuestionMarkIcon
.4byte gFieldEffectScript_FeetInFlowingWater
.4byte gFieldEffectScript_BikeTireTracks
.4byte gFieldEffectScript_SandDisguisePlaceholder
.4byte gFieldEffectScript_UseRockSmash
.4byte gFieldEffectScript_UseDig
.4byte gFieldEffectScript_SandPile
.4byte gFieldEffectScript_UseStrength
.4byte gFieldEffectScript_ShortGrass
.4byte gFieldEffectScript_HotSpringsWater
.4byte gFieldEffectScript_UseWaterfall
.4byte gFieldEffectScript_UseDive
.4byte gFieldEffectScript_Pokeball
.4byte gFieldEffectScript_HeartIcon
.4byte gFieldEffectScript_Unknown47
.4byte gFieldEffectScript_Unknown48
.4byte gFieldEffectScript_JumpOutOfAsh
.4byte gFieldEffectScript_LavaridgeGymWarp
.4byte gFieldEffectScript_SweetScent
.4byte gFieldEffectScript_SandPillar
.4byte gFieldEffectScript_Bubbles
.4byte gFieldEffectScript_Sparkle
.4byte gFieldEffectScript_ShowSecretPowerCave
.4byte gFieldEffectScript_ShowSecretPowerTree
.4byte gFieldEffectScript_ShowSecretPowerShrub
.4byte gFieldEffectScript_ShowCutGrass
.4byte gFieldEffectScript_FieldMoveShowMonInit
.4byte gFieldEffectScript_UsePuzzleEffect
.4byte gFieldEffectScript_SecretBaseBootPC
.4byte gFieldEffectScript_HallOfFameRecord
.4byte gFieldEffectScript_UseTeleport
.4byte gFieldEffectScript_Rayquaza
.4byte gFieldEffectScript_Unknown65
.4byte gFieldEffectScript_MoveDeoxysRock
.4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON
.4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS
.4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE
.4byte gFieldEffectScript_Shadow @ FLDEFF_SHADOW
.4byte gFieldEffectScript_TallGrass @ FLDEFF_TALL_GRASS
.4byte gFieldEffectScript_Ripple @ FLDEFF_RIPPLE
.4byte gFieldEffectScript_FieldMoveShowMon @ FLDEFF_FIELD_MOVE_SHOW_MON
.4byte gFieldEffectScript_Ash @ FLDEFF_ASH
.4byte gFieldEffectScript_SurfBlob @ FLDEFF_SURF_BLOB
.4byte gFieldEffectScript_UseSurf @ FLDEFF_USE_SURF
.4byte gFieldEffectScript_GroundImpactDust @ FLDEFF_DUST
.4byte gFieldEffectScript_UseSecretPowerCave @ FLDEFF_USE_SECRET_POWER_CAVE
.4byte gFieldEffectScript_BikeHopTallGrass @ FLDEFF_JUMP_TALL_GRASS
.4byte gFieldEffectScript_SandFootprints @ FLDEFF_SAND_FOOTPRINTS
.4byte gFieldEffectScript_BikeHopBigSplash @ FLDEFF_JUMP_BIG_SPLASH
.4byte gFieldEffectScript_Splash @ FLDEFF_SPLASH
.4byte gFieldEffectScript_BikeHopSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH
.4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS
.4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS
.4byte gFieldEffectScript_Unknown19 @ FLDEFF_UNKNOWN_19
.4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS
.4byte gFieldEffectScript_Unknown21 @ FLDEFF_UNKNOWN_21
.4byte gFieldEffectScript_Unknown22 @ FLDEFF_UNKNOWN_22
.4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE
.4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS
.4byte gFieldEffectScript_PokeCenterHeal @ FLDEFF_POKECENTER_HEAL
.4byte gFieldEffectScript_UseSecretPowerTree @ FLDEFF_USE_SECRET_POWER_TREE
.4byte gFieldEffectScript_UseSecretPowerShrub @ FLDEFF_USE_SECRET_POWER_SHRUB
.4byte gFieldEffectScript_TreeDisguise @ FLDEFF_TREE_DISGUISE
.4byte gFieldEffectScript_MountainDisguise @ FLDEFF_MOUNTAIN_DISGUISE
.4byte gFieldEffectScript_NPCUseFly @ FLDEFF_NPCFLY_OUT
.4byte gFieldEffectScript_UseFly @ FLDEFF_USE_FLY
.4byte gFieldEffectScript_FlyIn @ FLDEFF_FLY_IN
.4byte gFieldEffectScript_QuestionMarkIcon @ FLDEFF_QUESTION_MARK_ICON
.4byte gFieldEffectScript_FeetInFlowingWater @ FLDEFF_FEET_IN_FLOWING_WATER
.4byte gFieldEffectScript_BikeTireTracks @ FLDEFF_BIKE_TIRE_TRACKS
.4byte gFieldEffectScript_SandDisguisePlaceholder @ FLDEFF_SAND_DISGUISE
.4byte gFieldEffectScript_UseRockSmash @ FLDEFF_USE_ROCK_SMASH
.4byte gFieldEffectScript_UseDig @ FLDEFF_USE_DIG
.4byte gFieldEffectScript_SandPile @ FLDEFF_SAND_PILE
.4byte gFieldEffectScript_UseStrength @ FLDEFF_USE_STRENGTH
.4byte gFieldEffectScript_ShortGrass @ FLDEFF_SHORT_GRASS
.4byte gFieldEffectScript_HotSpringsWater @ FLDEFF_HOT_SPRINGS_WATER
.4byte gFieldEffectScript_UseWaterfall @ FLDEFF_USE_WATERFALL
.4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE
.4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL
.4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON
.4byte gFieldEffectScript_Unknown47 @ FLDEFF_NOP_47
.4byte gFieldEffectScript_Unknown48 @ FLDEFF_NOP_48
.4byte gFieldEffectScript_JumpOutOfAsh @ FLDEFF_POP_OUT_OF_ASH
.4byte gFieldEffectScript_LavaridgeGymWarp @ FLDEFF_LAVARIDGE_GYM_WARP
.4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT
.4byte gFieldEffectScript_SandPillar @ FLDEFF_SAND_PILLAR
.4byte gFieldEffectScript_Bubbles @ FLDEFF_BUBBLES
.4byte gFieldEffectScript_Sparkle @ FLDEFF_SPARKLE
.4byte gFieldEffectScript_ShowSecretPowerCave @ FLDEFF_SECRET_POWER_CAVE
.4byte gFieldEffectScript_ShowSecretPowerTree @ FLDEFF_SECRET_POWER_TREE
.4byte gFieldEffectScript_ShowSecretPowerShrub @ FLDEFF_SECRET_POWER_SHRUB
.4byte gFieldEffectScript_ShowCutGrass @ FLDEFF_CUT_GRASS
.4byte gFieldEffectScript_FieldMoveShowMonInit @ FLDEFF_FIELD_MOVE_SHOW_MON_INIT
.4byte gFieldEffectScript_UsePuzzleEffect @ FLDEFF_USE_TOMB_PUZZLE_EFFECT
.4byte gFieldEffectScript_SecretBaseBootPC @ FLDEFF_PCTURN_ON
.4byte gFieldEffectScript_HallOfFameRecord @ FLDEFF_HALL_OF_FAME_RECORD
.4byte gFieldEffectScript_UseTeleport @ FLDEFF_USE_TELEPORT
.4byte gFieldEffectScript_Rayquaza @ FLDEFF_RAYQUAZA
.4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK
.4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK
gFieldEffectScript_ExclamationMarkIcon1:: @ 82DBAE0
field_eff_callnative FldEff_ExclamationMarkIcon
@ -153,8 +153,8 @@ gFieldEffectScript_Unknown19:: @ 82DBB7E
field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19
field_eff_end
gFieldEffectScript_Unknown20:: @ 82DBB88
field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown20
gFieldEffectScript_UnusedGrass:: @ 82DBB88
field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_UnusedGrass
field_eff_end
gFieldEffectScript_Unknown21:: @ 82DBB92
@ -336,10 +336,10 @@ gFieldEffectScript_Rayquaza:: @ 82DBCF3
field_eff_callnative sub_80B8F98
field_eff_end
gFieldEffectScript_Unknown65:: @ 82DBCF9
field_eff_callnative sub_80B9ADC
gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9
field_eff_callnative FldEff_DestroyDeoxysRock
field_eff_end
gFieldEffectScript_MoveDeoxysRock:: @ 82DBCFF
field_eff_callnative Fldeff_MoveDeoxysRock
field_eff_callnative FldEff_MoveDeoxysRock
field_eff_end

View File

@ -1,37 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnref_82EC784:: @ 82EC784
.4byte 0x00000000
.4byte 0x00000000
.4byte 0x04000008
.4byte 0x0400000A
.4byte 0x0400000C
.4byte 0x0400000E
.4byte 0x04000010
.4byte 0x04000014
.4byte 0x04000018
.4byte 0x0400001C
.4byte 0x04000012
.4byte 0x04000016
.4byte 0x0400001A
.4byte 0x0400001E
.4byte 0x02000100
.4byte 0x08000400
gOverworldBackgroundLayerFlags:: @ 82EC7C4
.2byte BLDCNT_TGT2_BG0
.2byte BLDCNT_TGT2_BG1
.2byte BLDCNT_TGT2_BG2
.2byte BLDCNT_TGT2_BG3
gOrbEffectBackgroundLayerFlags:: @ 82EC7CC
.2byte BLDCNT_TGT1_BG0
.2byte BLDCNT_TGT1_BG1
.2byte BLDCNT_TGT1_BG2
.2byte BLDCNT_TGT1_BG3

View File

@ -68,9 +68,9 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1
setfieldeffectargument 0, 1
setfieldeffectargument 1, 58
setfieldeffectargument 2, 26
dofieldeffect FLDEFF_65
dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK
playbgm MUS_RG_DEOEYE, 0
waitfieldeffect FLDEFF_65
waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK
addobject 2
applymovement 2, BirthIsland_Exterior_Movement_DeoxysApproach
waitmovement 0

36
gflib/io_reg.c Normal file
View File

@ -0,0 +1,36 @@
#include "global.h"
#include "io_reg.h"
#include "gba/io_reg.h"
static const u32 sUnused[] = {
0,
0,
(1 << 26) | (1 << 3),
(1 << 26) | (1 << 3) | (1 << 1),
(1 << 26) | (1 << 3) | (1 << 2),
(1 << 26) | (1 << 3) | (1 << 2) | (1 << 1),
(1 << 26) | (1 << 4),
(1 << 26) | (1 << 4) | (1 << 2),
(1 << 26) | (1 << 4) | (1 << 3),
(1 << 26) | (1 << 4) | (1 << 3) | (1 << 2),
(1 << 26) | (1 << 4) | (1 << 1),
(1 << 26) | (1 << 4) | (1 << 2) | (1 << 1),
(1 << 26) | (1 << 4) | (1 << 3) | (1 << 1),
(1 << 26) | (1 << 4) | (1 << 3) | (1 << 2) | (1 << 1),
(1 << 25) | (1 << 8),
(1 << 27) | (1 << 10),
};
const u16 gOverworldBackgroundLayerFlags[] = {
BLDCNT_TGT2_BG0,
BLDCNT_TGT2_BG1,
BLDCNT_TGT2_BG2,
BLDCNT_TGT2_BG3,
};
const u16 gOrbEffectBackgroundLayerFlags[] = {
BLDCNT_TGT1_BG0,
BLDCNT_TGT1_BG1,
BLDCNT_TGT1_BG2,
BLDCNT_TGT1_BG3,
};

7
gflib/io_reg.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef GUARD_IO_REG_H
#define GUARD_IO_REG_H
extern const u16 gOverworldBackgroundLayerFlags[];
extern const u16 gOrbEffectBackgroundLayerFlags[];
#endif // GUARD_IO_REG_H

View File

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

View File

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 174 B

View File

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 B

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

View File

@ -21,7 +21,7 @@
#define FLDEFF_LONG_GRASS 17
#define FLDEFF_JUMP_LONG_GRASS 18
#define FLDEFF_UNKNOWN_19 19
#define FLDEFF_UNKNOWN_20 20
#define FLDEFF_UNUSED_GRASS 20
#define FLDEFF_UNKNOWN_21 21
#define FLDEFF_UNKNOWN_22 22
#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23
@ -66,7 +66,45 @@
#define FLDEFF_HALL_OF_FAME_RECORD 62
#define FLDEFF_USE_TELEPORT 63
#define FLDEFF_RAYQUAZA 64
#define FLDEFF_65 65
#define FLDEFF_DESTROY_DEOXYS_ROCK 65
#define FLDEFF_MOVE_DEOXYS_ROCK 66
#endif
#define FLDEFFOBJ_SHADOW_S 0
#define FLDEFFOBJ_SHADOW_M 1
#define FLDEFFOBJ_SHADOW_L 2
#define FLDEFFOBJ_SHADOW_XL 3
#define FLDEFFOBJ_TALL_GRASS 4
#define FLDEFFOBJ_RIPPLE 5
#define FLDEFFOBJ_ASH 6
#define FLDEFFOBJ_SURF_BLOB 7
#define FLDEFFOBJ_ARROW 8
#define FLDEFFOBJ_GROUND_IMPACT_DUST 9
#define FLDEFFOBJ_JUMP_TALL_GRASS 10
#define FLDEFFOBJ_SAND_FOOTPRINTS 11
#define FLDEFFOBJ_JUMP_BIG_SPLASH 12
#define FLDEFFOBJ_SPLASH 13
#define FLDEFFOBJ_JUMP_SMALL_SPLASH 14
#define FLDEFFOBJ_LONG_GRASS 15
#define FLDEFFOBJ_JUMP_LONG_GRASS 16
#define FLDEFFOBJ_17 17
#define FLDEFFOBJ_UNUSED_GRASS 18
#define FLDEFFOBJ_19 19
#define FLDEFFOBJ_20 20
#define FLDEFFOBJ_REFLECTION_DISTORTION 21
#define FLDEFFOBJ_SPARKLE 22
#define FLDEFFOBJ_DEEP_SAND_FOOTPRINTS 23
#define FLDEFFOBJ_TREE_DISGUISE 24
#define FLDEFFOBJ_MOUNTAIN_DISGUISE 25
#define FLDEFFOBJ_BIRD 26
#define FLDEFFOBJ_BIKE_TIRE_TRACKS 27
#define FLDEFFOBJ_SAND_DISGUISE 28
#define FLDEFFOBJ_SAND_PILE 29
#define FLDEFFOBJ_SHORT_GRASS 30
#define FLDEFFOBJ_HOT_SPRINGS_WATER 31
#define FLDEFFOBJ_JUMP_OUT_OF_ASH 32
#define FLDEFFOBJ_LAVARIDGE_GYM_WARP 33
#define FLDEFFOBJ_BUBBLES 34
#define FLDEFFOBJ_SMALL_SPARKLE 35
#define FLDEFFOBJ_RAYQUAZA 36
#endif // GUARD_FIELD_EFFECT_CONSTANTS_H

View File

@ -587,4 +587,26 @@ extern u8 BerryTree_EventScript_ItemUsePlantBerry[];
extern u8 BerryTree_EventScript_ItemUseWailmerPail[];
extern u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[];
// overworld
extern const u8 EventScript_WhiteOut[];
extern const u8 EventScript_ResetMrBriney[];
extern const u8 EventScript_DoLinkRoomExit[];
extern const u8 CableClub_EventScript_TooBusyToNotice[];
extern const u8 CableClub_EventScript_ReadTrainerCard[];
extern const u8 CableClub_EventScript_ReadTrainerCardColored[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[];
extern const u8 EventScript_RecordCenter_Spot0[];
extern const u8 EventScript_RecordCenter_Spot1[];
extern const u8 EventScript_RecordCenter_Spot2[];
extern const u8 EventScript_RecordCenter_Spot3[];
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[];
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[];
extern const u8 EventScript_TradeCenter_Chair1[];
extern const u8 EventScript_TradeCenter_Chair0[];
extern const u8 EventScript_ConfirmLeaveTradeRoom[];
extern const u8 EventScript_TerminateLink[];
#endif // GUARD_EVENT_SCRIPTS_H

View File

@ -23,7 +23,7 @@ void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
void sub_8089C08(s16 *a0, s16 *a1);
void DrawDoorMetatileAt(int x, int y, u16 *arr);
void move_tilemap_camera_to_upper_left_corner(void);
void ResetFieldCamera(void);
void sub_8057A58(void);
void ResetCameraUpdateInfo(void);
u32 InitCameraUpdateCallback(u8 a);

View File

@ -34,7 +34,7 @@ bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
bool8 sub_8068A64(struct MapPosition *, u16);
u8 sub_8068F18(void);
bool8 dive_warp(struct MapPosition *position, u16 b);
bool8 TryDoDiveWarp(struct MapPosition *position, u16 b);
int SetCableClubWarp(void);
u8 TrySetDiveWarp(void);
const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction);

View File

@ -16,7 +16,7 @@ void ReturnToFieldFromFlyMapSelect(void);
u8 AddNewGameBirchObject(s16, s16, u8);
void FieldEffectStop(struct Sprite *sprite, u8 id);
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
void CreateTeleportFieldEffectTask(void);
void FldEff_TeleportWarpOut(void);
void FieldEffectActiveListRemove(u8 id);
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
void FieldEffectActiveListAdd(u8 id);
@ -39,10 +39,6 @@ void StartEscalatorWarp(u8 metatileBehavior, u8 priority);
void StartLavaridgeGymB1FWarp(u8 priority);
void StartLavaridgeGym1FWarp(u8 priority);
void sub_80B9C28(s16*, u8);
void sub_80B9C54(s16*, u8);
void sub_80B9CDC(s16*, u8);
void SpriteCB_PopOutOfAsh(struct Sprite*);
void SpriteCB_LavaridgeGymWarp(struct Sprite*);

View File

@ -39,7 +39,7 @@ void sub_808BCF4(void);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
void sub_808C114(void);
void SetPlayerAvatarFieldMove(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void SetPlayerAvatarStateMask(u8 a);
u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
@ -47,7 +47,7 @@ u8 GetJumpSpecialMovementAction(u32);
bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerFacingSurfableFishableWater(void);
bool8 IsPlayerSurfingNorth(void);
void sub_808C228(u8 direction);
void SetPlayerAvatarWatering(u8 direction);
u8 GetPlayerAvatarFlags(void);
void sub_808B578(void);
u8 GetFRLGAvatarGraphicsIdByGender(u8);

View File

@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
#define GUARD_FIELD_SCREEN_EFFECT_H
extern const s32 gMaxFlashLevel;
void WarpFadeInScreen(void);
void WarpFadeOutScreen(void);
void FadeInFromBlack(void);

View File

@ -35,12 +35,12 @@ void InitMap(void);
void InitMapFromSavedGame(void);
void InitTrainerHillMap(void);
void InitBattlePyramidMap(bool8 setPlayerPosition);
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout);
void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout);
void apply_map_tileset2_palette(struct MapLayout const *mapLayout);
void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout);
void copy_map_tileset1_to_vram(const struct MapLayout *);
void copy_map_tileset2_to_vram(const struct MapLayout *);
void CopyMapTilesetsToVram(struct MapLayout const *mapLayout);
void LoadMapTilesetPalettes(struct MapLayout const *mapLayout);
void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout);
void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout);
void CopyPrimaryTilesetToVram(const struct MapLayout *);
void CopySecondaryTilesetToVram(const struct MapLayout *);
struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection);
struct MapConnection *GetConnectionAtCoords(s16 x, s16 y);

View File

@ -22,9 +22,9 @@ void sub_81BE7F4(void);
void sub_81BE994(void);
// escalator
void sub_80E1558(u8 var);
void sub_80E1570(void);
bool8 sub_80E1584(void);
void StartEscalator(bool8 var);
void StopEscalator(void);
bool8 IsEscalatorMoving(void);
// soft-boiled
bool8 SetUpFieldMove_SoftBoiled(void);
@ -55,7 +55,7 @@ bool8 FldEff_UseDig(void);
// rock smash
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void);
u8 CreateFieldMoveTask(void);
bool8 SetUpFieldMove_RockSmash(void);
bool8 FldEff_UseRockSmash(void);

View File

@ -247,14 +247,14 @@ enum {
PLAYER_AVATAR_STATE_WATERING,
};
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL)
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE)
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE)
#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING)
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
#define PLAYER_AVATAR_FLAG_5 (1 << PLAYER_AVATAR_STATE_FIELD_MOVE)
#define PLAYER_AVATAR_FLAG_6 (1 << PLAYER_AVATAR_STATE_FISHING)
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING)
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
#define PLAYER_AVATAR_FLAG_FORCED_MOVE (1 << 6)
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
enum
{

View File

@ -30,7 +30,7 @@ extern const u16 gUnknown_0860F074[];
void FreeAllOverworldWindowBuffers(void);
void InitStandardTextBoxWindows(void);
void sub_8197200(void);
void InitTextBoxGfxAndPrinters(void);
u16 RunTextPrintersAndIsPrinter0Active(void);
void LoadMessageBoxAndBorderGfx(void);
void DrawDialogueFrame(u8 windowId, bool8 copyToVram);
@ -64,8 +64,8 @@ void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirs
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
void DoScheduledBgTilemapCopiesToVram(void);
void ClearScheduledBgCopiesToVram(void);
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);

View File

@ -24,6 +24,8 @@
#define MOVEMENT_MODE_FROZEN 1
#define MOVEMENT_MODE_SCRIPTED 2
#define SKIP_OBJECT_EVENT_LOAD 1
struct InitialPlayerAvatarState
{
u8 transitionFlags;
@ -99,8 +101,7 @@ void SetDefaultFlashLevel(void);
void Overworld_SetFlashLevel(s32 flashLevel);
u8 Overworld_GetFlashLevel(void);
void SetCurrentMapLayout(u16 mapLayoutId);
void sub_8085540(u8 var);
u8 sub_808554C(void);
void SetObjectEventLoadFlag(u8 var);
u16 GetLocationMusic(struct WarpData *warp);
u16 GetCurrLocationDefaultMusic(void);
u16 GetWarpDestinationMusic(void);
@ -135,11 +136,9 @@ void SetUnusedCallback(void *a0);
void CB2_NewGame(void);
void CB2_WhiteOut(void);
void CB2_LoadMap(void);
void sub_8086024(void);
void CB2_ReturnToFieldContestHall(void);
void CB2_ReturnToFieldCableClub(void);
void CB2_ReturnToField(void);
void CB2_ReturnToFieldLocal(void);
void CB2_ReturnToFieldLink(void);
void CB2_ReturnToFieldFromMultiplayer(void);
void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_ReturnToFieldContinueScript(void);

View File

@ -439,7 +439,7 @@ SECTIONS {
gflib/window.o(.rodata);
gflib/text.o(.rodata);
gflib/sprite.o(.rodata);
data/io_reg.o(.rodata);
gflib/io_reg.o(.rodata);
gflib/string_util.o(.rodata);
src/link.o(.rodata);
src/link.o(.rodata.str1.4);

View File

@ -582,7 +582,7 @@ $(FLDEFFGFXDIR)/arrow.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/ash.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/berry_tree_growth_sparkle.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/sparkle.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/bike_hop_big_splash.4bpp: %.4bpp: %.png
@ -642,7 +642,7 @@ $(FLDEFFGFXDIR)/unknown_16.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/unknown_17.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/unknown_18.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/unused_grass.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/unknown_19.4bpp: %.4bpp: %.png
@ -651,14 +651,14 @@ $(FLDEFFGFXDIR)/unknown_19.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/unknown_20.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/unknown_29.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/sand_pile.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 1
$(FLDEFFGFXDIR)/lavaridge_gym_warp.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/unknown_35.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/small_sparkle.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(FLDEFFGFXDIR)/unused_grass.4bpp: %.4bpp: %.png
$(FLDEFFGFXDIR)/unused_grass_2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2

View File

@ -402,7 +402,7 @@ static void sub_81C501C(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -424,7 +424,7 @@ static bool8 sub_81C5078(void)
{
case 0:
SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -1076,7 +1076,7 @@ int sub_802104C(void)
return 0;
InitStandardTextBoxWindows();
sub_8197200();
InitTextBoxGfxAndPrinters();
sub_8022588(var0);
sub_8022600(var0);
gPaletteFade.bufferTransferDisabled = TRUE;

View File

@ -186,7 +186,7 @@ static void CB2_BerryTagScreen(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -217,7 +217,7 @@ static bool8 InitBerryTagScreen(void)
case 0:
SetVBlankHBlankCallbacksToNull();
ResetVramOamAndBgCntRegs();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -836,7 +836,7 @@ static void Bike_UpdateDirTimerHistory(u8 dir)
gPlayerAvatar.directionHistory = (gPlayerAvatar.directionHistory << 4) | (dir & 0xF);
for (i = 7; i != 0; i--)
for (i = ARRAY_COUNT(gPlayerAvatar.dirTimerHistory) - 1; i != 0; i--)
gPlayerAvatar.dirTimerHistory[i] = gPlayerAvatar.dirTimerHistory[i - 1];
gPlayerAvatar.dirTimerHistory[0] = 1;
}
@ -847,7 +847,7 @@ static void Bike_UpdateABStartSelectHistory(u8 input)
gPlayerAvatar.abStartSelectHistory = (gPlayerAvatar.abStartSelectHistory << 4) | (input & 0xF);
for (i = 7; i != 0; i--)
for (i = ARRAY_COUNT(gPlayerAvatar.abStartSelectTimerHistory) - 1; i != 0; i--)
gPlayerAvatar.abStartSelectTimerHistory[i] = gPlayerAvatar.abStartSelectTimerHistory[i - 1];
gPlayerAvatar.abStartSelectTimerHistory[0] = 1;
}
@ -1001,10 +1001,10 @@ void BikeClearState(int newDirHistory, int newAbStartHistory)
gPlayerAvatar.directionHistory = newDirHistory;
gPlayerAvatar.abStartSelectHistory = newAbStartHistory;
for (i = 0; i < 8; i++)
for (i = 0; i < ARRAY_COUNT(gPlayerAvatar.dirTimerHistory); i++)
gPlayerAvatar.dirTimerHistory[i] = 0;
for (i = 0; i < 8; i++)
for (i = 0; i < ARRAY_COUNT(gPlayerAvatar.abStartSelectTimerHistory); i++)
gPlayerAvatar.abStartSelectTimerHistory[i] = 0;
}

View File

@ -165,7 +165,7 @@ void DoBrailleRegisteelEffect(void)
bool8 FldEff_UseFlyAncientTomb(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)UseRegisteelHm_Callback >> 16;
gTasks[taskId].data[9] = (u32)UseRegisteelHm_Callback;
@ -411,7 +411,7 @@ bool32 BrailleWait_CheckButtonPress(void)
// this used to be FldEff_UseFlyAncientTomb . why did GF merge the 2 functions?
bool8 FldEff_UsePuzzleEffect(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
if (sBraillePuzzleCallbackFlag == REGISTEEL_PUZZLE)
{

View File

@ -8,70 +8,70 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Ash;
const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob;
const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow;
const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust;
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints;
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash;
const struct SpriteTemplate gFieldEffectObjectTemplate_Splash;
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash;
const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18;
const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown20;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21;
const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle;
const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion;
const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;
const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints;
const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise;
const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise;
const struct SpriteTemplate gFieldEffectObjectTemplate_Bird;
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks;
const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29;
const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile;
const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh;
const struct SpriteTemplate gFieldEffectObjectTemplate_LavaridgeGymWarp;
const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles;
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35;
const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle;
const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza;
const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
&gFieldEffectObjectTemplate_ShadowSmall,
&gFieldEffectObjectTemplate_ShadowMedium,
&gFieldEffectObjectTemplate_ShadowLarge,
&gFieldEffectObjectTemplate_ShadowExtraLarge,
&gFieldEffectObjectTemplate_TallGrass,
&gFieldEffectObjectTemplate_Ripple,
&gFieldEffectObjectTemplate_Ash,
&gFieldEffectObjectTemplate_SurfBlob,
&gFieldEffectObjectTemplate_Arrow,
&gFieldEffectObjectTemplate_GroundImpactDust,
&gFieldEffectObjectTemplate_BikeHopTallGrass,
&gFieldEffectObjectTemplate_SandFootprints,
&gFieldEffectObjectTemplate_BikeHopBigSplash,
&gFieldEffectObjectTemplate_Splash,
&gFieldEffectObjectTemplate_BikeHopSmallSplash,
&gFieldEffectObjectTemplate_LongGrass,
&gFieldEffectObjectTemplate_Unknown16,
&gFieldEffectObjectTemplate_Unknown17,
&gFieldEffectObjectTemplate_Unknown18,
&gFieldEffectObjectTemplate_Unknown19,
&gFieldEffectObjectTemplate_Unknown20,
&gFieldEffectObjectTemplate_Unknown21,
&gFieldEffectObjectTemplate_BerryTreeGrowthSparkle,
&gFieldEffectObjectTemplate_DeepSandFootprints,
&gFieldEffectObjectTemplate_TreeDisguise,
&gFieldEffectObjectTemplate_MountainDisguise,
&gFieldEffectObjectTemplate_Bird,
&gFieldEffectObjectTemplate_BikeTireTracks,
&gFieldEffectObjectTemplate_SandDisguisePlaceholder,
&gFieldEffectObjectTemplate_Unknown29,
&gFieldEffectObjectTemplate_ShortGrass,
&gFieldEffectObjectTemplate_HotSpringsWater,
&gFieldEffectObjectTemplate_JumpOutOfAsh,
&gFieldEffectObjectTemplate_LavaridgeGymWarp,
&gFieldEffectObjectTemplate_Bubbles,
&gFieldEffectObjectTemplate_Unknown35,
&gFieldEffectObjectTemplate_Rayquaza,
[FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall,
[FLDEFFOBJ_SHADOW_M] = &gFieldEffectObjectTemplate_ShadowMedium,
[FLDEFFOBJ_SHADOW_L] = &gFieldEffectObjectTemplate_ShadowLarge,
[FLDEFFOBJ_SHADOW_XL] = &gFieldEffectObjectTemplate_ShadowExtraLarge,
[FLDEFFOBJ_TALL_GRASS] = &gFieldEffectObjectTemplate_TallGrass,
[FLDEFFOBJ_RIPPLE] = &gFieldEffectObjectTemplate_Ripple,
[FLDEFFOBJ_ASH] = &gFieldEffectObjectTemplate_Ash,
[FLDEFFOBJ_SURF_BLOB] = &gFieldEffectObjectTemplate_SurfBlob,
[FLDEFFOBJ_ARROW] = &gFieldEffectObjectTemplate_Arrow,
[FLDEFFOBJ_GROUND_IMPACT_DUST] = &gFieldEffectObjectTemplate_GroundImpactDust,
[FLDEFFOBJ_JUMP_TALL_GRASS] = &gFieldEffectObjectTemplate_JumpTallGrass,
[FLDEFFOBJ_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_SandFootprints,
[FLDEFFOBJ_JUMP_BIG_SPLASH] = &gFieldEffectObjectTemplate_JumpBigSplash,
[FLDEFFOBJ_SPLASH] = &gFieldEffectObjectTemplate_Splash,
[FLDEFFOBJ_JUMP_SMALL_SPLASH] = &gFieldEffectObjectTemplate_JumpSmallSplash,
[FLDEFFOBJ_LONG_GRASS] = &gFieldEffectObjectTemplate_LongGrass,
[FLDEFFOBJ_JUMP_LONG_GRASS] = &gFieldEffectObjectTemplate_JumpLongGrass,
[FLDEFFOBJ_17] = &gFieldEffectObjectTemplate_Unknown17,
[FLDEFFOBJ_UNUSED_GRASS] = &gFieldEffectObjectTemplate_UnusedGrass,
[FLDEFFOBJ_19] = &gFieldEffectObjectTemplate_Unknown19,
[FLDEFFOBJ_20] = &gFieldEffectObjectTemplate_Unknown20,
[FLDEFFOBJ_REFLECTION_DISTORTION] = &gFieldEffectObjectTemplate_ReflectionDistortion,
[FLDEFFOBJ_SPARKLE] = &gFieldEffectObjectTemplate_Sparkle,
[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_DeepSandFootprints,
[FLDEFFOBJ_TREE_DISGUISE] = &gFieldEffectObjectTemplate_TreeDisguise,
[FLDEFFOBJ_MOUNTAIN_DISGUISE] = &gFieldEffectObjectTemplate_MountainDisguise,
[FLDEFFOBJ_BIRD] = &gFieldEffectObjectTemplate_Bird,
[FLDEFFOBJ_BIKE_TIRE_TRACKS] = &gFieldEffectObjectTemplate_BikeTireTracks,
[FLDEFFOBJ_SAND_DISGUISE] = &gFieldEffectObjectTemplate_SandDisguisePlaceholder,
[FLDEFFOBJ_SAND_PILE] = &gFieldEffectObjectTemplate_SandPile,
[FLDEFFOBJ_SHORT_GRASS] = &gFieldEffectObjectTemplate_ShortGrass,
[FLDEFFOBJ_HOT_SPRINGS_WATER] = &gFieldEffectObjectTemplate_HotSpringsWater,
[FLDEFFOBJ_JUMP_OUT_OF_ASH] = &gFieldEffectObjectTemplate_JumpOutOfAsh,
[FLDEFFOBJ_LAVARIDGE_GYM_WARP] = &gFieldEffectObjectTemplate_LavaridgeGymWarp,
[FLDEFFOBJ_BUBBLES] = &gFieldEffectObjectTemplate_Bubbles,
[FLDEFFOBJ_SMALL_SPARKLE] = &gFieldEffectObjectTemplate_SmallSparkle,
[FLDEFFOBJ_RAYQUAZA] = &gFieldEffectObjectTemplate_Rayquaza,
};

View File

@ -225,11 +225,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_GroundImpactDust[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_GroundImpactDust, gFieldEffectObjectPicTable_GroundImpactDust, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopTallGrass[] = {
overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 0),
overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 1),
overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 2),
overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 3),
const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpTallGrass[] = {
overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 0),
overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 1),
overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 2),
overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 3),
};
const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] =
@ -241,12 +241,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopTallGrass[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpTallGrass[] =
{
gFieldEffectObjectImageAnim_850CCD8,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopTallGrass, gFieldEffectObjectPicTable_BikeHopTallGrass, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_JumpTallGrass, gFieldEffectObjectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteFrameImage gFieldEffectObjectPicTable_SandFootprints[] = {
overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 0),
@ -398,11 +398,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeTireTracks[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopBigSplash[] = {
overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 3),
const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpBigSplash[] = {
overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 3),
};
const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] =
@ -414,12 +414,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopBigSplash[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpBigSplash[] =
{
gFieldEffectObjectImageAnim_850CE7C,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeHopBigSplash, gFieldEffectObjectPicTable_BikeHopBigSplash, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_JumpBigSplash, gFieldEffectObjectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Splash[] = {
overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 0),
@ -454,10 +454,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Splash[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, UpdateSplashFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopSmallSplash[] = {
overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 0),
overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 1),
overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 2),
const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpSmallSplash[] = {
overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 0),
overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 1),
overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 2),
};
const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] =
@ -468,12 +468,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopSmallSplash[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpSmallSplash[] =
{
gFieldEffectObjectImageAnim_850CF24,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopSmallSplash, gFieldEffectObjectPicTable_BikeHopSmallSplash, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_JumpSmallSplash, gFieldEffectObjectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteFrameImage gFieldEffectObjectPicTable_LongGrass[] = {
overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 0),
@ -501,13 +501,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, UpdateLongGrassFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = {
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 3),
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 4),
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6),
const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpLongGrass[] = {
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 3),
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 4),
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6),
};
const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] =
@ -521,15 +521,15 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown16[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpLongGrass[] =
{
gFieldEffectObjectImageAnim_850CFDC,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown16, gFieldEffectObjectPicTable_Unknown16, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_JumpLongGrass, gFieldEffectObjectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, sub_8156194};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = {
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6),
overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6),
overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 2),
@ -561,11 +561,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown17[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown17, gFieldEffectObjectPicTable_Unknown17, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown18[] = {
overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 3),
const struct SpriteFrameImage gFieldEffectObjectPicTable_UnusedGrass[] = {
overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 3),
};
const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] =
@ -579,12 +579,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] =
ANIMCMD_JUMP(0),
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown18[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_UnusedGrass[] =
{
gFieldEffectObjectImageAnim_850D0C0,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown18, gFieldEffectObjectPicTable_Unknown18, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim};
const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_UnusedGrass, gFieldEffectObjectPicTable_UnusedGrass, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown19[] = {
overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 0),
@ -609,10 +609,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown19[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown19, gFieldEffectObjectPicTable_Unknown19, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown29[] = {
overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 0),
overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 1),
overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 2),
const struct SpriteFrameImage gFieldEffectObjectPicTable_SandPile[] = {
overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 0),
overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 1),
overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 2),
};
const union AnimCmd gFieldEffectObjectImageAnim_850D160[] =
@ -623,12 +623,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D160[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandPile[] =
{
gFieldEffectObjectImageAnim_850D160,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect};
const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_SandPile, gFieldEffectObjectPicTable_SandPile, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = {
overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 0),
@ -683,21 +683,21 @@ const union AffineAnimCmd gFieldEffectObjectRotScalAnim_850D234[] =
AFFINEANIMCMD_JUMP(1),
};
const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_Unknown21[] =
const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_ReflectionDistortion[] =
{
gFieldEffectObjectRotScalAnim_850D1E4,
gFieldEffectObjectRotScalAnim_850D234,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_Unknown21, SpriteCallbackDummy};
const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_ReflectionDistortion, SpriteCallbackDummy};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BerryTreeGrowthSparkle[] = {
overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 3),
overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 4),
overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 5),
const struct SpriteFrameImage gFieldEffectObjectPicTable_Sparkle[] = {
overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 1),
overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 2),
overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 3),
overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 4),
overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 5),
};
const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] =
@ -725,12 +725,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_Sparkle[] =
{
gFieldEffectObjectImageAnim_850D2D4,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle, gFieldEffectObjectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim};
const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Sparkle, gFieldEffectObjectPicTable_Sparkle, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim};
const struct SpriteFrameImage gFieldEffectObjectPicTable_TreeDisguise[] = {
overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 0),
@ -970,9 +970,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] =
const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, UpdateBubblesFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = {
overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 1),
const struct SpriteFrameImage gFieldEffectObjectPicTable_SmallSparkle[] = {
overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 0),
overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 1),
};
const union AnimCmd gFieldEffectObjectImageAnim_850D674[] =
@ -983,12 +983,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D674[] =
ANIMCMD_END,
};
const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown35[] =
const union AnimCmd *const gFieldEffectObjectImageAnimTable_SmallSparkle[] =
{
gFieldEffectObjectImageAnim_850D674,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35 = {0xFFFF, 0x100F, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown35, gFieldEffectObjectPicTable_Unknown35, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect};
const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = {0xFFFF, 0x100F, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_SmallSparkle, gFieldEffectObjectPicTable_SmallSparkle, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect};
const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F};

View File

@ -252,7 +252,7 @@ const u32 gObjectEventPic_CableCar[] = INCBIN_U32("graphics/object_events/pics/m
const u16 gObjectEventPalette20[] = INCBIN_U16("graphics/object_events/palettes/20.gbapal");
const u32 gObjectEventPic_SSTidal[] = INCBIN_U32("graphics/object_events/pics/misc/ss_tidal.4bpp");
const u16 gObjectEventPalette21[] = INCBIN_U16("graphics/object_events/palettes/21.gbapal");
const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle[] = INCBIN_U32("graphics/field_effects/pics/berry_tree_growth_sparkle.4bpp");
const u32 gFieldEffectObjectPic_Sparkle[] = INCBIN_U32("graphics/field_effects/pics/sparkle.4bpp");
const u32 gObjectEventPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/object_events/pics/berry_trees/dirt_pile.4bpp");
const u32 gObjectEventPic_BerryTreeSprout[] = INCBIN_U32("graphics/object_events/pics/berry_trees/sprout.4bpp");
const u32 gObjectEventPic_PechaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pecha.4bpp");
@ -303,11 +303,11 @@ const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/field_effects/pic
const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/00.gbapal");
const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/01.gbapal");
const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/field_effects/pics/ground_impact_dust.4bpp");
const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_tall_grass.4bpp");
const u32 gUnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass.4bpp");
const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp");
const u32 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_tall_grass.4bpp");
const u32 gUnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_2.4bpp");
const u32 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp");
const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/field_effects/pics/unknown_17.4bpp");
const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/field_effects/pics/unknown_18.4bpp");
const u32 gFieldEffectObjectPic_UnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass.4bpp");
const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/field_effects/pics/long_grass.4bpp");
const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/field_effects/pics/tall_grass.4bpp");
const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/field_effects/pics/short_grass.4bpp");
@ -315,10 +315,10 @@ const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/field_ef
const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/field_effects/pics/deep_sand_footprints.4bpp");
const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/field_effects/pics/bike_tire_tracks.4bpp");
const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/field_effects/pics/unknown_19.4bpp");
const u32 gFieldEffectObjectPic_Unknown29[] = INCBIN_U32("graphics/field_effects/pics/unknown_29.4bpp");
const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_big_splash.4bpp");
const u32 gFieldEffectObjectPic_SandPile[] = INCBIN_U32("graphics/field_effects/pics/sand_pile.4bpp");
const u32 gFieldEffectObjectPic_JumpBigSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_big_splash.4bpp");
const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/field_effects/pics/splash.4bpp");
const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_small_splash.4bpp");
const u32 gFieldEffectObjectPic_JumpSmallSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_small_splash.4bpp");
const u32 gFieldEffectObjectPic_Unknown20[] = INCBIN_U32("graphics/field_effects/pics/unknown_20.4bpp");
const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/field_effects/pics/tree_disguise.4bpp");
const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/field_effects/pics/mountain_disguise.4bpp");
@ -328,7 +328,7 @@ const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/field_effects/pale
const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/field_effects/pics/jump_out_of_ash.4bpp");
const u32 gFieldEffectObjectPic_LavaridgeGymWarp[] = INCBIN_U32("graphics/field_effects/pics/lavaridge_gym_warp.4bpp");
const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/field_effects/pics/bubbles.4bpp");
const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/field_effects/pics/unknown_35.4bpp");
const u32 gFieldEffectObjectPic_SmallSparkle[] = INCBIN_U32("graphics/field_effects/pics/small_sparkle.4bpp");
const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/field_effects/palettes/03.gbapal");
const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/field_effects/pics/bird.4bpp");
const u32 gObjectEventPic_Juan[] = INCBIN_U32("graphics/object_events/pics/people/gym_leaders/juan.4bpp");

View File

@ -4629,7 +4629,7 @@ static void sub_802A7A8(void)
ChangeBgX(3, 0, 0);
ChangeBgY(3, 0, 0);
InitStandardTextBoxWindows();
sub_8197200();
InitTextBoxGfxAndPrinters();
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
SetBgTilemapBuffer(3, gUnknown_02022CF8->tilemapBuffers[0]);
SetBgTilemapBuffer(1, gUnknown_02022CF8->tilemapBuffers[1]);

View File

@ -1121,13 +1121,13 @@ void ResetObjectEvents(void)
static void CreateReflectionEffectSprites(void)
{
u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31);
u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31);
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 0);
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31);
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 1);

View File

@ -6,6 +6,7 @@
#include "metatile_behavior.h"
#include "sprite.h"
#include "constants/event_objects.h"
#include "constants/field_effects.h"
#include "constants/flags.h"
#include "constants/maps.h"
#include "constants/metatile_behaviors.h"
@ -379,7 +380,7 @@ void sub_81D4A90(void)
x = mew->currentCoords.x;
y = mew->currentCoords.y;
sub_80930E0(&x, &y, 8, 8);
sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1);
sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, gSprites[mew->spriteId].subpriority - 1);
if (sUnknown_0203CF50 != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[sUnknown_0203CF50];

View File

@ -39,7 +39,7 @@ static void CameraPanningCB_PanAhead(void);
static struct FieldCameraOffset sFieldCameraOffset;
static s16 sHorizontalCameraPan;
static s16 sVerticalCameraPan;
static u8 gUnknown_03000E2C;
static bool8 gUnknown_03000E2C;
static void (*sFieldCameraPanningCallback)(void);
struct CameraObject gFieldCamera;
@ -47,7 +47,7 @@ u16 gTotalCameraPixelOffsetY;
u16 gTotalCameraPixelOffsetX;
// text
static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset *cameraOffset)
static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset)
{
cameraOffset->xTileOffset = 0;
cameraOffset->yTileOffset = 0;
@ -56,23 +56,23 @@ static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset *
cameraOffset->copyBGToVRAM = TRUE;
}
static void tilemap_move_something(struct FieldCameraOffset *cameraOffset, u32 b, u32 c)
static void AddCameraTileOffset(struct FieldCameraOffset *cameraOffset, u32 xOffset, u32 yOffset)
{
cameraOffset->xTileOffset += b;
cameraOffset->xTileOffset += xOffset;
cameraOffset->xTileOffset %= 32;
cameraOffset->yTileOffset += c;
cameraOffset->yTileOffset += yOffset;
cameraOffset->yTileOffset %= 32;
}
static void coords8_add(struct FieldCameraOffset *cameraOffset, u32 b, u32 c)
static void AddCameraPixelOffset(struct FieldCameraOffset *cameraOffset, u32 xOffset, u32 yOffset)
{
cameraOffset->xPixelOffset += b;
cameraOffset->yPixelOffset += c;
cameraOffset->xPixelOffset += xOffset;
cameraOffset->yPixelOffset += yOffset;
}
void move_tilemap_camera_to_upper_left_corner(void)
void ResetFieldCamera(void)
{
move_tilemap_camera_to_upper_left_corner_(&sFieldCameraOffset);
ResetCameraOffset(&sFieldCameraOffset);
}
void FieldUpdateBgTilemapScroll(void)
@ -89,10 +89,10 @@ void FieldUpdateBgTilemapScroll(void)
SetGpuReg(REG_OFFSET_BG3VOFS, r4);
}
void sub_8089C08(s16 *a, s16 *b)
void sub_8089C08(s16 *x, s16 *y)
{
*a = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan;
*b = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8;
*x = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan;
*y = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8;
}
void DrawWholeMapView(void)
@ -418,11 +418,11 @@ void CameraUpdate(void)
UpdateObjectEventsForCameraUpdate(deltaX, deltaY);
RotatingGatePuzzleCameraUpdate(deltaX, deltaY);
ResetBerryTreeSparkleFlags();
tilemap_move_something(&sFieldCameraOffset, deltaX * 2, deltaY * 2);
AddCameraTileOffset(&sFieldCameraOffset, deltaX * 2, deltaY * 2);
RedrawMapSlicesForCameraUpdate(&sFieldCameraOffset, deltaX * 2, deltaY * 2);
}
coords8_add(&sFieldCameraOffset, movementSpeedX, movementSpeedY);
AddCameraPixelOffset(&sFieldCameraOffset, movementSpeedX, movementSpeedY);
gTotalCameraPixelOffsetX -= movementSpeedX;
gTotalCameraPixelOffsetY -= movementSpeedY;
}
@ -436,9 +436,9 @@ void MoveCameraAndRedrawMap(int deltaX, int deltaY) //unused
gTotalCameraPixelOffsetY -= deltaY * 16;
}
void SetCameraPanningCallback(void (*a)(void))
void SetCameraPanningCallback(void (*callback)(void))
{
sFieldCameraPanningCallback = a;
sFieldCameraPanningCallback = callback;
}
void SetCameraPanning(s16 a, s16 b)
@ -450,7 +450,7 @@ void SetCameraPanning(s16 a, s16 b)
void InstallCameraPanAheadCallback(void)
{
sFieldCameraPanningCallback = CameraPanningCB_PanAhead;
gUnknown_03000E2C = 0;
gUnknown_03000E2C = FALSE;
sHorizontalCameraPan = 0;
sVerticalCameraPan = 32;
}
@ -478,12 +478,12 @@ static void CameraPanningCB_PanAhead(void)
if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION)
{
gUnknown_03000E2C ^= 1;
if (gUnknown_03000E2C == 0)
if (gUnknown_03000E2C == FALSE)
return;
}
else
{
gUnknown_03000E2C = 0;
gUnknown_03000E2C = FALSE;
}
var = GetPlayerMovementDirection();

View File

@ -545,7 +545,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
UpdateHappinessStepCounter();
UpdateFarawayIslandStepCounter();
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
{
if (UpdatePoisonStepCounter() == TRUE)
{
@ -938,7 +938,7 @@ static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader,
return NULL;
}
bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior)
bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior)
{
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior))
{

File diff suppressed because it is too large Load Diff

View File

@ -166,7 +166,7 @@ u8 CreateWarpArrowSprite(void)
u8 spriteId;
struct Sprite *sprite;
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -202,11 +202,11 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y)
}
}
const u8 gShadowEffectTemplateIds[] = {
0,
1,
2,
3
static const u8 sShadowEffectTemplateIds[] = {
FLDEFFOBJ_SHADOW_S,
FLDEFFOBJ_SHADOW_M,
FLDEFFOBJ_SHADOW_L,
FLDEFFOBJ_SHADOW_XL
};
const u16 gShadowVerticalOffsets[] = {
@ -224,7 +224,7 @@ u32 FldEff_Shadow(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].coordOffsetEnabled = TRUE;
@ -275,7 +275,7 @@ u32 FldEff_TallGrass(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_80930E0(&x, &y, 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[4], x, y, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -341,7 +341,7 @@ u32 FldEff_JumpTallGrass(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[10], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -381,7 +381,7 @@ u32 FldEff_LongGrass(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_80930E0(&x, &y, 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -444,7 +444,7 @@ u32 FldEff_JumpLongGrass(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[16], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -465,7 +465,7 @@ u32 FldEff_ShortGrass(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &(gSprites[spriteId]);
@ -522,7 +522,7 @@ u32 FldEff_SandFootprints(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -540,7 +540,7 @@ u32 FldEff_DeepSandFootprints(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[23], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -558,7 +558,7 @@ u32 FldEff_BikeTireTracks(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[27], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -611,7 +611,7 @@ u32 FldEff_Splash(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@ -650,7 +650,7 @@ u32 FldEff_JumpSmallSplash(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[14], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -668,7 +668,7 @@ u32 FldEff_JumpBigSplash(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[12], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -690,7 +690,7 @@ u32 FldEff_FeetInFlowingWater(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@ -744,7 +744,7 @@ u32 FldEff_Ripple(void)
u8 spriteId;
struct Sprite *sprite;
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[5], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -764,7 +764,7 @@ u32 FldEff_HotSpringsWater(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -806,7 +806,7 @@ u32 FldEff_Unknown19(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -817,19 +817,19 @@ u32 FldEff_Unknown19(void)
return 0;
}
u32 FldEff_Unknown20(void)
u32 FldEff_UnusedGrass(void)
{
u8 spriteId;
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[18], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
sprite->data[0] = FLDEFF_UNKNOWN_20;
sprite->data[0] = FLDEFF_UNUSED_GRASS;
}
return 0;
}
@ -840,7 +840,7 @@ u32 FldEff_Unknown21(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -857,7 +857,7 @@ u32 FldEff_Unknown22(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -889,7 +889,7 @@ u32 FldEff_Ash(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_80930E0(&x, &y, 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[6], x, y, gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH], x, y, gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -945,7 +945,7 @@ u32 FldEff_SurfBlob(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
if (spriteId !=MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -1107,7 +1107,7 @@ u32 FldEff_Dust(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[9], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -1129,7 +1129,7 @@ u32 FldEff_SandPile(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@ -1183,7 +1183,7 @@ u32 FldEff_Bubbles(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[34], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -1211,7 +1211,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
struct Sprite *sprite;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -1225,20 +1225,20 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
u32 ShowTreeDisguiseFieldEffect(void)
{
return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4);
return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4);
}
u32 ShowMountainDisguiseFieldEffect(void)
{
return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3);
return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3);
}
u32 ShowSandDisguiseFieldEffect(void)
{
return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2);
return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2);
}
static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum)
{
u8 spriteId;
struct Sprite *sprite;
@ -1248,7 +1248,7 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
FieldEffectActiveListRemove(fldEff);
return MAX_SPRITES;
}
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[templateIdx], 0, 0, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[fldEffObj], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@ -1331,7 +1331,7 @@ u32 FldEff_Sparkle(void)
gFieldEffectArguments[0] += 7;
gFieldEffectArguments[1] += 7;
sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[35], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].oam.priority = gFieldEffectArguments[2];

View File

@ -379,9 +379,9 @@ static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent *playerObjEve
static void npc_clear_strange_bits(struct ObjectEvent *objEvent)
{
objEvent->inanimate = 0;
objEvent->disableAnim = 0;
objEvent->facingDirectionLocked = 0;
objEvent->inanimate = FALSE;
objEvent->disableAnim = FALSE;
objEvent->facingDirectionLocked = FALSE;
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH;
}
@ -424,14 +424,14 @@ static u8 GetForcedMovementByMetatileBehavior(void)
static bool8 ForcedMovement_None(void)
{
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6)
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE)
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
playerObjEvent->facingDirectionLocked = 0;
playerObjEvent->enableAnim = 1;
playerObjEvent->facingDirectionLocked = FALSE;
playerObjEvent->enableAnim = TRUE;
SetObjectEventDirection(playerObjEvent, playerObjEvent->facingDirection);
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6;
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FORCED_MOVE;
}
return FALSE;
}
@ -441,7 +441,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8))
struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
u8 collision = CheckForPlayerAvatarCollision(direction);
playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE;
if (collision)
{
ForcedMovement_None();
@ -453,7 +453,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8))
{
if (collision == COLLISION_LEDGE_JUMP)
PlayerJumpLedge(direction);
playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE;
playerAvatar->runningState = MOVING;
return 1;
}
@ -470,7 +470,7 @@ static u8 DoForcedMovementInCurrentDirection(void (*a)(u8))
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
playerObjEvent->disableAnim = 1;
playerObjEvent->disableAnim = TRUE;
return DoForcedMovement(playerObjEvent->movementDirection, a);
}
@ -519,12 +519,12 @@ static bool8 ForcedMovement_PushedEastByCurrent(void)
return DoForcedMovement(DIR_EAST, PlayerRideWaterCurrent);
}
u8 ForcedMovement_Slide(u8 direction, void (*b)(u8))
static u8 ForcedMovement_Slide(u8 direction, void (*b)(u8))
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
playerObjEvent->disableAnim = 1;
playerObjEvent->facingDirectionLocked = 1;
playerObjEvent->disableAnim = TRUE;
playerObjEvent->facingDirectionLocked = TRUE;
return DoForcedMovement(direction, b);
}
@ -567,8 +567,8 @@ static bool8 ForcedMovement_MuddySlope(void)
if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3)
{
Bike_UpdateBikeCounterSpeed(0);
playerObjEvent->facingDirectionLocked = 1;
return DoForcedMovement(1, PlayerGoSpeed2);
playerObjEvent->facingDirectionLocked = TRUE;
return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed2);
}
else
{
@ -1328,7 +1328,7 @@ void ClearPlayerAvatarInfo(void)
void SetPlayerAvatarStateMask(u8 flags)
{
gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_6 | PLAYER_AVATAR_FLAG_5);
gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_FORCED_MOVE | PLAYER_AVATAR_FLAG_5);
gPlayerAvatar.flags |= flags;
}
@ -1404,13 +1404,13 @@ void SetPlayerInvisibility(bool8 invisible)
gSprites[gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId].invisible = invisible;
}
void sub_808C114(void)
void SetPlayerAvatarFieldMove(void)
{
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FIELD_MOVE));
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0);
}
void sub_808C15C(u8 direction)
static void SetPlayerAvatarFishing(u8 direction)
{
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FISHING));
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingDirectionAnimNum(direction));
@ -1423,7 +1423,7 @@ void PlayerUseAcroBikeOnBumpySlope(u8 direction)
SeekSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 1);
}
void sub_808C228(u8 direction)
void SetPlayerAvatarWatering(u8 direction)
{
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_WATERING));
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFaceDirectionAnimNum(direction));
@ -1739,8 +1739,8 @@ static bool8 Fishing2(struct Task *task)
task->tPlayerGfxId = gObjectEvents[gPlayerAvatar.objectEventId].graphicsId;
playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
ObjectEventClearHeldMovementIfActive(playerObjEvent);
playerObjEvent->enableAnim = 1;
sub_808C15C(playerObjEvent->facingDirection);
playerObjEvent->enableAnim = TRUE;
SetPlayerAvatarFishing(playerObjEvent->facingDirection);
task->tStep++;
return FALSE;
}

View File

@ -116,7 +116,7 @@ static void MCB2_InitRegionMapRegisters(void)
InitWindows(sFieldRegionMapWindowTemplates);
DeactivateAllTextPrinters();
LoadUserWindowBorderGfx(0, 0x27, 0xd0);
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
SetMainCallback2(MCB2_FieldUpdateRegionMap);
SetVBlankCallback(VBCB_FieldUpdateRegionMap);
}
@ -134,7 +134,7 @@ static void MCB2_FieldUpdateRegionMap(void)
AnimateSprites();
BuildOamBuffer();
UpdatePaletteFade();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
}
static void FieldUpdateRegionMap(void)

View File

@ -12,6 +12,7 @@
#include "field_special_scene.h"
#include "field_weather.h"
#include "gpu_regs.h"
#include "io_reg.h"
#include "link.h"
#include "link_rfu.h"
#include "load_save.h"
@ -34,13 +35,11 @@
#include "trainer_hill.h"
#include "fldeff.h"
extern const u16 gOrbEffectBackgroundLayerFlags[];
// This file's functions.
static void sub_8080B9C(u8);
static void Task_ExitNonAnimDoor(u8);
static void Task_ExitNonDoor(u8);
static void task0A_fade_n_map_maybe(u8);
static void Task_DoContestHallWarp(u8);
static void sub_808115C(u8);
static void FillPalBufferWhite(void);
static void Task_ExitDoor(u8);
@ -314,7 +313,7 @@ static void FieldCB_MossdeepGymWarpExit(void)
PlaySE(SE_TK_WARPOUT);
CreateTask(Task_ExitNonDoor, 10);
ScriptContext2_Enable();
sub_8085540(0xE);
SetObjectEventLoadFlag((~SKIP_OBJECT_EVENT_LOAD) & 0xF);
}
static void Task_ExitDoor(u8 taskId)
@ -558,7 +557,7 @@ void DoTeleportWarp(void)
void DoMossdeepGymWarp(void)
{
sub_8085540(1);
SetObjectEventLoadFlag(SKIP_OBJECT_EVENT_LOAD);
ScriptContext2_Enable();
SaveObjectEvents();
TryFadeOutOldMapMusic();
@ -576,19 +575,21 @@ void DoPortholeWarp(void)
gFieldCallback = FieldCB_ShowPortholeView;
}
static void sub_80AF8E0(u8 taskId)
#define tState data[0]
static void Task_DoCableClubWarp(u8 taskId)
{
struct Task *task = &gTasks[taskId];
switch (task->data[0])
switch (task->tState)
{
case 0:
ScriptContext2_Enable();
task->data[0]++;
task->tState++;
break;
case 1:
if (!PaletteFadeActive() && BGMusicStopped())
task->data[0]++;
task->tState++;
break;
case 2:
WarpIntoMap();
@ -598,13 +599,15 @@ static void sub_80AF8E0(u8 taskId)
}
}
#undef tState
void DoCableClubWarp(void)
{
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
PlaySE(SE_KAIDAN);
CreateTask(sub_80AF8E0, 10);
CreateTask(Task_DoCableClubWarp, 10);
}
static void Task_ReturnToWorldFromLinkRoom(u8 taskId)
@ -727,7 +730,7 @@ static void Task_DoDoorWarp(u8 taskId)
}
}
static void task0A_fade_n_map_maybe(u8 taskId)
static void Task_DoContestHallWarp(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@ -746,7 +749,7 @@ static void task0A_fade_n_map_maybe(u8 taskId)
break;
case 2:
WarpIntoMap();
SetMainCallback2(sub_8086024);
SetMainCallback2(CB2_ReturnToFieldContestHall);
DestroyTask(taskId);
break;
}
@ -760,7 +763,7 @@ void DoContestHallWarp(void)
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = FieldCB_WarpExitFadeFromBlack;
CreateTask(task0A_fade_n_map_maybe, 10);
CreateTask(Task_DoContestHallWarp, 10);
}
static void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right)

View File

@ -943,7 +943,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth,
return FALSE;
}
void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset)
static void CopyTilesetToVram(struct Tileset const *tileset, u16 numTiles, u16 offset)
{
if (tileset)
{
@ -954,7 +954,7 @@ void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles,
}
}
void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset)
static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTiles, u16 offset)
{
if (tileset)
{
@ -975,7 +975,7 @@ void nullsub_90(void)
}
void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size)
void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size)
{
u16 black = RGB_BLACK;
@ -1000,45 +1000,45 @@ void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u1
}
}
void copy_map_tileset1_to_vram(struct MapLayout const *mapLayout)
void CopyPrimaryTilesetToVram(struct MapLayout const *mapLayout)
{
copy_tileset_patterns_to_vram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
CopyTilesetToVram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
}
void copy_map_tileset2_to_vram(struct MapLayout const *mapLayout)
void CopySecondaryTilesetToVram(struct MapLayout const *mapLayout)
{
copy_tileset_patterns_to_vram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
CopyTilesetToVram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
}
void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout)
void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout)
{
copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
CopyTilesetToVramUsingHeap(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
}
void apply_map_tileset1_palette(struct MapLayout const *mapLayout)
static void LoadPrimaryTilesetPalette(struct MapLayout const *mapLayout)
{
apply_map_tileset_palette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2);
LoadTilesetPalette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2);
}
void apply_map_tileset2_palette(struct MapLayout const *mapLayout)
void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout)
{
apply_map_tileset_palette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2);
LoadTilesetPalette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2);
}
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout)
void CopyMapTilesetsToVram(struct MapLayout const *mapLayout)
{
if (mapLayout)
{
copy_tileset_patterns_to_vram2(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
CopyTilesetToVramUsingHeap(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
CopyTilesetToVramUsingHeap(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
}
}
void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout)
void LoadMapTilesetPalettes(struct MapLayout const *mapLayout)
{
if (mapLayout)
{
apply_map_tileset1_palette(mapLayout);
apply_map_tileset2_palette(mapLayout);
LoadPrimaryTilesetPalette(mapLayout);
LoadSecondaryTilesetPalette(mapLayout);
}
}

View File

@ -281,7 +281,7 @@ static void FieldCallback_CutGrass(void)
bool8 FldEff_UseCutOnGrass(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartCutGrassFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartCutGrassFieldEffect;
@ -297,7 +297,7 @@ static void FieldCallback_CutTree(void)
bool8 FldEff_UseCutOnTree(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartCutTreeFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartCutTreeFieldEffect;

View File

@ -37,7 +37,7 @@ static void hm2_dig(void)
bool8 FldEff_UseDig(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)sub_8135780 >> 16;
gTasks[taskId].data[9] = (u32)sub_8135780;

View File

@ -8,161 +8,188 @@
static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0;
static void sub_80E12E8(u8 taskId, const s16 *list, u16 isImpassableFlag)
{
s16 r5 = gTasks[taskId].data[4] - 1;
s16 r3 = gTasks[taskId].data[5] - 1;
s16 r4 = gTasks[taskId].data[1];
s16 y;
s16 x;
static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks);
static void Task_DrawEscalator(u8 taskId);
static void Task_DrawTeleporterHousing(u8 taskId);
static void Task_DrawTeleporterCable(u8 taskId);
if (gTasks[taskId].data[2] == 0)
{
for (y = 0; y < 3; y++)
{
for (x = 0; x < 3; x++)
{
s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
#define ESCALATOR_STAGES 3
#define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1)
if (list[r4] == metatileId)
{
if (r4 != 2)
MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[r4 + 1]);
else
MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[0]);
}
}
}
}
else
{
for (y = 0; y < 3; y++)
{
for (x = 0; x < 3; x++)
{
s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
if (list[2 - r4] == metatileId)
{
if (r4 != 2)
MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[1 - r4]);
else
MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[2]);
}
}
}
}
}
static const u16 sElevatorMetatiles_1F_0[] = {
static const u16 sElevatorMetatiles_1F_0[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame2),
METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame1),
METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame0)
};
static const u16 sElevatorMetatiles_1F_1[] = {
static const u16 sElevatorMetatiles_1F_1[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame2),
METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame1),
METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame0)
};
static const u16 sElevatorMetatiles_1F_2[] = {
static const u16 sElevatorMetatiles_1F_2[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame2),
METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame1),
METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame0)
};
static const u16 sElevatorMetatiles_1F_3[] = {
static const u16 sElevatorMetatiles_1F_3[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame2),
METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame1),
METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame0)
};
static const u16 sElevatorMetatiles_2F_0[] = {
static const u16 sElevatorMetatiles_2F_0[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame0),
METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame1),
METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame2)
};
static const u16 sElevatorMetatiles_2F_1[] = {
static const u16 sElevatorMetatiles_2F_1[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame0),
METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame1),
METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame2)
};
static const u16 sElevatorMetatiles_2F_2[] = {
static const u16 sElevatorMetatiles_2F_2[ESCALATOR_STAGES] = {
METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame0),
METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame1),
METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame2)
};
static void sub_80E1444(u8 taskId)
#define tState data[0]
#define tTransitionStage data[1]
#define tGoingUp data[2]
#define tDrawingEscalator data[3]
#define tPlayerX data[4]
#define tPlayerY data[5]
static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks)
{
s16 x = gTasks[taskId].tPlayerX - 1;
s16 y = gTasks[taskId].tPlayerY - 1;
s16 transitionStage = gTasks[taskId].tTransitionStage;
s16 i;
s16 j;
// Check all the escalator sections and only progress the selected one to the next stage
if (!gTasks[taskId].tGoingUp)
{
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
s16 metatileId = MapGridGetMetatileIdAt(x + j, y + i);
if (metatileIds[transitionStage] == metatileId)
{
if (transitionStage != LAST_ESCALATOR_STAGE)
MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[transitionStage + 1]);
else
MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[0]);
}
}
}
}
else
{
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
s16 metatileId = MapGridGetMetatileIdAt(x + j, y + i);
if (metatileIds[LAST_ESCALATOR_STAGE - transitionStage] == metatileId)
{
if (transitionStage != LAST_ESCALATOR_STAGE)
MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[1 - transitionStage]);
else
MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[LAST_ESCALATOR_STAGE]);
}
}
}
}
}
static void Task_DrawEscalator(u8 taskId)
{
s16 *data = gTasks[taskId].data;
data[3] = 1;
tDrawingEscalator = TRUE;
switch (data[0])
// Set tile for each section of the escalator in sequence for current transition stage
switch (tState)
{
case 0:
sub_80E12E8(taskId, sElevatorMetatiles_1F_0, 0);
SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_0, 0);
break;
case 1:
sub_80E12E8(taskId, sElevatorMetatiles_1F_1, 0);
SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_1, 0);
break;
case 2:
sub_80E12E8(taskId, sElevatorMetatiles_1F_2, METATILE_COLLISION_MASK);
SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_2, METATILE_COLLISION_MASK);
break;
case 3:
sub_80E12E8(taskId, sElevatorMetatiles_1F_3, 0);
SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_3, 0);
break;
case 4:
sub_80E12E8(taskId, sElevatorMetatiles_2F_0, METATILE_COLLISION_MASK);
SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_0, METATILE_COLLISION_MASK);
break;
case 5:
sub_80E12E8(taskId, sElevatorMetatiles_2F_1, 0);
SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_1, 0);
break;
case 6:
sub_80E12E8(taskId, sElevatorMetatiles_2F_2, 0);
SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_2, 0);
break;
}
data[0] = (data[0] + 1) & 7;
if (!data[0])
tState = (tState + 1) & 7;
// If all metatiles of the escalator have been set, draw map and progress to next stage
if (tState == 0)
{
DrawWholeMapView();
data[1] = (data[1] + 1) % 3;
data[3] = 0;
tTransitionStage = (tTransitionStage + 1) % ESCALATOR_STAGES;
tDrawingEscalator = FALSE;
}
}
static u8 sub_80E150C(u16 var)
static u8 CreateEscalatorTask(bool16 goingUp)
{
u8 taskId = CreateTask(sub_80E1444, 0);
u8 taskId = CreateTask(Task_DrawEscalator, 0);
s16 *data = gTasks[taskId].data;
PlayerGetDestCoords(&data[4], &data[5]);
data[0] = 0;
data[1] = 0;
data[2] = var;
sub_80E1444(taskId);
PlayerGetDestCoords(&tPlayerX, &tPlayerY);
tState = 0;
tTransitionStage = 0;
tGoingUp = goingUp;
Task_DrawEscalator(taskId);
return taskId;
}
void sub_80E1558(u8 var)
void StartEscalator(bool8 goingUp)
{
sEscalatorAnim_TaskId = sub_80E150C(var);
sEscalatorAnim_TaskId = CreateEscalatorTask(goingUp);
}
void sub_80E1570(void)
void StopEscalator(void)
{
DestroyTask(sEscalatorAnim_TaskId);
}
bool8 sub_80E1584(void)
bool8 IsEscalatorMoving(void)
{
if (gTasks[sEscalatorAnim_TaskId].data[3] == 0 && gTasks[sEscalatorAnim_TaskId].data[1] == 2)
if (gTasks[sEscalatorAnim_TaskId].tDrawingEscalator == FALSE
&& gTasks[sEscalatorAnim_TaskId].tTransitionStage == LAST_ESCALATOR_STAGE)
return FALSE;
else
return TRUE;
}
#undef tState
#undef tTransitionStage
#undef tGoingUp
#undef tDrawingEscalator
#undef tPlayerX
#undef tPlayerY

View File

@ -96,7 +96,7 @@ bool8 SetUpFieldMove_Flash(void)
static void FieldCallback_Flash(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gFieldEffectArguments[0] = GetCursorSelectionMonId();
gTasks[taskId].data[8] = (uintptr_t)FldEff_UseFlash >> 16;
gTasks[taskId].data[9] = (uintptr_t)FldEff_UseFlash;

View File

@ -497,7 +497,7 @@ static void SetCurrentSecretBase(void)
static void AdjustSecretPowerSpritePixelOffsets(void)
{
if (gPlayerAvatar.flags & 0x6)
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
{
switch (gFieldEffectArguments[1])
{
@ -590,7 +590,7 @@ static void FieldCallback_SecretBaseCave(void)
bool8 FldEff_UseSecretPowerCave(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartSecretBaseCaveFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartSecretBaseCaveFieldEffect;
@ -650,7 +650,7 @@ static void FieldCallback_SecretBaseTree(void)
bool8 FldEff_UseSecretPowerTree(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartSecretBaseTreeFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartSecretBaseTreeFieldEffect;
@ -724,7 +724,7 @@ static void FieldCallback_SecretBaseShrub(void)
bool8 FldEff_UseSecretPowerShrub(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartSecretBaseShrubFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartSecretBaseShrubFieldEffect;
@ -1010,7 +1010,7 @@ void DoSecretBaseGlitterMatSparkle(void)
sub_80930E0(&x, &y, 8, 4);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], x, y, 0);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], x, y, 0);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].coordOffsetEnabled = TRUE;
@ -1236,7 +1236,7 @@ static void Task_WateringBerryTreeAnim_1(u8 taskId)
if (!ObjectEventIsMovementOverridden(playerObjEvent)
|| ObjectEventClearHeldMovementIfFinished(playerObjEvent))
{
sub_808C228(GetPlayerFacingDirection());
SetPlayerAvatarWatering(GetPlayerFacingDirection());
ObjectEventSetHeldMovement(playerObjEvent, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection()));
gTasks[taskId].func = Task_WateringBerryTreeAnim_2;
}

View File

@ -20,11 +20,12 @@
#include "constants/songs.h"
// static functions
static void task08_080C9820(u8 taskId);
static void sub_8135578(u8 taskId);
static void sub_813552C(u8 taskId);
static void sub_813561C(u8 taskId);
static void sub_81356C4(void);
static void Task_DoFieldMove_0(u8 taskId);
static void Task_DoFieldMove_1(u8 taskId);
static void Task_DoFieldMove_2(u8 taskId);
static void Task_DoFieldMove_3(u8 taskId);
static void FieldCallback_RockSmash(void);
static void sub_8135714(void);
// text
@ -46,13 +47,13 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
}
}
u8 oei_task_add(void)
u8 CreateFieldMoveTask(void)
{
GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
return CreateTask(task08_080C9820, 8);
return CreateTask(Task_DoFieldMove_0, 8);
}
static void task08_080C9820(u8 taskId)
static void Task_DoFieldMove_0(u8 taskId)
{
u8 objEventId;
@ -65,47 +66,47 @@ static void task08_080C9820(u8 taskId)
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
{
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
gTasks[taskId].func = sub_8135578;
gTasks[taskId].func = Task_DoFieldMove_2;
}
else
{
sub_808C114();
SetPlayerAvatarFieldMove();
ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
gTasks[taskId].func = sub_813552C;
gTasks[taskId].func = Task_DoFieldMove_1;
}
}
}
static void sub_813552C(u8 taskId)
static void Task_DoFieldMove_1(u8 taskId)
{
if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE)
{
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
gTasks[taskId].func = sub_8135578;
gTasks[taskId].func = Task_DoFieldMove_2;
}
}
static void sub_8135578(u8 taskId)
static void Task_DoFieldMove_2(u8 taskId)
{
if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
{
gFieldEffectArguments[1] = GetPlayerFacingDirection();
if (gFieldEffectArguments[1] == 1)
if (gFieldEffectArguments[1] == DIR_SOUTH)
gFieldEffectArguments[2] = 0;
if (gFieldEffectArguments[1] == 2)
if (gFieldEffectArguments[1] == DIR_NORTH)
gFieldEffectArguments[2] = 1;
if (gFieldEffectArguments[1] == 3)
if (gFieldEffectArguments[1] == DIR_WEST)
gFieldEffectArguments[2] = 2;
if (gFieldEffectArguments[1] == 4)
if (gFieldEffectArguments[1] == DIR_EAST)
gFieldEffectArguments[2] = 3;
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState());
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]);
FieldEffectActiveListRemove(6);
gTasks[taskId].func = sub_813561C;
FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
gTasks[taskId].func = Task_DoFieldMove_3;
}
}
static void sub_813561C(u8 taskId)
static void Task_DoFieldMove_3(u8 taskId)
{
void (*func)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]);
@ -128,7 +129,7 @@ bool8 SetUpFieldMove_RockSmash(void)
else if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_BREAKABLE_ROCK) == TRUE)
{
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = sub_81356C4;
gPostMenuFieldCallback = FieldCallback_RockSmash;
return TRUE;
}
else
@ -137,7 +138,7 @@ bool8 SetUpFieldMove_RockSmash(void)
}
}
static void sub_81356C4(void)
static void FieldCallback_RockSmash(void)
{
gFieldEffectArguments[0] = GetCursorSelectionMonId();
ScriptContext1_SetupScript(EventScript_FldEffRockSmash);
@ -145,7 +146,7 @@ static void sub_81356C4(void)
bool8 FldEff_UseRockSmash(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)sub_8135714 >> 16;
gTasks[taskId].data[9] = (u32)sub_8135714;

View File

@ -35,7 +35,7 @@ static void FldEff_UseStrength(void)
bool8 sub_8145E2C(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)sub_8145E74 >> 16;
gTasks[taskId].data[9] = (u32)sub_8145E74;
GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1);

View File

@ -41,7 +41,7 @@ bool8 FldEff_SweetScent(void)
u8 taskId;
SetWeatherScreenFadeOut();
taskId = oei_task_add();
taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect;
return FALSE;

View File

@ -30,7 +30,7 @@ static void FieldCallback_Teleport(void)
bool8 FldEff_UseTeleport(void)
{
u8 taskId = oei_task_add();
u8 taskId = CreateFieldMoveTask();
gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect;
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
@ -40,5 +40,5 @@ bool8 FldEff_UseTeleport(void)
static void StartTeleportFieldEffect(void)
{
FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT);
CreateTeleportFieldEffectTask();
FldEff_TeleportWarpOut();
}

View File

@ -1299,7 +1299,7 @@ static bool8 sub_8175024(void)
break;
case 3:
InitStandardTextBoxWindows();
sub_8197200();
InitTextBoxGfxAndPrinters();
break;
case 4:
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);

View File

@ -600,7 +600,7 @@ void CB2_BagMenuRun(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -627,7 +627,7 @@ bool8 SetupBagMenu(void)
{
case 0:
SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -57,9 +57,9 @@ static EWRAM_DATA u8 sPaletteNum = 0;
static EWRAM_DATA u8 sYesNoWindowId = 0;
static EWRAM_DATA u8 sWindowId = 0;
static EWRAM_DATA u16 sFiller = 0; // needed to align
static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE};
static EWRAM_DATA u16 gUnknown_0203CDA8 = 0;
static EWRAM_DATA void *gUnknown_0203CDAC[0x20] = {NULL};
static EWRAM_DATA bool8 sScheduledBgCopiesToVram[4] = {FALSE};
static EWRAM_DATA u16 sTempTileDataBufferIdx = 0;
static EWRAM_DATA void *sTempTileDataBuffer[0x20] = {NULL};
const u16 gUnknown_0860F074[] = INCBIN_U16("graphics/interface/860F074.gbapal");
@ -154,7 +154,7 @@ void FreeAllOverworldWindowBuffers(void)
FreeAllWindowBuffers();
}
void sub_8197200(void)
void InitTextBoxGfxAndPrinters(void)
{
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
@ -1737,48 +1737,48 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCurso
return sMenu.cursorPos;
}
void clear_scheduled_bg_copies_to_vram(void)
void ClearScheduledBgCopiesToVram(void)
{
memset(gUnknown_0203CDA4, 0, sizeof(gUnknown_0203CDA4));
memset(sScheduledBgCopiesToVram, 0, sizeof(sScheduledBgCopiesToVram));
}
void ScheduleBgCopyTilemapToVram(u8 bgId)
{
gUnknown_0203CDA4[bgId] = TRUE;
sScheduledBgCopiesToVram[bgId] = TRUE;
}
void do_scheduled_bg_tilemap_copies_to_vram(void)
void DoScheduledBgTilemapCopiesToVram(void)
{
if (gUnknown_0203CDA4[0] == TRUE)
if (sScheduledBgCopiesToVram[0] == TRUE)
{
CopyBgTilemapBufferToVram(0);
gUnknown_0203CDA4[0] = FALSE;
sScheduledBgCopiesToVram[0] = FALSE;
}
if (gUnknown_0203CDA4[1] == TRUE)
if (sScheduledBgCopiesToVram[1] == TRUE)
{
CopyBgTilemapBufferToVram(1);
gUnknown_0203CDA4[1] = FALSE;
sScheduledBgCopiesToVram[1] = FALSE;
}
if (gUnknown_0203CDA4[2] == TRUE)
if (sScheduledBgCopiesToVram[2] == TRUE)
{
CopyBgTilemapBufferToVram(2);
gUnknown_0203CDA4[2] = FALSE;
sScheduledBgCopiesToVram[2] = FALSE;
}
if (gUnknown_0203CDA4[3] == TRUE)
if (sScheduledBgCopiesToVram[3] == TRUE)
{
CopyBgTilemapBufferToVram(3);
gUnknown_0203CDA4[3] = FALSE;
sScheduledBgCopiesToVram[3] = FALSE;
}
}
void ResetTempTileDataBuffers(void)
{
int i;
for (i = 0; i < (s32)ARRAY_COUNT(gUnknown_0203CDAC); i++)
for (i = 0; i < (int)ARRAY_COUNT(sTempTileDataBuffer); i++)
{
gUnknown_0203CDAC[i] = NULL;
sTempTileDataBuffer[i] = NULL;
}
gUnknown_0203CDA8 = 0;
sTempTileDataBufferIdx = 0;
}
bool8 FreeTempTileDataBuffersIfPossible(void)
@ -1787,13 +1787,13 @@ bool8 FreeTempTileDataBuffersIfPossible(void)
if (!IsDma3ManagerBusyWithBgCopy())
{
if (gUnknown_0203CDA8)
if (sTempTileDataBufferIdx)
{
for (i = 0; i < gUnknown_0203CDA8; i++)
for (i = 0; i < sTempTileDataBufferIdx; i++)
{
FREE_AND_SET_NULL(gUnknown_0203CDAC[i]);
FREE_AND_SET_NULL(sTempTileDataBuffer[i]);
}
gUnknown_0203CDA8 = 0;
sTempTileDataBufferIdx = 0;
}
return FALSE;
}
@ -1806,7 +1806,7 @@ bool8 FreeTempTileDataBuffersIfPossible(void)
void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
{
u32 sizeOut;
if (gUnknown_0203CDA8 < ARRAY_COUNT(gUnknown_0203CDAC))
if (sTempTileDataBufferIdx < ARRAY_COUNT(sTempTileDataBuffer))
{
void *ptr = malloc_and_decompress(src, &sizeOut);
if (!size)
@ -1814,7 +1814,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of
if (ptr)
{
copy_decompressed_tile_data_to_vram(bgId, ptr, size, offset, mode);
gUnknown_0203CDAC[gUnknown_0203CDA8++] = ptr;
sTempTileDataBuffer[sTempTileDataBufferIdx++] = ptr;
}
return ptr;
}

View File

@ -384,7 +384,7 @@ static void CB2_InitLearnMove(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct));
sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004;
SetVBlankCallback(VBlankCB_MoveRelearner);
@ -412,7 +412,7 @@ static void CB2_InitLearnMoveReturnFromSelectMove(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct));
sMoveRelearnerStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN;
sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004;
@ -452,7 +452,7 @@ static void CB2_MoveRelearnerMain(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}

View File

@ -347,7 +347,7 @@ static void NamingScreen_InitBGs(void)
ChangeBgY(3, 0, 0);
InitStandardTextBoxWindows();
sub_8197200();
InitTextBoxGfxAndPrinters();
for (i = 0; i < 5; i++)
gNamingScreenData->windows[i] = AddWindow(&gUnknown_0858BE10[i]);

View File

@ -7,10 +7,11 @@
#include "cable_club.h"
#include "clock.h"
#include "event_data.h"
#include "event_object_movement.h"
#include "event_scripts.h"
#include "field_camera.h"
#include "field_control_avatar.h"
#include "field_effect.h"
#include "event_object_movement.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
@ -22,6 +23,7 @@
#include "fldeff.h"
#include "gpu_regs.h"
#include "heal_location.h"
#include "io_reg.h"
#include "link.h"
#include "link_rfu.h"
#include "load_save.h"
@ -82,44 +84,22 @@
#define FACING_FORCED_LEFT 9
#define FACING_FORCED_RIGHT 10
// event scripts
extern const u8 EventScript_WhiteOut[];
extern const u8 EventScript_ResetMrBriney[];
extern const u8 EventScript_DoLinkRoomExit[];
extern const u8 CableClub_EventScript_TooBusyToNotice[];
extern const u8 CableClub_EventScript_ReadTrainerCard[];
extern const u8 CableClub_EventScript_ReadTrainerCardColored[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[];
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[];
extern const u8 EventScript_RecordCenter_Spot0[];
extern const u8 EventScript_RecordCenter_Spot1[];
extern const u8 EventScript_RecordCenter_Spot2[];
extern const u8 EventScript_RecordCenter_Spot3[];
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[];
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[];
extern const u8 EventScript_TradeCenter_Chair1[];
extern const u8 EventScript_TradeCenter_Chair0[];
extern const u8 EventScript_ConfirmLeaveTradeRoom[];
extern const u8 EventScript_TerminateLink[];
extern const struct MapLayout *const gMapLayouts[];
extern const struct MapHeader *const *const gMapGroups[];
extern const int gMaxFlashLevel;
extern const u16 gOverworldBackgroundLayerFlags[];
static void Overworld_ResetStateAfterWhiteOut(void);
static void c2_80567AC(void);
static void CB2_ReturnToFieldLocal(void);
static void CB2_ReturnToFieldLink(void);
static void CB2_LoadMapOnReturnToFieldCableClub(void);
static void CB2_LoadMap2(void);
static void VBlankCB_Field(void);
static void SpriteCB_LinkPlayer(struct Sprite *sprite);
static void ChooseAmbientCrySpecies(void);
static void do_load_map_stuff_loop(u8 *state);
static bool32 map_loading_iteration_3(u8 *state);
static bool32 sub_8086638(u8 *state);
static bool32 load_map_stuff(u8 *state, u32);
static bool32 map_loading_iteration_2_link(u8 *state);
static void DoMapLoadLoop(u8 *state);
static bool32 LoadMapInStepsLink(u8 *state);
static bool32 ReturnToFieldLocal(u8 *state);
static bool32 LoadMapInStepsLocal(u8 *state, bool32);
static bool32 ReturnToFieldLink(u8 *state);
static void mli4_mapscripts_and_other(void);
static void InitOverworldGraphicsRegisters(void);
static u8 GetSpriteForLinkedPlayer(u8);
@ -131,7 +111,7 @@ static void sub_80869DC(void);
static void sub_8086B14(void);
static void SetCameraToTrackGuestPlayer(void);
static void sub_8086988(bool32 arg0);
static void sub_8086A80(void);
static void SetCameraToTrackPlayer(void);
static void sub_8086A68(void);
static void sub_8086860(void);
static void SetCameraToTrackGuestPlayer_2(void);
@ -155,7 +135,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1
static void sub_80877DC(u8 linkPlayerId, u8 a2);
static void sub_808780C(u8 linkPlayerId);
static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId);
static void sub_8087584(void);
static void RunTerminateLinkScript(void);
static u32 GetLinkSendQueueLength(void);
static void ZeroLinkPlayerObjectEvent(struct LinkPlayerObjectEvent *linkPlayerObjEvent);
static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1);
@ -181,14 +161,14 @@ static void CB1_UpdateLinkState(void);
static void SetKeyInterceptCallback(u16 (*func)(u32));
static void SetFieldVBlankCallback(void);
static void FieldClearVBlankHBlankCallbacks(void);
static void sub_8085810(void);
static void TransitionMapMusic(void);
static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 a2, u8 a3);
static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 a2, u16 a3, u8 a4);
static u16 GetCenterScreenMetatileBehavior(void);
// IWRAM bss vars
static void *sUnusedOverworldCallback;
static u8 sPlayerTradingStates[4];
static u8 sPlayerTradingStates[MAX_LINK_PLAYERS];
// This callback is called with a player's key code. It then returns an
// adjusted key code, effectively intercepting the input before anything
// can process it.
@ -208,13 +188,13 @@ u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode.
u8 gFieldLinkPlayerCount;
// EWRAM vars
EWRAM_DATA static u8 sUnknown_020322D8 = 0;
EWRAM_DATA static u8 sObjectEventLoadFlag = 0;
EWRAM_DATA struct WarpData gLastUsedWarp = {0};
EWRAM_DATA static struct WarpData sWarpDestination = {0}; // new warp position
EWRAM_DATA static struct WarpData gFixedDiveWarp = {0};
EWRAM_DATA static struct WarpData gFixedHoleWarp = {0};
EWRAM_DATA static struct WarpData sFixedDiveWarp = {0};
EWRAM_DATA static struct WarpData sFixedHoleWarp = {0};
EWRAM_DATA static u16 sLastMapSectionId = 0;
EWRAM_DATA static struct InitialPlayerAvatarState gInitialPlayerAvatarState = {0};
EWRAM_DATA static struct InitialPlayerAvatarState sInitialPlayerAvatarState = {0};
EWRAM_DATA static u16 sAmbientCrySpecies = 0;
EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE;
EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {0};
@ -229,16 +209,9 @@ static const struct WarpData sDummyWarpData =
.y = -1,
};
static const u8 sUnusedData[] =
static const u32 sUnusedData[] =
{
0xB0, 0x04, 0x00, 0x00,
0x10, 0x0E, 0x00, 0x00,
0xB0, 0x04, 0x00, 0x00,
0x60, 0x09, 0x00, 0x00,
0x32, 0x00, 0x00, 0x00,
0x50, 0x00, 0x00, 0x00,
0xD4, 0xFF, 0xFF, 0xFF,
0x2C, 0x00, 0x00, 0x00,
1200, 3600, 1200, 2400, 50, 80, -44, 44
};
const struct UCoords32 gDirectionToVectors[] =
@ -549,9 +522,9 @@ void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType)
static void mapdata_load_assets_to_gpu_and_full_redraw(void)
{
move_tilemap_camera_to_upper_left_corner();
copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout);
apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout);
ResetFieldCamera();
CopyMapTilesetsToVram(gMapHeader.mapLayout);
LoadMapTilesetPalettes(gMapHeader.mapLayout);
DrawWholeMapView();
InitTilesetAnimations();
}
@ -568,14 +541,14 @@ void ApplyCurrentWarp(void)
{
gLastUsedWarp = gSaveBlock1Ptr->location;
gSaveBlock1Ptr->location = sWarpDestination;
gFixedDiveWarp = sDummyWarpData;
gFixedHoleWarp = sDummyWarpData;
sFixedDiveWarp = sDummyWarpData;
sFixedHoleWarp = sDummyWarpData;
}
static void ClearDiveAndHoleWarps(void)
{
gFixedDiveWarp = sDummyWarpData;
gFixedHoleWarp = sDummyWarpData;
sFixedDiveWarp = sDummyWarpData;
sFixedHoleWarp = sDummyWarpData;
}
static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
@ -717,25 +690,25 @@ void SetWarpDestinationToEscapeWarp(void)
void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
SetWarpData(&gFixedDiveWarp, mapGroup, mapNum, warpId, x, y);
SetWarpData(&sFixedDiveWarp, mapGroup, mapNum, warpId, x, y);
}
static void SetWarpDestinationToDiveWarp(void)
{
sWarpDestination = gFixedDiveWarp;
sWarpDestination = sFixedDiveWarp;
}
void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
SetWarpData(&gFixedHoleWarp, mapGroup, mapNum, warpId, x, y);
SetWarpData(&sFixedHoleWarp, mapGroup, mapNum, warpId, x, y);
}
void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y)
{
if (IsDummyWarp(&gFixedHoleWarp) == TRUE)
if (IsDummyWarp(&sFixedHoleWarp) == TRUE)
sWarpDestination = gLastUsedWarp;
else
SetWarpDestination(gFixedHoleWarp.mapGroup, gFixedHoleWarp.mapNum, -1, x, y);
SetWarpDestination(sFixedHoleWarp.mapGroup, sFixedHoleWarp.mapNum, -1, x, y);
}
static void SetWarpDestinationToContinueGameWarp(void)
@ -787,7 +760,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y)
else
{
RunOnDiveWarpMapScript();
if (IsDummyWarp(&gFixedDiveWarp))
if (IsDummyWarp(&sFixedDiveWarp))
return FALSE;
SetWarpDestinationToDiveWarp();
}
@ -809,8 +782,10 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
s32 paletteIndex;
SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
if (gMapHeader.regionMapSectionId != 0x3A)
sub_8085810();
// Dont transition map music between BF Outside West/East
if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER)
TransitionMapMusic();
ApplyCurrentWarp();
LoadCurrentMapData();
@ -827,8 +802,8 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
Overworld_ClearSavedMusic();
RunOnTransitionMapScript();
InitMap();
copy_map_tileset2_to_vram_2(gMapHeader.mapLayout);
apply_map_tileset2_palette(gMapHeader.mapLayout);
CopySecondaryTilesetToVramUsingHeap(gMapHeader.mapLayout);
LoadSecondaryTilesetPalette(gMapHeader.mapLayout);
for (paletteIndex = 6; paletteIndex < 13; paletteIndex++)
ApplyWeatherGammaShiftToPal(paletteIndex);
@ -840,17 +815,18 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
ResetFieldTasksArgs();
RunOnResumeMapScript();
if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER || gMapHeader.regionMapSectionId != sLastMapSectionId)
if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER
|| gMapHeader.regionMapSectionId != sLastMapSectionId)
ShowMapNamePopup();
}
static void mli0_load_map(u32 a1)
static void LoadMapFromWarp(bool32 a1)
{
bool8 isOutdoors;
bool8 isIndoors;
LoadCurrentMapData();
if (!(sUnknown_020322D8 & 1))
if (!(sObjectEventLoadFlag & SKIP_OBJECT_EVENT_LOAD))
{
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR)
LoadBattlePyramidObjectEventTemplates();
@ -869,7 +845,7 @@ static void mli0_load_map(u32 a1)
ResetCyclingRoadChallengeData();
RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
if (a1 != 1)
if (a1 != TRUE)
DoTimeBasedEvents();
SetSav1WeatherFromCurrMapHeader();
ChooseAmbientCrySpecies();
@ -887,7 +863,7 @@ static void mli0_load_map(u32 a1)
else
InitMap();
if (a1 != 1 && isIndoors)
if (a1 != TRUE && isIndoors)
{
UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height);
InitSecretBaseAppearance(TRUE);
@ -896,24 +872,24 @@ static void mli0_load_map(u32 a1)
void ResetInitialPlayerAvatarState(void)
{
gInitialPlayerAvatarState.direction = DIR_SOUTH;
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
sInitialPlayerAvatarState.direction = DIR_SOUTH;
sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
}
void StoreInitialPlayerAvatarState(void)
{
gInitialPlayerAvatarState.direction = GetPlayerFacingDirection();
sInitialPlayerAvatarState.direction = GetPlayerFacingDirection();
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE;
sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE;
sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING;
sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER;
sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER;
else
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
}
static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void)
@ -921,11 +897,11 @@ static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void)
struct InitialPlayerAvatarState playerStruct;
u8 mapType = GetCurrentMapType();
u16 metatileBehavior = GetCenterScreenMetatileBehavior();
u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType);
u8 transitionFlags = GetAdjustedInitialTransitionFlags(&sInitialPlayerAvatarState, metatileBehavior, mapType);
playerStruct.transitionFlags = transitionFlags;
playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType);
gInitialPlayerAvatarState = playerStruct;
return &gInitialPlayerAvatarState;
playerStruct.direction = GetAdjustedInitialDirection(&sInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType);
sInitialPlayerAvatarState = playerStruct;
return &sInitialPlayerAvatarState;
}
static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType)
@ -1012,14 +988,15 @@ void SetCurrentMapLayout(u16 mapLayoutId)
gMapHeader.mapLayout = GetMapLayout();
}
void sub_8085540(u8 var)
void SetObjectEventLoadFlag(u8 flag)
{
sUnknown_020322D8 = var;
sObjectEventLoadFlag = flag;
}
u8 sub_808554C(void)
// Unused, sObjectEventLoadFlag is read directly
static u8 GetObjectEventLoadFlag(void)
{
return sUnknown_020322D8;
return sObjectEventLoadFlag;
}
static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp)
@ -1179,10 +1156,10 @@ void Overworld_SetSavedMusic(u16 songNum)
void Overworld_ClearSavedMusic(void)
{
gSaveBlock1Ptr->savedMusic = 0;
gSaveBlock1Ptr->savedMusic = MUS_DUMMY;
}
static void sub_8085810(void)
static void TransitionMapMusic(void)
{
if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE)
{
@ -1477,7 +1454,7 @@ static void OverworldBasic(void)
BuildOamBuffer();
UpdatePaletteFade();
UpdateTilesetAnimations();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
}
// This CB2 is used when starting
@ -1507,7 +1484,7 @@ void SetUnusedCallback(void *func)
sUnusedOverworldCallback = func;
}
static bool8 map_post_load_hook_exec(void)
static bool8 RunFieldCallback(void)
{
if (gFieldCallback2)
{
@ -1546,7 +1523,7 @@ void CB2_NewGame(void)
ScriptContext2_Disable();
gFieldCallback = ExecuteTruckSequence;
gFieldCallback2 = NULL;
do_load_map_stuff_loop(&gMain.state);
DoMapLoadLoop(&gMain.state);
SetFieldVBlankCallback();
SetMainCallback1(CB1_Overworld);
SetMainCallback2(CB2_Overworld);
@ -1554,7 +1531,7 @@ void CB2_NewGame(void)
void CB2_WhiteOut(void)
{
u8 val;
u8 state;
if (++gMain.state >= 120)
{
@ -1566,8 +1543,8 @@ void CB2_WhiteOut(void)
ScriptContext1_Init();
ScriptContext2_Disable();
gFieldCallback = FieldCB_WarpExitFadeFromBlack;
val = 0;
do_load_map_stuff_loop(&val);
state = 0;
DoMapLoadLoop(&state);
SetFieldVBlankCallback();
SetMainCallback1(CB1_Overworld);
SetMainCallback2(CB2_Overworld);
@ -1586,13 +1563,13 @@ void CB2_LoadMap(void)
static void CB2_LoadMap2(void)
{
do_load_map_stuff_loop(&gMain.state);
DoMapLoadLoop(&gMain.state);
SetFieldVBlankCallback();
SetMainCallback1(CB1_Overworld);
SetMainCallback2(CB2_Overworld);
}
void sub_8086024(void)
void CB2_ReturnToFieldContestHall(void)
{
if (!gMain.state)
{
@ -1601,7 +1578,7 @@ void sub_8086024(void)
ScriptContext2_Disable();
SetMainCallback1(NULL);
}
if (load_map_stuff(&gMain.state, 1))
if (LoadMapInStepsLocal(&gMain.state, TRUE))
{
SetFieldVBlankCallback();
SetMainCallback1(CB1_Overworld);
@ -1613,12 +1590,12 @@ void CB2_ReturnToFieldCableClub(void)
{
FieldClearVBlankHBlankCallbacks();
gFieldCallback = FieldCB_ReturnToFieldWirelessLink;
SetMainCallback2(c2_80567AC);
SetMainCallback2(CB2_LoadMapOnReturnToFieldCableClub);
}
static void c2_80567AC(void)
static void CB2_LoadMapOnReturnToFieldCableClub(void)
{
if (map_loading_iteration_3(&gMain.state))
if (LoadMapInStepsLink(&gMain.state))
{
SetFieldVBlankCallback();
SetMainCallback1(CB1_UpdateLinkState);
@ -1640,18 +1617,18 @@ void CB2_ReturnToField(void)
}
}
void CB2_ReturnToFieldLocal(void)
static void CB2_ReturnToFieldLocal(void)
{
if (sub_8086638(&gMain.state))
if (ReturnToFieldLocal(&gMain.state))
{
SetFieldVBlankCallback();
SetMainCallback2(CB2_Overworld);
}
}
void CB2_ReturnToFieldLink(void)
static void CB2_ReturnToFieldLink(void)
{
if (!sub_8087598() && map_loading_iteration_2_link(&gMain.state))
if (!sub_8087598() && ReturnToFieldLink(&gMain.state))
SetMainCallback2(CB2_Overworld);
}
@ -1812,7 +1789,7 @@ static void InitCurrentFlashLevelScanlineEffect(void)
}
}
static bool32 map_loading_iteration_3(u8 *state)
static bool32 LoadMapInStepsLink(u8 *state)
{
switch (*state)
{
@ -1825,7 +1802,7 @@ static bool32 map_loading_iteration_3(u8 *state)
(*state)++;
break;
case 1:
mli0_load_map(1);
LoadMapFromWarp(TRUE);
(*state)++;
break;
case 2:
@ -1842,25 +1819,25 @@ static bool32 map_loading_iteration_3(u8 *state)
case 4:
InitCurrentFlashLevelScanlineEffect();
InitOverworldGraphicsRegisters();
sub_8197200();
InitTextBoxGfxAndPrinters();
(*state)++;
break;
case 5:
move_tilemap_camera_to_upper_left_corner();
ResetFieldCamera();
(*state)++;
break;
case 6:
copy_map_tileset1_to_vram(gMapHeader.mapLayout);
CopyPrimaryTilesetToVram(gMapHeader.mapLayout);
(*state)++;
break;
case 7:
copy_map_tileset2_to_vram(gMapHeader.mapLayout);
CopySecondaryTilesetToVram(gMapHeader.mapLayout);
(*state)++;
break;
case 8:
if (FreeTempTileDataBuffersIfPossible() != TRUE)
{
apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout);
LoadMapTilesetPalettes(gMapHeader.mapLayout);
(*state)++;
}
break;
@ -1881,7 +1858,7 @@ static bool32 map_loading_iteration_3(u8 *state)
(*state)++;
break;
case 12:
if (map_post_load_hook_exec())
if (RunFieldCallback())
(*state)++;
break;
case 13:
@ -1891,13 +1868,13 @@ static bool32 map_loading_iteration_3(u8 *state)
return FALSE;
}
static bool32 load_map_stuff(u8 *state, u32 a2)
static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2)
{
switch (*state)
{
case 0:
FieldClearVBlankHBlankCallbacks();
mli0_load_map(a2);
LoadMapFromWarp(a2);
(*state)++;
break;
case 1:
@ -1911,31 +1888,31 @@ static bool32 load_map_stuff(u8 *state, u32 a2)
break;
case 3:
mli4_mapscripts_and_other();
sub_8086A80();
SetCameraToTrackPlayer();
(*state)++;
break;
case 4:
InitCurrentFlashLevelScanlineEffect();
InitOverworldGraphicsRegisters();
sub_8197200();
InitTextBoxGfxAndPrinters();
(*state)++;
break;
case 5:
move_tilemap_camera_to_upper_left_corner();
ResetFieldCamera();
(*state)++;
break;
case 6:
copy_map_tileset1_to_vram(gMapHeader.mapLayout);
CopyPrimaryTilesetToVram(gMapHeader.mapLayout);
(*state)++;
break;
case 7:
copy_map_tileset2_to_vram(gMapHeader.mapLayout);
CopySecondaryTilesetToVram(gMapHeader.mapLayout);
(*state)++;
break;
case 8:
if (FreeTempTileDataBuffersIfPossible() != TRUE)
{
apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout);
LoadMapTilesetPalettes(gMapHeader.mapLayout);
(*state)++;
}
break;
@ -1953,7 +1930,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2)
(*state)++;
break;
case 12:
if (map_post_load_hook_exec())
if (RunFieldCallback())
(*state)++;
break;
case 13:
@ -1963,16 +1940,16 @@ static bool32 load_map_stuff(u8 *state, u32 a2)
return FALSE;
}
static bool32 sub_8086638(u8 *state)
static bool32 ReturnToFieldLocal(u8 *state)
{
switch (*state)
{
case 0:
sub_80867C8();
sub_80867D8();
sub_8086988(0);
sub_8086988(FALSE);
sub_8086A68();
sub_8086A80();
SetCameraToTrackPlayer();
(*state)++;
break;
case 1:
@ -1981,7 +1958,7 @@ static bool32 sub_8086638(u8 *state)
(*state)++;
break;
case 2:
if (map_post_load_hook_exec())
if (RunFieldCallback())
(*state)++;
break;
case 3:
@ -1991,7 +1968,7 @@ static bool32 sub_8086638(u8 *state)
return FALSE;
}
static bool32 map_loading_iteration_2_link(u8 *state)
static bool32 ReturnToFieldLink(u8 *state)
{
switch (*state)
{
@ -2002,7 +1979,7 @@ static bool32 map_loading_iteration_2_link(u8 *state)
(*state)++;
break;
case 1:
sub_8086988(1);
sub_8086988(TRUE);
(*state)++;
break;
case 2:
@ -2014,25 +1991,25 @@ static bool32 map_loading_iteration_2_link(u8 *state)
case 3:
InitCurrentFlashLevelScanlineEffect();
InitOverworldGraphicsRegisters();
sub_8197200();
InitTextBoxGfxAndPrinters();
(*state)++;
break;
case 4:
move_tilemap_camera_to_upper_left_corner();
ResetFieldCamera();
(*state)++;
break;
case 5:
copy_map_tileset1_to_vram(gMapHeader.mapLayout);
CopyPrimaryTilesetToVram(gMapHeader.mapLayout);
(*state)++;
break;
case 6:
copy_map_tileset2_to_vram(gMapHeader.mapLayout);
CopySecondaryTilesetToVram(gMapHeader.mapLayout);
(*state)++;
break;
case 7:
if (FreeTempTileDataBuffersIfPossible() != TRUE)
{
apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout);
LoadMapTilesetPalettes(gMapHeader.mapLayout);
(*state)++;
}
break;
@ -2053,7 +2030,7 @@ static bool32 map_loading_iteration_2_link(u8 *state)
(*state)++;
break;
case 12:
if (map_post_load_hook_exec())
if (RunFieldCallback())
(*state)++;
break;
case 10:
@ -2068,9 +2045,9 @@ static bool32 map_loading_iteration_2_link(u8 *state)
return FALSE;
}
static void do_load_map_stuff_loop(u8 *state)
static void DoMapLoadLoop(u8 *state)
{
while (!load_map_stuff(state, 0));
while (!LoadMapInStepsLocal(state, FALSE));
}
static void sub_80867C8(void)
@ -2094,13 +2071,13 @@ static void sub_8086860(void)
{
InitCurrentFlashLevelScanlineEffect();
InitOverworldGraphicsRegisters();
sub_8197200();
InitTextBoxGfxAndPrinters();
mapdata_load_assets_to_gpu_and_full_redraw();
}
static void InitOverworldGraphicsRegisters(void)
{
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
ResetTempTileDataBuffers();
SetGpuReg(REG_OFFSET_MOSAIC, 0);
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ);
@ -2133,7 +2110,7 @@ static void InitOverworldGraphicsRegisters(void)
InitFieldMessageBox();
}
static void sub_8086988(u32 a1)
static void sub_8086988(bool32 a1)
{
ResetTasks();
ResetSpriteData();
@ -2189,9 +2166,9 @@ static void sub_8086A68(void)
RunOnReturnToFieldMapScript();
}
static void sub_8086A80(void)
static void SetCameraToTrackPlayer(void)
{
gObjectEvents[gPlayerAvatar.objectEventId].trackedByCamera = 1;
gObjectEvents[gPlayerAvatar.objectEventId].trackedByCamera = TRUE;
InitCameraUpdateCallback(gPlayerAvatar.spriteId);
}
@ -2294,7 +2271,7 @@ static void CheckRfuKeepAliveTimer(void)
static void ResetAllTradingStates(void)
{
s32 i;
for (i = 0; i < 4; i++)
for (i = 0; i < MAX_LINK_PLAYERS; i++)
sPlayerTradingStates[i] = PLAYER_TRADING_STATE_IDLE;
}
@ -2345,7 +2322,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay
if (trainer->isLocalPlayer)
{
SetKeyInterceptCallback(KeyInterCB_DeferToEventScript);
sub_8087584();
RunTerminateLinkScript();
}
return;
}
@ -2763,7 +2740,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player)
otherPlayerPos.height = 0;
linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y);
if (linkPlayerId != 4)
if (linkPlayerId != MAX_LINK_PLAYERS)
{
if (!player->isLocalPlayer)
return CableClub_EventScript_TooBusyToNotice;
@ -2843,7 +2820,7 @@ static void InitMenuBasedScript(const u8 *script)
ScriptContext2_Enable();
}
static void sub_8087584(void)
static void RunTerminateLinkScript(void)
{
ScriptContext1_SetupScript(EventScript_TerminateLink);
ScriptContext2_Enable();

View File

@ -464,7 +464,7 @@ static void CB2_UpdatePartyMenu(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -491,7 +491,7 @@ static bool8 ShowPartyMenu(void)
case 0:
SetVBlankHBlankCallbacksToNull();
ResetVramOamAndBgCntRegs();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -475,7 +475,7 @@ static void CB2_PokeblockMenu(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -507,7 +507,7 @@ static bool8 InitPokeblockMenu(void)
{
case 0:
SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -518,7 +518,7 @@ static void CB2_PokeblockFeed(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -536,7 +536,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
case 0:
sPokeblockFeed = AllocZeroed(sizeof(*sPokeblockFeed));
SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -2146,7 +2146,7 @@ static void VblankCb_PSS(void)
static void Cb2_PSS(void)
{
RunTasks();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
ScrollBackground();
sub_80CAA14();
AnimateSprites();
@ -2214,7 +2214,7 @@ static void sub_80C7E98(void)
gReservedSpriteTileCount = 0x280;
sub_80D2A90(&sPSSData->unk_0020, sPSSData->unk_0028, 8);
gKeyRepeatStartDelay = 20;
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
sub_80D259C(3);
sub_80D2644(0, 1, gUnknown_0857239C, 8, 4);
sub_80D2770(0, 1, 0);

View File

@ -1120,7 +1120,7 @@ static void MainCB2(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -1143,7 +1143,7 @@ static bool8 LoadGraphics(void)
case 0:
SetVBlankHBlankCallbacksToNull();
ResetVramOamAndBgCntRegs();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:

View File

@ -1244,7 +1244,7 @@ void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void))
static void CB2_InitRayquazaScene(void)
{
SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
ScanlineEffect_Stop();
FreeAllSpritePalettes();
ResetPaletteFade();
@ -1260,7 +1260,7 @@ static void CB2_RayquazaScene(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}

View File

@ -1684,7 +1684,7 @@ void CB2_OpenFlyMap(void)
break;
case 3:
LoadUserWindowBorderGfx(0, 0x65, 0xd0);
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 4:
@ -1747,7 +1747,7 @@ static void CB2_FlyMap(void)
sFlyMap->callback();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
}
static void SetFlyMapCallback(void callback(void))

View File

@ -467,7 +467,7 @@ void CB2_InitResetRtcScreen(void)
static void sub_809F048(void)
{
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates));
ScheduleBgCopyTilemapToVram(0);
@ -483,7 +483,7 @@ static void CB2_ResetRtcScreen(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}

View File

@ -859,7 +859,7 @@ static void sub_8140388(void)
SetBgTilemapBuffer(1, gUnknown_0203AB88->tilemapBuffers[2]);
SetBgTilemapBuffer(2, gUnknown_0203AB88->tilemapBuffers[6]);
InitWindows(gUnknown_085B614C);
sub_8197200();
InitTextBoxGfxAndPrinters();
gUnknown_0203AB8C = 0;
gUnknown_0203AB88->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size);
}

View File

@ -416,7 +416,7 @@ static void CB2_BuyMenu(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@ -446,7 +446,7 @@ static void CB2_InitBuyMenu(void)
ResetPaletteFade();
ResetSpriteData();
ResetTasks();
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
gShopDataPtr = AllocZeroed(sizeof(struct ShopData));
gShopDataPtr->scrollIndicatorsTaskId = 0xFF;
gShopDataPtr->itemSpriteIds[0] = 0xFF;

View File

@ -417,7 +417,7 @@ void CB2_ChooseStarter(void)
DeactivateAllTextPrinters();
LoadUserWindowBorderGfx(0, 0x2A8, 0xD0);
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
@ -477,7 +477,7 @@ static void MainCallback2_StarterChoose(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}

View File

@ -660,7 +660,7 @@ static void LoadWallClockGraphics(void)
InitWindows(gUnknown_085B21DC);
DeactivateAllTextPrinters();
LoadUserWindowBorderGfx(0, 0x250, 0xd0);
clear_scheduled_bg_copies_to_vram();
ClearScheduledBgCopiesToVram();
ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
@ -780,7 +780,7 @@ static void WallClockMainCallback(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}