| 13971 | } |
| 13972 | |
| 13973 | void cFodder::Sprite_Handle_Spider_Mine(sSprite* pSprite) { |
| 13974 | int16 Data0, Data4, Data8, DataC, Data10; |
| 13975 | sSprite* Data14 = 0; |
| 13976 | |
| 13977 | if (pSprite->field_38) |
| 13978 | goto loc_1DC50; |
| 13979 | |
| 13980 | pSprite->field_8 = 0xE2; |
| 13981 | if (!pSprite->field_2E) { |
| 13982 | pSprite->field_2E = -1; |
| 13983 | Data0 = tool_RandomGet() & 0x1E; |
| 13984 | pSprite->field_2A = Data0; |
| 13985 | } |
| 13986 | |
| 13987 | Data0 = pSprite->field_2A; |
| 13988 | Data0 += 2; |
| 13989 | Data0 &= 0x1E; |
| 13990 | pSprite->field_2A = Data0; |
| 13991 | |
| 13992 | pSprite->field_A = mSprite_SpiderMine_Frames[Data0 / 2]; |
| 13993 | Data14 = mSquad_Leader; |
| 13994 | |
| 13995 | if (Data14 == INVALID_SPRITE_PTR) |
| 13996 | return; |
| 13997 | |
| 13998 | Data0 = Data14->field_0; |
| 13999 | Data4 = Data14->field_4; |
| 14000 | Data8 = pSprite->field_0; |
| 14001 | Data8 += 4; |
| 14002 | DataC = pSprite->field_4; |
| 14003 | DataC -= 2; |
| 14004 | Data10 = 0x20; |
| 14005 | Map_Get_Distance_BetweenPoints_Within_Window(Data0, Data4, Data8, DataC); |
| 14006 | if (Data0 > 0x0A) |
| 14007 | return; |
| 14008 | |
| 14009 | loc_1DC50:; |
| 14010 | pSprite->field_18 = eSprite_Explosion; |
| 14011 | pSprite->field_26 = -32763; |
| 14012 | pSprite->field_28 = -3; |
| 14013 | } |
| 14014 | |
| 14015 | void cFodder::Sprite_Handle_Bonus_RankToGeneral(sSprite* pSprite) { |
| 14016 | int16 Data0; |
nothing calls this directly
no outgoing calls
no test coverage detected