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

Method Sprite_Create_Cannon

Source/Fodder.cpp:6036–6099  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6034}
6035
6036int16 cFodder::Sprite_Create_Cannon(sSprite* pSprite) {
6037 if (mPhase_Completed_Timer)
6038 return -1;
6039
6040 int16 Data0 = 1;
6041 sSprite* Data2C = 0, *Data30 = 0;
6042
6043 if (Sprite_Get_Free_Max42(Data0, Data2C, Data30))
6044 return -1;
6045
6046 if (mSprite_Projectile_Counters[2] == 0x14)
6047 return -1;
6048
6049 ++mSprite_Projectile_Counters[2];
6050 Data2C->field_0 = pSprite->field_0;
6051 Data2C->field_2 = pSprite->field_2;
6052 Data2C->field_4 = pSprite->field_4;
6053 Data2C->field_6 = pSprite->field_6;
6054 Data2C->field_8 = 0x7F;
6055 Data2C->field_A = 3;
6056 Data2C->field_12 = 9;
6057 Data2C->field_18 = eSprite_Cannon;
6058
6059 Data2C->field_1E_Big += 0x60000;
6060
6061 Data2C->field_52 = pSprite->field_52;
6062 Data2C->field_22 = pSprite->field_22;
6063 Data2C->field_2C = eSprite_Draw_Second;
6064 Data0 = 0x321;
6065
6066 Data0 += pSprite->field_62;
6067 Data2C->field_4A = Data0;
6068 Data0 = pSprite->field_36;
6069 Data0 += 0x50;
6070 Data2C->field_36 = Data0;
6071 Data2C->field_43 = 0;
6072 Data2C->field_44 = 0;
6073 Data0 = pSprite->field_A;
6074 Data0 -= 1;
6075 Data0 ^= 0x0F;
6076 Data0 &= 0x0F;
6077 Data0 <<= 5;
6078 Data2C->field_10 = Data0;
6079 Data2C->field_3A = 0;
6080 Data2C->field_1A_sprite = pSprite;
6081 Data2C->field_2A = 2;
6082 Data2C->field_16 = 0;
6083 Data2C->field_14 = 2;
6084 Data2C->field_34 = -1;
6085 Data2C->field_50 = 0;
6086 Data2C->field_59 = 0;
6087
6088 int16 Data8 = 7;
6089 Data0 = tool_RandomGet();
6090 int16 Data4 = Data0;
6091
6092 Data0 &= Data8;
6093 if (Data4 < 0)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected