shithub: riscv

Download patch

ref: 3f522c745a91dabfa577b4bf1045e58fa436066e
parent: 88505bff06822e2d6313de477874a7a816935ea7
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Feb 3 20:09:46 EST 2014

doom: port to amd64

--- a/sys/src/games/doom/d_net.c
+++ b/sys/src/games/doom/d_net.c
@@ -89,7 +89,7 @@
 //
 int NetbufferSize (void)
 {
-    return (int)&(((doomdata_t *)0)->cmds[netbuffer->numtics]); 
+    return (int)(uintptr)&(((doomdata_t *)0)->cmds[netbuffer->numtics]); 
 }
 
 //
--- a/sys/src/games/doom/i_system.c
+++ b/sys/src/games/doom/i_system.c
@@ -62,27 +62,6 @@
 	USED(on, off, total);
 }
 
-/*
-ticcmd_t	emptycmd;
-ticcmd_t*	I_BaseTiccmd(void)
-{
-    return &emptycmd;
-}
-
-
-int  I_GetHeapSize (void)
-{
-    return mb_used*1024*1024;
-}
-
-byte* I_ZoneBase (int*	size)
-{
-    *size = mb_used*1024*1024;
-    return (byte *) malloc (*size);
-}
-*/
-
-
 //
 // I_Error
 //
--- a/sys/src/games/doom/p_saveg.c
+++ b/sys/src/games/doom/p_saveg.c
@@ -37,10 +37,8 @@
 
 // Pads save_p to a 4-byte boundary
 //  so that the load/save works on SGI&Gecko.
-#define PADSAVEP()	save_p += (4 - ((int) save_p & 3)) & 3
+#define PADSAVEP()	save_p += (4 - ((uintptr) save_p & 3)) & 3
 
-
-
 //
 // P_ArchivePlayers
 //
@@ -101,7 +99,7 @@
 	    if (players[i]. psprites[j].state)
 	    {
 		players[i]. psprites[j].state 
-		    = &states[ (int)players[i].psprites[j].state ];
+		    = &states[ (int)(uintptr)players[i].psprites[j].state ];
 	    }
 	}
     }
@@ -299,11 +297,11 @@
 	    mobj = Z_Malloc (sizeof(*mobj), PU_LEVEL, NULL);
 	    memcpy (mobj, save_p, sizeof(*mobj));
 	    save_p += sizeof(*mobj);
-	    mobj->state = &states[(int)mobj->state];
+	    mobj->state = &states[(int)(uintptr)mobj->state];
 	    mobj->target = NULL;
 	    if (mobj->player)
 	    {
-		mobj->player = &players[(int)mobj->player-1];
+		mobj->player = &players[(int)(uintptr)mobj->player-1];
 		mobj->player->mo = mobj;
 	    }
 	    P_SetThingPosition (mobj);
@@ -498,7 +496,7 @@
 	    ceiling = Z_Malloc (sizeof(*ceiling), PU_LEVEL, NULL);
 	    memcpy (ceiling, save_p, sizeof(*ceiling));
 	    save_p += sizeof(*ceiling);
-	    ceiling->sector = &sectors[(int)ceiling->sector];
+	    ceiling->sector = &sectors[(int)(uintptr)ceiling->sector];
 	    ceiling->sector->specialdata = ceiling;
 
 	    if (ceiling->thinker.function)
@@ -513,7 +511,7 @@
 	    door = Z_Malloc (sizeof(*door), PU_LEVEL, NULL);
 	    memcpy (door, save_p, sizeof(*door));
 	    save_p += sizeof(*door);
-	    door->sector = &sectors[(int)door->sector];
+	    door->sector = &sectors[(int)(uintptr)door->sector];
 	    door->sector->specialdata = door;
 	    door->thinker.function = T_VerticalDoor;
 	    P_AddThinker (&door->thinker);
@@ -524,7 +522,7 @@
 	    floor = Z_Malloc (sizeof(*floor), PU_LEVEL, NULL);
 	    memcpy (floor, save_p, sizeof(*floor));
 	    save_p += sizeof(*floor);
-	    floor->sector = &sectors[(int)floor->sector];
+	    floor->sector = &sectors[(int)(uintptr)floor->sector];
 	    floor->sector->specialdata = floor;
 	    floor->thinker.function = T_MoveFloor;
 	    P_AddThinker (&floor->thinker);
@@ -535,7 +533,7 @@
 	    plat = Z_Malloc (sizeof(*plat), PU_LEVEL, NULL);
 	    memcpy (plat, save_p, sizeof(*plat));
 	    save_p += sizeof(*plat);
-	    plat->sector = &sectors[(int)plat->sector];
+	    plat->sector = &sectors[(int)(uintptr)plat->sector];
 	    plat->sector->specialdata = plat;
 
 	    if (plat->thinker.function)
@@ -550,7 +548,7 @@
 	    flash = Z_Malloc (sizeof(*flash), PU_LEVEL, NULL);
 	    memcpy (flash, save_p, sizeof(*flash));
 	    save_p += sizeof(*flash);
-	    flash->sector = &sectors[(int)flash->sector];
+	    flash->sector = &sectors[(int)(uintptr)flash->sector];
 	    flash->thinker.function = T_LightFlash;
 	    P_AddThinker (&flash->thinker);
 	    break;
@@ -560,7 +558,7 @@
 	    strobe = Z_Malloc (sizeof(*strobe), PU_LEVEL, NULL);
 	    memcpy (strobe, save_p, sizeof(*strobe));
 	    save_p += sizeof(*strobe);
-	    strobe->sector = &sectors[(int)strobe->sector];
+	    strobe->sector = &sectors[(int)(uintptr)strobe->sector];
 	    strobe->thinker.function = T_StrobeFlash;
 	    P_AddThinker (&strobe->thinker);
 	    break;
@@ -570,7 +568,7 @@
 	    glow = Z_Malloc (sizeof(*glow), PU_LEVEL, NULL);
 	    memcpy (glow, save_p, sizeof(*glow));
 	    save_p += sizeof(*glow);
-	    glow->sector = &sectors[(int)glow->sector];
+	    glow->sector = &sectors[(int)(uintptr)glow->sector];
 	    glow->thinker.function = T_Glow;
 	    P_AddThinker (&glow->thinker);
 	    break;
--- a/sys/src/games/doom/p_setup.c
+++ b/sys/src/games/doom/p_setup.c
@@ -531,7 +531,7 @@
     }
 	
     // build line tables for each sector	
-    linebuffer = Z_Malloc (total*4, PU_LEVEL, 0);
+    linebuffer = Z_Malloc (total*sizeof(line_t*), PU_LEVEL, 0);
     sector = sectors;
     for (i=0 ; i<numsectors ; i++, sector++)
     {
--- a/sys/src/games/doom/r_data.c
+++ b/sys/src/games/doom/r_data.c
@@ -59,7 +59,6 @@
 
 #pragma pack on
 
-
 /* Texture definition.
 ** Each texture is composed of one or more patches,
 ** with patches being lumps stored in the WAD.
@@ -87,7 +86,7 @@
 	boolean		masked;	
 	short		width;
 	short		height;
-	void		**columndirectory;	// OBSOLETE
+	long		columndirectory;	// OBSOLETE
 	short		patchcount;
 	mappatch_t	patches[1];
 } maptexture_t;
@@ -483,13 +482,13 @@
     }
     numtextures = numtextures1 + numtextures2;
 	
-    textures = Z_Malloc (numtextures*4, PU_STATIC, 0);
-    texturecolumnlump = Z_Malloc (numtextures*4, PU_STATIC, 0);
-    texturecolumnofs = Z_Malloc (numtextures*4, PU_STATIC, 0);
-    texturecomposite = Z_Malloc (numtextures*4, PU_STATIC, 0);
-    texturecompositesize = Z_Malloc (numtextures*4, PU_STATIC, 0);
-    texturewidthmask = Z_Malloc (numtextures*4, PU_STATIC, 0);
-    textureheight = Z_Malloc (numtextures*4, PU_STATIC, 0);
+    textures = Z_Malloc (numtextures*sizeof(void*), PU_STATIC, 0);
+    texturecolumnlump = Z_Malloc (numtextures*sizeof(void*), PU_STATIC, 0);
+    texturecolumnofs = Z_Malloc (numtextures*sizeof(void*), PU_STATIC, 0);
+    texturecomposite = Z_Malloc (numtextures*sizeof(void*), PU_STATIC, 0);
+    texturecompositesize = Z_Malloc (numtextures*sizeof(int), PU_STATIC, 0);
+    texturewidthmask = Z_Malloc (numtextures*sizeof(int), PU_STATIC, 0);
+    textureheight = Z_Malloc (numtextures*sizeof(fixed_t), PU_STATIC, 0);
 
     totalwidth = 0;
     
@@ -519,12 +518,10 @@
 	}
 		
 	offset = LONG(*directory);
-
 	if (offset > maxoff)
 	    I_Error ("R_InitTextures: bad texture directory");
 	
 	mtexture = (maptexture_t *) ( (byte *)maptex + offset);
-
 	texture = textures[i] =
 	    Z_Malloc (sizeof(texture_t)
 		      + sizeof(texpatch_t)*(SHORT(mtexture->patchcount)-1),
@@ -549,8 +546,8 @@
 			 texture->name);
 	    }
 	}		
-	texturecolumnlump[i] = Z_Malloc (texture->width*2, PU_STATIC,0);
-	texturecolumnofs[i] = Z_Malloc (texture->width*2, PU_STATIC,0);
+	texturecolumnlump[i] = Z_Malloc (texture->width*sizeof(short), PU_STATIC,0);
+	texturecolumnofs[i] = Z_Malloc (texture->width*sizeof(short), PU_STATIC,0);
 
 	j = 1;
 	while (j*2 <= texture->width)
@@ -571,7 +568,7 @@
 	R_GenerateLookup (i);
     
     // Create translation table for global animation.
-    texturetranslation = Z_Malloc ((numtextures+1)*4, PU_STATIC, 0);
+    texturetranslation = Z_Malloc ((numtextures+1)*sizeof(int), PU_STATIC, 0);
     
     for (i=0 ; i<numtextures ; i++)
 	texturetranslation[i] = i;
@@ -593,7 +590,7 @@
     numflats = lastflat - firstflat + 1;
 	
     // Create translation table for global animation.
-    flattranslation = Z_Malloc ((numflats+1)*4, PU_STATIC, 0);
+    flattranslation = Z_Malloc ((numflats+1)*sizeof(int), PU_STATIC, 0);
     
     for (i=0 ; i<numflats ; i++)
 	flattranslation[i] = i;
@@ -615,9 +612,9 @@
     lastspritelump = W_GetNumForName ("S_END") - 1;
     
     numspritelumps = lastspritelump - firstspritelump + 1;
-    spritewidth = Z_Malloc (numspritelumps*4, PU_STATIC, 0);
-    spriteoffset = Z_Malloc (numspritelumps*4, PU_STATIC, 0);
-    spritetopoffset = Z_Malloc (numspritelumps*4, PU_STATIC, 0);
+    spritewidth = Z_Malloc (numspritelumps*sizeof(fixed_t), PU_STATIC, 0);
+    spriteoffset = Z_Malloc (numspritelumps*sizeof(fixed_t), PU_STATIC, 0);
+    spritetopoffset = Z_Malloc (numspritelumps*sizeof(fixed_t), PU_STATIC, 0);
 	
     for (i=0 ; i< numspritelumps ; i++)
     {
@@ -645,7 +642,7 @@
     lump = W_GetNumForName("COLORMAP"); 
     length = W_LumpLength (lump) + 255; 
     colormaps = Z_Malloc (length, PU_STATIC, 0); 
-    colormaps = (byte *)( ((int)colormaps + 255)&~0xff); 
+    colormaps = (byte *)( ((uintptr)colormaps + 255)&~0xff); 
     W_ReadLump (lump,colormaps); 
 }
 
--- a/sys/src/games/doom/r_draw.c
+++ b/sys/src/games/doom/r_draw.c
@@ -401,7 +401,7 @@
     int		i;
 	
     translationtables = Z_Malloc (256*3+255, PU_STATIC, 0);
-    translationtables = (byte *)(( (int)translationtables + 255 )& ~255);
+    translationtables = (byte *)(((uintptr)translationtables + 255) & ~255);
     
     // translate just the 16 green colors
     for (i=0 ; i<256 ; i++)
--- a/sys/src/games/doom/z_zone.c
+++ b/sys/src/games/doom/z_zone.c
@@ -179,7 +179,6 @@
 //
 #define MINFRAGMENT		64
 
-
 void*
 Z_Malloc
 ( int		size,
@@ -192,7 +191,7 @@
     memblock_t* newblock;
     memblock_t*	base;
 
-    size = (size + 3) & ~3;
+    size = (size + 7) & ~7;
     
     // scan through the block list,
     // looking for the first free block
@@ -437,7 +436,7 @@
     if (block->id != ZONEID)
 	I_Error ("Z_ChangeTag: freed a pointer without ZONEID");
 
-    if (tag >= PU_PURGELEVEL && (unsigned)block->user < 0x100)
+    if (tag >= PU_PURGELEVEL && (uintptr)block->user < 0x100)
 	I_Error ("Z_ChangeTag: an owner is required for purgable blocks");
 
     block->tag = tag;
--