mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
Make the tsprite CON stuff into its own commands
git-svn-id: https://svn.eduke32.com/eduke32@856 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5ce5b287fa
commit
99671274aa
6 changed files with 134 additions and 10 deletions
|
@ -5714,6 +5714,7 @@ void overheadeditor(void)
|
||||||
{
|
{
|
||||||
if ((keystatus[0x1d]|keystatus[0x9d]) > 0) //Ctrl
|
if ((keystatus[0x1d]|keystatus[0x9d]) > 0) //Ctrl
|
||||||
{
|
{
|
||||||
|
nextmap:
|
||||||
// bad = 0;
|
// bad = 0;
|
||||||
i = menuselect_pk(keystatus[0x2a]>0 ? 0:1); // Left Shift: prev map
|
i = menuselect_pk(keystatus[0x2a]>0 ? 0:1); // Left Shift: prev map
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
|
@ -5744,7 +5745,8 @@ void overheadeditor(void)
|
||||||
oposz = posz;
|
oposz = posz;
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
{
|
{
|
||||||
printmessage16("Invalid map format.");
|
// printmessage16("Invalid map format.");
|
||||||
|
goto nextmap;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -2888,7 +2888,7 @@ void drawtileinfo(char *title,int x,int y,int picnum,int shade,int pal,int cstat
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
int i,j;
|
int i,j;
|
||||||
int scale=65526;
|
int scale=65536;
|
||||||
int x1;
|
int x1;
|
||||||
|
|
||||||
j = xdimgame>640?0:1;
|
j = xdimgame>640?0:1;
|
||||||
|
|
|
@ -453,6 +453,8 @@ static const char *keyw[] =
|
||||||
"starttrackvar", // 321
|
"starttrackvar", // 321
|
||||||
"qgetsysstr", // 322
|
"qgetsysstr", // 322
|
||||||
"getticks", // 323
|
"getticks", // 323
|
||||||
|
"gettspr", // 324
|
||||||
|
"settspr", // 325
|
||||||
"<null>"
|
"<null>"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -564,6 +566,11 @@ const memberlabel_t actorlabels[]=
|
||||||
{ "xpanning", ACTOR_XPANNING, 0, 0 },
|
{ "xpanning", ACTOR_XPANNING, 0, 0 },
|
||||||
{ "ypanning", ACTOR_YPANNING, 0, 0 },
|
{ "ypanning", ACTOR_YPANNING, 0, 0 },
|
||||||
|
|
||||||
|
{ "", -1, 0, 0 } // END OF LIST
|
||||||
|
};
|
||||||
|
|
||||||
|
const memberlabel_t tsprlabels[]=
|
||||||
|
{
|
||||||
// tsprite access
|
// tsprite access
|
||||||
|
|
||||||
{ "tsprx", ACTOR_TSPRX, 0, 0 },
|
{ "tsprx", ACTOR_TSPRX, 0, 0 },
|
||||||
|
@ -3303,6 +3310,76 @@ static int parsecommand(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CON_GETTSPR:
|
||||||
|
case CON_SETTSPR:
|
||||||
|
{
|
||||||
|
int lLabelID;
|
||||||
|
|
||||||
|
if (current_event != EVENT_ANIMATESPRITES)
|
||||||
|
{
|
||||||
|
ReportError(-1);
|
||||||
|
initprintf("%s:%d: warning: found `%s' outside of EVENT_ANIMATESPRITES\n",compilefile,line_number,tempbuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
// syntax getwall[<var>].x <VAR>
|
||||||
|
// gets the value of wall[<var>].xxx into <VAR>
|
||||||
|
|
||||||
|
// now get name of .xxx
|
||||||
|
while ((*textptr != '['))
|
||||||
|
{
|
||||||
|
textptr++;
|
||||||
|
}
|
||||||
|
if (*textptr == '[')
|
||||||
|
textptr++;
|
||||||
|
|
||||||
|
// get the ID of the DEF
|
||||||
|
// labelsonly = 1;
|
||||||
|
transvar();
|
||||||
|
labelsonly = 0;
|
||||||
|
// now get name of .xxx
|
||||||
|
while (*textptr != '.')
|
||||||
|
{
|
||||||
|
if (*textptr == 0xa)
|
||||||
|
break;
|
||||||
|
if (!*textptr)
|
||||||
|
break;
|
||||||
|
|
||||||
|
textptr++;
|
||||||
|
}
|
||||||
|
if (*textptr!='.')
|
||||||
|
{
|
||||||
|
error++;
|
||||||
|
ReportError(ERROR_SYNTAXERROR);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
textptr++;
|
||||||
|
/// now pointing at 'xxx'
|
||||||
|
getlabel();
|
||||||
|
//printf("found xxx label of '%s'\n", label+(labelcnt<<6));
|
||||||
|
|
||||||
|
lLabelID=getlabeloffset(tsprlabels,label+(labelcnt<<6));
|
||||||
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
|
if (lLabelID == -1)
|
||||||
|
{
|
||||||
|
error++;
|
||||||
|
ReportError(ERROR_SYMBOLNOTRECOGNIZED);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
*scriptptr++=tsprlabels[lLabelID].lId;
|
||||||
|
|
||||||
|
//printf("member's flags are: %02Xh\n",actorlabels[lLabelID].flags);
|
||||||
|
|
||||||
|
// now at target VAR...
|
||||||
|
|
||||||
|
// get the ID of the DEF
|
||||||
|
if (tw == CON_GETTSPR)
|
||||||
|
transvartype(GAMEVAR_FLAG_READONLY);
|
||||||
|
else
|
||||||
|
transvar();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CON_GETTICKS:
|
case CON_GETTICKS:
|
||||||
if (CheckEventSync(current_event))
|
if (CheckEventSync(current_event))
|
||||||
ReportError(WARNING_REVEVENTSYNC);
|
ReportError(WARNING_REVEVENTSYNC);
|
||||||
|
|
|
@ -443,6 +443,10 @@ enum actorlabels
|
||||||
ACTOR_MDFLAGS,
|
ACTOR_MDFLAGS,
|
||||||
ACTOR_XPANNING,
|
ACTOR_XPANNING,
|
||||||
ACTOR_YPANNING,
|
ACTOR_YPANNING,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum tsprlabels
|
||||||
|
{
|
||||||
ACTOR_TSPRX,
|
ACTOR_TSPRX,
|
||||||
ACTOR_TSPRY,
|
ACTOR_TSPRY,
|
||||||
ACTOR_TSPRZ,
|
ACTOR_TSPRZ,
|
||||||
|
@ -825,5 +829,7 @@ enum keywords
|
||||||
CON_READARRAYFROMFILE, // 320
|
CON_READARRAYFROMFILE, // 320
|
||||||
CON_STARTTRACKVAR, // 321
|
CON_STARTTRACKVAR, // 321
|
||||||
CON_QGETSYSSTR, // 322
|
CON_QGETSYSSTR, // 322
|
||||||
CON_GETTICKS // 323
|
CON_GETTICKS, // 323
|
||||||
|
CON_GETTSPR, // 324
|
||||||
|
CON_SETTSPR, // 325
|
||||||
};
|
};
|
||||||
|
|
|
@ -3433,6 +3433,30 @@ static void DoActor(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2)
|
||||||
SetGameVarID(lVar2, spriteext[iActor].ypanning,g_i,g_p);
|
SetGameVarID(lVar2, spriteext[iActor].ypanning,g_i,g_p);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void DoTsprite(int iSet, int lVar1, int lLabelID, int lVar2)
|
||||||
|
{
|
||||||
|
int lValue;
|
||||||
|
int iActor=g_i;
|
||||||
|
|
||||||
|
if (lVar1 != g_iThisActorID)
|
||||||
|
iActor=GetGameVarID(lVar1, g_i, g_p);
|
||||||
|
|
||||||
|
if (iActor < 0 || iActor >= MAXSPRITES)
|
||||||
|
{
|
||||||
|
OSD_Printf("DoTsprite(): invalid target sprite (%d) %d %d\n",iActor,g_i,g_sp->picnum);
|
||||||
|
insptr += (lVar2 == MAXGAMEVARS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lValue=GetGameVarID(lVar2, g_i, g_p);
|
||||||
|
|
||||||
|
switch (lLabelID)
|
||||||
|
{
|
||||||
case ACTOR_TSPRX:
|
case ACTOR_TSPRX:
|
||||||
if (!spriteext[iActor].tspr)
|
if (!spriteext[iActor].tspr)
|
||||||
return;
|
return;
|
||||||
|
@ -6920,6 +6944,21 @@ static int parse(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CON_SETTSPR:
|
||||||
|
case CON_GETTSPR:
|
||||||
|
insptr++;
|
||||||
|
{
|
||||||
|
// syntax [gs]etactor[<var>].x <VAR>
|
||||||
|
// <varid> <xxxid> <varid>
|
||||||
|
|
||||||
|
int lVar1=*insptr++, lLabelID=*insptr++, lVar2;
|
||||||
|
|
||||||
|
lVar2=*insptr++;
|
||||||
|
|
||||||
|
DoTsprite(tw==CON_SETTSPR, lVar1, lLabelID, lVar2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CON_GETANGLETOTARGET:
|
case CON_GETANGLETOTARGET:
|
||||||
insptr++;
|
insptr++;
|
||||||
// hittype[g_i].lastvx and lastvy are last known location of target.
|
// hittype[g_i].lastvx and lastvy are last known location of target.
|
||||||
|
|
Loading…
Reference in a new issue