MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / Sprite_Handle_Vehicle_Sinking

Method Sprite_Handle_Vehicle_Sinking

Source/Fodder.cpp:5937–5981  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5935}
5936
5937int16 cFodder::Sprite_Handle_Vehicle_Sinking(sSprite* pSprite) {
5938
5939 Sound_Play(pSprite, eSound_Effect_Vehicle_Sinking, 0x0F);
5940 if (!pSprite->field_5C)
5941 return -1;
5942
5943 int16 Data0 = 1;
5944 sSprite* Data2C = 0, *Data30 = 0;
5945
5946 if (Sprite_Get_Free_Max42(Data0, Data2C, Data30))
5947 return -1;
5948
5949 Data2C->field_0 = pSprite->field_0;
5950 Data2C->field_2 = pSprite->field_2;
5951 Data2C->field_4 = pSprite->field_4;
5952 Data2C->field_6 = pSprite->field_6;
5953
5954 if (dword_3B24B) {
5955 Data0 = tool_RandomGet() & 0x1F;
5956 Data0 -= 5;
5957 Data2C->field_0 += Data0;
5958 Data0 >>= 4;
5959 Data0 &= 0x0F;
5960 Data0 -= 0x0A;
5961 Data2C->field_4 -= Data0;
5962 dword_3B24B = 0;
5963 }
5964 //loc_24546
5965 Data2C->field_20 = pSprite->field_20;
5966 Data2C->field_52 = 0;
5967 Data2C->field_2C = eSprite_Draw_OnTop;
5968
5969 Data0 = tool_RandomGet() & 1;
5970 if (!Data0) {
5971 Data2C->field_8 = 0xDE;
5972 Data2C->field_A = 4;
5973 Data2C->field_18 = eSprite_Vehicle_Sinking_1;
5974 }
5975 else {
5976 Data2C->field_8 = 0xDF;
5977 Data2C->field_A = 0;
5978 Data2C->field_18 = eSprite_Vehicle_Sinking_2;
5979 }
5980 return 0;
5981}
5982
5983void cFodder::sub_245BF(sSprite* pSprite) {
5984

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected