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

Function LoadPlrGFX

Source/player.cpp:134–244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

132}
133
134void LoadPlrGFX(int pnum, player_graphic gfxflag)
135{
136 char prefix[16];
137 char pszName[256];
138 char *szCel;
139 PlayerStruct *p;
140 char *cs;
141 BYTE *pData, *pAnim;
142 DWORD i;
143
144 if ((DWORD)pnum >= MAX_PLRS) {
145 app_fatal("LoadPlrGFX: illegal player %d", pnum);
146 }
147
148 p = &plr[pnum];
149 sprintf(prefix, "%c%c%c", CharChar[p->_pClass], ArmourChar[p->_pgfxnum >> 4], WepChar[p->_pgfxnum & 0xF]);
150 cs = ClassStrTbl[p->_pClass];
151
152 for (i = 1; i <= PFILE_NONDEATH; i <<= 1) {
153 if (!(i & gfxflag)) {
154 continue;
155 }
156
157 switch (i) {
158 case PFILE_STAND:
159 szCel = "AS";
160 if (leveltype == DTYPE_TOWN) {
161 szCel = "ST";
162 }
163 pData = p->_pNData;
164 pAnim = (BYTE *)p->_pNAnim;
165 break;
166 case PFILE_WALK:
167 szCel = "AW";
168 if (leveltype == DTYPE_TOWN) {
169 szCel = "WL";
170 }
171 pData = p->_pWData;
172 pAnim = (BYTE *)p->_pWAnim;
173 break;
174 case PFILE_ATTACK:
175 if (leveltype == DTYPE_TOWN) {
176 continue;
177 }
178 szCel = "AT";
179 pData = p->_pAData;
180 pAnim = (BYTE *)p->_pAAnim;
181 break;
182 case PFILE_HIT:
183 if (leveltype == DTYPE_TOWN) {
184 continue;
185 }
186 szCel = "HT";
187 pData = p->_pHData;
188 pAnim = (BYTE *)p->_pHAnim;
189 break;
190 case PFILE_LIGHTNING:
191 if (leveltype == DTYPE_TOWN) {

Callers 14

On_PLAYER_JOINLEVELFunction · 0.85
recv_plrinfoFunction · 0.85
InitPlayerGFXFunction · 0.85
StartStandFunction · 0.85
StartWalkFunction · 0.85
StartWalk2Function · 0.85
StartWalk3Function · 0.85
StartAttackFunction · 0.85
StartRangeAttackFunction · 0.85
StartPlrBlockFunction · 0.85
StartSpellFunction · 0.85
StartPlrHitFunction · 0.85

Calls 3

app_fatalFunction · 0.85
LoadFileWithMemFunction · 0.85
SetPlayerGPtrsFunction · 0.85

Tested by

no test coverage detected