diff options
Diffstat (limited to 'include')
49 files changed, 1068 insertions, 744 deletions
diff --git a/include/AgbRfu_LinkManager.h b/include/AgbRfu_LinkManager.h new file mode 100644 index 000000000..d4ef13183 --- /dev/null +++ b/include/AgbRfu_LinkManager.h @@ -0,0 +1,200 @@ +#ifndef GUARD_LINKMANAGER_H +#define GUARD_LINKMANAGER_H + +//----------------------------------------------------------------- +// Constant definition +//----------------------------------------------------------------- + +// Link Manager operation mode (specified by u8 parent_child argument of rfu_LMAN_establishConnection) +//#define MODE_CHILD 0 // Start Link Manager in CHILD mode +//#define MODE_PARENT 1 // Start Link Manager in PARENT mode +//Note: This value uses the item defined by AgbRFU_LL.h. +#define MODE_P_C_SWITCH 2 // Start Link Manager in parent-child switching mode. + +// Value of lman.p_c_switch_flag +#define PCSWITCH_1ST_SC_START 0x01 +#define PCSWITCH_1ST_SC 0x02 +#define PCSWITCH_2ND_SP_START 0x03 +#define PCSWITCH_2ND_SP 0x04 +#define PCSWITCH_3RD_SC_START 0x05 +#define PCSWITCH_3RD_SC 0x06 +#define PCSWITCH_CP 0x07 +#define PCSWITCH_SC_LOCK 0x08 +#define PCSWITCH_FORCE_SP_START 0x09 + +// Period for which parent-child switching search specified +#define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames +#define PCSWITCH_SP_PERIOD 40 // Child period 40 frames + +// Error code returned by Link Manager API (rfu_LMAN_...return value of function) +#define LMAN_ERROR_MANAGER_BUSY 1 // Link Manager is already running. +#define LMAN_ERROR_AGB_CLK_SLAVE 2 // AGB is clock slave so link manager cannot run. +#define LMAN_ERROR_PID_NOT_FOUND 3 // Parent device information of the specified PID does not exist in rfuLinkStatus->partner[0-3]. +#define LMAN_ERROR_ILLEGAL_PARAMETER 4 // Specified argument is unusual. +#define LMAN_ERROR_NOW_LINK_RECOVERY 5 // New settings were ignored because link recovery was under way when current link recovery was ON and new settings turned link recovery OFF. +#define LMAN_ERROR_NOW_COMMUNICATION 6 // New settings were ignored because currently communicating with NI. +#define LMAN_ERROR_NOW_SEARCH_PARENT 7 // Parent search currently under way, so ignore new setting. + +// Details of messages and the related parameters returned by the u8 msg, u8 param_count, and lman.param[0-1] arguments of the LMAN callback generated by the operation of the Link Manager. +// msg name msg No. param qty param[0] param[1] Description +#define LMAN_MSG_INITIALIZE_COMPLETED 0x00 // 0 - - Generated when RFU reset and initial settings are completed +#define LMAN_MSG_NEW_CHILD_CONNECT_DETECTED 0x10 // 1 Bit indicating slot - Generated when new child device connection was detected at RFU level. +// with detected connection +#define LMAN_MSG_NEW_CHILD_CONNECT_ACCEPTED 0x11 // 1 Bit indicating slot - Generated when game identification information from child device connected at RFU level is received and accepted (game serial numbers match). +// where connection was accepted +#define LMAN_MSG_NEW_CHILD_CONNECT_REJECTED 0x12 // 1 Bit indicating slot - Generated when the connection from the child device connected at RFU level is rejected (game identification information reception failed or game serial numbers do not match). +// where connection was rejected +#define LMAN_MSG_SEARCH_CHILD_PERIOD_EXPIRED 0x13 // 0 - - Generated when SearchChild operation time expires. +#define LMAN_MSG_END_WAIT_CHILD_NAME 0x14 // 0 - - Generated when reception of game identification information from all child devices completes after the SearchChild operation time expires. +#define LMAN_MSG_PARENT_FOUND 0x20 // 1 Bit indicating - Generated when valid (game serial numbers match) parent devices are found during SearchParent. +// rfuLinkStatus->partner[x] index number storing the valid parent devices (game serial number matches) from among the discovered parent devices. +#define LMAN_MSG_SEARCH_PARENT_PERIOD_EXPIRED 0x21 // 0 - - Generated when SearchParent time expires. +#define LMAN_MSG_CONNECT_PARENT_SUCCESSED 0x22 // 1 Connected slot number - Generated when connection with parent device at RFU level succeeds. +#define LMAN_MSG_CONNECT_PARENT_FAILED 0x23 // 1 Connection failure reason - Generated when connection with parent device at RFU level fails. +#define LMAN_MSG_CHILD_NAME_SEND_COMPLETED 0x24 // 0 - - Generated when transmission of the child's game identification information to the parent device succeeds after connection with parent device at RFU level succeeds. +#define LMAN_MSG_CHILD_NAME_SEND_FAILED_AND_DISCONNECTED 0x25 // 0 - - Generated when transmission of the child's game identification information to the parent device fails after connection with parent device at RFU level succeeds. +#define LMAN_MSG_LINK_LOSS_DETECTED_AND_DISCONNECTED 0x30 // 1 Bit indicating slot - Generated when a link cut is detected and that slot disconnects. (Generated only when link recovery is OFF.) +// that was disconnected and where link cut was detected but link recover not attempted +#define LMAN_MSG_LINK_LOSS_DETECTED_AND_START_RECOVERY 0x31 // 1 Bit indicating slot - Generated when a link cut is detected and the link recovery process starts. (Generated only when link recovery is ON.) +// where link cut was detected and link recovery was started +#define LMAN_MSG_LINK_RECOVERY_SUCCESSED 0x32 // 1 Bit indicating slot - Generated when link recovery succeeds. (Generated only when link recovery is ON.) +// where link recovery succeeded +#define LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED 0x33 // 1 Bit indicating slot - Generated when link recovery fails and that slot disconnects. (Generated only when link recovery is ON.) +// where link recovery failed and that disconnected +#define LMAN_MSG_LINK_DISCONNECTED_BY_USER 0x40 // 1 Generated on disconnection by execution of rfu_REQ_disconnect by disconnected user. +// Slot indicated in bits *Note: If rfu_REQ_disconnect is used for disconnection during link recovery in the child device, the link recovery is also suspended, but the only message returned is DISCONNECTED_BY_USER. +#define LMAN_MSG_CHANGE_AGB_CLOCK_SLAVE 0x41 // 0 - - Generated when the AGB-RFU clock switches to AGB clock slave after a successful connection or link recovery in the child device. (This message is not generated when the AGB switches to a clock slave when an MSC callback completes.) +#define LMAN_MSG_CHANGE_AGB_CLOCK_MASTER 0x45 // 0 - - Generated when the AGB-RFU intercommunication clock is switched to the AGB clock master in the child device. +#define LMAN_MSG_RFU_POWER_DOWN 0x42 // 0 - - Generated when the RFU enters power conservation mode with rfu_LMAN_powerDownRFU. +#define LMAN_MSG_MANAGER_STOPPED 0x43 // 0 - - Generated when the Link Manager is halted by rfu_LMAN_stopLMAN(0). (This message is not generated during SearchChild, SearchParent, ConnectParent, and LinkRecovery. A message (-PERIOD_EXPIRED, -SUCCESSED, -FAILED) corresponding to the operation completion is returned.) +#define LMAN_MSG_MANAGER_FORCED_STOPPED_AND_RFU_RESET 0x44 // 0 - - Generates when the Link Manager is forcibly halted by rfu_LMAN_stopLMAN(1) and RFU is reset. + +#define LMAN_MSG_RECV_DATA_REQ_COMPLETED 0x50 // 0 - - Generated when the execution of rfu_REQ_recvData completes. (This message is not notification of data reception from a RFU.) + +#define LMAN_MSG_REQ_API_ERROR 0xf0 // 2 REQ_commandID REQ_result REQ-API resulted in error. This message is also generated by an REQ-API executed by either the link manager or the user. +#define LMAN_MSG_WATCH_DOG_TIMER_ERROR 0xf1 // 0 - - Generated when a MSC callback does not occur even after 6 seconds pass when the AGB is the clock slave. +#define LMAN_MSG_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA 0xf2 // 0 - - Generated when an automatic starting DMA, such as HDMA, is issued at the same time the RFU attempts to send notification and to return the AGB to the clock master while the AGB is the clock slave and the exchange of that information (REQ command) fails. +#define LMAN_MSG_LMAN_API_ERROR_RETURN 0xf3 // 1 Return error code - Generated when LMAN-API execution returns an error. +#define LMAN_MSG_RFU_FATAL_ERROR 0xff // 0 - - Generated when the Link Manager cannot recongize a RFU because of the execution of rfu_REQBN_softReset_and_checkID. + + +// Value of lman.childClockSlave_flag +#define RFU_CHILD_CLOCK_SLAVE_OFF 0 // The child device is not operating in AGB clock slave mode. (The child device is in this mode in cases such as when the child has not established a connection or during link recovery.) +#define RFU_CHILD_CLOCK_SLAVE_ON 1 // The child device is operating in AGB clock slave mode. (Child automatically enters this mode when a connection is established.) +#define RFU_CHILD_CLOCK_SLAVE_OFF_REQ 2 // The child device has requested that AGB clock slave mode be halted. + +// State of Link Manager (values of lman.state, lman.next_state) +#define LMAN_STATE_READY 0x00 // Waiting +#define LMAN_STATE_SOFT_RESET_AND_CHECK_ID 0x01 // Requesting execution of rfu_REQBN_softResetAndCheckID (same as below) +#define LMAN_STATE_RESET 0x02 // rfu_REQ_reset +#define LMAN_STATE_CONFIG_SYSTEM 0x03 // rfu_REQ_configSystem +#define LMAN_STATE_CONFIG_GAME_DATA 0x04 // rfu_REQ_configGameData +#define LMAN_STATE_START_SEARCH_CHILD 0x05 // rfu_REQ_startSearchChild +#define LMAN_STATE_POLL_SEARCH_CHILD 0x06 // rfu_REQ_pollSearchChild +#define LMAN_STATE_END_SEARCH_CHILD 0x07 // rfu_REQ_endSearchChild +#define LMAN_STATE_WAIT_RECV_CHILD_NAME 0x08 // Awaiting reception of game name from connected child device. +#define LMAN_STATE_START_SEARCH_PARENT 0x09 // rfu_REQ_startSearchParent +#define LMAN_STATE_POLL_SEARCH_PARENT 0x0a // rfu_REQ_pollSearchParent +#define LMAN_STATE_END_SEARCH_PARENT 0x0b // rfu_REQ_endSearchParent +#define LMAN_STATE_START_CONNECT_PARENT 0x0c // rfu_REQ_startConnectParent +#define LMAN_STATE_POLL_CONNECT_PARENT 0x0d // rfu_REQ_pollConnectParent +#define LMAN_STATE_END_CONNECT_PARENT 0x0e // rfu_REQ_endConnectParent +#define LMAN_STATE_SEND_CHILD_NAME 0x0f // Sending child game name. +#define LMAN_STATE_START_LINK_RECOVERY 0x10 // rfu_REQ_CHILD_startConnectRecovery +#define LMAN_STATE_POLL_LINK_RECOVERY 0x11 // rfu_REQ_CHILD_pollConnectRecovery +#define LMAN_STATE_END_LINK_RECOVERY 0x12 // rfu_REQ_CHILD_endConnectRecovery +#define LMAN_STATE_MS_CHANGE 0x13 // rfu_REQ_changeMasterSlave +#define LMAN_STATE_WAIT_CLOCK_MASTER 0x14 // Waiting for AGB-RFU intercommunication clock to become AGB clock master. +#define LMAN_STATE_STOP_MODE 0x15 // rfu_REQ_stopMode +#define LMAN_STATE_BACK_STATE 0x16 // Following the completion of link-recovery processing, return the Link Manager state to the state present before link-recovery processing was initiated. +#define LMAN_FORCED_STOP_AND_RFU_RESET 0x17 // Attempt to forcibly stop Link Manager using rfu_LMAN_stopLMAN(1). +#define LMAN_STATE_WAIT_CHANGE_CLOCK_MASTER 0x18 // Attempt to return to AGB clock master after child fails in sending game name. + +struct Padded_U8 +{ + u8 value; +}; + +// Parameter group used in initial setting run of the link manager (rfu_LMAN_initializeRFU) +typedef struct InitializeParametersTag { + // rfu_REQ_configSystem argument + u8 maxMFrame; // Maximum number of times to re-transmit of RFU level + u8 MC_TimerCount; // MC_Timer count (x16.7ms) + u16 availSlot_flag; // Use RFU-API constant "AVAIL_SLOT1-4" to specify the maximum number of child devices (1 - 4) that can be connected to a parent device. + + // rfu_REQB_configGameData argument + u8 mboot_flag; // Multiplayer boot flag + u16 serialNo; // Game serial number + u8 *gameName; // Game name + u8 *userName; // User name + + // ON/OFF flag for parent fast search operation by child. + u8 fastSearchParent_flag; // Flag indicating whether parent fast search operation to be performed by child. + + // Link recovery settings + u8 linkRecovery_enable; // Determines whether or not to execute the link recovery process when a link cut occurs + u16 linkRecovery_period; // Time to spend on the link recovery process (x 16.7 ms) Note: Runs for unlimited time when specifying 0. + + // Setting for NI-type data transmit/receive period + u16 NI_failCounter_limit; // Limit for failCounter during NI type data transmit/receive (x 16.7 ms) Note: Runs for unlimited time when specifying 0. +}INIT_PARAM; + + +// Timer that counts with the V-Blank cycle +typedef struct VblankTimerTag { + u8 active; // Timer ON/OFF (bits 0 - 3 indicate ON/OFF for each connected slot) + u16 count_max; // Maximum count value (x16.7ms) + u16 count[RFU_CHILD_MAX]; // Current count value (x 16.7 ms) for each connected slot +}VBL_TIMER; + +typedef struct linkManagerTag +{ + /* 0x000 */ u8 acceptSlot_flag; + /* 0x001 */ u8 acceptCount; + /* 0x002 */ vu8 childClockSlave_flag; + /* 0x003 */ vu8 parentAck_flag; + /* 0x004 */ u8 state; + /* 0x005 */ u8 next_state; + /* 0x006 */ u8 parent_child; + /* 0x007 */ u8 pcswitch_flag; + /* 0x008 */ u8 RFU_powerOn_flag; + /* 0x009 */ u8 linkRecovery_enable; + /* 0x00a */ u8 linkRecovery_start_flag; + /* 0x00b */ u8 fastSearchParent_flag; + /* 0x00c */ u8 connectSlot_flag_old; + /* 0x00d */ u8 reserveDisconnectSlot_flag; + /* 0x00e */ u8 active; + /* 0x00f */ u8 msc_exe_flag; + /* 0x010 */ u8 child_slot; + /* 0x011 */ u8 state_bak[2]; + /* 0x014 */ u16 param[2]; + /* 0x018 */ u16 NI_failCounter_limit; + /* 0x01a */ u16 connect_period; + /* 0x01c */ u16 pcswitch_period_bak; + /* 0x01e */ u16 work; + /* 0x020 */ u16 *acceptable_serialNo_list; + /* 0x024 */ VBL_TIMER nameAcceptTimer; + /* 0x030 */ VBL_TIMER linkRecoveryTimer; + /* 0x03c */ INIT_PARAM *init_param; + /* 0x040 */ void (*LMAN_callback)(u8, u8); + /* 0x044 */ void (*MSC_callback)(u16); +} LINK_MANAGER; + +extern struct linkManagerTag lman; + +u32 rfu_LMAN_REQBN_softReset_and_checkID(void); +void rfu_LMAN_requestChangeAgbClockMaster(void); +void rfu_LMAN_initializeRFU(INIT_PARAM *init_params); +u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_accept_period, u16 *acceptable_serialNo_list); +void rfu_LMAN_stopManager(bool8 forced_stop_and_RFU_reset_flag); +void rfu_LMAN_setMSCCallback(void (*MSC_callback_p)(u16)); +void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag); +void rfu_LMAN_powerDownRFU(void); +u8 rfu_LMAN_CHILD_connectParent(u16 parentId, u16 connect_period); +u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period); +void rfu_LMAN_manager_entity(u32 rand); +void rfu_LMAN_syncVBlank(void); +u8 rfu_LMAN_initializeManager(void (*LMAN_callback_p)(u8, u8), void (*MSC_callback_p)(u16)); +void rfu_LMAN_forceChangeSP(void); + +#endif //GUARD_LINKMANAGER_H diff --git a/include/battle.h b/include/battle.h index f8c685fb0..b377dc23c 100644 --- a/include/battle.h +++ b/include/battle.h @@ -590,7 +590,7 @@ struct MonSpritesGfx u8 field_F4[0x80]; u8 *barFontGfx; void *field_178; - u16 *field_17C; + u16 *buffer; }; // All battle variables are declared in battle_main.c diff --git a/include/battle_anim.h b/include/battle_anim.h index c3019a5cf..18727cc73 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -49,7 +49,7 @@ extern u8 gAnimMoveTurn; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_02038440; +extern u8 gAnimCustomPanning; void ClearBattleAnimationVars(void); void DoMoveAnim(u16 move); @@ -67,18 +67,19 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); void sub_80A4720(u16 a, u16 *b, u32 c, u8 d); void sub_80A477C(bool8); -// battle_intro.s +// battle_intro.c void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 arg7); void HandleIntroSlide(u8 terrainId); int GetAnimBgAttribute(u8 bgId, u8 attributeId); -// battle_anim_mons.s +// battle_anim_mons.c void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); void sub_80A8AEC(struct Sprite *sprite); void sub_80A8A6C(struct Sprite *sprite); -void sub_80A8E30(struct Sprite *sprite); -void sub_80A8B64(struct Sprite *sprite); +void AnimWeatherBallUp(struct Sprite *sprite); +void AnimWeatherBallDown(struct Sprite *sprite); +void AnimSpinningSparkle(struct Sprite *sprite); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); void DestroySpriteAndMatrix(struct Sprite *sprite); void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); @@ -88,7 +89,6 @@ void StartAnimLinearTranslation(struct Sprite *sprite); void InitAnimArcTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); -void sub_80A8EE4(struct Sprite *sprite); u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId); void sub_80A6FD4(struct Sprite *sprite); u16 ArcTan2Neg(s16 a, s16 b); @@ -101,7 +101,7 @@ void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 a2); s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 a2); u8 GetBattlerYCoordWithElevation(u8 battlerId); void WaitAnimForDuration(struct Sprite *sprite); -void AnimSnoreZ(struct Sprite *sprite); +void AnimTravelDiagonally(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); void sub_80A6F98(struct Sprite *sprite); u8 GetBattlerSpriteBGPriority(u8 battlerId); @@ -125,7 +125,7 @@ u8 sub_80A77AC(u8 a1); s16 CloneBattlerSpriteWithBlend(u8); void obj_delete_but_dont_free_vram(struct Sprite*); u8 sub_80A89C8(int, u8, int); -void sub_80A6D60(struct BattleAnimBgData*, const void*, u32); +void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, u32); void AnimLoadCompressedBgGfx(u32, const u32*, u32); void sub_80A6DAC(bool8); void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *); @@ -133,7 +133,6 @@ void sub_80A653C(struct Sprite *); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); u8 sub_80A80C8(struct Task *task); -void sub_80A8EE4(struct Sprite *); void DestroyAnimSpriteAndDisableBlend(struct Sprite *); void AnimLoadCompressedBgTilemap(u32 bgId, const void *src); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); @@ -144,7 +143,7 @@ void TranslateSpriteLinear(struct Sprite *sprite); void AnimSpriteOnMonPos(struct Sprite *sprite); void sub_80A7000(struct Sprite *sprite); void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); -void SetGreyscaleOrOriginalPalette(u16 a1, bool8 a2); +void SetGreyscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void AnimThrowProjectile(struct Sprite *sprite); @@ -158,6 +157,8 @@ void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId); u8 GetBattlerSide(u8 battler); u8 GetBattlerPosition(u8 battler); u8 GetBattlerAtPosition(u8 position); +void sub_80A64EC(struct Sprite *sprite); +void sub_80A718C(struct Sprite *sprite); enum { @@ -192,11 +193,7 @@ void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite); u8 GetBattlerSpriteDefault_Y(u8 battlerId); u8 GetSubstituteSpriteDefault_Y(u8 battlerId); -// battle_anim_80A64EC.c -void sub_80A64EC(struct Sprite *sprite); -void sub_80A718C(struct Sprite *sprite); - -// battle_anim_status_effects.s +// battle_anim_status_effects.c #define STAT_ANIM_PLUS1 15 #define STAT_ANIM_PLUS2 39 #define STAT_ANIM_MINUS1 22 @@ -207,8 +204,8 @@ void sub_80A718C(struct Sprite *sprite); #define STAT_ANIM_MULTIPLE_MINUS2 58 void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); -// ground.c -void sub_81152DC(u8 taskId); +// battle_anim_ground.c +void AnimTask_HorizontalShake(u8 taskId); // battle_anim_special.c void sub_8172EF0(u8 battler, struct Pokemon *mon); @@ -216,21 +213,22 @@ u8 ItemIdToBallId(u16 itemId); u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, u8 ballId); -// battle_anim_utility_funcs.s +// battle_anim_utility_funcs.c void sub_8116EB4(u8); void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette); // battle_anim_effects_1.c void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite); void AnimMoveTwisterParticle(struct Sprite* sprite); +void AnimParticleBurst(struct Sprite *); -// water.c +// battle_anim_water.c void AnimWaterPulseRing(struct Sprite *sprite); -// flying.c -void sub_810E2C8(struct Sprite *sprite); +// battle_anim_flying.c +void DestroyAnimSpriteAfterTimer(struct Sprite *sprite); -// smokescreen.c +// battle_anim_smokescreen.c u8 SmokescreenImpact(s16 x, s16 y, u8 a3); u32 UnpackSelectedBattleAnimPalettes(s16); @@ -285,4 +283,14 @@ extern const struct OamData gOamData_AffineOff_ObjBlend_16x32; extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; +extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; + +extern const union AnimCmd *const gAnims_WaterMudOrb[]; +extern const union AnimCmd *const gAnims_BasicFire[]; +extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; +extern const union AffineAnimCmd *const gAffineAnims_Droplet[]; +extern const union AnimCmd *const gAnims_SmallBubblePair[]; +extern const union AnimCmd *const gAnims_WaterBubble[]; +extern const union AffineAnimCmd *const gAffineAnims_Bite[]; + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_pyramid.h b/include/battle_pyramid.h index d0681acf3..c4a72095f 100644 --- a/include/battle_pyramid.h +++ b/include/battle_pyramid.h @@ -16,9 +16,9 @@ void CopyPyramidTrainerWinSpeech(u16 trainerId); void CopyPyramidTrainerLoseSpeech(u16 trainerId); u8 GetBattlePyramindTrainerEncounterMusicId(u16 trainerId); void GenerateBattlePyramidFloorLayout(u16 *mapArg, bool8 setPlayerPosition); -void LoadBattlePyramidEventObjectTemplates(void); -void LoadBattlePyramidFloorEventObjectScripts(void); -u8 GetNumBattlePyramidEventObjects(void); +void LoadBattlePyramidObjectEventTemplates(void); +void LoadBattlePyramidFloorObjectEventScripts(void); +u8 GetNumBattlePyramidObjectEvents(void); u16 GetBattlePyramidPickupItemId(void); #endif // GUARD_BATTLE_PYRAMID_H diff --git a/include/battle_scripts.h b/include/battle_scripts.h index cac3a7652..75abaae3c 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -199,7 +199,7 @@ extern const u8 BattleScript_BerryPPHealEnd2[]; extern const u8 BattleScript_ItemHealHP_End2[]; extern const u8 BattleScript_ItemHealHP_Ret[]; extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; -extern const u8 BattleScript_HangedOnMsg[]; +extern const u8 BattleScript_FocusBandActivates[]; extern const u8 BattleScript_BerryConfuseHealEnd2[]; extern const u8 BattleScript_BerryStatRaiseEnd2[]; extern const u8 BattleScript_BerryFocusEnergyEnd2[]; diff --git a/include/battle_setup.h b/include/battle_setup.h index dacd1fa71..e88995778 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -33,8 +33,8 @@ void ChooseStarter(void); void ResetTrainerOpponentIds(void); void SetMapVarsToTrainer(void); const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); -void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript); -void ConfigureTwoTrainersBattle(u8 trainerEventObjId, const u8 *trainerScript); +void ConfigureAndSetUpOneTrainerBattle(u8 trainerObjEventId, const u8 *trainerScript); +void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript); void SetUpTwoTrainersBattle(void); bool32 GetTrainerFlagFromScriptPointer(const u8 *data); void SetUpTrainerMovement(void); diff --git a/include/berry.h b/include/berry.h index ebe1e9a38..afd1bc499 100644 --- a/include/berry.h +++ b/include/berry.h @@ -6,7 +6,7 @@ void SetEnigmaBerry(u8 *src); bool32 IsEnigmaBerryValid(void); const struct Berry *GetBerryInfo(u8 berry); struct BerryTree *GetBerryTreeInfo(u8 id); -bool32 EventObjectInteractionWaterBerryTree(void); +bool32 ObjectEventInteractionWaterBerryTree(void); bool8 IsPlayerFacingEmptyBerryTreePatch(void); bool8 TryToWaterBerryTree(void); void ClearBerryTrees(void); @@ -19,10 +19,10 @@ u8 ItemIdToBerryType(u16 item); void GetBerryNameByBerryType(u8 berry, u8 *string); void ResetBerryTreeSparkleFlag(u8 id); void Bag_ChooseBerry(void); -void EventObjectInteractionGetBerryTreeData(void); -void EventObjectInteractionPlantBerryTree(void); -void EventObjectInteractionPickBerryTree(void); -void EventObjectInteractionRemoveBerryTree(void); +void ObjectEventInteractionGetBerryTreeData(void); +void ObjectEventInteractionPlantBerryTree(void); +void ObjectEventInteractionPickBerryTree(void); +void ObjectEventInteractionRemoveBerryTree(void); bool8 PlayerHasBerries(void); void ResetBerryTreeSparkleFlags(void); diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 0fe231cdc..dfdd9f912 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -354,9 +354,9 @@ #define B_ANIM_POKEBLOCK_THROW 0x4 #define B_ANIM_ITEM_KNOCKOFF 0x5 #define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_HELD_ITEM_EFFECT 0x7 #define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_FOCUS_BAND 0x9 #define B_ANIM_RAIN_CONTINUES 0xA #define B_ANIM_SUN_CONTINUES 0xB #define B_ANIM_SANDSTORM_CONTINUES 0xC @@ -392,8 +392,8 @@ #define B_ANIM_STATUS_NIGHTMARE 0x8 #define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist -// Most tasks return a value to gBattleAnimArgs[7]. -#define ARG_RET_ID 0x7 +// Tasks with return values often assign them to gBattleAnimArgs[7]. +#define ARG_RET_ID 7 // Trapping Wrap-like moves end turn animation. #define TRAP_ANIM_BIND 0 diff --git a/include/constants/coins.h b/include/constants/coins.h index fd68f3f9e..3ae3bb23f 100644 --- a/include/constants/coins.h +++ b/include/constants/coins.h @@ -3,4 +3,4 @@ #define MAX_COINS 9999 -#endif // GUARD_CONSTANTS_COINS_H
\ No newline at end of file +#endif // GUARD_CONSTANTS_COINS_H diff --git a/include/constants/bg_event_constants.h b/include/constants/event_bg.h index a915bc509..64f3331b8 100755 --- a/include/constants/bg_event_constants.h +++ b/include/constants/event_bg.h @@ -1,5 +1,5 @@ -#ifndef GUARD_CONSTANTS_BG_EVENT_H -#define GUARD_CONSTANTS_BG_EVENT_H +#ifndef GUARD_CONSTANTS_EVENT_BG_H +#define GUARD_CONSTANTS_EVENT_BG_H #define BG_EVENT_PLAYER_FACING_ANY 0 #define BG_EVENT_PLAYER_FACING_NORTH 1 @@ -10,4 +10,4 @@ #define BG_EVENT_HIDDEN_ITEM 7 #define BG_EVENT_SECRET_BASE 8 -#endif // GUARD_CONSTANTS_BG_EVENT_H +#endif // GUARD_CONSTANTS_EVENT_BG_H diff --git a/include/constants/event_object_movement_constants.h b/include/constants/event_object_movement.h index ed6f6c7fb..6a4405b65 100755 --- a/include/constants/event_object_movement_constants.h +++ b/include/constants/event_object_movement.h @@ -1,5 +1,5 @@ -#ifndef GUARD_CONSTANTS_EVENTOBJMV_H -#define GUARD_CONSTANTS_EVENTOBJMV_H +#ifndef GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H +#define GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H #define MOVEMENT_TYPE_NONE 0x0 #define MOVEMENT_TYPE_LOOK_AROUND 0x1 @@ -244,4 +244,4 @@ #define MOVEMENT_ACTION_STEP_END 0xFE -#endif // GUARD_CONSTANTS_EVENTOBJMV_H +#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index b30527c80..ca312e957 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -1,268 +1,269 @@ #ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H #define GUARD_CONSTANTS_EVENT_OBJECTS_H -#define EVENT_OBJ_GFX_BRENDAN_NORMAL 0 -#define EVENT_OBJ_GFX_BRENDAN_MACH_BIKE 1 -#define EVENT_OBJ_GFX_BRENDAN_SURFING 2 -#define EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE 3 -#define EVENT_OBJ_GFX_QUINTY_PLUMP 4 -#define EVENT_OBJ_GFX_NINJA_BOY 5 -#define EVENT_OBJ_GFX_TWIN 6 -#define EVENT_OBJ_GFX_BOY_1 7 -#define EVENT_OBJ_GFX_GIRL_1 8 -#define EVENT_OBJ_GFX_BOY_2 9 -#define EVENT_OBJ_GFX_GIRL_2 10 -#define EVENT_OBJ_GFX_LITTLE_BOY 11 -#define EVENT_OBJ_GFX_LITTLE_GIRL 12 -#define EVENT_OBJ_GFX_BOY_3 13 -#define EVENT_OBJ_GFX_GIRL_3 14 -#define EVENT_OBJ_GFX_RICH_BOY 15 -#define EVENT_OBJ_GFX_WOMAN_1 16 -#define EVENT_OBJ_GFX_FAT_MAN 17 -#define EVENT_OBJ_GFX_POKEFAN_F 18 -#define EVENT_OBJ_GFX_MAN_1 19 -#define EVENT_OBJ_GFX_WOMAN_2 20 -#define EVENT_OBJ_GFX_EXPERT_M 21 -#define EVENT_OBJ_GFX_EXPERT_F 22 -#define EVENT_OBJ_GFX_MAN_2 23 -#define EVENT_OBJ_GFX_WOMAN_3 24 -#define EVENT_OBJ_GFX_POKEFAN_M 25 -#define EVENT_OBJ_GFX_WOMAN_4 26 -#define EVENT_OBJ_GFX_COOK 27 -#define EVENT_OBJ_GFX_LINK_RECEPTIONIST 28 -#define EVENT_OBJ_GFX_OLD_MAN 29 -#define EVENT_OBJ_GFX_OLD_WOMAN 30 -#define EVENT_OBJ_GFX_CAMPER 31 -#define EVENT_OBJ_GFX_PICNICKER 32 -#define EVENT_OBJ_GFX_MAN_3 33 -#define EVENT_OBJ_GFX_WOMAN_5 34 -#define EVENT_OBJ_GFX_YOUNGSTER 35 -#define EVENT_OBJ_GFX_BUG_CATCHER 36 -#define EVENT_OBJ_GFX_PSYCHIC_M 37 -#define EVENT_OBJ_GFX_SCHOOL_KID_M 38 -#define EVENT_OBJ_GFX_MANIAC 39 -#define EVENT_OBJ_GFX_HEX_MANIAC 40 -#define EVENT_OBJ_GFX_RAYQUAZA_1 41 -#define EVENT_OBJ_GFX_SWIMMER_M 42 -#define EVENT_OBJ_GFX_SWIMMER_F 43 -#define EVENT_OBJ_GFX_BLACK_BELT 44 -#define EVENT_OBJ_GFX_BEAUTY 45 -#define EVENT_OBJ_GFX_SCIENTIST_1 46 -#define EVENT_OBJ_GFX_LASS 47 -#define EVENT_OBJ_GFX_GENTLEMAN 48 -#define EVENT_OBJ_GFX_SAILOR 49 -#define EVENT_OBJ_GFX_FISHERMAN 50 -#define EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M 51 -#define EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F 52 -#define EVENT_OBJ_GFX_TUBER_F 53 -#define EVENT_OBJ_GFX_TUBER_M 54 -#define EVENT_OBJ_GFX_HIKER 55 -#define EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M 56 -#define EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F 57 -#define EVENT_OBJ_GFX_NURSE 58 -#define EVENT_OBJ_GFX_ITEM_BALL 59 -#define EVENT_OBJ_GFX_BERRY_TREE 60 -#define EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61 -#define EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES 62 -#define EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE 63 -#define EVENT_OBJ_GFX_PROF_BIRCH 64 -#define EVENT_OBJ_GFX_MAN_4 65 -#define EVENT_OBJ_GFX_MAN_5 66 -#define EVENT_OBJ_GFX_REPORTER_M 67 -#define EVENT_OBJ_GFX_REPORTER_F 68 -#define EVENT_OBJ_GFX_BARD 69 -#define EVENT_OBJ_GFX_ANABEL 70 -#define EVENT_OBJ_GFX_TUCKER 71 -#define EVENT_OBJ_GFX_GRETA 72 -#define EVENT_OBJ_GFX_SPENSER 73 -#define EVENT_OBJ_GFX_NOLAND 74 -#define EVENT_OBJ_GFX_LUCY 75 -#define EVENT_OBJ_GFX_UNUSED_NATU_DOLL 76 -#define EVENT_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77 -#define EVENT_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78 -#define EVENT_OBJ_GFX_UNUSED_WOOPER_DOLL 79 -#define EVENT_OBJ_GFX_UNUSED_PIKACHU_DOLL 80 -#define EVENT_OBJ_GFX_UNUSED_PORYGON2_DOLL 81 -#define EVENT_OBJ_GFX_CUTTABLE_TREE 82 -#define EVENT_OBJ_GFX_MART_EMPLOYEE 83 -#define EVENT_OBJ_GFX_ROOFTOP_SALE_WOMAN 84 -#define EVENT_OBJ_GFX_TEALA 85 -#define EVENT_OBJ_GFX_BREAKABLE_ROCK 86 -#define EVENT_OBJ_GFX_PUSHABLE_BOULDER 87 -#define EVENT_OBJ_GFX_MR_BRINEYS_BOAT 88 -#define EVENT_OBJ_GFX_MAY_NORMAL 89 -#define EVENT_OBJ_GFX_MAY_MACH_BIKE 90 -#define EVENT_OBJ_GFX_MAY_ACRO_BIKE 91 -#define EVENT_OBJ_GFX_MAY_SURFING 92 -#define EVENT_OBJ_GFX_MAY_FIELD_MOVE 93 -#define EVENT_OBJ_GFX_TRUCK 94 -#define EVENT_OBJ_GFX_VIGOROTH_CARRYING_BOX 95 -#define EVENT_OBJ_GFX_VIGOROTH_FACING_AWAY 96 -#define EVENT_OBJ_GFX_BIRCHS_BAG 97 -#define EVENT_OBJ_GFX_ZIGZAGOON_1 98 -#define EVENT_OBJ_GFX_ARTIST 99 -#define EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100 -#define EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101 -#define EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102 -#define EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING 103 -#define EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104 -#define EVENT_OBJ_GFX_RIVAL_MAY_NORMAL 105 -#define EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106 -#define EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107 -#define EVENT_OBJ_GFX_RIVAL_MAY_SURFING 108 -#define EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109 -#define EVENT_OBJ_GFX_CAMERAMAN 110 -#define EVENT_OBJ_GFX_BRENDAN_UNDERWATER 111 -#define EVENT_OBJ_GFX_MAY_UNDERWATER 112 -#define EVENT_OBJ_GFX_MOVING_BOX 113 -#define EVENT_OBJ_GFX_CABLE_CAR 114 -#define EVENT_OBJ_GFX_SCIENTIST_2 115 -#define EVENT_OBJ_GFX_DEVON_EMPLOYEE 116 -#define EVENT_OBJ_GFX_AQUA_MEMBER_M 117 -#define EVENT_OBJ_GFX_AQUA_MEMBER_F 118 -#define EVENT_OBJ_GFX_MAGMA_MEMBER_M 119 -#define EVENT_OBJ_GFX_MAGMA_MEMBER_F 120 -#define EVENT_OBJ_GFX_SIDNEY 121 -#define EVENT_OBJ_GFX_PHOEBE 122 -#define EVENT_OBJ_GFX_GLACIA 123 -#define EVENT_OBJ_GFX_DRAKE 124 -#define EVENT_OBJ_GFX_ROXANNE 125 -#define EVENT_OBJ_GFX_BRAWLY 126 -#define EVENT_OBJ_GFX_WATTSON 127 -#define EVENT_OBJ_GFX_FLANNERY 128 -#define EVENT_OBJ_GFX_NORMAN 129 -#define EVENT_OBJ_GFX_WINONA 130 -#define EVENT_OBJ_GFX_LIZA 131 -#define EVENT_OBJ_GFX_TATE 132 -#define EVENT_OBJ_GFX_WALLACE 133 -#define EVENT_OBJ_GFX_STEVEN 134 -#define EVENT_OBJ_GFX_WALLY 135 -#define EVENT_OBJ_GFX_LITTLE_BOY_3 136 -#define EVENT_OBJ_GFX_BRENDAN_FISHING 137 -#define EVENT_OBJ_GFX_MAY_FISHING 138 -#define EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139 -#define EVENT_OBJ_GFX_SS_TIDAL 140 -#define EVENT_OBJ_GFX_SUBMARINE_SHADOW 141 -#define EVENT_OBJ_GFX_PICHU_DOLL 142 -#define EVENT_OBJ_GFX_PIKACHU_DOLL 143 -#define EVENT_OBJ_GFX_MARILL_DOLL 144 -#define EVENT_OBJ_GFX_TOGEPI_DOLL 145 -#define EVENT_OBJ_GFX_CYNDAQUIL_DOLL 146 -#define EVENT_OBJ_GFX_CHIKORITA_DOLL 147 -#define EVENT_OBJ_GFX_TOTODILE_DOLL 148 -#define EVENT_OBJ_GFX_JIGGLYPUFF_DOLL 149 -#define EVENT_OBJ_GFX_MEOWTH_DOLL 150 -#define EVENT_OBJ_GFX_CLEFAIRY_DOLL 151 -#define EVENT_OBJ_GFX_DITTO_DOLL 152 -#define EVENT_OBJ_GFX_SMOOCHUM_DOLL 153 -#define EVENT_OBJ_GFX_TREECKO_DOLL 154 -#define EVENT_OBJ_GFX_TORCHIC_DOLL 155 -#define EVENT_OBJ_GFX_MUDKIP_DOLL 156 -#define EVENT_OBJ_GFX_DUSKULL_DOLL 157 -#define EVENT_OBJ_GFX_WYNAUT_DOLL 158 -#define EVENT_OBJ_GFX_BALTOY_DOLL 159 -#define EVENT_OBJ_GFX_KECLEON_DOLL 160 -#define EVENT_OBJ_GFX_AZURILL_DOLL 161 -#define EVENT_OBJ_GFX_SKITTY_DOLL 162 -#define EVENT_OBJ_GFX_SWABLU_DOLL 163 -#define EVENT_OBJ_GFX_GULPIN_DOLL 164 -#define EVENT_OBJ_GFX_LOTAD_DOLL 165 -#define EVENT_OBJ_GFX_SEEDOT_DOLL 166 -#define EVENT_OBJ_GFX_PIKA_CUSHION 167 -#define EVENT_OBJ_GFX_ROUND_CUSHION 168 -#define EVENT_OBJ_GFX_KISS_CUSHION 169 -#define EVENT_OBJ_GFX_ZIGZAG_CUSHION 170 -#define EVENT_OBJ_GFX_SPIN_CUSHION 171 -#define EVENT_OBJ_GFX_DIAMOND_CUSHION 172 -#define EVENT_OBJ_GFX_BALL_CUSHION 173 -#define EVENT_OBJ_GFX_GRASS_CUSHION 174 -#define EVENT_OBJ_GFX_FIRE_CUSHION 175 -#define EVENT_OBJ_GFX_WATER_CUSHION 176 -#define EVENT_OBJ_GFX_BIG_SNORLAX_DOLL 177 -#define EVENT_OBJ_GFX_BIG_RHYDON_DOLL 178 -#define EVENT_OBJ_GFX_BIG_LAPRAS_DOLL 179 -#define EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL 180 -#define EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL 181 -#define EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL 182 -#define EVENT_OBJ_GFX_BIG_WAILMER_DOLL 183 -#define EVENT_OBJ_GFX_BIG_REGIROCK_DOLL 184 -#define EVENT_OBJ_GFX_BIG_REGICE_DOLL 185 -#define EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL 186 -#define EVENT_OBJ_GFX_LATIAS 187 -#define EVENT_OBJ_GFX_LATIOS 188 -#define EVENT_OBJ_GFX_GAMEBOY_KID 189 -#define EVENT_OBJ_GFX_CONTEST_JUDGE 190 -#define EVENT_OBJ_GFX_BRENDAN_WATERING 191 -#define EVENT_OBJ_GFX_MAY_WATERING 192 -#define EVENT_OBJ_GFX_BRENDAN_DECORATING 193 -#define EVENT_OBJ_GFX_MAY_DECORATING 194 -#define EVENT_OBJ_GFX_ARCHIE 195 -#define EVENT_OBJ_GFX_MAXIE 196 -#define EVENT_OBJ_GFX_KYOGRE_1 197 -#define EVENT_OBJ_GFX_GROUDON_1 198 -#define EVENT_OBJ_GFX_FOSSIL 199 -#define EVENT_OBJ_GFX_REGIROCK 200 -#define EVENT_OBJ_GFX_REGICE 201 -#define EVENT_OBJ_GFX_REGISTEEL 202 -#define EVENT_OBJ_GFX_SKITTY 203 -#define EVENT_OBJ_GFX_KECLEON_1 204 -#define EVENT_OBJ_GFX_KYOGRE_2 205 -#define EVENT_OBJ_GFX_GROUDON_2 206 -#define EVENT_OBJ_GFX_RAYQUAZA_2 207 -#define EVENT_OBJ_GFX_ZIGZAGOON_2 208 -#define EVENT_OBJ_GFX_PIKACHU 209 -#define EVENT_OBJ_GFX_AZUMARILL 210 -#define EVENT_OBJ_GFX_WINGULL 211 -#define EVENT_OBJ_GFX_KECLEON_2 212 -#define EVENT_OBJ_GFX_TUBER_M_SWIMMING 213 -#define EVENT_OBJ_GFX_AZURILL 214 -#define EVENT_OBJ_GFX_MOM 215 -#define EVENT_OBJ_GFX_LINK_BRENDAN 216 -#define EVENT_OBJ_GFX_LINK_MAY 217 -#define EVENT_OBJ_GFX_JUAN 218 -#define EVENT_OBJ_GFX_SCOTT 219 -#define EVENT_OBJ_GFX_POOCHYENA 220 -#define EVENT_OBJ_GFX_KYOGRE_3 221 -#define EVENT_OBJ_GFX_GROUDON_3 222 -#define EVENT_OBJ_GFX_MYSTERY_GIFT_MAN 223 -#define EVENT_OBJ_GFX_TRICK_HOUSE_STATUE 224 -#define EVENT_OBJ_GFX_KIRLIA 225 -#define EVENT_OBJ_GFX_DUSCLOPS 226 -#define EVENT_OBJ_GFX_UNION_ROOM_NURSE 227 -#define EVENT_OBJ_GFX_SUDOWOODO 228 -#define EVENT_OBJ_GFX_MEW 229 -#define EVENT_OBJ_GFX_RED 230 -#define EVENT_OBJ_GFX_LEAF 231 -#define EVENT_OBJ_GFX_DEOXYS 232 -#define EVENT_OBJ_GFX_DEOXYS_TRIANGLE 233 -#define EVENT_OBJ_GFX_BRANDON 234 -#define EVENT_OBJ_GFX_LINK_RS_BRENDAN 235 -#define EVENT_OBJ_GFX_LINK_RS_MAY 236 -#define EVENT_OBJ_GFX_LUGIA 237 -#define EVENT_OBJ_GFX_HOOH 238 +#define OBJ_EVENT_GFX_BRENDAN_NORMAL 0 +#define OBJ_EVENT_GFX_BRENDAN_MACH_BIKE 1 +#define OBJ_EVENT_GFX_BRENDAN_SURFING 2 +#define OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE 3 +#define OBJ_EVENT_GFX_QUINTY_PLUMP 4 +#define OBJ_EVENT_GFX_NINJA_BOY 5 +#define OBJ_EVENT_GFX_TWIN 6 +#define OBJ_EVENT_GFX_BOY_1 7 +#define OBJ_EVENT_GFX_GIRL_1 8 +#define OBJ_EVENT_GFX_BOY_2 9 +#define OBJ_EVENT_GFX_GIRL_2 10 +#define OBJ_EVENT_GFX_LITTLE_BOY 11 +#define OBJ_EVENT_GFX_LITTLE_GIRL 12 +#define OBJ_EVENT_GFX_BOY_3 13 +#define OBJ_EVENT_GFX_GIRL_3 14 +#define OBJ_EVENT_GFX_RICH_BOY 15 +#define OBJ_EVENT_GFX_WOMAN_1 16 +#define OBJ_EVENT_GFX_FAT_MAN 17 +#define OBJ_EVENT_GFX_POKEFAN_F 18 +#define OBJ_EVENT_GFX_MAN_1 19 +#define OBJ_EVENT_GFX_WOMAN_2 20 +#define OBJ_EVENT_GFX_EXPERT_M 21 +#define OBJ_EVENT_GFX_EXPERT_F 22 +#define OBJ_EVENT_GFX_MAN_2 23 +#define OBJ_EVENT_GFX_WOMAN_3 24 +#define OBJ_EVENT_GFX_POKEFAN_M 25 +#define OBJ_EVENT_GFX_WOMAN_4 26 +#define OBJ_EVENT_GFX_COOK 27 +#define OBJ_EVENT_GFX_LINK_RECEPTIONIST 28 +#define OBJ_EVENT_GFX_OLD_MAN 29 +#define OBJ_EVENT_GFX_OLD_WOMAN 30 +#define OBJ_EVENT_GFX_CAMPER 31 +#define OBJ_EVENT_GFX_PICNICKER 32 +#define OBJ_EVENT_GFX_MAN_3 33 +#define OBJ_EVENT_GFX_WOMAN_5 34 +#define OBJ_EVENT_GFX_YOUNGSTER 35 +#define OBJ_EVENT_GFX_BUG_CATCHER 36 +#define OBJ_EVENT_GFX_PSYCHIC_M 37 +#define OBJ_EVENT_GFX_SCHOOL_KID_M 38 +#define OBJ_EVENT_GFX_MANIAC 39 +#define OBJ_EVENT_GFX_HEX_MANIAC 40 +#define OBJ_EVENT_GFX_RAYQUAZA_1 41 +#define OBJ_EVENT_GFX_SWIMMER_M 42 +#define OBJ_EVENT_GFX_SWIMMER_F 43 +#define OBJ_EVENT_GFX_BLACK_BELT 44 +#define OBJ_EVENT_GFX_BEAUTY 45 +#define OBJ_EVENT_GFX_SCIENTIST_1 46 +#define OBJ_EVENT_GFX_LASS 47 +#define OBJ_EVENT_GFX_GENTLEMAN 48 +#define OBJ_EVENT_GFX_SAILOR 49 +#define OBJ_EVENT_GFX_FISHERMAN 50 +#define OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M 51 +#define OBJ_EVENT_GFX_RUNNING_TRIATHLETE_F 52 +#define OBJ_EVENT_GFX_TUBER_F 53 +#define OBJ_EVENT_GFX_TUBER_M 54 +#define OBJ_EVENT_GFX_HIKER 55 +#define OBJ_EVENT_GFX_CYCLING_TRIATHLETE_M 56 +#define OBJ_EVENT_GFX_CYCLING_TRIATHLETE_F 57 +#define OBJ_EVENT_GFX_NURSE 58 +#define OBJ_EVENT_GFX_ITEM_BALL 59 +#define OBJ_EVENT_GFX_BERRY_TREE 60 +#define OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES 61 +#define OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES 62 +#define OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE 63 +#define OBJ_EVENT_GFX_PROF_BIRCH 64 +#define OBJ_EVENT_GFX_MAN_4 65 +#define OBJ_EVENT_GFX_MAN_5 66 +#define OBJ_EVENT_GFX_REPORTER_M 67 +#define OBJ_EVENT_GFX_REPORTER_F 68 +#define OBJ_EVENT_GFX_BARD 69 +#define OBJ_EVENT_GFX_ANABEL 70 +#define OBJ_EVENT_GFX_TUCKER 71 +#define OBJ_EVENT_GFX_GRETA 72 +#define OBJ_EVENT_GFX_SPENSER 73 +#define OBJ_EVENT_GFX_NOLAND 74 +#define OBJ_EVENT_GFX_LUCY 75 +#define OBJ_EVENT_GFX_UNUSED_NATU_DOLL 76 +#define OBJ_EVENT_GFX_UNUSED_MAGNEMITE_DOLL 77 +#define OBJ_EVENT_GFX_UNUSED_SQUIRTLE_DOLL 78 +#define OBJ_EVENT_GFX_UNUSED_WOOPER_DOLL 79 +#define OBJ_EVENT_GFX_UNUSED_PIKACHU_DOLL 80 +#define OBJ_EVENT_GFX_UNUSED_PORYGON2_DOLL 81 +#define OBJ_EVENT_GFX_CUTTABLE_TREE 82 +#define OBJ_EVENT_GFX_MART_EMPLOYEE 83 +#define OBJ_EVENT_GFX_ROOFTOP_SALE_WOMAN 84 +#define OBJ_EVENT_GFX_TEALA 85 +#define OBJ_EVENT_GFX_BREAKABLE_ROCK 86 +#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 87 +#define OBJ_EVENT_GFX_MR_BRINEYS_BOAT 88 +#define OBJ_EVENT_GFX_MAY_NORMAL 89 +#define OBJ_EVENT_GFX_MAY_MACH_BIKE 90 +#define OBJ_EVENT_GFX_MAY_ACRO_BIKE 91 +#define OBJ_EVENT_GFX_MAY_SURFING 92 +#define OBJ_EVENT_GFX_MAY_FIELD_MOVE 93 +#define OBJ_EVENT_GFX_TRUCK 94 +#define OBJ_EVENT_GFX_VIGOROTH_CARRYING_BOX 95 +#define OBJ_EVENT_GFX_VIGOROTH_FACING_AWAY 96 +#define OBJ_EVENT_GFX_BIRCHS_BAG 97 +#define OBJ_EVENT_GFX_ZIGZAGOON_1 98 +#define OBJ_EVENT_GFX_ARTIST 99 +#define OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL 100 +#define OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE 101 +#define OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE 102 +#define OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING 103 +#define OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE 104 +#define OBJ_EVENT_GFX_RIVAL_MAY_NORMAL 105 +#define OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE 106 +#define OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE 107 +#define OBJ_EVENT_GFX_RIVAL_MAY_SURFING 108 +#define OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE 109 +#define OBJ_EVENT_GFX_CAMERAMAN 110 +#define OBJ_EVENT_GFX_BRENDAN_UNDERWATER 111 +#define OBJ_EVENT_GFX_MAY_UNDERWATER 112 +#define OBJ_EVENT_GFX_MOVING_BOX 113 +#define OBJ_EVENT_GFX_CABLE_CAR 114 +#define OBJ_EVENT_GFX_SCIENTIST_2 115 +#define OBJ_EVENT_GFX_DEVON_EMPLOYEE 116 +#define OBJ_EVENT_GFX_AQUA_MEMBER_M 117 +#define OBJ_EVENT_GFX_AQUA_MEMBER_F 118 +#define OBJ_EVENT_GFX_MAGMA_MEMBER_M 119 +#define OBJ_EVENT_GFX_MAGMA_MEMBER_F 120 +#define OBJ_EVENT_GFX_SIDNEY 121 +#define OBJ_EVENT_GFX_PHOEBE 122 +#define OBJ_EVENT_GFX_GLACIA 123 +#define OBJ_EVENT_GFX_DRAKE 124 +#define OBJ_EVENT_GFX_ROXANNE 125 +#define OBJ_EVENT_GFX_BRAWLY 126 +#define OBJ_EVENT_GFX_WATTSON 127 +#define OBJ_EVENT_GFX_FLANNERY 128 +#define OBJ_EVENT_GFX_NORMAN 129 +#define OBJ_EVENT_GFX_WINONA 130 +#define OBJ_EVENT_GFX_LIZA 131 +#define OBJ_EVENT_GFX_TATE 132 +#define OBJ_EVENT_GFX_WALLACE 133 +#define OBJ_EVENT_GFX_STEVEN 134 +#define OBJ_EVENT_GFX_WALLY 135 +#define OBJ_EVENT_GFX_LITTLE_BOY_3 136 +#define OBJ_EVENT_GFX_BRENDAN_FISHING 137 +#define OBJ_EVENT_GFX_MAY_FISHING 138 +#define OBJ_EVENT_GFX_HOT_SPRINGS_OLD_WOMAN 139 +#define OBJ_EVENT_GFX_SS_TIDAL 140 +#define OBJ_EVENT_GFX_SUBMARINE_SHADOW 141 +#define OBJ_EVENT_GFX_PICHU_DOLL 142 +#define OBJ_EVENT_GFX_PIKACHU_DOLL 143 +#define OBJ_EVENT_GFX_MARILL_DOLL 144 +#define OBJ_EVENT_GFX_TOGEPI_DOLL 145 +#define OBJ_EVENT_GFX_CYNDAQUIL_DOLL 146 +#define OBJ_EVENT_GFX_CHIKORITA_DOLL 147 +#define OBJ_EVENT_GFX_TOTODILE_DOLL 148 +#define OBJ_EVENT_GFX_JIGGLYPUFF_DOLL 149 +#define OBJ_EVENT_GFX_MEOWTH_DOLL 150 +#define OBJ_EVENT_GFX_CLEFAIRY_DOLL 151 +#define OBJ_EVENT_GFX_DITTO_DOLL 152 +#define OBJ_EVENT_GFX_SMOOCHUM_DOLL 153 +#define OBJ_EVENT_GFX_TREECKO_DOLL 154 +#define OBJ_EVENT_GFX_TORCHIC_DOLL 155 +#define OBJ_EVENT_GFX_MUDKIP_DOLL 156 +#define OBJ_EVENT_GFX_DUSKULL_DOLL 157 +#define OBJ_EVENT_GFX_WYNAUT_DOLL 158 +#define OBJ_EVENT_GFX_BALTOY_DOLL 159 +#define OBJ_EVENT_GFX_KECLEON_DOLL 160 +#define OBJ_EVENT_GFX_AZURILL_DOLL 161 +#define OBJ_EVENT_GFX_SKITTY_DOLL 162 +#define OBJ_EVENT_GFX_SWABLU_DOLL 163 +#define OBJ_EVENT_GFX_GULPIN_DOLL 164 +#define OBJ_EVENT_GFX_LOTAD_DOLL 165 +#define OBJ_EVENT_GFX_SEEDOT_DOLL 166 +#define OBJ_EVENT_GFX_PIKA_CUSHION 167 +#define OBJ_EVENT_GFX_ROUND_CUSHION 168 +#define OBJ_EVENT_GFX_KISS_CUSHION 169 +#define OBJ_EVENT_GFX_ZIGZAG_CUSHION 170 +#define OBJ_EVENT_GFX_SPIN_CUSHION 171 +#define OBJ_EVENT_GFX_DIAMOND_CUSHION 172 +#define OBJ_EVENT_GFX_BALL_CUSHION 173 +#define OBJ_EVENT_GFX_GRASS_CUSHION 174 +#define OBJ_EVENT_GFX_FIRE_CUSHION 175 +#define OBJ_EVENT_GFX_WATER_CUSHION 176 +#define OBJ_EVENT_GFX_BIG_SNORLAX_DOLL 177 +#define OBJ_EVENT_GFX_BIG_RHYDON_DOLL 178 +#define OBJ_EVENT_GFX_BIG_LAPRAS_DOLL 179 +#define OBJ_EVENT_GFX_BIG_VENUSAUR_DOLL 180 +#define OBJ_EVENT_GFX_BIG_CHARIZARD_DOLL 181 +#define OBJ_EVENT_GFX_BIG_BLASTOISE_DOLL 182 +#define OBJ_EVENT_GFX_BIG_WAILMER_DOLL 183 +#define OBJ_EVENT_GFX_BIG_REGIROCK_DOLL 184 +#define OBJ_EVENT_GFX_BIG_REGICE_DOLL 185 +#define OBJ_EVENT_GFX_BIG_REGISTEEL_DOLL 186 +#define OBJ_EVENT_GFX_LATIAS 187 +#define OBJ_EVENT_GFX_LATIOS 188 +#define OBJ_EVENT_GFX_GAMEBOY_KID 189 +#define OBJ_EVENT_GFX_CONTEST_JUDGE 190 +#define OBJ_EVENT_GFX_BRENDAN_WATERING 191 +#define OBJ_EVENT_GFX_MAY_WATERING 192 +#define OBJ_EVENT_GFX_BRENDAN_DECORATING 193 +#define OBJ_EVENT_GFX_MAY_DECORATING 194 +#define OBJ_EVENT_GFX_ARCHIE 195 +#define OBJ_EVENT_GFX_MAXIE 196 +#define OBJ_EVENT_GFX_KYOGRE_1 197 +#define OBJ_EVENT_GFX_GROUDON_1 198 +#define OBJ_EVENT_GFX_FOSSIL 199 +#define OBJ_EVENT_GFX_REGIROCK 200 +#define OBJ_EVENT_GFX_REGICE 201 +#define OBJ_EVENT_GFX_REGISTEEL 202 +#define OBJ_EVENT_GFX_SKITTY 203 +#define OBJ_EVENT_GFX_KECLEON_1 204 +#define OBJ_EVENT_GFX_KYOGRE_2 205 +#define OBJ_EVENT_GFX_GROUDON_2 206 +#define OBJ_EVENT_GFX_RAYQUAZA_2 207 +#define OBJ_EVENT_GFX_ZIGZAGOON_2 208 +#define OBJ_EVENT_GFX_PIKACHU 209 +#define OBJ_EVENT_GFX_AZUMARILL 210 +#define OBJ_EVENT_GFX_WINGULL 211 +#define OBJ_EVENT_GFX_KECLEON_2 212 +#define OBJ_EVENT_GFX_TUBER_M_SWIMMING 213 +#define OBJ_EVENT_GFX_AZURILL 214 +#define OBJ_EVENT_GFX_MOM 215 +#define OBJ_EVENT_GFX_LINK_BRENDAN 216 +#define OBJ_EVENT_GFX_LINK_MAY 217 +#define OBJ_EVENT_GFX_JUAN 218 +#define OBJ_EVENT_GFX_SCOTT 219 +#define OBJ_EVENT_GFX_POOCHYENA 220 +#define OBJ_EVENT_GFX_KYOGRE_3 221 +#define OBJ_EVENT_GFX_GROUDON_3 222 +#define OBJ_EVENT_GFX_MYSTERY_GIFT_MAN 223 +#define OBJ_EVENT_GFX_TRICK_HOUSE_STATUE 224 +#define OBJ_EVENT_GFX_KIRLIA 225 +#define OBJ_EVENT_GFX_DUSCLOPS 226 +#define OBJ_EVENT_GFX_UNION_ROOM_NURSE 227 +#define OBJ_EVENT_GFX_SUDOWOODO 228 +#define OBJ_EVENT_GFX_MEW 229 +#define OBJ_EVENT_GFX_RED 230 +#define OBJ_EVENT_GFX_LEAF 231 +#define OBJ_EVENT_GFX_DEOXYS 232 +#define OBJ_EVENT_GFX_DEOXYS_TRIANGLE 233 +#define OBJ_EVENT_GFX_BRANDON 234 +#define OBJ_EVENT_GFX_LINK_RS_BRENDAN 235 +#define OBJ_EVENT_GFX_LINK_RS_MAY 236 +#define OBJ_EVENT_GFX_LUGIA 237 +#define OBJ_EVENT_GFX_HOOH 238 #define NUM_OBJ_EVENT_GFX 239 + // These are dynamic object gfx ids. // They correspond with the values of the VAR_OBJ_GFX_ID_X vars. // More info about them in include/constants/vars.h #define OBJ_EVENT_GFX_VARS (NUM_OBJ_EVENT_GFX + 1) -#define EVENT_OBJ_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0) // 240 -#define EVENT_OBJ_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1) -#define EVENT_OBJ_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2) -#define EVENT_OBJ_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3) -#define EVENT_OBJ_GFX_VAR_4 (OBJ_EVENT_GFX_VARS + 0x4) -#define EVENT_OBJ_GFX_VAR_5 (OBJ_EVENT_GFX_VARS + 0x5) -#define EVENT_OBJ_GFX_VAR_6 (OBJ_EVENT_GFX_VARS + 0x6) -#define EVENT_OBJ_GFX_VAR_7 (OBJ_EVENT_GFX_VARS + 0x7) -#define EVENT_OBJ_GFX_VAR_8 (OBJ_EVENT_GFX_VARS + 0x8) -#define EVENT_OBJ_GFX_VAR_9 (OBJ_EVENT_GFX_VARS + 0x9) -#define EVENT_OBJ_GFX_VAR_A (OBJ_EVENT_GFX_VARS + 0xA) -#define EVENT_OBJ_GFX_VAR_B (OBJ_EVENT_GFX_VARS + 0xB) -#define EVENT_OBJ_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC) -#define EVENT_OBJ_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD) -#define EVENT_OBJ_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE) -#define EVENT_OBJ_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF) // 255 +#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0) // 240 +#define OBJ_EVENT_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1) +#define OBJ_EVENT_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2) +#define OBJ_EVENT_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3) +#define OBJ_EVENT_GFX_VAR_4 (OBJ_EVENT_GFX_VARS + 0x4) +#define OBJ_EVENT_GFX_VAR_5 (OBJ_EVENT_GFX_VARS + 0x5) +#define OBJ_EVENT_GFX_VAR_6 (OBJ_EVENT_GFX_VARS + 0x6) +#define OBJ_EVENT_GFX_VAR_7 (OBJ_EVENT_GFX_VARS + 0x7) +#define OBJ_EVENT_GFX_VAR_8 (OBJ_EVENT_GFX_VARS + 0x8) +#define OBJ_EVENT_GFX_VAR_9 (OBJ_EVENT_GFX_VARS + 0x9) +#define OBJ_EVENT_GFX_VAR_A (OBJ_EVENT_GFX_VARS + 0xA) +#define OBJ_EVENT_GFX_VAR_B (OBJ_EVENT_GFX_VARS + 0xB) +#define OBJ_EVENT_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC) +#define OBJ_EVENT_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD) +#define OBJ_EVENT_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE) +#define OBJ_EVENT_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF) // 255 #define SHADOW_SIZE_S 0 #define SHADOW_SIZE_M 1 @@ -276,9 +277,9 @@ #define TRACKS_FOOT 1 #define TRACKS_BIKE_TIRE 2 -#define FIRST_DECORATION_SPRITE_GFX EVENT_OBJ_GFX_PICHU_DOLL +#define FIRST_DECORATION_SPRITE_GFX OBJ_EVENT_GFX_PICHU_DOLL -#define EVENT_OBJ_ID_PLAYER 0xFF -#define EVENT_OBJ_ID_CAMERA 0x7F +#define OBJ_EVENT_ID_PLAYER 0xFF +#define OBJ_EVENT_ID_CAMERA 0x7F #endif // GUARD_CONSTANTS_EVENT_OBJECTS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 1163e394f..4dd18880f 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -459,9 +459,9 @@ #define FLAG_DEFEATED_DEOXYS 0x1AC #define FLAG_BATTLED_DEOXYS 0x1AD -#define FLAG_HAS_EON_TICKET 0x1AE -#define FLAG_HAS_AURORA_TICKET 0x1AF -#define FLAG_HAS_OLD_SEA_MAP 0x1B0 +#define FLAG_SHOWN_EON_TICKET 0x1AE +#define FLAG_SHOWN_AURORA_TICKET 0x1AF +#define FLAG_SHOWN_OLD_SEA_MAP 0x1B0 #define FLAG_MOVE_TUTOR_TAUGHT_SWAGGER 0x1B1 #define FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT 0x1B2 #define FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER 0x1B3 @@ -506,7 +506,7 @@ #define FLAG_UNUSED_0x1DA 0x1DA // Unused Flag -#define FLAG_HAS_MYSTIC_TICKET 0x1DB +#define FLAG_SHOWN_MYSTIC_TICKET 0x1DB #define FLAG_DEFEATED_HO_OH 0x1DC #define FLAG_DEFEATED_LUGIA 0x1DD @@ -1353,22 +1353,24 @@ #define SYSTEM_FLAGS (TRAINER_FLAGS_END + 1) // 0x860 -#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0) // FLAG_0x860 -#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 1) -#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 2) -#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 4) -#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 5) -#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 6) +#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x0) // FLAG_0x860 +#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x1) +#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x2) +#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3) +#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x4) +#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x5) +#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x6) // Badges -#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 7) -#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 8) -#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 9) +#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x7) +#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x8) +#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x9) #define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0xA) #define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0xB) #define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0xC) #define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0xD) #define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0xE) +#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET) // Towns and Cities #define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF) @@ -1446,10 +1448,9 @@ #define FLAG_SYS_REGIROCK_PUZZLE_COMPLETED (SYSTEM_FLAGS + 0x50) #define FLAG_SYS_BRAILLE_REGICE_COMPLETED (SYSTEM_FLAGS + 0x51) #define FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED (SYSTEM_FLAGS + 0x52) -#define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53) +#define FLAG_ENABLE_SHIP_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x53) #define FLAG_LANDMARK_POKEMON_LEAGUE (SYSTEM_FLAGS + 0x54) - #define FLAG_LANDMARK_ISLAND_CAVE (SYSTEM_FLAGS + 0x55) #define FLAG_LANDMARK_DESERT_RUINS (SYSTEM_FLAGS + 0x56) #define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57) diff --git a/include/constants/global.h b/include/constants/global.h index d57307d9c..7c96de511 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -32,7 +32,7 @@ // capacities of various saveblock objects #define DAYCARE_MON_COUNT 2 #define POKEBLOCKS_COUNT 40 -#define EVENT_OBJECTS_COUNT 16 +#define OBJECT_EVENTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 300 #define VARS_COUNT 256 @@ -46,7 +46,7 @@ #define BAG_POKEBALLS_COUNT 16 #define BAG_TMHM_COUNT 64 #define BAG_BERRIES_COUNT 46 -#define EVENT_OBJECT_TEMPLATES_COUNT 64 +#define OBJECT_EVENT_TEMPLATES_COUNT 64 #define DECOR_MAX_SECRET_BASE 16 #define DECOR_MAX_PLAYERS_HOUSE 12 #define APPRENTICE_COUNT 4 diff --git a/include/constants/items.h b/include/constants/items.h index c23816901..fafcac8b1 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -478,13 +478,13 @@ #define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY #define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY -#define NUM_BERRY_MASTER_BERRIES LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1 -#define NUM_BERRY_MASTER_BERRIES_SKIPPED FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX -#define NUM_BERRY_MASTER_WIFE_BERRIES LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1 -#define NUM_KIRI_BERRIES LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1 -#define NUM_KIRI_BERRIES_SKIPPED FIRST_KIRI_BERRY - FIRST_BERRY_INDEX -#define NUM_ROUTE_114_MAN_BERRIES LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1 -#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX +#define NUM_BERRY_MASTER_BERRIES (LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1) +#define NUM_BERRY_MASTER_BERRIES_SKIPPED (FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX) +#define NUM_BERRY_MASTER_WIFE_BERRIES (LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1) +#define NUM_KIRI_BERRIES (LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1) +#define NUM_KIRI_BERRIES_SKIPPED (FIRST_KIRI_BERRY - FIRST_BERRY_INDEX) +#define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1) +#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX) #define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1)) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index c90e6465e..b5c60f64d 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -279,4 +279,7 @@ #define EVOS_PER_MON 5 +#define NUM_MALE_LINK_FACILITY_CLASSES 8 +#define NUM_FEMALE_LINK_FACILITY_CLASSES 8 + #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h index 7b780be01..5e64048dd 100644 --- a/include/constants/region_map_sections.h +++ b/include/constants/region_map_sections.h @@ -220,6 +220,8 @@ #define METLOC_IN_GAME_TRADE 0xFE #define METLOC_FATEFUL_ENCOUNTER 0xFF -#define KANTO_MAPSEC_COUNT (MAPSEC_SPECIAL_AREA - MAPSEC_DYNAMIC) +#define KANTO_MAPSEC_START MAPSEC_PALLET_TOWN +#define KANTO_MAPSEC_END MAPSEC_SPECIAL_AREA +#define KANTO_MAPSEC_COUNT (KANTO_MAPSEC_END - KANTO_MAPSEC_START + 1) #endif //GUARD_REGIONMAPSEC_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 7f622b6e3..4a38bde81 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -27,7 +27,7 @@ // object gfx id vars // These 0x10 vars are used to dynamically control a map object's sprite. // For example, the rival's sprite id is dynamically set based on the player's gender. -// See VarGetEventObjectGraphicsId(). +// See VarGetObjectEventGraphicsId(). #define VAR_OBJ_GFX_ID_0 0x4010 #define VAR_OBJ_GFX_ID_1 0x4011 #define VAR_OBJ_GFX_ID_2 0x4012 diff --git a/include/event_data.h b/include/event_data.h index 36d52561f..53999320f 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -24,7 +24,7 @@ bool32 CanResetRTC(void); u16 *GetVarPointer(u16 id); u16 VarGet(u16 id); bool8 VarSet(u16 id, u16 value); -u8 VarGetEventObjectGraphicsId(u8 id); +u8 VarGetObjectEventGraphicsId(u8 id); u8 *GetFlagPointer(u16 id); u8 FlagSet(u16 id); u8 FlagClear(u16 id); diff --git a/include/event_obj_lock.h b/include/event_obj_lock.h deleted file mode 100644 index 037c0080d..000000000 --- a/include/event_obj_lock.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUARD_EVENT_OBJ_LOCK_H -#define GUARD_EVENT_OBJ_LOCK_H - -bool8 sub_80983C4(void); -void ScriptFreezeEventObjects(void); -bool8 sub_809847C(void); -void LockSelectedEventObject(void); -void sub_8098630(void); -bool8 sub_8098734(void); -void ScriptUnfreezeEventObjects(void); -void sub_8098524(void); - -#endif // GUARD_EVENT_OBJ_LOCK_H diff --git a/include/event_object_lock.h b/include/event_object_lock.h new file mode 100644 index 000000000..a3b350019 --- /dev/null +++ b/include/event_object_lock.h @@ -0,0 +1,13 @@ +#ifndef GUARD_EVENT_OBJECT_LOCK_H +#define GUARD_EVENT_OBJECT_LOCK_H + +bool8 sub_80983C4(void); +void ScriptFreezeObjectEvents(void); +bool8 sub_809847C(void); +void LockSelectedObjectEvent(void); +void sub_8098630(void); +bool8 sub_8098734(void); +void ScriptUnfreezeObjectEvents(void); +void sub_8098524(void); + +#endif // GUARD_EVENT_OBJECT_LOCK_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 957d62174..f0caa38aa 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -1,5 +1,5 @@ -#ifndef GUARD_FIELD_EVENT_OBJ_H -#define GUARD_FIELD_EVENT_OBJ_H +#ifndef GUARD_EVENT_OBJECT_MOVEMENT_H +#define GUARD_EVENT_OBJECT_MOVEMENT_H enum SpinnerRunnerFollowPatterns { @@ -49,80 +49,80 @@ struct PairedPalettes const u16 *data; }; -struct LockedAnimEventObjects +struct LockedAnimObjectEvents { - u8 eventObjectIds[EVENT_OBJECTS_COUNT]; + u8 objectEventIds[OBJECT_EVENTS_COUNT]; u8 count; }; -extern const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[]; -extern const struct OamData gEventObjectBaseOam_32x8; -extern const struct OamData gEventObjectBaseOam_32x32; +extern const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[]; +extern const struct OamData gObjectEventBaseOam_32x8; +extern const struct OamData gObjectEventBaseOam_32x32; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; extern const u8 gReflectionEffectPaletteMap[]; -extern const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[]; +extern const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[]; extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[]; extern const u8 *const gBerryTreePaletteSlotTablePointers[]; -void ResetEventObjects(void); +void ResetObjectEvents(void); u8 GetMoveDirectionAnimNum(u8); -u8 GetEventObjectIdByLocalIdAndMap(u8, u8, u8); -bool8 TryGetEventObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); -u8 GetEventObjectIdByXY(s16, s16); -void SetEventObjectDirection(struct EventObject *, u8); -u8 GetFirstInactiveEventObjectId(void); -void RemoveEventObjectByLocalIdAndMap(u8, u8, u8); +u8 GetObjectEventIdByLocalIdAndMap(u8, u8, u8); +bool8 TryGetObjectEventIdByLocalIdAndMap(u8, u8, u8, u8 *); +u8 GetObjectEventIdByXY(s16, s16); +void SetObjectEventDirection(struct ObjectEvent *, u8); +u8 GetFirstInactiveObjectEventId(void); +void RemoveObjectEventByLocalIdAndMap(u8, u8, u8); void LoadPlayerObjectReflectionPalette(u16, u8); void LoadSpecialObjectReflectionPalette(u16, u8); -void TryMoveEventObjectToMapCoords(u8, u8, u8, s16, s16); +void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16); void PatchObjectPalette(u16, u8); void sub_808E16C(s16, s16); void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); void sub_8092FF0(s16, s16, s16 *, s16 *); u8 GetFaceDirectionAnimNum(u8); void sub_80930E0(s16 *, s16 *, s16, s16); -void EventObjectClearHeldMovement(struct EventObject *); -void EventObjectClearHeldMovementIfActive(struct EventObject *); -void TrySpawnEventObjects(s16, s16); +void ObjectEventClearHeldMovement(struct ObjectEvent *); +void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *); +void TrySpawnObjectEvents(s16, s16); u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction); -u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); -u8 TrySpawnEventObject(u8, u8, u8); -u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z); -u8 SpawnSpecialEventObject(struct EventObjectTemplate *); +u8 AddPseudoObjectEvent(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); +u8 TrySpawnObjectEvent(u8, u8, u8); +u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z); +u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *); void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); -void EventObjectSetGraphicsId(struct EventObject *, u8 graphicsId); -void EventObjectTurn(struct EventObject *, u8); -void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8); -const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId); +void ObjectEventSetGraphicsId(struct ObjectEvent *, u8 graphicsId); +void ObjectEventTurn(struct ObjectEvent *, u8); +void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8); +const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); void FreeAndReserveObjectSpritePalettes(void); void sub_808E82C(u8, u8, u8, s16, s16); void sub_808E7E4(u8, u8, u8); void sub_808E78C(u8, u8, u8, u8); void sub_808E75C(s16, s16); -void EventObjectGetLocalIdAndMap(struct EventObject *eventObject, void *localId, void *mapNum, void *mapGroup); -void ShiftEventObjectCoords(struct EventObject *, s16, s16); -void MoveEventObjectToMapCoords(struct EventObject *, s16, s16); -void TryOverrideEventObjectTemplateCoords(u8, u8, u8); -void InitEventObjectPalettes(u8 palSlot); -void UpdateEventObjectCurrentMovement(struct EventObject *, struct Sprite *, bool8(struct EventObject *, struct Sprite *)); -u8 EventObjectFaceOppositeDirection(struct EventObject *, u8); +void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup); +void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16); +void MoveObjectEventToMapCoords(struct ObjectEvent *, s16, s16); +void TryOverrideObjectEventTemplateCoords(u8, u8, u8); +void InitObjectEventPalettes(u8 palSlot); +void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *)); +u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8); u8 GetOppositeDirection(u8); u8 GetWalkInPlaceFastestMovementAction(u32); u8 GetWalkInPlaceFastMovementAction(u32); u8 GetWalkInPlaceNormalMovementAction(u32); u8 GetWalkInPlaceSlowMovementAction(u32); -u8 GetCollisionAtCoords(struct EventObject *, s16, s16, u32); +u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); -bool8 EventObjectIsHeldMovementActive(struct EventObject *); -u8 EventObjectClearHeldMovementIfFinished(struct EventObject *); -u8 GetEventObjectIdByXYZ(u16 x, u16 y, u8 z); -void SetTrainerMovementType(struct EventObject *eventObject, u8 movementType); +bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *); +u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *); +u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z); +void SetTrainerMovementType(struct ObjectEvent *objectEvent, u8 movementType); u8 GetTrainerFacingDirectionMovementType(u8 direction); -const u8 *GetEventObjectScriptPointerByEventObjectId(u8 eventObjectId); -u8 GetCollisionFlagsAtCoords(struct EventObject *eventObject, s16 x, s16 y, u8 direction); +const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId); +u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction); u8 GetFaceDirectionMovementAction(u32); u8 GetWalkNormalMovementAction(u32); u8 GetWalkFastMovementAction(u32); @@ -145,56 +145,56 @@ u8 GetFishingDirectionAnimNum(u8 direction); u8 GetAcroWheelieDirectionAnimNum(u8 direction); u8 GetFishingBiteDirectionAnimNum(u8 direction); u8 GetFishingNoCatchDirectionAnimNum(u8 direction); -bool8 EventObjectSetHeldMovement(struct EventObject *eventObject, u8 specialAnimId); -void EventObjectForceSetHeldMovement(struct EventObject *eventObject, u8 movementActionId); -bool8 EventObjectIsMovementOverridden(struct EventObject *eventObject); -u8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject); -u8 EventObjectGetHeldMovementActionId(struct EventObject *eventObject); -void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObject, u8 movementType); -void OverrideTemplateCoordsForEventObject(const struct EventObject *eventObject); -void ShiftStillEventObjectCoords(struct EventObject *pObject); -void EventObjectMoveDestCoords(struct EventObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1); +bool8 ObjectEventSetHeldMovement(struct ObjectEvent *objectEvent, u8 specialAnimId); +void ObjectEventForceSetHeldMovement(struct ObjectEvent *objectEvent, u8 movementActionId); +bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent); +u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent); +u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent); +void TryOverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent, u8 movementType); +void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent); +void ShiftStillObjectEventCoords(struct ObjectEvent *pObject); +void ObjectEventMoveDestCoords(struct ObjectEvent *pObject, u32 unk_19, s16 *pInt, s16 *pInt1); u8 AddCameraObject(u8 linkedSpriteId); -void UpdateEventObjectsForCameraUpdate(s16 x, s16 y); +void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); u8 GetWalkSlowMovementAction(u32); u8 GetJumpMovementAction(u32); bool8 AreZCoordsCompatible(u8, u8); u8 ZCoordToPriority(u8); -void EventObjectUpdateZCoord(struct EventObject *pObject); +void ObjectEventUpdateZCoord(struct ObjectEvent *pObject); void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); bool8 IsZCoordMismatchAt(u8, s16, s16); -void UnfreezeEventObject(struct EventObject *); -u8 FindLockedEventObjectIndex(struct EventObject *); +void UnfreezeObjectEvent(struct ObjectEvent *); +u8 FindLockedObjectEventIndex(struct ObjectEvent *); bool8 obj_npc_ministep(struct Sprite *sprite); bool8 sub_80976EC(struct Sprite *sprite); void sub_80976DC(struct Sprite *, u8); void sub_809783C(struct Sprite *, u8, u8, u8); -void DoShadowFieldEffect(struct EventObject *); +void DoShadowFieldEffect(struct ObjectEvent *); u8 sub_809785C(struct Sprite *); u8 sub_80978E4(struct Sprite *); void SetAndStartSpriteAnim(struct Sprite *, u8, u8); bool8 SpriteAnimEnded(struct Sprite *); void sub_8097750(struct Sprite *); bool8 sub_8097758(struct Sprite *); -void CreateLevitateMovementTask(struct EventObject *); +void CreateLevitateMovementTask(struct ObjectEvent *); void DestroyExtraMovementTask(u8); -void UnfreezeEventObjects(void); -void FreezeEventObjectsExceptOne(u8 eventObjectId); +void UnfreezeObjectEvents(void); +void FreezeObjectEventsExceptOne(u8 objectEventId); void sub_8097B78(u8, u8); void sub_8098074(u8 var1, u8 var2); -void FreezeEventObjects(void); -bool8 FreezeEventObject(struct EventObject *eventObject); +void FreezeObjectEvents(void); +bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent); u8 GetMoveDirectionFastAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8); u8 GetLedgeJumpDirection(s16, s16, u8); void CameraObjectSetFollowedObjectId(u8 objectId); u16 GetObjectPaletteTag(u8 palSlot); -void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible); +void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); s16 sub_809773C(s16 a1); s16 sub_8097728(s16 a1); void CameraObjectReset2(void); -u8 EventObjectGetBerryTreeId(u8 eventObjectId); +u8 ObjectEventGetBerryTreeId(u8 objectEventId); void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup); bool8 IsBerryTreeSparkling(u8, u8, u8); @@ -259,13 +259,13 @@ u8 GetJumpMovementAction(u32); u8 GetJump2MovementAction(u32); u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority); -u8 MovementType_WanderAround_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_WanderAround_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WanderAround_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_WanderAround_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_WanderAround_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_WanderAround_Step5(struct EventObject *, struct Sprite *); -u8 MovementType_WanderAround_Step6(struct EventObject *, struct Sprite *); +u8 MovementType_WanderAround_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderAround_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderAround_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderAround_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderAround_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderAround_Step5(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderAround_Step6(struct ObjectEvent *, struct Sprite *); u8 GetVectorDirection(s16, s16, s16, s16); u8 GetLimitedVectorDirection_SouthNorth(s16, s16, s16, s16); u8 GetLimitedVectorDirection_WestEast(s16, s16, s16, s16); @@ -277,147 +277,147 @@ u8 GetLimitedVectorDirection_SouthNorthWest(s16, s16, s16, s16); u8 GetLimitedVectorDirection_SouthNorthEast(s16, s16, s16, s16); u8 GetLimitedVectorDirection_NorthWestEast(s16, s16, s16, s16); u8 GetLimitedVectorDirection_SouthWestEast(s16, s16, s16, s16); -u8 MovementType_LookAround_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_LookAround_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_LookAround_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_LookAround_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_LookAround_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step5(struct EventObject *, struct Sprite *); -u8 MovementType_WanderUpAndDown_Step6(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step5(struct EventObject *, struct Sprite *); -u8 MovementType_WanderLeftAndRight_Step6(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDirection_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDirection_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDirection_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndUp_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndUp_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndUp_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndUp_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceLeftAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceLeftAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceLeftAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceLeftAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceLeftAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndLeft_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndLeft_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndLeft_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndLeft_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndLeft_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndLeft_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndLeft_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndLeft_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndLeft_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndLeft_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndLeft_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndLeft_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownUpAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpLeftAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpLeftAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpLeftAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpLeftAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceUpLeftAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownLeftAndRight_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownLeftAndRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownLeftAndRight_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownLeftAndRight_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_FaceDownLeftAndRight_Step4(struct EventObject *, struct Sprite *); -u8 MovementType_RotateCounterclockwise_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_RotateCounterclockwise_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_RotateCounterclockwise_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_RotateCounterclockwise_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_RotateClockwise_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_RotateClockwise_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_RotateClockwise_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_RotateClockwise_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_WalkBackAndForth_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_WalkBackAndForth_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkBackAndForth_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_WalkBackAndForth_Step3(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_CopyPlayer_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_CopyPlayer_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_CopyPlayer_Step2(struct EventObject *, struct Sprite *); -bool8 CopyablePlayerMovement_None(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_FaceDirection(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_GoSpeed0(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_GoSpeed1(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_GoSpeed2(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_Slide(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 cph_IM_DIFFERENT(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_GoSpeed4(struct EventObject *, struct Sprite *, u8, bool8(u8)); -bool8 CopyablePlayerMovement_Jump(struct EventObject *, struct Sprite *, u8, bool8(u8)); -u8 MovementType_CopyPlayerInGrass_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_Hidden_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_WalkInPlace_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_MoveInPlace_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_WalkSlowlyInPlace_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_JogInPlace_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_RunInPlace_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_Invisible_Step0(struct EventObject *, struct Sprite *); -u8 MovementType_Invisible_Step1(struct EventObject *, struct Sprite *); -u8 MovementType_Invisible_Step2(struct EventObject *, struct Sprite *); +u8 MovementType_LookAround_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_LookAround_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_LookAround_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_LookAround_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_LookAround_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step5(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderUpAndDown_Step6(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step5(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WanderLeftAndRight_Step6(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDirection_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDirection_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDirection_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndUp_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndUp_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndUp_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndLeft_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndLeft_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndLeft_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndLeft_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndLeft_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndLeft_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndLeft_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndLeft_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndLeft_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownUpAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceUpLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FaceDownLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateCounterclockwise_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateCounterclockwise_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateCounterclockwise_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateCounterclockwise_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateClockwise_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateClockwise_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateClockwise_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RotateClockwise_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkBackAndForth_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkBackAndForth_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkBackAndForth_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_CopyPlayer_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_CopyPlayer_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_CopyPlayer_Step2(struct ObjectEvent *, struct Sprite *); +bool8 CopyablePlayerMovement_None(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_GoSpeed1(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 cph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_Hidden_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_JogInPlace_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_RunInPlace_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_Invisible_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_Invisible_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_Invisible_Step2(struct ObjectEvent *, struct Sprite *); void sub_8097C44(u8 var, bool32 var2); bool32 sub_8097C8C(u8 var); void sub_8097BB4(u8 var1, u8 graphicsId); void sub_8097CC4(u8 var1, u8 var2); bool32 sub_8097D9C(u8 var); -#endif //GUARD_FIELD_EVENT_OBJ_H +#endif //GUARD_EVENT_OBJECT_MOVEMENT_H diff --git a/include/event_scripts.h b/include/event_scripts.h index a56ab89e0..d147dd4f1 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -4,7 +4,7 @@ extern const u8 EventScript_TestSignpostMsg[]; extern const u8 EventScript_TryGetTrainerScript[]; extern const u8 EventScript_271354[]; -extern const u8 EventScript_DoTainerBattle[]; +extern const u8 EventScript_DoNoIntroTrainerBattle[]; extern const u8 EventScript_TryDoDoubleTrainerBattle[]; extern const u8 EventScript_TryDoNormalTrainerBattle[]; extern const u8 EventScript_TryDoDoubleRematchBattle[]; diff --git a/include/faraway_island.h b/include/faraway_island.h index 4946bda8a..084b5a277 100755 --- a/include/faraway_island.h +++ b/include/faraway_island.h @@ -2,9 +2,9 @@ #define GUARD_FARAWAY_ISLAND_H u32 GetMewMoveDirection(void); -bool8 sub_81D4A58(struct EventObject*); +bool8 sub_81D4A58(struct ObjectEvent*); void UpdateFarawayIslandStepCounter(void); -bool8 EventObjectIsFarawayIslandMew(struct EventObject *); +bool8 ObjectEventIsFarawayIslandMew(struct ObjectEvent *); bool8 IsMewPlayingHideAndSeek(void); #endif // GUARD_FARAWAY_ISLAND_H diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index feb20cef6..f722a6063 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -29,7 +29,7 @@ u8 *sub_80682A8(struct MapPosition *, u8, u8); void overworld_poison_timer_set(void); void RestartWildEncounterImmunitySteps(void); u8 *sub_8068E24(struct MapPosition *); -const u8 *GetEventObjectScriptPointerPlayerFacing(void); +const u8 *GetObjectEventScriptPointerPlayerFacing(void); bool8 sub_8068870(u16 a); bool8 sub_8068894(void); bool8 sub_8068A64(struct MapPosition *, u16); diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 6ea9771e6..8257bc110 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -9,11 +9,11 @@ u8 CreateWarpArrowSprite(void); u8 sub_8155800(u8 oldSpriteId); void sub_81555AC(u8, u8); -bool8 sub_8155DA0(struct EventObject *); -void sub_8155D78(struct EventObject *); +bool8 sub_8155DA0(struct ObjectEvent *); +void sub_8155D78(struct ObjectEvent *); void StartAshFieldEffect(s16, s16, u16, s16); -void SetUpReflection(struct EventObject*, struct Sprite*, u8); -u32 StartFieldEffectForEventObject(u8, struct EventObject*); +void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8); +u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*); u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); void sub_8155F80(struct Sprite*); void UpdateShadowFieldEffect(struct Sprite*); diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index f521737b7..5e5a2361f 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -29,7 +29,7 @@ void PlayerAcroTurnJump(u8 a); void PlayerSetAnimId(u8 a, u8 b); bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction); void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction); -u8 CheckForEventObjectCollision(struct EventObject *a, s16 b, s16 c, u8 d, u8 e); +u8 CheckForObjectEventCollision(struct ObjectEvent *a, s16 b, s16 c, u8 d, u8 e); u8 PlayerGetZCoord(void); void SetPlayerAvatarTransitionFlags(u16 a); void sub_808BCE8(void); @@ -63,6 +63,6 @@ bool32 sub_808D1B4(void); bool32 sub_808D1E8(void); void SetPlayerInvisibility(bool8 invisible); u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y); -void StartFishing(u8 taskId); +void StartFishing(u8 rod); #endif // GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/frontier_util.h b/include/frontier_util.h index d6cdb3a62..f445949ef 100644 --- a/include/frontier_util.h +++ b/include/frontier_util.h @@ -16,10 +16,10 @@ u8 GetFrontierBrainTrainerPicIndex(void); u8 GetFrontierBrainTrainerClass(void); void CopyFrontierBrainTrainerName(u8 *dst); bool8 IsFrontierBrainFemale(void); -void SetFrontierBrainEventObjGfx_2(void); +void SetFrontierBrainObjEventGfx_2(void); void CreateFrontierBrainPokemon(void); u16 GetFrontierBrainMonSpecies(u8 monId); -void SetFrontierBrainEventObjGfx(u8 facility); +void SetFrontierBrainObjEventGfx(u8 facility); u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId); u8 GetFrontierBrainMonNature(u8 monId); u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId); diff --git a/include/gba/defines.h b/include/gba/defines.h index 9bd695aaa..2df9a3feb 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -9,6 +9,7 @@ #define BSS_DATA __attribute__((section(".bss"))) #define IWRAM_DATA __attribute__((section("iwram_data"))) #define EWRAM_DATA __attribute__((section("ewram_data"))) +#define UNUSED __attribute__((unused)) #if MODERN #define NOINLINE __attribute__((noinline)) diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 3913b96d8..af2be9c77 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -50,7 +50,7 @@ struct BackupMapLayout u16 *map; }; -struct EventObjectTemplate +struct ObjectEventTemplate { /*0x00*/ u8 localId; /*0x01*/ u8 graphicsId; @@ -102,11 +102,11 @@ struct BgEvent struct MapEvents { - u8 eventObjectCount; + u8 objectEventCount; u8 warpCount; u8 coordEventCount; u8 bgEventCount; - struct EventObjectTemplate *eventObjects; + struct ObjectEventTemplate *objectEvents; struct WarpEvent *warps; struct CoordEvent *coordEvents; struct BgEvent *bgEvents; @@ -153,7 +153,7 @@ struct MapHeader #define SHOW_MAP_NAME_ENABLED ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME) -struct EventObject +struct ObjectEvent { /*0x00*/ u32 active:1; u32 singleMovementActive:1; @@ -216,7 +216,7 @@ struct EventObject /*size = 0x24*/ }; -struct EventObjectGraphicsInfo +struct ObjectEventGraphicsInfo { /*0x00*/ u16 tileTag; /*0x02*/ u16 paletteTag1; @@ -273,7 +273,7 @@ enum COLLISION_OUTSIDE_RANGE, COLLISION_IMPASSABLE, COLLISION_ELEVATION_MISMATCH, - COLLISION_EVENT_OBJECT, + COLLISION_OBJECT_EVENT, COLLISION_STOP_SURFING, COLLISION_LEDGE_JUMP, COLLISION_PUSHED_BOULDER, @@ -308,7 +308,7 @@ struct PlayerAvatar /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving. /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning. /*0x04*/ u8 spriteId; - /*0x05*/ u8 eventObjectId; + /*0x05*/ u8 objectEventId; /*0x06*/ bool8 preventStep; /*0x07*/ u8 gender; /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie @@ -330,8 +330,8 @@ struct Camera s32 y; }; -extern struct EventObject gEventObjects[EVENT_OBJECTS_COUNT]; -extern u8 gSelectedEventObject; +extern struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT]; +extern u8 gSelectedObjectEvent; extern struct MapHeader gMapHeader; extern struct PlayerAvatar gPlayerAvatar; extern struct Camera gCamera; diff --git a/include/global.h b/include/global.h index fa28b16cf..34d897a8c 100644 --- a/include/global.h +++ b/include/global.h @@ -921,8 +921,8 @@ struct SaveBlock1 /*0x9C2*/ u8 field_9C2[6]; /*0x9C8*/ u16 trainerRematchStepCounter; /*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES]; - /*0xA30*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT]; - /*0xC70*/ struct EventObjectTemplate eventObjectTemplates[EVENT_OBJECT_TEMPLATES_COUNT]; + /*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT]; + /*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT]; /*0x1270*/ u8 flags[FLAGS_COUNT]; /*0x139C*/ u16 vars[VARS_COUNT]; /*0x159C*/ u32 gameStats[NUM_GAME_STATS]; diff --git a/include/graphics.h b/include/graphics.h index a8d4453b0..161ef4271 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4142,6 +4142,9 @@ extern const u32 gBattleWindowTextPalette[]; extern const u32 gContest2Pal[]; +extern const u32 gSmokescreenImpactTiles[]; +extern const u32 gSmokescreenImpactPalette[]; + extern const u32 gBattleAnimSpriteGfx_Bone[]; extern const u32 gBattleAnimSpriteGfx_Spark[]; extern const u32 gBattleAnimSpriteGfx_Pencil[]; @@ -4631,15 +4634,15 @@ extern const u32 gBattleAnimSpritePal_ThoughtBubble[]; extern const u32 gBattleAnimSpritePal_MagentaHeart[]; extern const u32 gBattleAnimSpritePal_ElectricOrbs[]; extern const u32 gBattleAnimSpritePal_MovementWaves[]; -extern const u32 gUnknown_08C249D0[]; -extern const u32 gUnknown_08C249F8[]; +extern const u32 gBattleAnimBgPalette_ScaryFace[]; +extern const u32 gBattleAnimBgImage_ScaryFace[]; extern const u32 gBattleAnimSpritePal_RedHeart[]; extern const u32 gBattleAnimSpritePal_RedOrb[]; extern const u32 gBattleAnimSpritePal_EyeSparkle[]; extern const u32 gBattleAnimSpritePal_PinkHeart[]; -extern const u32 gUnknown_08C232E0; -extern const u32 gUnknown_08C23D50; -extern const u32 gUnknown_08C23D78; +extern const u32 gBattleAnimBgImage_Attract; +extern const u32 gBattleAnimBgPalette_Attract; +extern const u32 gBattleAnimBgTilemap_Attract; extern const u32 gBattleAnimSpritePal_Angel[]; extern const u32 gBattleAnimSpritePal_Devil[]; extern const u32 gBattleAnimSpritePal_Swipe[]; @@ -4744,9 +4747,9 @@ extern const u32 gBattleAnimBgTilemap_Drill[]; extern const u32 gBattleAnimBgTilemap_DrillContests[]; extern const u32 gBattleAnimBgTilemap_HighspeedOpponent[]; extern const u32 gBattleAnimBgTilemap_HighspeedPlayer[]; -extern const u32 gUnknown_08C2A634[]; -extern const u32 gUnknown_08C2A6D4[]; -extern const u32 gUnknown_08C2A6EC[]; +extern const u32 gBattleAnimMaskImage_LightBeam[]; +extern const u32 gBattleAnimMaskPalette_LightBeam[]; +extern const u32 gBattleAnimMaskTilemap_LightBeam[]; extern const u32 gBattleAnimBgTilemap_Thunder[]; extern const u32 gBattleAnimBgTilemap_GuillotineOpponent[]; extern const u32 gBattleAnimBgTilemap_GuillotinePlayer[]; @@ -4793,13 +4796,15 @@ extern const u32 gContestJudgeGfx[]; extern const u32 gContestJudgeSymbolsGfx[]; extern const u32 gContest3Pal[]; -extern const u32 gUnknown_08D95E00[]; -extern const u32 gUnknown_08D960D0[]; -extern const u32 gUnknown_08D963A4[]; +extern const u32 gBattleAnimBgTilemap_SurfOpponent[]; +extern const u32 gBattleAnimBgTilemap_SurfPlayer[]; +extern const u32 gBattleAnimBgTilemap_SurfContest[]; extern const u32 gBattleAnimBgImage_Surf[]; extern const u32 gBattleAnimBgPalette_Surf[]; extern const u32 gBattleAnimBackgroundImageMuddyWater_Pal[]; +extern const u32 gEnemyMonShadow_Gfx[]; + extern const u32 gBattleAnimFogTilemap[]; extern const u32 gUsePokeblockGraph_Gfx[]; @@ -4819,10 +4824,57 @@ extern const u32 sBlenderCenterGfx[]; extern const u32 gUnknown_08D91DB8[]; extern const u32 gUnknown_08D927EC[]; +// Slot Machine extern const u32 gSlotMachineReelTime_Gfx[]; +extern const u8 gSlotMachineReelTimeNumber0[]; +extern const u8 gSlotMachineReelTimeNumber1[]; +extern const u8 gSlotMachineReelTimeNumber2[]; +extern const u8 gSlotMachineReelTimeNumber3[]; +extern const u8 gSlotMachineReelTimeNumber4[]; +extern const u8 gSlotMachineReelTimeNumber5[]; +extern const u8 gSlotMachineReelTimeShadow[]; +extern const u8 gUnknown_08DD1A18[]; +extern const u8 gSlotMachineReelTimeLargeBolt0[]; +extern const u8 gSlotMachineReelTimeLargeBolt1[]; +extern const u8 gSlotMachineReelTimePikaAura[]; +extern const u8 gSlotMachineReelTimeExplosion0[]; +extern const u8 gSlotMachineReelTimeExplosion1[]; +extern const u8 gSlotMachineReelTimeDuck[]; +extern const u8 gSlotMachineReelTimeSmoke[]; +extern const u8 gSlotMachineReelTimeBolt[]; +extern const u8 gSlotMachineReelSymbol1Tiles[]; +extern const u8 gSlotMachineReelSymbol2Tiles[]; +extern const u8 gSlotMachineReelSymbol3Tiles[]; +extern const u8 gSlotMachineReelSymbol4Tiles[]; +extern const u8 gSlotMachineReelSymbol5Tiles[]; +extern const u8 gSlotMachineReelSymbol6Tiles[]; +extern const u8 gSlotMachineReelSymbol7Tiles[]; +extern const u8 gSlotMachineNumber0Tiles[]; +extern const u8 gSlotMachineNumber1Tiles[]; +extern const u8 gSlotMachineNumber2Tiles[]; +extern const u8 gSlotMachineNumber3Tiles[]; +extern const u8 gSlotMachineNumber4Tiles[]; +extern const u8 gSlotMachineNumber5Tiles[]; +extern const u8 gSlotMachineNumber6Tiles[]; +extern const u8 gSlotMachineNumber7Tiles[]; +extern const u8 gSlotMachineNumber8Tiles[]; +extern const u8 gSlotMachineNumber9Tiles[]; +extern const u8 gUnknown_08DD19F8[]; +extern const u32 gSlotMachineMenu_Gfx[]; +extern const u16 gSlotMachineMenu_Tilemap[]; +extern const u16 gUnknown_08DCEC70[]; +extern const u16 gSlotMachineMenu_Pal[]; +extern const u16 gUnknown_08DCF230[]; +extern const u16 gUnknown_08DCF170[]; +extern const u16 gUnknown_08DCF1B0[]; +extern const u16 gSlotMachineReelTime_Pal[]; +extern const u16 gUnknown_08DCF1F0[]; +extern const u16 gUnknown_08DCF210[]; +extern const u16 gUnknown_08DCF230[]; +extern const u16 gUnknown_08DCF190[]; -extern const u32 gUnknown_08D8D410[]; -extern const u32 gUnknown_08D8D58C[]; +extern const u32 gBattleAnimBgTilemap_Sandstorm[]; +extern const u32 gBattleAnimBgImage_Sandstorm[]; // Pokedex Area Screen extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[]; @@ -4877,7 +4929,6 @@ extern const u32 gRouletteNumbersTiles[]; extern const u32 gRouletteMultiplierTiles[]; // Contest Link -extern const u32 gUnknown_0858D6B0[]; extern const u32 gUnknown_08C19588[]; extern const u32 gUnknown_08C19EEC[]; extern const u32 gUnknown_08C1A000[]; @@ -4896,18 +4947,18 @@ extern const u16 gUnknown_08DC64FC[]; extern const u16 gUnknown_08DC6510[]; // Trainer Card. -extern const u16 gEmeraldTrainerCard0Star_Pal[]; -extern const u32 gEmeraldTrainerCard_Gfx[]; -extern const u16 gFireRedTrainerCard0Star_Pal[]; -extern const u32 gFireRedTrainerCard_Gfx[]; -extern const u32 gUnknown_08DD2AE0[]; -extern const u32 gUnknown_08DD21B0[]; -extern const u32 gUnknown_08DD2D30[]; -extern const u32 gUnknown_08DD2010[]; -extern const u32 gUnknown_08DD2B78[]; -extern const u32 gUnknown_08DD228C[]; -extern const u32 gUnknown_08DD2E5C[]; -extern const u32 gUnknown_08DD1F78[]; +extern const u16 gHoennTrainerCard0Star_Pal[]; +extern const u32 gHoennTrainerCard_Gfx[]; +extern const u16 gKantoTrainerCard0Star_Pal[]; +extern const u32 gKantoTrainerCard_Gfx[]; +extern const u32 gKantoTrainerCardBg_Tilemap[]; +extern const u32 gHoennTrainerCardBack_Tilemap[]; +extern const u32 gKantoTrainerCardBack_Tilemap[]; +extern const u32 gHoennTrainerCardFront_Tilemap[]; +extern const u32 gKantoTrainerCardFront_Tilemap[]; +extern const u32 gHoennTrainerCardFrontLink_Tilemap[]; +extern const u32 gKantoTrainerCardFrontLink_Tilemap[]; +extern const u32 gHoennTrainerCardBg_Tilemap[]; // Frontier Pass extern const u32 gUnknown_08DE08C8[]; @@ -4955,6 +5006,7 @@ extern const u16 gUsePokeblockCondition_Pal[]; // Berry Crush extern const u32 gUnknown_08DE34B8[]; extern const u16 gUnknown_08DE3398[]; +extern const u32 gUnknown_08DE3FD4[]; // Pokenav extern const u32 gPokenavMessageBox_Gfx[]; diff --git a/include/librfu.h b/include/librfu.h index 39cc68319..1baa4253e 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -4,10 +4,10 @@ #include "global.h" #include "main.h" -/* TODOs: +#define LIBRFU_VERSION 1026 + +/* TODOs: * - documentation - * - decompile librfu_intr.s once arm support is back again - (for internal structs not documented in SDK) * - check if any field needs to be volatile * - check if field names make sense */ @@ -70,6 +70,7 @@ #define ID_CPR_POLL_REQ 0x0033 #define ID_CPR_END_REQ 0x0034 #define ID_UNK35_REQ 0x0035 // not defined in SDK header +#define ID_UNK36_REQ 0x0036 // not defined in SDK header #define ID_RESUME_RETRANSMIT_AND_CHANGE_REQ 0x0037 #define ID_STOP_MODE_REQ 0x003d #define ID_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA_REQ 0x00ff // When the AGB is the clock slave, the RFU generates an informational notice, and an automatically started DMA, such as HDMA, is generated at the instant the AGB is being returned as the clock master. This ID is notified by a REQ callback when the exchange of this information (REQ command) fails. @@ -89,8 +90,13 @@ #define RFU_MBOOT_DOWNLOADER_SERIAL_NO 0x0000 // The game serial number of the multi-boot downloader (programs that boot without a Game Pak) +#if LIBRFU_VERSION >= 1028 #define RFU_API_BUFF_SIZE_RAM 0x0e8c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) #define RFU_API_BUFF_SIZE_ROM 0x052c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) +#else +#define RFU_API_BUFF_SIZE_RAM 0x0e64 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) +#define RFU_API_BUFF_SIZE_ROM 0x0504 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) +#endif #define RFU_CHILD_MAX 4 // Maximum number of slaves that can be connected to one parent device @@ -303,7 +309,11 @@ struct STWIStatus u8 ackActiveCommand; u8 timerSelect; u8 unk_b; - s32 timerState; // this field is u32 in firered +#if LIBRFU_VERSION >= 1026 + s32 timerState; +#else + u32 timerState; +#endif vu8 timerActive; u8 unk_11; vu16 error; @@ -313,10 +323,10 @@ struct STWIStatus u8 unk_17; void (*callbackM)(); void (*callbackS)(u16); - void (*unk_20)(void); + void (*callbackID)(void); union RfuPacket *txPacket; union RfuPacket *rxPacket; - vu8 unk_2c; + vu8 sending; }; // This struct is used as u8 array in SDK. @@ -451,54 +461,32 @@ struct RfuStatic u8 nullFrameCount; u8 emberCount; u8 SCStartFlag; - u8 linkEmergencyFlag[4]; - u8 lsFixedCount[4]; - u16 cidBak[4]; - u16 unk_1a; + u8 linkEmergencyFlag[RFU_CHILD_MAX]; + u8 lsFixedCount[RFU_CHILD_MAX]; + u16 cidBak[RFU_CHILD_MAX]; + u16 linkEmergencyLimit; u16 reqResult; u16 tryPid; u16 watchdogTimer; u32 totalPacketSize; }; -struct RfuSIO32Id -{ - u8 unk0; - u8 unk1; - u16 unk2; - u16 unk4; - u16 unk6; - u16 unk8; // unused - u16 unkA; -}; - -struct RfuAPIBuffer -{ - struct RfuLinkStatus linkStatus; - struct RfuStatic static_; - struct RfuFixed fixed; - struct RfuSlotStatusNI NI[RFU_CHILD_MAX]; - struct RfuSlotStatusUNI UNI[RFU_CHILD_MAX]; - struct RfuIntrStruct intr; -}; - extern struct STWIStatus *gSTWIStatus; extern struct RfuLinkStatus *gRfuLinkStatus; extern struct RfuStatic *gRfuStatic; extern struct RfuFixed *gRfuFixed; extern struct RfuSlotStatusNI *gRfuSlotStatusNI[RFU_CHILD_MAX]; extern struct RfuSlotStatusUNI *gRfuSlotStatusUNI[RFU_CHILD_MAX]; -extern struct RfuSIO32Id gRfuSIO32Id; -// librfu_s32id -s32 AgbRFU_checkID(u8); +// librfu_sio32id +s32 AgbRFU_checkID(u8 maxTries); // Arguments with "bm..." specify slots of the form (0x01 << slot number) that are the object of a function operation. // librfu_rfu // API Initialization and Initial Settings // API Initialization -u16 rfu_initializeAPI(struct RfuAPIBuffer *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam); +u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam); // Set Timer Interrupt void rfu_setTimerInterrupt(u8 timerNo, IntrFunc *timerIntrTable_p); // Resident Function called from within a V-Blank Interrupt @@ -599,7 +587,7 @@ u16 rfu_MBOOT_CHILD_inheritanceLinkStatus(void); // For Debug // Obtain address of the SWTI-layer receive buffer -struct RfuIntrStruct *rfu_getSTWIRecvBuffer(void); +u8 *rfu_getSTWIRecvBuffer(void); // Obtain RFU state void rfu_REQ_RFUStatus(void); u16 rfu_getRFUStatus(u8 *rfuState); @@ -625,14 +613,14 @@ void STWI_send_DataRxREQ(void); void STWI_send_MS_ChangeREQ(void); void STWI_send_StopModeREQ(void); void STWI_send_SystemStatusREQ(void); -void STWI_send_GameConfigREQ(const u8 *unk1, const u8 *data); +void STWI_send_GameConfigREQ(const u8 *serial_uname, const u8 *gname); void STWI_send_ResetREQ(void); void STWI_send_LinkStatusREQ(void); void STWI_send_VersionStatusREQ(void); void STWI_send_SlotStatusREQ(void); void STWI_send_ConfigStatusREQ(void); void STWI_send_ResumeRetransmitAndChangeREQ(void); -void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3); +void STWI_send_SystemConfigREQ(u16 availSlotFlag, u8 maxMFrame, u8 mcTimer); void STWI_send_SC_StartREQ(void); void STWI_send_SC_PollingREQ(void); void STWI_send_SC_EndREQ(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 0c169dd26..2d74e686a 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -3,35 +3,40 @@ #include "librfu.h" #include "link.h" +#include "AgbRfu_LinkManager.h" // Exported type declarations -struct UnkLinkRfuStruct_02022B14Substruct +// RfuTgtData.gname is read as these structs. +struct GFtgtGnameSub { - u16 unk_00_0:4; - u16 unk_00_4:1; - u16 unk_00_5:1; + u16 language:4; + u16 hasNews:1; + u16 hasCard:1; u16 unk_00_6:1; u16 isChampion:1; u16 hasNationalDex:1; - u16 gameClear:1; // never read, redundant with isChampion - u16 unk_01_2:4; // always 3? + u16 gameClear:1; + u16 version:4; u16 unk_01_6:2; u8 playerTrainerId[2]; }; -struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14 +struct __attribute__((packed, aligned(2))) GFtgtGname { - struct UnkLinkRfuStruct_02022B14Substruct unk_00; - u8 unk_04[4]; + struct GFtgtGnameSub unk_00; + u8 child_sprite_gender[RFU_CHILD_MAX]; // u8 sprite_idx:3; + // u8 gender:1; + // u8 unk_4:3 + // u8 active:1 u16 species:10; u16 type:6; - u8 unk_0a_0:7; - u8 unk_0a_7:1; + u8 activity:7; + u8 started:1; u8 playerGender:1; u8 level:7; - u8 unk_0c; -}; + u8 padding; +}; // size: RFU_GNAME_SIZE struct UnkLinkRfuStruct_02022B2C { @@ -40,7 +45,7 @@ struct UnkLinkRfuStruct_02022B2C u16 unk_02; u8 unk_04; u16 unk_06; - struct UnkLinkRfuStruct_02022B14 *unk_08; + struct GFtgtGname *unk_08; u8 *unk_0c; u8 unk_10; u8 unk_11; @@ -62,50 +67,6 @@ struct UnkLinkRfuStruct_02022B44 u8 fill_84[0x58]; }; -struct UnkRfuStruct_1 -{ - /* 0x000 */ u8 unk_00; - /* 0x001 */ u8 unk_01; - /* 0x002 */ vu8 unk_02; - /* 0x003 */ vu8 unk_03; - /* 0x004 */ u8 unk_04; - /* 0x005 */ u8 unk_05; - /* 0x006 */ u8 unk_06; - /* 0x007 */ u8 unk_07; - /* 0x008 */ u8 unk_08; - /* 0x009 */ u8 unk_09; - /* 0x00a */ u8 unk_0a; - /* 0x00b */ u8 unk_0b; - /* 0x00c */ u8 unk_0c; - /* 0x00d */ u8 unk_0d; - /* 0x00e */ u8 unk_0e; - /* 0x00f */ u8 unk_0f; - /* 0x010 */ u8 unk_10; - /* 0x011 */ u8 unk_11; - /* 0x012 */ u8 unk_12; - // aligned - /* 0x014 */ u16 unk_14; - /* 0x016 */ u16 unk_16; - /* 0x018 */ u16 unk_18; - /* 0x01a */ u16 unk_1a; - /* 0x01c */ u16 unk_1c; - /* 0x01e */ u16 unk_1e; - /* 0x020 */ const u16 *unk_20; - /* 0x024 */ u8 unk_24; - /* 0x026 */ u16 unk_26; - /* 0x028 */ u16 unk_28[4]; - /* 0x030 */ u8 unk_30; - // aligned - /* 0x032 */ u16 unk_32; - /* 0x034 */ u16 unk_34[4]; - /* 0x03c */ const struct UnkLinkRfuStruct_02022B2C *unk_3c; - /* 0x040 */ void (*unk_40)(u8, u8); - /* 0x044 */ void (*unk_44)(u16); - /* 0x048 */ u8 filler_48[8]; - /* 0x050 */ u32 unk_50[0x399]; - /* 0xeb4 */ u8 filler_e64[12]; -}; - struct UnkRfuStruct_2_Sub_6c { /* 0x00 */ u16 unk_00; @@ -187,7 +148,7 @@ struct UnkRfuStruct_2 /* 0x100 */ u16 unk_100; /* 0x102 */ u8 unk_102; /* 0x103 */ u8 filler_103[0x10A - 0x103]; - /* 0x10A */ struct UnkLinkRfuStruct_02022B14 unk_10A; + /* 0x10A */ struct GFtgtGname unk_10A; u8 filler_; u8 playerName[PLAYER_NAME_LENGTH + 1]; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; @@ -235,13 +196,13 @@ struct UnkRfuStruct_8010A14 // Exported RAM declarations -extern struct UnkRfuStruct_1 gUnknown_03004140; -extern struct UnkRfuStruct_2 gUnknown_03005000; +extern struct GFtgtGname gUnknown_02022B14; +extern u8 gUnknown_02022B22[]; +extern struct UnkRfuStruct_2 Rfu; extern u8 gWirelessStatusIndicatorSpriteId; // Exported ROM declarations void WipeTrainerNameRecords(void); -u32 sub_800BEC0(void); void sub_800E700(void); void sub_800EDD4(void); void sub_800F6FC(u8 who); @@ -270,12 +231,12 @@ u32 GetRfuRecvQueueLength(void); void RfuVSync(void); void sub_80111B0(bool32 a0); u8 sub_8011A74(void); -struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void); +struct GFtgtGname *sub_800F7DC(void); void sub_8011068(u8 a0); void sub_8011170(u32 a0); void sub_8011A64(u8 a0, u16 a1); u8 sub_801048C(bool32 a0); -void sub_800DF90(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2); +void sub_800DF90(struct GFtgtGname *buff1, u8 *buff2); void sub_8010F84(u8 a0, u32 a1, u32 a2); void sub_8011C10(u32 a0); bool32 sub_8012240(void); @@ -300,15 +261,15 @@ void sub_8010FA0(bool32 a0, bool32 a1); void sub_8010F60(void); void sub_8010FCC(u32 a0, u32 a1, u32 a2); void sub_8011C84(void); -void sub_8012188(const u8 *name, struct UnkLinkRfuStruct_02022B14 *structPtr, u8 a2); +void sub_8012188(const u8 *name, struct GFtgtGname *structPtr, u8 a2); bool32 sub_8011B90(void); void sub_800FE50(void *a0); bool32 sub_800E540(u16 id, u8 *name); void sub_8011DE0(u32 arg0); u8 sub_801100C(s32 a0); void sub_800EF7C(void); -bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx); -bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx); +bool8 sub_800DE7C(struct GFtgtGname *buff1, u8 *buff2, u8 idx); +bool8 sub_800DF34(struct GFtgtGname *buff1, u8 *buff2, u8 idx); s32 sub_800E87C(u8 idx); void sub_8011BA4(void); void sub_8010198(void); @@ -318,5 +279,65 @@ bool32 sub_8011A9C(void); void sub_80104B0(void); void sub_8011A50(void); void sub_80110B8(u32 a0); +bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2); +void sub_800EAB4(void); +void sub_800EAFC(void); +void sub_800ED34(u16 unused); +void sub_800EDBC(u16 unused); +void sub_800F048(void); +void sub_800F86C(u8 unused); +void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data); +void sub_800FD14(u16 command); +void rfufunc_80F9F44(void); +void sub_800FFB0(void); +void rfufunc_80FA020(void); +bool32 sub_8010454(u32 a0); +void sub_8010528(void); +void sub_8010750(void); +s32 sub_80107A0(void); +void sub_801084C(u8 taskId); +void sub_80109E8(u16 a0); +void sub_8010A70(void *a0); +void sub_8010AAC(u8 taskId); +void sub_8010D0C(u8 taskId); +void sub_80115EC(s32 a0); +u8 sub_8011CE4(const u8 *a0, u16 a1); +void sub_8011D6C(u32 a0); +void sub_8011E94(u32 a0, u32 a1); +bool8 sub_8012224(void); +void sub_801227C(void); +void sub_801209C(u8 taskId); +void sub_8011BF8(void); +void sub_8011BA4(void); +void sub_800D6C8(struct UnkRfuStruct_2_Sub_124 *ptr); +void sub_800D724(struct UnkRfuStruct_2_Sub_9e8 *ptr); +void sub_800D780(struct UnkRfuStruct_Sub_Unused *ptr); +void sub_800D7D8(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2); +void sub_800D888(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2); +bool8 sub_800D934(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2); +bool8 sub_800D9DC(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2); +void sub_800DA68(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2); +bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2); +void sub_800DB18(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2); +bool8 sub_800DB84(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2); +void sub_800DBF8(u8 *q1, u8 mode); +void PkmnStrToASCII(u8 *q1, const u8 *q2); +void ASCIIToPkmnStr(u8 *q1, const u8 *q2); +u8 sub_800DD1C(u8 maxFlags); +void sub_800DD94(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3); +bool8 sub_800DE7C(struct GFtgtGname *buff1, u8 *buff2, u8 idx); +bool8 sub_800DF34(struct GFtgtGname *buff1, u8 *buff2, u8 idx); +void sub_800DF90(struct GFtgtGname *buff1, u8 *buff2); +void CreateWirelessStatusIndicatorSprite(u8 x, u8 y); +void DestroyWirelessStatusIndicatorSprite(void); +void LoadWirelessStatusIndicatorSpriteGfx(void); +u8 sub_800E124(void); +void sub_800E15C(struct Sprite *sprite, s32 signalStrengthAnimNum); +void sub_800E174(void); +void CopyTrainerRecord(struct TrainerNameRecord *dest, u32 trainerId, const u8 *name); +bool32 NameIsNotEmpty(const u8 *name); +void RecordMixTrainerNames(void); +bool32 sub_800E540(u16 id, u8 *name); +void WipeTrainerNameRecords(void); #endif //GUARD_LINK_RFU_H diff --git a/include/load_save.h b/include/load_save.h index bf50bffd7..2f4a9ace6 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -22,8 +22,8 @@ void SetContinueGameWarpStatusToDynamicWarp(void); void ClearContinueGameWarpStatus2(void); void SavePlayerParty(void); void LoadPlayerParty(void); -void SaveEventObjects(void); -void LoadEventObjects(void); +void SaveObjectEvents(void); +void LoadObjectEvents(void); void SaveSerializedGame(void); void LoadSerializedGame(void); void LoadPlayerBag(void); diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index 3845ac290..29c66a992 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -5,7 +5,7 @@ extern struct BardSong gBardSong; void SetMauvilleOldMan(void); u8 GetCurrentMauvilleOldMan(void); -void ScrSpecial_SetMauvilleOldManEventObjGfx(void); +void ScrSpecial_SetMauvilleOldManObjEventGfx(void); u8 sub_81201C8(void); void sub_8120B70(OldMan *dest); void sub_8120670(void); diff --git a/include/menu.h b/include/menu.h index 56865bcd9..d4a038920 100644 --- a/include/menu.h +++ b/include/menu.h @@ -8,6 +8,15 @@ #define MENU_NOTHING_CHOSEN -2 #define MENU_B_PRESSED -1 +enum +{ + SAVE_MENU_NAME, + SAVE_MENU_CAUGHT, + SAVE_MENU_PLAY_TIME, + SAVE_MENU_LOCATION, + SAVE_MENU_BADGES, +}; + struct MenuAction { const u8 *text; @@ -23,7 +32,7 @@ void FreeAllOverworldWindowBuffers(void); void InitStandardTextBoxWindows(void); void sub_8197200(void); u16 RunTextPrintersAndIsPrinter0Active(void); -void sub_81973A4(void); +void LoadMessageBoxAndBorderGfx(void); void DrawDialogueFrame(u8 windowId, bool8 copyToVram); void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram); u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor); @@ -80,7 +89,7 @@ void sub_819786C(u8 windowId, bool8 copyToVram); void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress); void RemoveStartMenuWindow(void); void DisplayYesNoMenuWithDefault(u8 initialCursorPos); -void sub_819A344(u8 a0, u8 *dest, u8 color); +void BufferSaveMenuText(u8 textId, u8 *dest, u8 color); void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); u8 AddMapNamePopUpWindow(void); diff --git a/include/overworld.h b/include/overworld.h index ac916feb1..78a5b4ad0 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -30,17 +30,17 @@ struct InitialPlayerAvatarState u8 direction; }; -struct LinkPlayerEventObject +struct LinkPlayerObjectEvent { u8 active; u8 linkPlayerId; - u8 eventObjId; + u8 objEventId; u8 movementMode; }; // Exported RAM declarations extern struct WarpData gLastUsedWarp; -extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4]; +extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4]; extern u16 *gBGTilemapBuffers1; extern u16 *gBGTilemapBuffers2; @@ -63,10 +63,10 @@ void IncrementGameStat(u8 index); u32 GetGameStat(u8 index); void SetGameStat(u8 index, u32 value); void ApplyNewEncryptionKeyToGameStats(u32 newKey); -void LoadEventObjTemplatesFromHeader(void); -void LoadSaveblockEventObjScripts(void); -void Overworld_SetEventObjTemplateCoords(u8 localId, s16 x, s16 y); -void Overworld_SetEventObjTemplateMovementType(u8 localId, u8 movementType); +void LoadObjEventTemplatesFromHeader(void); +void LoadSaveblockObjEventScripts(void); +void Overworld_SetObjEventTemplateCoords(u8 localId, s16 x, s16 y); +void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType); const struct MapLayout *GetMapLayout(void); void ApplyCurrentWarp(void); struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); @@ -157,6 +157,6 @@ bool32 sub_8087598(void); bool32 sub_80875C8(void); bool32 sub_8087634(void); bool32 sub_808766C(void); -void ClearLinkPlayerEventObjects(void); +void ClearLinkPlayerObjectEvents(void); #endif // GUARD_OVERWORLD_H diff --git a/include/random.h b/include/random.h index 79a9d71dc..6bf61de6c 100644 --- a/include/random.h +++ b/include/random.h @@ -11,6 +11,11 @@ u16 Random2(void); //Returns a 32-bit pseudorandom number #define Random32() (Random() | (Random() << 16)) +// The number 1103515245 comes from the example implementation of rand and srand +// in the ISO C standard. +#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691) +#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) + //Sets the initial seed value of the pseudorandom number generator void SeedRng(u16 seed); void SeedRng2(u16 seed); diff --git a/include/script.h b/include/script.h index 3f92964ac..f9fb09b5d 100644 --- a/include/script.h +++ b/include/script.h @@ -59,7 +59,7 @@ bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 const u8 *GetRamScript(u8 objectId, const u8 *script); bool32 ValidateSavedRamScript(void); u8 *GetSavedRamScriptIfValid(void); -void InitRamScript_NoEventObject(u8 *script, u16 scriptSize); +void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize); // srccmd.h void SetMovingNpcId(u16 npcId); diff --git a/include/script_movement.h b/include/script_movement.h index f9a97cf46..03f8bf0b7 100644 --- a/include/script_movement.h +++ b/include/script_movement.h @@ -3,6 +3,6 @@ bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, const u8 *movementScript); bool8 ScriptMovement_IsObjectMovementFinished(u8 localId, u8 mapNum, u8 mapGroup); -void ScriptMovement_UnfreezeEventObjects(void); +void ScriptMovement_UnfreezeObjectEvents(void); #endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/shop.h b/include/shop.h index 10e2b1060..164d6f3c2 100644 --- a/include/shop.h +++ b/include/shop.h @@ -13,7 +13,7 @@ enum // shop view window NPC info enum enum { - EVENT_OBJ_ID, + OBJ_EVENT_ID, X_COORD, Y_COORD, ANIM_NUM, diff --git a/include/strings.h b/include/strings.h index 5178a0087..5720598ad 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2514,11 +2514,11 @@ extern const u8 gText_WinsLosses[]; extern const u8 gText_PokemonTrades[]; extern const u8 gText_BerryCrush[]; extern const u8 gText_UnionTradesAndBattles[]; -extern const u8 gText_Var1DarkGreyShadowLightGrey[]; +extern const u8 gText_NumPokeblocks[]; extern const u8 gText_PokeblocksWithFriends[]; extern const u8 gText_WonContestsWFriends[]; -extern const u8 gText_WSlashStraightSlash[]; -extern const u8 gText_Var1DarkLightGreyBP[]; +extern const u8 gText_WinsStraight[]; +extern const u8 gText_NumBP[]; extern const u8 gText_BattleTower[]; extern const u8 gText_BattlePtsWon[]; @@ -2882,6 +2882,21 @@ extern const u8 gText_CrushingResults[]; extern const u8 gText_BerryCrush2[]; extern const u8 gText_PressingSpeedRankings[]; extern const u8 gText_Var1Players[]; +extern const u8 gText_ReadyToBerryCrush[]; +extern const u8 gText_WaitForAllChooseBerry[]; +extern const u8 gText_EndedWithXUnitsPowder[]; +extern const u8 gText_RecordingGameResults[]; +extern const u8 gText_PlayBerryCrushAgain[]; +extern const u8 gText_YouHaveNoBerries[]; +extern const u8 gText_MemberDroppedOut[]; +extern const u8 gText_TimesUpNoGoodPowder[]; +extern const u8 gText_CommunicationStandby2[]; +extern const u8 gText_SpaceTimes2[]; +extern const u8 gText_XDotY[]; +extern const u8 gText_Var1Berry[]; +extern const u8 gText_NeatnessRankings[]; +extern const u8 gText_CoopRankings[]; +extern const u8 gText_PressingPowerRankings[]; // Lilycove Lady extern const u8 gText_ContestLady_Handsome[]; diff --git a/include/trade.h b/include/trade.h index 72a04ed21..bd8ef8f63 100644 --- a/include/trade.h +++ b/include/trade.h @@ -16,8 +16,8 @@ extern const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate; s32 GetGameProgressForLinkTrade(void); void CB2_StartCreateTradeMenu(void); void CB2_LinkTrade(void); -int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8); -int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6); +int CanRegisterMonForTradingBoard(struct GFtgtGnameSub a0, u16, u16, u8); +int GetUnionRoomTradeMessageId(struct GFtgtGnameSub a0, struct GFtgtGnameSub a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6); int CanSpinTradeMon(struct Pokemon*, u16); void InitTradeSequenceBgGpuRegs(void); void LinkTradeDrawWindow(void); diff --git a/include/trainer_card.h b/include/trainer_card.h index 173d23baa..685d1cdca 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -1,6 +1,24 @@ #ifndef GUARD_TRAINER_CARD_H #define GUARD_TRAINER_CARD_H +#define TRAINER_CARD_PROFILE_LENGTH 4 +#define TRAINER_CARD_STICKER_TYPES 3 + +enum +{ + CARD_TYPE_FRLG, + CARD_TYPE_RS, + CARD_TYPE_EMERALD, +}; + +enum +{ + MON_ICON_TINT_NORMAL, + MON_ICON_TINT_BLACK, + MON_ICON_TINT_PINK, + MON_ICON_TINT_SEPIA, +}; + struct TrainerCard { /*0x00*/ u8 gender; @@ -23,19 +41,19 @@ struct TrainerCard /*0x1E*/ u16 pokeblocksWithFriends; /*0x20*/ u16 pokemonTrades; /*0x24*/ u32 money; - /*0x28*/ u16 var_28[4]; + /*0x28*/ u16 easyChatProfile[TRAINER_CARD_PROFILE_LENGTH]; /*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x38*/ u8 version; - /*0x3A*/ u16 var_3A; + /*0x3A*/ bool16 hasAllFrontierSymbols; /*0x3C*/ u32 berryCrushPoints; /*0x40*/ u32 unionRoomNum; - /*0x44*/ u8 filler44[0x8]; - /*0x4C*/ u8 var_4C; - /*0x4D*/ u8 var_4D; - /*0x4E*/ u8 var_4E; - /*0x4F*/ u8 var_4F; - /*0x50*/ u8 var_50[0x4]; - /*0x54*/ u16 monSpecies[PARTY_SIZE]; + /*0x44*/ u8 filler[8]; + /*0x4C*/ bool8 shouldDrawStickers; // FRLG only + /*0x4D*/ u8 unused; + /*0x4E*/ u8 monIconTint; // FRLG only + /*0x4F*/ u8 facilityClass; + /*0x50*/ u8 stickers[TRAINER_CARD_STICKER_TYPES]; // FRLG only + /*0x54*/ u16 monSpecies[PARTY_SIZE]; // FRLG only /*0x60*/ bool16 hasAllSymbols; /*0x62*/ u16 frontierBP; }; diff --git a/include/trainer_hill.h b/include/trainer_hill.h index c07aeb6d7..c849bcced 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -60,15 +60,15 @@ void CopyTrainerHillTrainerText(u8 which, u16 trainerId); bool8 InTrainerHillChallenge(void); void nullsub_129(void); void PrintOnTrainerHillRecordsWindow(void); -void LoadTrainerHillEventObjectTemplates(void); -bool32 LoadTrainerHillFloorEventObjectScripts(void); +void LoadTrainerHillObjectEventTemplates(void); +bool32 LoadTrainerHillFloorObjectEventScripts(void); void GenerateTrainerHillFloorLayout(u16 *mapArg); bool32 InTrainerHill(void); u8 GetCurrentTrainerHillMapId(void); const struct WarpEvent* SetWarpDestinationTrainerHill4F(void); const struct WarpEvent* SetWarpDestinationTrainerHillFinalFloor(u8 warpEventId); u16 LocalIdToHillTrainerId(u8 localId); -bool8 GetHillTrainerFlag(u8 eventObjectId); +bool8 GetHillTrainerFlag(u8 objectEventId); void SetHillTrainerFlag(void); const u8 *GetTrainerHillTrainerScript(void); void FillHillTrainerParty(void); diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h index 90ceedaf5..d4390608e 100644 --- a/include/trainer_pokemon_sprites.h +++ b/include/trainer_pokemon_sprites.h @@ -7,7 +7,7 @@ u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool u16 FreeAndDestroyMonPicSprite(u16 spriteId); u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 FreeAndDestroyTrainerPicSprite(u16 spriteId); -u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); +u16 CreateTrainerCardTrainerPicSprite(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass); #endif // GUARD_TRAINER_POKEMON_SPRITES_H diff --git a/include/trainer_see.h b/include/trainer_see.h index daf9d0298..9d88e05fa 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -3,7 +3,7 @@ struct ApproachingTrainer { - u8 eventObjectId; + u8 objectEventId; u8 radius; // plus 1 const u8 *trainerScriptPtr; u8 taskId; @@ -17,14 +17,14 @@ extern bool8 gTrainerApproachedPlayer; extern u8 gApproachingTrainerId; bool8 CheckForTrainersWantingBattle(void); -void sub_80B4578(struct EventObject *var); +void sub_80B4578(struct ObjectEvent *var); void EndTrainerApproach(void); void TryPrepareSecondApproachingTrainer(void); u8 FldEff_ExclamationMarkIcon(void); u8 FldEff_QuestionMarkIcon(void); u8 FldEff_HeartIcon(void); -u8 GetCurrentApproachingTrainerEventObjectId(void); -u8 GetChosenApproachingTrainerEventObjectId(u8 arrayId); +u8 GetCurrentApproachingTrainerObjectEventId(void); +u8 GetChosenApproachingTrainerObjectEventId(u8 arrayId); void PlayerFaceTrainerAfterBattle(void); #endif // GUARD_TRAINER_SEE_H diff --git a/include/union_room.h b/include/union_room.h index cc0415155..4c4cb5a62 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -7,7 +7,7 @@ struct UnkStruct_Shared { - struct UnkLinkRfuStruct_02022B14 field_0; + struct GFtgtGname field_0; u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1]; }; @@ -154,7 +154,7 @@ struct UnionRoomTrade extern u8 gUnknown_02022C2C; extern union UnkUnion_Main gUnknown_02022C30; -extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; +extern struct GFtgtGnameSub gUnknown_02022C38; extern u16 gUnionRoomOfferedSpecies; extern u8 gUnionRoomRequestedMonType; |