Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "3ds.h"
- bool Load3DS(CHAR *PATH, SCENE *scene)
- {
- unsigned short chunk_id;
- unsigned int chunk_len;
- FILE *stream = fopen(PATH, "r");
- if (stream == NULL) return false;
- while(!feof(stream))
- {
- fread(&chunk_id, 2, 1, stream);
- fread(&chunk_len, 4, 1, stream);
- switch(chunk_id)
- {
- case CHUNK_SCENE: break;
- case CHUNK_OBJMESH: break;
- case CHUNK_OBJBLOCK: break;
- case CHUNK_TRIMESH: break;
- case CHUNK_VERTLIST:
- {
- VERTLIST vertlist;
- fread(&vertlist, chunk_len, 1, stream);
- scene->objmesh.objblock.trimesh.vertlist = vertlist;
- } break;
- case CHUNK_FACELIST:
- {
- FACELIST facelist;
- fread(&facelist, chunk_len, 1, stream);
- scene->objmesh.objblock.trimesh.facelist = facelist;
- } break;
- case CHUNK_FACEMAT:
- {
- FACEMAT facemat;
- fread(&facemat, chunk_len, 1, stream);
- scene->objmesh.objblock.trimesh.facemat = facemat;
- } break;
- case CHUNK_MAPLIST:
- {
- MAPLIST maplist;
- fread(&maplist, chunk_len, 1, stream);
- scene->objmesh.objblock.trimesh.maplist = maplist;
- } break;
- case CHUNK_TRMATRIX:
- {
- TRMATRIX trmatrix;
- fread(&trmatrix, chunk_len, 1, stream);
- scene->objmesh.objblock.trimesh.trmatrix = trmatrix;
- } break;
- case CHUNK_CAMERA: break;
- case CHUNK_MATERIAL: break;
- case CHUNK_MATNAME:
- {
- MATNAME matname;
- fread(&matname, chunk_len, 1, stream);
- scene->material.matname = matname;
- } break;
- case CHUNK_TEXTURE: break;
- case CHUNK_MAPFILE:
- {
- MAPFILE mapfile;
- fread(&mapfile, chunk_len, 1, stream);
- scene->material.texture.mapfile = mapfile;
- } break;
- case CHUNK_KEYFRAMER: break;
- case CHUNK_TRACKINFO: break;
- case CHUNK_TRACKOBJNAME:
- {
- TRACKOBJNAME trackobjname;
- fread(&trackobjname, chunk_len, 1, stream);
- scene->keyframer.trackinfo.trackobjname = trackobjname;
- } break;
- case CHUNK_TRACKPIVOT:
- {
- TRACKPIVOT trackpivot;
- fread(&trackpivot, chunk_len, 1, stream);
- scene->keyframer.trackinfo.trackpivot = trackpivot;
- } break;
- case CHUNK_TRACKPOS:
- {
- TRACKPOS trackpos;
- fread(&trackpos, chunk_len, 1, stream);
- scene->keyframer.trackinfo.trackpos = trackpos;
- } break;
- case CHUNK_TRACKROTATE:
- {
- TRACKROTATE trackrotate;
- fread(&trackrotate, chunk_len, 1, stream);
- scene->keyframer.trackinfo.trackrotate = trackrotate;
- } break;
- case CHUNK_TRACKCAMERA: break;
- case CHUNK_TRACKFOV:
- {
- TRACKFOV trackfov;
- fread(&trackfov, chunk_len, 1, stream);
- scene->keyframer.trackcamera.trackfov = trackfov;
- } break;
- case CHUNK_TRACKROLL:
- {
- TRACKROLL trackroll;
- fread(&trackroll, chunk_len, 1, stream);
- scene->keyframer.trackcamera.trackroll = trackroll;
- } break;
- case CHUNK_TRACKCAMTGT: break;
- }
- }
- fclose(stream);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement