diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2017-12-28 03:00:15 -0600 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2017-12-28 03:00:15 -0600 |
commit | 1496ea3a24f188cad26ac40f5bfcc3e571f3311a (patch) | |
tree | a0b00c058bd7234b9140b4636b08016278f1b049 /include/global.fieldmap.h | |
parent | 2d04eb22abd3f60902ee1f9bc87bd510518709e3 (diff) | |
parent | 87958f2f87b9f7f6e5548d9cb2ac53c3339b78d5 (diff) |
Merge branch 'master' of github.com:pret/pokeemerald
Diffstat (limited to 'include/global.fieldmap.h')
-rw-r--r-- | include/global.fieldmap.h | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 3e9f13523..b12febefd 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -299,25 +299,42 @@ enum COLLISION_LEDGE_JUMP = 6 }; -struct PlayerAvatar /* 0x202E858 */ +// player running states +enum +{ + NOT_MOVING, + TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles + MOVING, +}; + +// player tile transition states +enum +{ + T_NOT_MOVING, + T_TILE_TRANSITION, + T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary. +}; + +struct PlayerAvatar { /*0x00*/ u8 flags; - /*0x01*/ u8 bike; - /*0x02*/ u8 running2; - /*0x03*/ u8 running1; + /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags + /*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 mapObjectId; - /*0x06*/ u8 unk6; + /*0x06*/ bool8 preventStep; /*0x07*/ u8 gender; - u8 acroBikeState; - u8 unk9; - u8 bikeFrameCounter; - u8 unkB; - u32 unkC; - u32 unk10; - u8 unk14[8]; - u8 unk1C[8]; - // TODO: rest of struct + /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie + /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here. + /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike. + /*0x0B*/ u8 bikeSpeed; + // acro bike only + /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs. + /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only + // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update. + /*0x14*/ u8 dirTimerHistory[8]; + /*0x1C*/ u8 abStartSelectTimerHistory[8]; }; struct Camera |