document most of field event check

This commit is contained in:
RavePossum 2024-05-27 10:21:29 -04:00
parent 9778530f9a
commit e6e32d4e8c
4 changed files with 616 additions and 661 deletions

View File

@ -6,4 +6,27 @@
#define PLAYER_STATE_CYCLING 1
#define PLAYER_STATE_SURFING 2
#endif
#define PLAYER_EVENT_NONE 0
#define PLAYER_EVENT_USED_STRENGTH (1 << 0)
#define PLAYER_EVENT_USED_WATERFALL (1 << 1)
#define PLAYER_EVENT_DISTORTION_WORLD (1 << 2)
enum PlayerMoveState {
PLAYER_MOVE_STATE_NONE = 0,
PLAYER_MOVE_STATE_START,
PLAYER_MOVE_STATE_MOVING,
PLAYER_MOVE_STATE_END,
};
enum AvatarMoveState {
AVATAR_MOVE_STATE_NONE = 0,
AVATAR_MOVE_STATE_MOVING,
AVATAR_MOVE_STATE_TURNING,
};
enum AvatarDistortionState {
AVATAR_DISTORTION_STATE_NONE = 0,
AVATAR_DISTORTION_STATE_ACTIVE,
};
#endif // POKEPLATINUM_CONSTANTS_PLAYER_AVATAR_H

View File

@ -1,33 +1,33 @@
#ifndef POKEPLATINUM_OV5_021D1C30_H
#define POKEPLATINUM_OV5_021D1C30_H
#ifndef POKEPLATINUM_FIELD_EVENT_CHECK_H
#define POKEPLATINUM_FIELD_EVENT_CHECK_H
#include "field/field_system_decl.h"
typedef struct {
u16 unk_00_0 : 1;
u16 unk_00_1 : 1;
u16 unk_00_2 : 1;
u16 unk_00_3 : 1;
u16 unk_00_4 : 1;
u16 unk_00_5 : 1;
u16 unk_00_6 : 1;
u16 unk_00_7 : 1;
u16 unk_00_8 : 1;
u16 unk_00_9 : 1;
u16 unk_00_10 : 1;
u16 unk_00_11 : 1;
u16 : 4;
u8 unk_02;
s8 unk_03;
u16 unk_04;
u16 unk_06;
} UnkStruct_ov5_021D1CAC;
typedef struct FieldEventCheck {
u16 interact : 1;
u16 endMovement : 1;
u16 menu : 1;
u16 registeredItem : 1;
u16 sign : 1;
u16 mapTransition : 1;
u16 movement : 1;
u16 unused1 : 1;
u16 unused2 : 1;
u16 unused3 : 1;
u16 unused4 : 1;
u16 unused5 : 1;
u16 padding : 4;
u8 playerDir;
s8 transitionDir;
u16 pressedKeys;
u16 heldKeys;
} FieldEventCheck;
void ov5_021D1CAC(UnkStruct_ov5_021D1CAC * param0, FieldSystem * fieldSystem, u16 param2, u16 param3);
int ov5_021D1DA4(const UnkStruct_ov5_021D1CAC * param0, FieldSystem * fieldSystem);
BOOL ov5_021D213C(UnkStruct_ov5_021D1CAC * param0, FieldSystem * fieldSystem);
BOOL ov5_021D219C(UnkStruct_ov5_021D1CAC * param0, FieldSystem * fieldSystem);
BOOL ov5_021D2298(const UnkStruct_ov5_021D1CAC * param0, FieldSystem * fieldSystem);
int ov5_021D2368(const UnkStruct_ov5_021D1CAC * param0, FieldSystem * fieldSystem);
void FieldEventCheck_Set(FieldEventCheck *eventCheck, FieldSystem *fieldSystem, u16 pressedKeys, u16 heldKeys);
int FieldEvent_Check(const FieldEventCheck *eventCheck, FieldSystem *fieldSystem);
BOOL FieldEventCheck_Underground(FieldEventCheck *eventCheck, FieldSystem *fieldSystem);
BOOL FieldEventCheck_Colosseum(FieldEventCheck *eventCheck, FieldSystem *fieldSystem);
BOOL FieldEventCheck_UnionRoom(const FieldEventCheck *eventCheck, FieldSystem *fieldSystem);
int FieldEventCheck_BattleTower(const FieldEventCheck *eventCheck, FieldSystem *fieldSystem);
#endif // POKEPLATINUM_OV5_021D1C30_H
#endif // POKEPLATINUM_FIELD_EVENT_CHECK_H

View File

@ -249,7 +249,7 @@ BOOL FieldSystem_Run (FieldSystem * fieldSystem)
void FieldSystem_Control (FieldSystem * fieldSystem)
{
int v0;
UnkStruct_ov5_021D1CAC v1;
FieldEventCheck v1;
BOOL v2 = 0;
if (!fieldSystem->unk_00->unk_08 && fieldSystem->unk_68 && (sub_020509A4(fieldSystem) == 0)) {
@ -258,7 +258,7 @@ void FieldSystem_Control (FieldSystem * fieldSystem)
if (v2) {
sub_0205F490(fieldSystem->playerAvatar);
ov5_021D1CAC(&v1, fieldSystem, gCoreSys.pressedKeys, gCoreSys.heldKeys);
FieldEventCheck_Set(&v1, fieldSystem, gCoreSys.pressedKeys, gCoreSys.heldKeys);
}
v0 = fieldSystem->unk_70;
@ -271,7 +271,7 @@ void FieldSystem_Control (FieldSystem * fieldSystem)
case 1:
if (v2) {
if (sub_02058C40()) {
if (ov5_021D213C(&v1, fieldSystem) == 1) {
if (FieldEventCheck_Underground(&v1, fieldSystem) == 1) {
}
}
@ -282,7 +282,7 @@ void FieldSystem_Control (FieldSystem * fieldSystem)
case 3:
if (v2) {
if (sub_02058C40()) {
if (ov5_021D219C(&v1, fieldSystem) == 1) {
if (FieldEventCheck_Colosseum(&v1, fieldSystem) == 1) {
v2 = 0;
}
} else {
@ -294,16 +294,16 @@ void FieldSystem_Control (FieldSystem * fieldSystem)
break;
case 2:
if (v2) {
if (ov5_021D2298(&v1, fieldSystem) == 1) {
if (FieldEventCheck_UnionRoom(&v1, fieldSystem) == 1) {
} else {
PlayerAvatar_MoveControl(fieldSystem->playerAvatar, fieldSystem->unk_28, -1, v1.unk_04, v1.unk_06, 0);
PlayerAvatar_MoveControl(fieldSystem->playerAvatar, fieldSystem->unk_28, -1, v1.pressedKeys, v1.heldKeys, 0);
}
}
break;
case 4:
if (v2) {
if (ov5_021D2368(&v1, fieldSystem) == 1) {
if (FieldEventCheck_BattleTower(&v1, fieldSystem) == 1) {
ov5_021DDA78(fieldSystem->unk_04->unk_08);
ov5_021E1BCC(fieldSystem, 4);
ov5_021E0EEC(fieldSystem->playerAvatar);
@ -321,14 +321,14 @@ void FieldSystem_Control (FieldSystem * fieldSystem)
v3 = ov25_02253DD4(v4);
}
PlayerAvatar_MoveControl(fieldSystem->playerAvatar, fieldSystem->unk_28, -1, v1.unk_04, v1.unk_06, v3);
PlayerAvatar_MoveControl(fieldSystem->playerAvatar, fieldSystem->unk_28, -1, v1.pressedKeys, v1.heldKeys, v3);
}
}
}
break;
default:
if (v2) {
if (ov5_021D1DA4(&v1, fieldSystem) == 1) {
if (FieldEvent_Check(&v1, fieldSystem) == 1) {
ov5_021DDA78(fieldSystem->unk_04->unk_08);
ov5_021E1BCC(fieldSystem, 4);
sub_0205F56C(fieldSystem->playerAvatar);
@ -347,7 +347,7 @@ void FieldSystem_Control (FieldSystem * fieldSystem)
v5 = ov25_02253DD4(v6);
}
PlayerAvatar_MoveControl(fieldSystem->playerAvatar, fieldSystem->unk_28, -1, v1.unk_04, v1.unk_06, v5);
PlayerAvatar_MoveControl(fieldSystem->playerAvatar, fieldSystem->unk_28, -1, v1.pressedKeys, v1.heldKeys, v5);
}
}
}

File diff suppressed because it is too large Load Diff