[Cine-cvs] cruisE/src backgroundIncrust.c,1.11,1.12 cruise.c,1.62,1.63 dataLoader.c,1.7,1.8 loadSave
Status: Pre-Alpha
Brought to you by:
yazoo
From: Richard <tri...@us...> - 2005-10-29 18:23:23
|
Update of /cvsroot/cine/cruisE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12763/src Modified Files: backgroundIncrust.c cruise.c dataLoader.c loadSave.c vars.h Log Message: renamed param1/param2 to height and witdh in DataLoader added check in DataLoader if the maximum number of sprites is reached (check with disassembly) renamed subdata.var4 to subdata.index (symbolizes the index of this sprite in the SET-file) minor readability improvments and cleanups Index: dataLoader.c =================================================================== RCS file: /cvsroot/cine/cruisE/src/dataLoader.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** dataLoader.c 20 Oct 2005 15:02:53 -0000 1.7 --- dataLoader.c 29 Oct 2005 18:23:14 -0000 1.8 *************** *** 143,148 **** } ! // height width ! int updateResFileEntry(int param1, int param2, int entryNumber, int resType) { int div = 0; --- 143,147 ---- } ! int updateResFileEntry(int height, int width, int entryNumber, int resType) { int div = 0; *************** *** 153,189 **** filesDatabase[entryNumber].subData.field_1C = 0; ! size = param1*param2; // for sprites: width * height if(resType == 4) { ! div = size/4; ! } else if (resType == 5) { ! param2 = (param2 * 8) / 5; } ! filesDatabase[entryNumber].subData.ptr = (u8*)mallocAndZero(size+div); if(!filesDatabase[entryNumber].subData.ptr) return(-2); ! filesDatabase[entryNumber].widthInColumn = param2; ! filesDatabase[entryNumber].subData.ptr2 = filesDatabase[entryNumber].subData.ptr+size; ! ! filesDatabase[entryNumber].width = param2 / 8; ! filesDatabase[entryNumber].resType = resType; ! filesDatabase[entryNumber].height = param1; ! ! filesDatabase[entryNumber].subData.var4 = -1; ! return(entryNumber); } ! // width height ! int createResFileEntry(int param1, int param2, int resType) { int i; int entryNumber; ! int div; int size; --- 152,187 ---- filesDatabase[entryNumber].subData.field_1C = 0; ! size = height * width; // for sprites: width * height if(resType == 4) { ! div = size / 4; ! } ! else if (resType == 5) { ! width = (width * 8) / 5; } ! filesDatabase[entryNumber].subData.ptr = (u8*)mallocAndZero(size + div); if(!filesDatabase[entryNumber].subData.ptr) return(-2); ! filesDatabase[entryNumber].widthInColumn = width; ! filesDatabase[entryNumber].subData.ptr2 = filesDatabase[entryNumber].subData.ptr+size; ! filesDatabase[entryNumber].width = width / 8; ! filesDatabase[entryNumber].resType = resType; ! filesDatabase[entryNumber].height = height; ! filesDatabase[entryNumber].subData.index = -1; ! return entryNumber; } ! ! int createResFileEntry(int width, int height, int resType) { int i; int entryNumber; ! int div = 0; int size; *************** *** 191,195 **** exit(1); ! for(i=0;i<257;i++) { if(!filesDatabase[i].subData.ptr) --- 189,193 ---- exit(1); ! for(i = 0; i < 257; i++) { if(!filesDatabase[i].subData.ptr) *************** *** 197,234 **** } ! if(i>=257) return(-19); entryNumber = i; - div = 0; - filesDatabase[entryNumber].subData.field_1C = 0; ! size = param1*param2; // for sprites: width * height if(resType == 4) { ! div = size/4; ! } else if (resType == 5) { ! param1 = (param1 * 8) / 5; } ! filesDatabase[entryNumber].subData.ptr = (u8*)mallocAndZero(size+div); if(filesDatabase[entryNumber].subData.ptr) return(-2); ! filesDatabase[entryNumber].widthInColumn = param1; ! filesDatabase[entryNumber].subData.ptr2 = filesDatabase[entryNumber].subData.ptr+size; ! ! filesDatabase[entryNumber].width = param1 / 8; ! filesDatabase[entryNumber].resType = resType; ! filesDatabase[entryNumber].height = param2; ! ! filesDatabase[entryNumber].subData.var4 = -1; ! return(entryNumber); } --- 195,233 ---- } ! if(i >= 257) ! { return(-19); + } entryNumber = i; filesDatabase[entryNumber].subData.field_1C = 0; ! size = width * height; // for sprites: width * height if(resType == 4) { ! div = size / 4; ! } ! else if (resType == 5) { ! width = (width * 8) / 5; } ! filesDatabase[entryNumber].subData.ptr = (u8*)mallocAndZero(size + div); if(filesDatabase[entryNumber].subData.ptr) + { return(-2); + } ! filesDatabase[entryNumber].widthInColumn = width; ! filesDatabase[entryNumber].subData.ptr2 = filesDatabase[entryNumber].subData.ptr + size; ! filesDatabase[entryNumber].width = width / 8; ! filesDatabase[entryNumber].resType = resType; ! filesDatabase[entryNumber].height = height; ! filesDatabase[entryNumber].subData.index = -1; ! return entryNumber; } *************** *** 263,269 **** int getNumMaxEntiresInSet(u8* ptr) { ! u16 numEntries; ! ! numEntries = *(u16*)(ptr+4); flipShort(&numEntries); --- 262,266 ---- int getNumMaxEntiresInSet(u8* ptr) { ! u16 numEntries = *(u16*)(ptr + 4); flipShort(&numEntries); *************** *** 271,275 **** } ! int loadFileMode2(u8* name, int startIdx, int param, int numIdx) { u8* ptr = NULL; --- 268,272 ---- } ! int loadFileMode2(u8* name, int startIdx, int currentEntryIdx, int numIdx) { u8* ptr = NULL; *************** *** 278,282 **** fileType = getFileType(name); ! loadFileSub1(&ptr,name,NULL); switch(fileType) --- 275,279 ---- fileType = getFileType(name); ! loadFileSub1(&ptr, name, NULL); switch(fileType) *************** *** 285,295 **** { int i; ! int numMaxEntriesInSet; ! numMaxEntriesInSet = getNumMaxEntiresInSet(ptr); ! ! for(i=0;i<numIdx;i++) { ! loadSetEntry(name, ptr, param+i, startIdx+i); } --- 282,294 ---- { int i; ! int numMaxEntriesInSet = getNumMaxEntiresInSet(ptr); ! for(i = 0; i < numIdx; i++) { ! if ((currentEntryIdx + i) > numMaxEntriesInSet) ! { ! return 0; // exit if limit is reached ! } ! loadSetEntry(name, ptr, currentEntryIdx + i, startIdx + i); } *************** *** 321,327 **** int numMaxEntriesInSet; ! numMaxEntriesInSet = getNumMaxEntiresInSet(ptr); ! for(i=0;i<numMaxEntriesInSet;i++) { loadSetEntry(name, ptr, i, startIdx+i); --- 320,326 ---- int numMaxEntriesInSet; ! numMaxEntriesInSet = getNumMaxEntiresInSet(ptr); // get maximum number of sprites/animations in SET file ! for(i = 0; i < numMaxEntriesInSet; i++) { loadSetEntry(name, ptr, i, startIdx+i); *************** *** 342,350 **** void loadFNTSub(u8* ptr, int destIdx) { ! u8* ptr2 = ptr; char* destPtr; ! int fileIndex; ! int fontSize; ! ptr2+=4; memcpy(&loadFileVar1, ptr2, 4); --- 341,350 ---- void loadFNTSub(u8* ptr, int destIdx) { ! u8* ptr2 = ptr; char* destPtr; ! int fileIndex; ! int fontSize; ! ! ptr2 += 4; memcpy(&loadFileVar1, ptr2, 4); *************** *** 353,361 **** if(destIdx == -1) { ! fileIndex = createResFileEntry(loadFileVar1,1,1); } else { ! fileIndex = updateResFileEntry(loadFileVar1,1,destIdx,1); } --- 353,361 ---- if(destIdx == -1) { ! fileIndex = createResFileEntry(loadFileVar1, 1 ,1); } else { ! fileIndex = updateResFileEntry(loadFileVar1, 1, destIdx, 1); } *************** *** 365,369 **** memcpy(&fontSize,ptr2,4); ! flipLong(&fontSize); if(destPtr!=NULL) --- 365,369 ---- memcpy(&fontSize,ptr2,4); ! flipLong(&fontSize); if(destPtr!=NULL) *************** *** 372,390 **** u8* currentPtr; ! destPtr = filesDatabase[fileIndex].subData.ptr; ! flipLong((s32*)destPtr); ! flipLong((s32*)(destPtr+4)); ! flipGen(destPtr+8,6); currentPtr = destPtr + 14; ! for(i=0;i<*(s16*)(destPtr+8);i++) { ! flipLong((s32*)currentPtr); ! currentPtr+=4; ! flipGen(currentPtr,8); ! currentPtr+=8; } } --- 372,390 ---- u8* currentPtr; ! destPtr = filesDatabase[fileIndex].subData.ptr; ! flipLong((s32*) destPtr); ! flipLong((s32*) (destPtr + 4)); ! flipGen(destPtr + 8, 6); currentPtr = destPtr + 14; ! for(i = 0; i < *(s16*) (destPtr + 8); i++) { ! flipLong((s32*) currentPtr); ! currentPtr += 4; ! flipGen(currentPtr, 8); ! currentPtr += 8; } } *************** *** 424,429 **** memcpy(&localBuffer, ptr4, sizeof(setHeaderEntry)); ! flipLong((s32*)&localBuffer.field_0); ! flipGen(&localBuffer.width,12); if ((sec == 1) || (localBuffer.type == 5)) --- 424,429 ---- memcpy(&localBuffer, ptr4, sizeof(setHeaderEntry)); ! flipLong((s32*) &localBuffer.field_0); ! flipGen(&localBuffer.width, 12); if ((sec == 1) || (localBuffer.type == 5)) *************** *** 434,438 **** resourceSize = localBuffer.width * localBuffer.height; ! if(currentDestEntry==-1) { fileIndex = createResFileEntry(localBuffer.width,localBuffer.height,localBuffer.type); --- 434,438 ---- resourceSize = localBuffer.width * localBuffer.height; ! if(currentDestEntry == -1) { fileIndex = createResFileEntry(localBuffer.width,localBuffer.height,localBuffer.type); *************** *** 440,447 **** else { ! fileIndex = updateResFileEntry(localBuffer.height,localBuffer.width,currentDestEntry,localBuffer.type); } ! if(fileIndex<0) { return; // TODO: buffer is not freed --- 440,447 ---- else { ! fileIndex = updateResFileEntry(localBuffer.height, localBuffer.width, currentDestEntry, localBuffer.type); } ! if(fileIndex < 0) { return; // TODO: buffer is not freed *************** *** 496,500 **** } ! filesDatabase[fileIndex].subData.var4 = currentDestEntry; filesDatabase[fileIndex].subData.transparency = localBuffer.transparency; /*% 0x10*/; --- 496,500 ---- } ! filesDatabase[fileIndex].subData.index = currentDestEntry; filesDatabase[fileIndex].subData.transparency = localBuffer.transparency; /*% 0x10*/; Index: cruise.c =================================================================== RCS file: /cvsroot/cine/cruisE/src/cruise.c,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** cruise.c 22 Oct 2005 15:40:41 -0000 1.62 --- cruise.c 29 Oct 2005 18:23:14 -0000 1.63 *************** *** 183,187 **** filesDatabase[i].subData.ptr2 = NULL; ! filesDatabase[i].subData.var4 = -1; filesDatabase[i].subData.resourceType = 0; } --- 183,187 ---- filesDatabase[i].subData.ptr2 = NULL; ! filesDatabase[i].subData.index = -1; filesDatabase[i].subData.resourceType = 0; } *************** *** 458,462 **** filesDatabase[entryNumber].resType = 0; filesDatabase[entryNumber].height = 0; ! filesDatabase[entryNumber].subData.var4 = -1; filesDatabase[entryNumber].subData.resourceType = 0; filesDatabase[entryNumber].subData.field_1C = 0; --- 458,462 ---- filesDatabase[entryNumber].resType = 0; filesDatabase[entryNumber].height = 0; ! filesDatabase[entryNumber].subData.index = -1; filesDatabase[entryNumber].subData.resourceType = 0; filesDatabase[entryNumber].subData.field_1C = 0; Index: loadSave.c =================================================================== RCS file: /cvsroot/cine/cruisE/src/loadSave.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** loadSave.c 20 Oct 2005 12:09:33 -0000 1.9 --- loadSave.c 29 Oct 2005 18:23:14 -0000 1.10 *************** *** 378,382 **** else { ! loadFileMode2(filesDatabase[j].subData.name,filesDatabase[j].subData.var4,j,i-j); j = i-1; } --- 378,382 ---- else { ! loadFileMode2(filesDatabase[j].subData.name,filesDatabase[j].subData.index, j, i-j); j = i-1; } Index: backgroundIncrust.c =================================================================== RCS file: /cvsroot/cine/cruisE/src/backgroundIncrust.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** backgroundIncrust.c 20 Oct 2005 15:02:53 -0000 1.11 --- backgroundIncrust.c 29 Oct 2005 18:23:14 -0000 1.12 *************** *** 86,90 **** newElement->scale = params.scale; newElement->field_E = params.fileIdx; ! newElement->var34 = filesDatabase[params.fileIdx].subData.var4; newElement->ptr = NULL; strcpy(newElement->name, filesDatabase[params.fileIdx].subData.name); --- 86,90 ---- newElement->scale = params.scale; newElement->field_E = params.fileIdx; ! newElement->var34 = filesDatabase[params.fileIdx].subData.index; newElement->ptr = NULL; strcpy(newElement->name, filesDatabase[params.fileIdx].subData.name); Index: vars.h =================================================================== RCS file: /cvsroot/cine/cruisE/src/vars.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** vars.h 20 Oct 2005 15:02:53 -0000 1.24 --- vars.h 29 Oct 2005 18:23:14 -0000 1.25 *************** *** 124,133 **** { u8* ptr; ! s16 var4; ! u8 name[14]; s16 transparency; // sprite transparency u8* ptr2; ! u8 resourceType; // sprite and image type 2,4,8 , fnt = 7, spl = 6 ! u8 field_1B; s16 field_1C; }; --- 124,133 ---- { u8* ptr; ! s16 index; // sprite index ! u8 name[14]; s16 transparency; // sprite transparency u8* ptr2; ! u8 resourceType; // sprite and image type 2,4,8 , fnt = 7, spl = 6 ! u8 field_1B; s16 field_1C; }; |