mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 09:45:02 +00:00
Player docs: Control Stick Input and Movement (#1539)
* document input stuff and movement speed+yaw * curve -> curved, and other cleanups * fix + format * function declaration * name arguments * add mode descriptions * fix typos * move comment down
This commit is contained in:
parent
185c9cbf1a
commit
da3f4718f0
4 changed files with 297 additions and 245 deletions
|
@ -856,7 +856,7 @@ s32 Math_StepUntilS(s16* pValue, s16 limit, s16 step);
|
|||
s32 Math_StepToAngleS(s16* pValue, s16 target, s16 step);
|
||||
s32 Math_StepUntilF(f32* pValue, f32 limit, f32 step);
|
||||
s32 Math_AsymStepToF(f32* pValue, f32 target, f32 incrStep, f32 decrStep);
|
||||
void func_80077D10(f32* arg0, s16* arg1, Input* input);
|
||||
void Lib_GetControlStickData(f32* outMagnitude, s16* outAngle, Input* input);
|
||||
s16 Rand_S16Offset(s16 base, s16 range);
|
||||
void Math_Vec3f_Copy(Vec3f* dest, Vec3f* src);
|
||||
void Math_Vec3s_ToVec3f(Vec3f* dest, Vec3s* src);
|
||||
|
|
|
@ -758,8 +758,8 @@ typedef struct Player {
|
|||
/* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame
|
||||
/* 0x0A7A */ u8 floorProperty;
|
||||
/* 0x0A7B */ u8 prevFloorType;
|
||||
/* 0x0A7C */ f32 unk_A7C;
|
||||
/* 0x0A80 */ s16 unk_A80;
|
||||
/* 0x0A7C */ f32 prevControlStickMagnitude;
|
||||
/* 0x0A80 */ s16 prevControlStickAngle;
|
||||
/* 0x0A82 */ u16 prevFloorSfxOffset;
|
||||
/* 0x0A84 */ s16 unk_A84;
|
||||
/* 0x0A86 */ s8 unk_A86;
|
||||
|
|
|
@ -219,14 +219,14 @@ s32 Math_AsymStepToF(f32* pValue, f32 target, f32 incrStep, f32 decrStep) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void func_80077D10(f32* arg0, s16* arg1, Input* input) {
|
||||
void Lib_GetControlStickData(f32* outMagnitude, s16* outAngle, Input* input) {
|
||||
f32 relX = input->rel.stick_x;
|
||||
f32 relY = input->rel.stick_y;
|
||||
|
||||
*arg0 = sqrtf(SQ(relX) + SQ(relY));
|
||||
*arg0 = (60.0f < *arg0) ? 60.0f : *arg0;
|
||||
*outMagnitude = sqrtf(SQ(relX) + SQ(relY));
|
||||
*outMagnitude = (60.0f < *outMagnitude) ? 60.0f : *outMagnitude;
|
||||
|
||||
*arg1 = Math_Atan2S(relY, -relX);
|
||||
*outAngle = Math_Atan2S(relY, -relX);
|
||||
}
|
||||
|
||||
s16 Rand_S16Offset(s16 base, s16 range) {
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue