| 12074 | } |
| 12075 | |
| 12076 | void cFodder::Sprite_Handle_Vehicle(sSprite* pSprite) { |
| 12077 | int16 Data0 = 2; |
| 12078 | int16 Data4 = pSprite->field_36; |
| 12079 | int16 Data8, DataC; |
| 12080 | |
| 12081 | if (!Data4) { |
| 12082 | if (pSprite->field_22 == eSprite_PersonType_Human) { |
| 12083 | |
| 12084 | if (pSprite != mSquad_CurrentVehicle) |
| 12085 | goto loc_1B523; |
| 12086 | } |
| 12087 | } |
| 12088 | |
| 12089 | Data4 += 0x10; |
| 12090 | if (Data4 > 0x40) |
| 12091 | Data4 = 0x40; |
| 12092 | Data0 = Data4; |
| 12093 | |
| 12094 | Data0 >>= 4; |
| 12095 | if (Data0 > 3) |
| 12096 | Data0 = 3; |
| 12097 | Data0 += 0x38; |
| 12098 | |
| 12099 | Sprite_Map_Sound_Play(Data0); |
| 12100 | |
| 12101 | loc_1B523:; |
| 12102 | pSprite->field_65 = -1; |
| 12103 | if (Sprite_Animation_SlideOrDie(pSprite)) |
| 12104 | return; |
| 12105 | |
| 12106 | pSprite->field_8 = 0xA5; |
| 12107 | sub_22C87(pSprite); |
| 12108 | if (pSprite->field_20 < 3) { |
| 12109 | word_3B2F7 = 0x48; |
| 12110 | Data0 = pSprite->field_26; |
| 12111 | Data4 = pSprite->field_28; |
| 12112 | |
| 12113 | sub_22CD7(pSprite, Data0, Data4); |
| 12114 | } |
| 12115 | |
| 12116 | Data0 = pSprite->field_26; |
| 12117 | Data4 = pSprite->field_28; |
| 12118 | Data8 = pSprite->field_0; |
| 12119 | DataC = pSprite->field_4; |
| 12120 | |
| 12121 | Map_Get_Distance_BetweenPoints_Within_Window(Data0, Data4, Data8, DataC); |
| 12122 | if (Data0 >= 0x1E) |
| 12123 | goto loc_1B5D2; |
| 12124 | |
| 12125 | if (Data0 >= pSprite->field_36) |
| 12126 | goto loc_1B655; |
| 12127 | |
| 12128 | pSprite->field_36 = Data0; |
| 12129 | goto loc_1B655; |
| 12130 | |
| 12131 | loc_1B5D2:; |
| 12132 | |
| 12133 | if (!pSprite->field_52) { |
nothing calls this directly
no outgoing calls
no test coverage detected