MCPcopy Create free account
hub / github.com/diasurgical/devilution / DrawMissilePrivate

Function DrawMissilePrivate

Source/scrollrt.cpp:216–243  ·  view source on GitHub ↗

* @brief Render a missile sprite * @param m Pointer to MissileStruct struct * @param sx Back buffer coordinate * @param sy Back buffer coordinate * @param pre Is the sprite in the background */

Source from the content-addressed store, hash-verified

214 * @param pre Is the sprite in the background
215 */
216void DrawMissilePrivate(MissileStruct *m, int sx, int sy, BOOL pre)
217{
218 int mx, my, nCel, frames;
219 BYTE *pCelBuff;
220
221 if (m->_miPreFlag != pre || !m->_miDrawFlag)
222 return;
223
224 pCelBuff = m->_miAnimData;
225 if (!pCelBuff) {
226 // app_fatal("Draw Missile 2 type %d: NULL Cel Buffer", m->_mitype);
227 return;
228 }
229 nCel = m->_miAnimFrame;
230 frames = SDL_SwapLE32(*(DWORD *)pCelBuff);
231 if (nCel < 1 || frames > 50 || nCel > frames) {
232 // app_fatal("Draw Missile 2: frame %d of %d, missile type==%d", nCel, frames, m->_mitype);
233 return;
234 }
235 mx = sx + m->_mixoff - m->_miAnimWidth2;
236 my = sy + m->_miyoff;
237 if (m->_miUniqTrans)
238 Cl2DrawLightTbl(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, m->_miUniqTrans + 3);
239 else if (m->_miLightFlag)
240 Cl2DrawLight(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth);
241 else
242 Cl2Draw(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth);
243}
244
245/**
246 * @brief Render a missile sprites for a given tile

Callers 1

DrawMissileFunction · 0.85

Calls 3

Cl2DrawLightTblFunction · 0.85
Cl2DrawLightFunction · 0.85
Cl2DrawFunction · 0.85

Tested by

no test coverage detected