diff options
Diffstat (limited to 'src/d/actor/d_a_obj_gra2.cpp')
| -rw-r--r-- | src/d/actor/d_a_obj_gra2.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/d/actor/d_a_obj_gra2.cpp b/src/d/actor/d_a_obj_gra2.cpp index a5d3c5fb69..58802a63ea 100644 --- a/src/d/actor/d_a_obj_gra2.cpp +++ b/src/d/actor/d_a_obj_gra2.cpp @@ -277,7 +277,10 @@ cPhs_Step daObj_GrA_c::create() { } } - field_0x848 = ((int)home.angle.x == 0xFFFF) ? -1 : home.angle.x; + // !@bug home.angle.x is promoted to a 32-bit signed integer prior + // to being compared, so the compared value can never exceed + // SHORT_MAX and the condition always fails. + mFlowID = home.angle.x == 0xFFFF ? -1 : home.angle.x; field_0x1fe8 = (fopAcM_GetParam(this) & 0xC0000000) >> 30; field_0xa7f = home.angle.z & 0xFF; @@ -1435,7 +1438,7 @@ int daObj_GrA_c::talk(void* param_1) { int iVar1, iVar2; int rv = 0; int iVar3; - int iVar4 = field_0x848; + int iVar4 = mFlowID; s16 sVar1; switch (field_0xa7c) { case 0: @@ -2013,7 +2016,7 @@ int daObj_GrA_c::face999(int param_1) { } int daObj_GrA_c::evtcutTalk(int param_1, int param_2) { - s32 sVar1 = field_0x848; + s32 sVar1 = mFlowID; if (param_2 != 0) { mMsgFlow.init(this, sVar1, 0, NULL); field_0xaa0 = 0; |
