| 5186 | } |
| 5187 | |
| 5188 | int16 cFodder::Sprite_Create_Smoke(sSprite* pSprite, sSprite*& pData2C) { |
| 5189 | if (!pSprite->field_5C) |
| 5190 | return -1; |
| 5191 | |
| 5192 | int16 Data0 = 1; |
| 5193 | sSprite* Data30 = 0; |
| 5194 | |
| 5195 | if (Sprite_Get_Free_Max42(Data0, pData2C, Data30)) |
| 5196 | return -1; |
| 5197 | |
| 5198 | pData2C->field_0 = pSprite->field_0; |
| 5199 | pData2C->field_2 = pSprite->field_2; |
| 5200 | pData2C->field_4 = pSprite->field_4; |
| 5201 | pData2C->field_6 = pSprite->field_6; |
| 5202 | |
| 5203 | if (dword_3B24B) { |
| 5204 | Data0 = tool_RandomGet() & 0x1F; |
| 5205 | Data0 -= 8; |
| 5206 | pData2C->field_0 += Data0; |
| 5207 | Data0 >>= 4; |
| 5208 | Data0 &= 0x0F; |
| 5209 | Data0 -= 8; |
| 5210 | pData2C->field_4 -= Data0; |
| 5211 | dword_3B24B = 0; |
| 5212 | } |
| 5213 | |
| 5214 | pData2C->field_20 = pSprite->field_20; |
| 5215 | pData2C->field_52 = 0; |
| 5216 | pData2C->field_8 = 0xCC; |
| 5217 | pData2C->field_A = 4; |
| 5218 | pData2C->field_2C = eSprite_Draw_OnTop; |
| 5219 | pData2C->field_18 = eSprite_Smoke; |
| 5220 | return 0; |
| 5221 | } |
| 5222 | |
| 5223 | void cFodder::sub_23525(sSprite* pSprite) { |
| 5224 | int16 Data0 = 2; |
nothing calls this directly
no outgoing calls
no test coverage detected