You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/games-fps/wolfgl/files/0.93-sprite.patch

83 lines
2.3 KiB

--- a/common/wl_agent.c 2003-09-11 20:39:02.674298800 +0200
+++ b/common/wl_agent.c 2003-09-11 20:42:17.229721880 +0200
@@ -919,32 +919,31 @@
viewdist = 0x7fffffffl;
closest = NULL;
-// while (1)
+ while (1)
{
oldclosest = closest;
for (check=ob->next ; check ; check=check->next)
if ((check->flags & FL_SHOOTABLE)
- //&&
+ &&
// (check->flags & FL_VISABLE) &&
-// (abs(check->viewx - centerx) < shootdelta)
+ (abs(check->viewx - centerx) < shootdelta)
)
-// {
+ {
if (CheckLine(check))
-// if (check->transx < viewdist)
+ if (check->transx < viewdist)
{
-// viewdist = check->transx;
+ viewdist = check->transx;
closest = check;
- break;
}
-// }
+ }
if (closest == oldclosest)
return; // no more targets, all missed
// trace a line from player to enemey
-// if (CheckLine(closest))
-// break;
+ if (CheckLine(closest))
+ break;
}
// hit something
--- a/common/wl_draw.c 2003-09-11 20:43:26.473195272 +0200
+++ b/common/wl_draw.c 2003-09-11 20:46:57.859059736 +0200
@@ -877,7 +877,7 @@
tilespot = &tilemap[0][0]+spotloc;
// could be in any of the nine surrounding tiles
- if ((*visspot) ||
+ if (1 || (*visspot) ||
(*(visspot-1) && !*(tilespot-1)) ||
(*(visspot+1) && !*(tilespot+1)) ||
(*(visspot-65) && !*(tilespot-65)) ||
@@ -980,6 +980,8 @@
for (obj = player->next; obj; obj = obj->next)
{
+ int sprite;
+
if (!areabyplayer[obj->areanumber])
continue;
if (!gamestates[obj->state].shapenum)
@@ -989,10 +991,14 @@
glTranslated((float)obj->x/(1<<16), (float)obj->y/(1<<16), 0);
glRotated(-player->angle, 0,0,1);
- if (texture_index[PMSpriteStart+gamestates[obj->state].shapenum] == 0)
- CreateSprite(PMSpriteStart+gamestates[obj->state].shapenum);
+ sprite = gamestates[obj->state].shapenum;
+ if (gamestates[obj->state].rotate)
+ sprite += CalcRotate(obj);
+
+ if (texture_index[PMSpriteStart+sprite] == 0)
+ CreateSprite(PMSpriteStart+sprite);
else
- glBindTexture(GL_TEXTURE_2D, texture_index[PMSpriteStart+gamestates[obj->state].shapenum]);
+ glBindTexture(GL_TEXTURE_2D, texture_index[PMSpriteStart+sprite]);
glBegin(GL_QUADS);
glTexCoord2f(0,0);