mirror of
				https://notabug.org/scuti/lib3ddevil1
				synced 2025-05-31 14:11:42 +05:30 
			
		
		
		
	Moved pld fn into pld demo, and includes into respective demos
This commit is contained in:
		@@ -3,17 +3,6 @@
 | 
				
			|||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "devil1pld.h"
 | 
					 | 
				
			||||||
#include "devil1tex.h"
 | 
					 | 
				
			||||||
#include "devil1geo.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define TYPE_ID_LENGTH 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char *loadfile(const char *fname, unsigned int *s) {
 | 
					char *loadfile(const char *fname, unsigned int *s) {
 | 
				
			||||||
    FILE *f           = fopen(fname, "rb");
 | 
					    FILE *f           = fopen(fname, "rb");
 | 
				
			||||||
    unsigned int size = 0; // number of elements to buffer;
 | 
					    unsigned int size = 0; // number of elements to buffer;
 | 
				
			||||||
@@ -60,29 +49,5 @@ void write(const char *filename,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool unpackpld(const char *filedata,
 | 
					
 | 
				
			||||||
               unsigned int filesize,
 | 
					 | 
				
			||||||
               const char *filename) {
 | 
					 | 
				
			||||||
    if (filedata == NULL || filesize <= 0 || filename == NULL) {
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    } 
 | 
					 | 
				
			||||||
    struct PldHeader h;
 | 
					 | 
				
			||||||
    DEVIL1PLD.getheader(&h, filedata);
 | 
					 | 
				
			||||||
    char *fn       = NULL;
 | 
					 | 
				
			||||||
    fn = (char*)malloc(strlen(filename) + 3 + 4);
 | 
					 | 
				
			||||||
    int size       = 0;
 | 
					 | 
				
			||||||
    unsigned int i = 0;
 | 
					 | 
				
			||||||
    char textureid[TYPE_ID_LENGTH] = {'\0', '2', '3', 'T'};
 | 
					 | 
				
			||||||
    for (i = 0; i < h.numOffset; i++) {
 | 
					 | 
				
			||||||
        const char * currentfile = filedata + h.offsets[i];
 | 
					 | 
				
			||||||
        size = DEVIL1PLD.sizeofsector(&h, i, filesize);
 | 
					 | 
				
			||||||
        if (strncmp( currentfile, textureid, TYPE_ID_LENGTH ) == 0)
 | 
					 | 
				
			||||||
          sprintf(fn, "%s_%d.txp", filename, i);
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
          sprintf(fn, "%s_%d", filename, i);
 | 
					 | 
				
			||||||
        write(fn, currentfile, size);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    free(fn);
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#include "common.h"
 | 
					#include "common.h"
 | 
				
			||||||
 | 
					#include "devil1geo.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void extractmeshes(const char *filedata,
 | 
					void extractmeshes(const char *filedata,
 | 
				
			||||||
                   unsigned int filesize,
 | 
					                   unsigned int filesize,
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								demo/pld.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								demo/pld.c
									
									
									
									
									
								
							@@ -1,5 +1,32 @@
 | 
				
			|||||||
#include "common.h"
 | 
					#include "common.h"
 | 
				
			||||||
 | 
					#include "devil1pld.h"
 | 
				
			||||||
 | 
					#define TYPE_ID_LENGTH 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool unpackpld(const char *filedata,
 | 
				
			||||||
 | 
					               unsigned int filesize,
 | 
				
			||||||
 | 
					               const char *filename) {
 | 
				
			||||||
 | 
					    if (filedata == NULL || filesize <= 0 || filename == NULL) {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    } 
 | 
				
			||||||
 | 
					    struct PldHeader h;
 | 
				
			||||||
 | 
					    DEVIL1PLD.getheader(&h, filedata);
 | 
				
			||||||
 | 
					    char *fn       = NULL;
 | 
				
			||||||
 | 
					    fn = (char*)malloc(strlen(filename) + 3 + 4);
 | 
				
			||||||
 | 
					    int size       = 0;
 | 
				
			||||||
 | 
					    unsigned int i = 0;
 | 
				
			||||||
 | 
					    char textureid[TYPE_ID_LENGTH] = {'\0', '2', '3', 'T'};
 | 
				
			||||||
 | 
					    for (i = 0; i < h.numOffset; i++) {
 | 
				
			||||||
 | 
					        const char * currentfile = filedata + h.offsets[i];
 | 
				
			||||||
 | 
					        size = DEVIL1PLD.sizeofsector(&h, i, filesize);
 | 
				
			||||||
 | 
					        if (strncmp( currentfile, textureid, TYPE_ID_LENGTH ) == 0)
 | 
				
			||||||
 | 
					          sprintf(fn, "%s_%d.txp", filename, i);
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          sprintf(fn, "%s_%d", filename, i);
 | 
				
			||||||
 | 
					        write(fn, currentfile, size);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    free(fn);
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char ** argv) {
 | 
					int main(int argc, char ** argv) {
 | 
				
			||||||
    char *f = argv[1];
 | 
					    char *f = argv[1];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#include "common.h"
 | 
					#include "common.h"
 | 
				
			||||||
 | 
					#include "devil1tex.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void exporttextures(const char *filedata,
 | 
					void exporttextures(const char *filedata,
 | 
				
			||||||
                    unsigned int filesize,
 | 
					                    unsigned int filesize,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user