168 lines
8.0 KiB
C++
168 lines
8.0 KiB
C++
![]() |
#define sprVERSION 3 //SPR ? <20>n??????
|
|||
|
#include "../systeminc/version.h"
|
|||
|
#include "../systeminc/system.h"
|
|||
|
#include "../systeminc/loadsprbin.h"
|
|||
|
#include "../systeminc/anim_tbl.h"
|
|||
|
|
|||
|
#include "../oft/vg410.h"
|
|||
|
#include "../oft/work.h"
|
|||
|
|
|||
|
#define ERRPRINT(a);
|
|||
|
|
|||
|
SPRITEDATA SpriteData[mxSPRITE];
|
|||
|
extern int nextMaxAdrnID;
|
|||
|
BOOL InitSprBinFileOpen(char *SPR_BIN, char *SPRADRN_BIN)
|
|||
|
{
|
|||
|
SPRADRN _spradrn;
|
|||
|
ANIM_HEADER sprhead;
|
|||
|
FRAMELIST sprdata;
|
|||
|
FILE *fp1, *fp2;
|
|||
|
int j;
|
|||
|
unsigned int k;
|
|||
|
if ((fp1 = fopen(SPR_BIN, "rb")) == NULL)
|
|||
|
return FALSE;
|
|||
|
if ((fp2 = fopen(SPRADRN_BIN, "rb")) == NULL)
|
|||
|
return FALSE;
|
|||
|
static BOOL Sprflg = TRUE;
|
|||
|
static BOOL Sprflg1 = TRUE;
|
|||
|
if (Sprflg){
|
|||
|
Sprflg = FALSE;
|
|||
|
memset(SpriteData, 0, sizeof(SpriteData));
|
|||
|
}
|
|||
|
int no = 0;
|
|||
|
while (TRUE){
|
|||
|
fread(&_spradrn, 1, sizeof(_spradrn), fp2);
|
|||
|
if (feof(fp2) != 0)
|
|||
|
break;
|
|||
|
no = _spradrn.sprNo - SPRSTART;
|
|||
|
if (no > mxSPRITE) break;
|
|||
|
SpriteData[no].animSize = _spradrn.animSize;
|
|||
|
SpriteData[no].ptAnimlist = (ANIMLIST*)calloc(SpriteData[no].animSize, sizeof(ANIMLIST));
|
|||
|
fseek(fp1, _spradrn.offset, SEEK_SET);
|
|||
|
for (j = 0; j < SpriteData[no].animSize; j++){
|
|||
|
fread(&sprhead, 1, 12, fp1);
|
|||
|
SpriteData[no].ptAnimlist[j].dir = sprhead.dir;
|
|||
|
SpriteData[no].ptAnimlist[j].no = sprhead.no;
|
|||
|
if (!sprhead.frameCnt) SpriteData[no].ptAnimlist[j].dtAnim = 0;
|
|||
|
else SpriteData[no].ptAnimlist[j].dtAnim = sprhead.dtAnim / sprhead.frameCnt / 16;
|
|||
|
SpriteData[no].ptAnimlist[j].frameCnt = sprhead.frameCnt;
|
|||
|
SpriteData[no].ptAnimlist[j].ptFramelist = (FRAMELIST*)calloc(SpriteData[no].ptAnimlist[j].frameCnt, sizeof(FRAMELIST));
|
|||
|
for (k = 0; k < SpriteData[no].ptAnimlist[j].frameCnt; k++){
|
|||
|
fread(&sprdata, 1, 10, fp1);
|
|||
|
SpriteData[no].ptAnimlist[j].ptFramelist[k].BmpNo = sprdata.BmpNo + nextMaxAdrnID;
|
|||
|
SpriteData[no].ptAnimlist[j].ptFramelist[k].PosX = sprdata.PosX;
|
|||
|
SpriteData[no].ptAnimlist[j].ptFramelist[k].PosY = sprdata.PosY;
|
|||
|
SpriteData[no].ptAnimlist[j].ptFramelist[k].SoundNo = sprdata.SoundNo;
|
|||
|
}
|
|||
|
}
|
|||
|
if (no == 1059) SpriteData[1059].ptAnimlist[80].ptFramelist[8].BmpNo = 283639;
|
|||
|
if (no == 1059) SpriteData[1059].ptAnimlist[93].ptFramelist[8].BmpNo = 283640;
|
|||
|
if (no == 1283) SpriteData[1283].ptAnimlist[7].ptFramelist[6].SoundNo = 10100;
|
|||
|
if (no == 1283) SpriteData[1283].ptAnimlist[49].ptFramelist[6].SoundNo = 10100;
|
|||
|
if (no == 1404) SpriteData[1404].ptAnimlist[0].ptFramelist[6].BmpNo = 284436;
|
|||
|
if (no == 1409) SpriteData[1409].ptAnimlist[0].ptFramelist[6].BmpNo = 284476;
|
|||
|
if (no == 373)
|
|||
|
for (int kk = 0; kk < 8; kk++) {
|
|||
|
SpriteData[373].ptAnimlist[kk * 7].ptFramelist[8].SoundNo = 254;
|
|||
|
SpriteData[373].ptAnimlist[kk * 7].ptFramelist[10].SoundNo = 254;
|
|||
|
SpriteData[373].ptAnimlist[kk * 7].ptFramelist[15].SoundNo = 250;
|
|||
|
}
|
|||
|
if (no == 102) SpriteData[102].ptAnimlist[82].ptFramelist[0].BmpNo = 126235;
|
|||
|
if (no == 102) SpriteData[102].ptAnimlist[83].ptFramelist[0].BmpNo = 126236;
|
|||
|
if (no == 102) SpriteData[102].ptAnimlist[83].ptFramelist[1].BmpNo = 126237;
|
|||
|
if (no == 102) SpriteData[102].ptAnimlist[84].ptFramelist[1].BmpNo = 126238;
|
|||
|
if (no == 1058) SpriteData[1058].ptAnimlist[80].ptFramelist[8].BmpNo = 232475;
|
|||
|
if (no == 1058) SpriteData[1058].ptAnimlist[93].ptFramelist[8].BmpNo = 232476;
|
|||
|
|
|||
|
if (no == 260) SpriteData[260].ptAnimlist[21].ptFramelist[5].SoundNo = 10001;
|
|||
|
if (no == 502) SpriteData[502].animSize = 1;
|
|||
|
if (no == 502) SpriteData[502].ptAnimlist = (ANIMLIST*)calloc(SpriteData[502].animSize, sizeof(ANIMLIST));
|
|||
|
if (no == 502) SpriteData[502].ptAnimlist[0].dir = 0;
|
|||
|
if (no == 502) SpriteData[502].ptAnimlist[0].no = 0;
|
|||
|
if (no == 502) SpriteData[502].ptAnimlist[0].dtAnim = 4;
|
|||
|
if (no == 502) SpriteData[502].ptAnimlist[0].frameCnt = 3;
|
|||
|
if (no == 502) SpriteData[502].ptAnimlist[0].ptFramelist = (FRAMELIST*)calloc(SpriteData[502].ptAnimlist[0].frameCnt, sizeof(FRAMELIST));
|
|||
|
int iTemp = 8590;
|
|||
|
if (no == 382){
|
|||
|
for (int kkk = 0; kkk < 8; kkk++){
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].frameCnt = 14;
|
|||
|
free(SpriteData[382].ptAnimlist[7 * kkk].ptFramelist);
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist = (FRAMELIST*)calloc(SpriteData[382].ptAnimlist[7 * kkk].frameCnt, sizeof(FRAMELIST));
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[4].SoundNo = SpriteData[381].ptAnimlist[0].ptFramelist[4].SoundNo;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[9].SoundNo = SpriteData[381].ptAnimlist[0].ptFramelist[9].SoundNo;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].dtAnim = SpriteData[381].ptAnimlist[0].dtAnim;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[0].BmpNo = 124604 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[1].BmpNo = 124605 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[2].BmpNo = 124606 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[3].BmpNo = 124607 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[4].BmpNo = 124608 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[5].BmpNo = 124609 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[6].BmpNo = 124610 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[7].BmpNo = 124611 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[8].BmpNo = 124607 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[9].BmpNo = 124608 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[10].BmpNo = 124609 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[11].BmpNo = 124610 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[12].BmpNo = 124611 + kkk * 29;
|
|||
|
SpriteData[382].ptAnimlist[7 * kkk].ptFramelist[13].BmpNo = 124604 + kkk * 29;
|
|||
|
}
|
|||
|
}
|
|||
|
if (no == 502)
|
|||
|
for (k = 0; k < SpriteData[502].ptAnimlist[0].frameCnt; k++){
|
|||
|
SpriteData[502].ptAnimlist[0].ptFramelist[k].BmpNo = iTemp++;
|
|||
|
SpriteData[502].ptAnimlist[0].ptFramelist[k].PosX = 0;
|
|||
|
SpriteData[502].ptAnimlist[0].ptFramelist[k].PosY = 0;
|
|||
|
SpriteData[502].ptAnimlist[0].ptFramelist[k].SoundNo = 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//Change fix Ͷ<><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>趨SoundNo,ս<><D5BD>ʱ<EFBFBD>ᵱ
|
|||
|
if (no >= 1965 && no < 1987) {
|
|||
|
//for(int kk=1965;kk<1987;kk++)
|
|||
|
//{
|
|||
|
SpriteData[no].ptAnimlist[9].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[22].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[35].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[48].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[61].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[74].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[87].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[100].ptFramelist[4].SoundNo = 10006;
|
|||
|
//}
|
|||
|
}
|
|||
|
if (no >= 1988 && no < 1990) {
|
|||
|
//for(int kk=1988;kk<1990;kk++)
|
|||
|
//{
|
|||
|
SpriteData[no].ptAnimlist[9].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[22].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[35].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[48].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[61].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[74].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[87].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[100].ptFramelist[4].SoundNo = 10006;
|
|||
|
//}
|
|||
|
}
|
|||
|
|
|||
|
if (no >= 3347 && no <= 3370)
|
|||
|
{
|
|||
|
SpriteData[no].ptAnimlist[9].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[22].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[35].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[48].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[61].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[74].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[87].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[100].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[52].ptFramelist[4].SoundNo = 10006;
|
|||
|
SpriteData[no].ptAnimlist[39].ptFramelist[5].SoundNo = 10006;
|
|||
|
}
|
|||
|
}
|
|||
|
fclose(fp1);
|
|||
|
fclose(fp2);
|
|||
|
if (Sprflg1){
|
|||
|
Sprflg1 = FALSE;
|
|||
|
}
|
|||
|
return TRUE;
|
|||
|
}
|