mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
Refactor C code related to gettimedate and sect*interpolation CON commands.
No functional changes. git-svn-id: https://svn.eduke32.com/eduke32@3486 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5e84185d6e
commit
6816afe07e
3 changed files with 60 additions and 42 deletions
|
@ -36,16 +36,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
extern int32_t g_numEnvSoundsPlaying;
|
||||
extern int32_t g_noEnemies;
|
||||
|
||||
void G_SetInterpolation(int32_t *posptr)
|
||||
int32_t G_SetInterpolation(int32_t *posptr)
|
||||
{
|
||||
int32_t i=g_numInterpolations-1;
|
||||
|
||||
if (g_numInterpolations >= MAXINTERPOLATIONS) return;
|
||||
if (g_numInterpolations >= MAXINTERPOLATIONS)
|
||||
return 1;
|
||||
|
||||
for (; i>=0; i--)
|
||||
if (curipos[i] == posptr) return;
|
||||
if (curipos[i] == posptr)
|
||||
return 0;
|
||||
|
||||
curipos[g_numInterpolations] = posptr;
|
||||
oldipos[g_numInterpolations] = *posptr;
|
||||
g_numInterpolations++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void G_StopInterpolation(int32_t *posptr)
|
||||
|
@ -594,44 +599,47 @@ void A_DoGutsDir(int32_t sp, int32_t gtype, int32_t n)
|
|||
}
|
||||
}
|
||||
|
||||
void Sect_SetInterpolation(int32_t sectnum)
|
||||
// NOTE: external linkage for Lunatic
|
||||
int32_t G_ToggleWallInterpolation(int32_t w, int32_t doset)
|
||||
{
|
||||
if (doset)
|
||||
{
|
||||
return G_SetInterpolation(&wall[w].x)
|
||||
|| G_SetInterpolation(&wall[w].y);
|
||||
}
|
||||
else
|
||||
{
|
||||
G_StopInterpolation(&wall[w].x);
|
||||
G_StopInterpolation(&wall[w].y);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void Sect_ToggleInterpolation(int32_t sectnum, int32_t doset)
|
||||
{
|
||||
int32_t k, j = sector[sectnum].wallptr, endwall = j+sector[sectnum].wallnum;
|
||||
|
||||
for (; j<endwall; j++)
|
||||
{
|
||||
G_SetInterpolation(&wall[j].x);
|
||||
G_SetInterpolation(&wall[j].y);
|
||||
G_ToggleWallInterpolation(j, doset);
|
||||
|
||||
k = wall[j].nextwall;
|
||||
if (k >= 0)
|
||||
{
|
||||
G_SetInterpolation(&wall[k].x);
|
||||
G_SetInterpolation(&wall[k].y);
|
||||
k = wall[k].point2;
|
||||
G_SetInterpolation(&wall[k].x);
|
||||
G_SetInterpolation(&wall[k].y);
|
||||
G_ToggleWallInterpolation(k, doset);
|
||||
G_ToggleWallInterpolation(wall[k].point2, doset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Sect_SetInterpolation(int32_t sectnum)
|
||||
{
|
||||
Sect_ToggleInterpolation(sectnum, 1);
|
||||
}
|
||||
|
||||
void Sect_ClearInterpolation(int32_t sectnum)
|
||||
{
|
||||
int32_t k, j = sector[sectnum].wallptr, endwall = j+sector[sectnum].wallnum;
|
||||
|
||||
for (; j<endwall; j++)
|
||||
{
|
||||
G_StopInterpolation(&wall[j].x);
|
||||
G_StopInterpolation(&wall[j].y);
|
||||
k = wall[j].nextwall;
|
||||
if (k >= 0)
|
||||
{
|
||||
G_StopInterpolation(&wall[k].x);
|
||||
G_StopInterpolation(&wall[k].y);
|
||||
k = wall[k].point2;
|
||||
G_StopInterpolation(&wall[k].x);
|
||||
G_StopInterpolation(&wall[k].y);
|
||||
}
|
||||
}
|
||||
Sect_ToggleInterpolation(sectnum, 0);
|
||||
}
|
||||
|
||||
static int32_t move_rotfixed_sprite(int32_t j, int32_t pivotspr, int32_t daang)
|
||||
|
|
|
@ -275,7 +275,7 @@ void G_AddGameLight(int32_t radius,int32_t srcsprite,int32_t zoff
|
|||
void G_ClearCameraView(DukePlayer_t *ps);
|
||||
void G_DoInterpolations(int32_t smoothratio);
|
||||
void G_MoveWorld(void);
|
||||
void G_SetInterpolation(int32_t *posptr);
|
||||
int32_t G_SetInterpolation(int32_t *posptr);
|
||||
void G_StopInterpolation(int32_t *posptr);
|
||||
|
||||
// PK 20110701: changed input argument: int32_t i (== sprite, whose sectnum...) --> sectnum directly
|
||||
|
|
|
@ -968,6 +968,25 @@ static int32_t VM_ResetPlayer(int32_t g_p, int32_t g_flags)
|
|||
return g_flags;
|
||||
}
|
||||
|
||||
void G_GetTimeDate(int32_t *vals)
|
||||
{
|
||||
time_t rawtime;
|
||||
struct tm *ti;
|
||||
|
||||
time(&rawtime);
|
||||
ti=localtime(&rawtime);
|
||||
// initprintf("Time&date: %s\n",asctime (ti));
|
||||
|
||||
vals[0] = ti->tm_sec;
|
||||
vals[1] = ti->tm_min;
|
||||
vals[2] = ti->tm_hour;
|
||||
vals[3] = ti->tm_mday;
|
||||
vals[4] = ti->tm_mon;
|
||||
vals[5] = ti->tm_year+1900;
|
||||
vals[6] = ti->tm_wday;
|
||||
vals[7] = ti->tm_yday;
|
||||
}
|
||||
|
||||
#if !defined LUNATIC
|
||||
GAMEEXEC_STATIC void VM_Execute(int32_t loop)
|
||||
{
|
||||
|
@ -2891,22 +2910,13 @@ nullquote:
|
|||
case CON_GETTIMEDATE:
|
||||
insptr++;
|
||||
{
|
||||
int32_t v1=*insptr++,v2=*insptr++,v3=*insptr++,v4=*insptr++,v5=*insptr++,v6=*insptr++,v7=*insptr++,v8=*insptr++;
|
||||
time_t rawtime;
|
||||
struct tm *ti;
|
||||
int32_t i, vals[8];
|
||||
|
||||
time(&rawtime);
|
||||
ti=localtime(&rawtime);
|
||||
// initprintf("Time&date: %s\n",asctime (ti));
|
||||
G_GetTimeDate(vals);
|
||||
|
||||
for (i=0; i<8; i++)
|
||||
Gv_SetVarX(*insptr++, vals[i]);
|
||||
|
||||
Gv_SetVarX(v1, ti->tm_sec);
|
||||
Gv_SetVarX(v2, ti->tm_min);
|
||||
Gv_SetVarX(v3, ti->tm_hour);
|
||||
Gv_SetVarX(v4, ti->tm_mday);
|
||||
Gv_SetVarX(v5, ti->tm_mon);
|
||||
Gv_SetVarX(v6, ti->tm_year+1900);
|
||||
Gv_SetVarX(v7, ti->tm_wday);
|
||||
Gv_SetVarX(v8, ti->tm_yday);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue