168 lines
8.0 KiB
C++
168 lines
8.0 KiB
C++
#define sprVERSION 3 //SPR ? ¢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 ͶÖÀ¶¯×÷ûÓÐÉ趨SoundNo,Õ½¶·Ê±»áµ±
|
||
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;
|
||
}
|