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

Method Sprite_Handle_Floating_Dead_Soldier

Source/Fodder.cpp:11987–12031  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11985}
11986
11987void cFodder::Sprite_Handle_Floating_Dead_Soldier(sSprite* pSprite) {
11988 int16 Data0, Data4;
11989
11990 pSprite->field_8 = 0x9E;
11991
11992 if (!pSprite->field_12) {
11993 pSprite->field_12 = 0x10;
11994 pSprite->field_10 = 0x100;
11995 }
11996
11997 if (pSprite->field_10 <= 0x100)
11998 goto loc_1B35A;
11999
12000 if (pSprite->field_12 == 0x10)
12001 goto loc_1B350;
12002
12003 pSprite->field_12 = 0x10;
12004 goto loc_1B35A;
12005
12006loc_1B350:;
12007 pSprite->field_12 = -16;
12008
12009loc_1B35A:;
12010
12011 Sprite_XY_Store(pSprite);
12012 Sprite_Movement_Calculate(pSprite);
12013 Data0 = -3;
12014 Data4 = 8;
12015 Map_Terrain_Get_Type_And_Walkable(pSprite, Data0, Data4);
12016 if (Data4 < eTerrainFeature_QuickSand || Data4 > eTerrainFeature_Water) {
12017 pSprite->field_0 = mStoredSpriteX & 0xFFFF;
12018 pSprite->field_4 = mStoredSpriteY & 0xFFFF;
12019 pSprite->field_36 = 0;
12020 Data0 = pSprite->field_12;
12021
12022 pSprite->field_10 += Data0;
12023 pSprite->field_10 &= 0x1FE;
12024 }
12025
12026 //loc_1B3CA
12027 if (pSprite->field_36 < 4)
12028 pSprite->field_36++;
12029
12030 pSprite->field_2C = eSprite_Draw_Second;
12031}
12032
12033void cFodder::Sprite_Handle_Text_Complete(sSprite* pSprite) {
12034 pSprite->field_0 = mMapTile_TargetX >> 16;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected