30 Com_Error(
ERR_DROP,
"model '%s' has invalid skin number: %i", fileName, numSkins);
52 for (
int i = 0;
i < numSkins;
i++) {
55 printf(
" \\ - new skin: ");
63 Com_Printf(
"Error writing md2 file %s\n", fileName);
98 for (
int i = 0;
i < numSkins;
i++) {
107 Com_Printf(
" \\ - frameSize %i\n", frameSize);
108 Com_Printf(
" \\ - skinHeight %i\n", skinHeight);
109 Com_Printf(
" \\ - skinWidth %i\n", skinWidth);
114 Com_Printf(
" \\ - ofsFrames %i\n", ofsFrames);
115 Com_Printf(
" \\ - ofsGLCmds %i\n", ofsGLCmds);
136 uint32_t moveOffset = ofsEnd;
137#define CHECKMAX(val) if ((val) > ofsSkins && (val) < moveOffset) moveOffset = (val);
147 printf(
" \\ - new skin number: ");
149 scanf(
"%i", &newSkins);
161 if (newSkins == numSkins) {
166 const int32_t deltaSkins = newSkins - numSkins;
168 if (ofsST > ofsSkins)
170 if (ofsTris > ofsSkins)
172 if (ofsFrames > ofsSkins)
174 if (ofsGLCmds > ofsSkins)
180 if (deltaSkins > 0) {
185 const int n = ofsEnd - moveOffset;
186 byte* from = copy + moveOffset;
187 byte* to = from + offsetDelta;
188 memmove(to, from, n);
190 if (deltaSkins > 0) {
192 for (
int i = numSkins;
i < numSkins + deltaSkins;
i++) {
195 strcpy(
name,
".none");
197 printf(
" \\ - new skin: ");
205 Com_Printf(
"Error writing md2 file %s\n", fileName);
225 const size_t delta = numGLCmds *
sizeof(uint32_t);
243 *(
size_t*)userData += delta;
245 numGLCmds, fileName, delta);
Byte order functions header.
void Com_Error(int code, const char *fmt,...)
void Com_Printf(const char *const fmt,...)
definitions common between client and server, but not game lib
int FS_Write(const void *buffer, int len, qFILE *f)
Properly handles partial writes.
int FS_WriteFile(const void *buffer, size_t len, const char *filename)
int FS_OpenFile(const char *filename, qFILE *file, filemode_t mode)
Finds and opens the file in the search path.
void MD2SkinEdit(const byte *buf, const char *fileName, int bufSize, void *userData)
void MD2GLCmdsRemove(const byte *buf, const char *fileName, int bufSize, void *userData)
void MD2Info(const byte *buf, const char *fileName, int bufSize, void *userData)
void MD2SkinNum(const byte *buf, const char *fileName, int bufSize, void *userData)
void MD2HeaderCheck(const dMD2Model_t *md2, const char *fileName, int bufSize)
Memory handling with sentinel checking and pools with tags for grouped free'ing.
#define Mem_Dup(type, in, n)
#define Mem_ReAlloc(ptr, size)
#define MD2_MAX_TRIANGLES
#define MD2_ALIAS_VERSION
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
QGL_EXTERN GLuint GLsizei bufSize
const char * va(const char *format,...)
does a varargs printf into a temp buffer, so I don't need to have varargs versions of all text functi...
the glcmd format: a positive integer starts a tristrip command, followed by that many vertex structur...
Cross-platform type definitions.