mirror of
https://github.com/ZDoom/acc.git
synced 2025-02-11 22:37:54 +00:00
Merge branch 'master' of github.com:rheit/acc
This commit is contained in:
commit
32d34fa2a9
9 changed files with 126 additions and 37 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -12,3 +12,4 @@
|
|||
/log
|
||||
/t
|
||||
/zdefs.acs.orig
|
||||
/*.o
|
||||
|
|
33
parse.c
33
parse.c
|
@ -341,6 +341,8 @@ static struct ScriptTypes ScriptCounts[] =
|
|||
{ "unloading", UNLOADING_SCRIPTS_BASE, 0 },
|
||||
{ "return", RETURN_SCRIPTS_BASE, 0 },
|
||||
{ "event", EVENT_SCRIPTS_BASE, 0 },
|
||||
{ "kill", KILL_SCRIPTS_BASE, 0 },
|
||||
{ "reopen", REOPEN_SCRIPTS_BASE, 0 },
|
||||
{ NULL, -1, 0 }
|
||||
};
|
||||
|
||||
|
@ -522,6 +524,7 @@ static void Outside(void)
|
|||
break;
|
||||
case TK_REGION: // [mxd]
|
||||
case TK_ENDREGION:
|
||||
outertokencount--; // #region markers should not count as "real" tokens
|
||||
TK_SkipLine();
|
||||
break;
|
||||
default:
|
||||
|
@ -669,6 +672,8 @@ static void OuterScript(void)
|
|||
case TK_LIGHTNING:
|
||||
case TK_UNLOADING:
|
||||
case TK_RETURN:
|
||||
case TK_KILL:
|
||||
case TK_REOPEN:
|
||||
ERR_Error(ERR_UNCLOSED_WITH_ARGS, YES);
|
||||
break;
|
||||
|
||||
|
@ -742,6 +747,14 @@ static void OuterScript(void)
|
|||
scriptType = EVENT_SCRIPTS_BASE;
|
||||
ERR_Error (ERR_EVENT_NEEDS_3_ARG, YES);
|
||||
break;
|
||||
|
||||
case TK_KILL: // [JM]
|
||||
scriptType = KILL_SCRIPTS_BASE;
|
||||
break;
|
||||
|
||||
case TK_REOPEN: // [Nash]
|
||||
scriptType = REOPEN_SCRIPTS_BASE;
|
||||
break;
|
||||
|
||||
default:
|
||||
ERR_Error(ERR_BAD_SCRIPT_DECL, YES);
|
||||
|
@ -1635,7 +1648,21 @@ static void LeadingLineSpecial(boolean executewait)
|
|||
}
|
||||
TK_TokenMustBe(TK_RPAREN, ERR_MISSING_RPAREN);
|
||||
TK_NextTokenMustBe(TK_SEMICOLON, ERR_MISSING_SEMICOLON);
|
||||
if(direct == NO)
|
||||
if (specialValue > 255)
|
||||
{
|
||||
for(; argCount < 5; ++argCount)
|
||||
{
|
||||
PC_AppendPushVal(0);
|
||||
}
|
||||
PC_AppendCmd(PCD_LSPEC5EX);
|
||||
PC_AppendInt(specialValue);
|
||||
if(executewait)
|
||||
{
|
||||
PC_AppendCmd(PCD_SCRIPTWAITDIRECT);
|
||||
PC_AppendInt(argSave[0]);
|
||||
}
|
||||
}
|
||||
else if(direct == NO)
|
||||
{
|
||||
PC_AppendCmd(PCD_LSPEC1+(argCount-1));
|
||||
if(pc_NoShrink)
|
||||
|
@ -3513,8 +3540,8 @@ static void ExprLineSpecial(void)
|
|||
}
|
||||
TK_TokenMustBe(TK_RPAREN, ERR_MISSING_RPAREN);
|
||||
TK_NextToken();
|
||||
PC_AppendCmd(PCD_LSPEC5RESULT);
|
||||
if(pc_NoShrink)
|
||||
PC_AppendCmd(specialValue <= 255? PCD_LSPEC5RESULT : PCD_LSPEC5EXRESULT);
|
||||
if(pc_NoShrink || specialValue > 255)
|
||||
{
|
||||
PC_AppendInt(specialValue);
|
||||
}
|
||||
|
|
4
pcode.c
4
pcode.c
|
@ -231,7 +231,7 @@ static char *PCDNames[PCODE_COMMAND_COUNT] =
|
|||
"PCD_PLAYERGOLDSKULL",
|
||||
"PCD_PLAYERBLACKCARD",
|
||||
"PCD_PLAYERSILVERCARD",
|
||||
"PCD_PLAYERONTEAM",
|
||||
"PCD_ISNETWORKGAME",
|
||||
"PCD_PLAYERTEAM",
|
||||
"PCD_PLAYERHEALTH",
|
||||
"PCD_PLAYERARMORPOINTS",
|
||||
|
@ -499,6 +499,8 @@ static char *PCDNames[PCODE_COMMAND_COUNT] =
|
|||
"PCD_PRINTSCRIPTCHARARRAY",
|
||||
"PCD_PRINTSCRIPTCHRANGE",
|
||||
"PCD_STRCPYTOSCRIPTCHRANGE",
|
||||
"PCD_LSPEC5EX",
|
||||
"PCD_LSPEC5EXRESULT",
|
||||
};
|
||||
|
||||
// CODE --------------------------------------------------------------------
|
||||
|
|
6
pcode.h
6
pcode.h
|
@ -31,6 +31,8 @@ enum
|
|||
DISCONNECT_SCRIPTS_BASE = 14,
|
||||
RETURN_SCRIPTS_BASE = 15,
|
||||
EVENT_SCRIPTS_BASE = 16, // [BB]
|
||||
KILL_SCRIPTS_BASE = 17, // [JM]
|
||||
REOPEN_SCRIPTS_BASE = 18, // [Nash]
|
||||
};
|
||||
|
||||
// Values to indicate script flags (requires new-style .o)
|
||||
|
@ -176,7 +178,7 @@ typedef enum
|
|||
PCD_PLAYERGOLDSKULL,
|
||||
PCD_PLAYERBLACKCARD,
|
||||
PCD_PLAYERSILVERCARD,
|
||||
PCD_PLAYERONTEAM,
|
||||
PCD_ISNETWORKGAME,
|
||||
PCD_PLAYERTEAM,
|
||||
PCD_PLAYERHEALTH,
|
||||
PCD_PLAYERARMORPOINTS,
|
||||
|
@ -444,6 +446,8 @@ typedef enum
|
|||
PCD_PRINTSCRIPTCHARARRAY,
|
||||
PCD_PRINTSCRIPTCHRANGE,
|
||||
PCD_STRCPYTOSCRIPTCHRANGE,
|
||||
PCD_LSPEC5EX,
|
||||
PCD_LSPEC5EXRESULT,
|
||||
|
||||
PCODE_COMMAND_COUNT
|
||||
} pcd_t;
|
||||
|
|
2
symbol.c
2
symbol.c
|
@ -90,7 +90,7 @@ static internFuncDef_t InternalFunctions[] =
|
|||
{ "playerbluecard", PCD_NOP, PCD_PLAYERBLUECARD, 0, 0, 0, YES, NO },
|
||||
{ "playerredcard", PCD_NOP, PCD_PLAYERREDCARD, 0, 0, 0, YES, NO },
|
||||
{ "playeryellowcard", PCD_NOP, PCD_PLAYERYELLOWCARD, 0, 0, 0, YES, NO },
|
||||
{ "playeronteam", PCD_NOP, PCD_PLAYERONTEAM, 0, 0, 0, YES, NO },
|
||||
{ "isnetworkgame", PCD_NOP, PCD_ISNETWORKGAME, 0, 0, 0, YES, NO },
|
||||
{ "playerteam", PCD_NOP, PCD_PLAYERTEAM, 0, 0, 0, YES, NO },
|
||||
{ "playerfrags", PCD_NOP, PCD_PLAYERFRAGS, 0, 0, 0, YES, NO },
|
||||
{ "playerhealth", PCD_NOP, PCD_PLAYERHEALTH, 0, 0, 0, YES, NO },
|
||||
|
|
4
token.c
4
token.c
|
@ -199,6 +199,8 @@ static struct keyword_s
|
|||
{ "strcpy", TK_STRCPY }, // [FDARI]
|
||||
{ "region", TK_REGION }, // [mxd]
|
||||
{ "endregion", TK_ENDREGION }, // [mxd]
|
||||
{ "kill", TK_KILL }, // [JM]
|
||||
{ "reopen", TK_REOPEN }, // [Nash]
|
||||
};
|
||||
|
||||
#define NUM_KEYWORDS (sizeof(Keywords)/sizeof(Keywords[0]))
|
||||
|
@ -1573,5 +1575,5 @@ void TK_SkipLine(void)
|
|||
{
|
||||
char *sourcenow = tk_SourceName;
|
||||
int linenow = tk_Line;
|
||||
do TK_NextToken(); while (tk_Line == linenow && tk_SourceName == sourcenow);
|
||||
do TK_NextToken(); while (tk_Line == linenow && tk_SourceName == sourcenow && tk_Token != TK_EOF);
|
||||
}
|
||||
|
|
2
token.h
2
token.h
|
@ -134,6 +134,8 @@ typedef enum
|
|||
TK_STRCPY, // 'strcpy'
|
||||
TK_REGION, // 'region' [mxd]
|
||||
TK_ENDREGION, // 'endregion' [mxd]
|
||||
TK_KILL, // 'kill' [JM]
|
||||
TK_REOPEN, // 'reopen' [Nash]
|
||||
} tokenType_t;
|
||||
|
||||
// PUBLIC FUNCTION PROTOTYPES ----------------------------------------------
|
||||
|
|
19
zdefs.acs
19
zdefs.acs
|
@ -291,6 +291,9 @@
|
|||
#define APROP_StencilColor 41
|
||||
#define APROP_Friction 42
|
||||
#define APROP_DamageMultiplier 43
|
||||
#define APROP_MaxStepHeight 44
|
||||
#define APROP_MaxDropOffHeight 45
|
||||
#define APROP_DamageType 46
|
||||
|
||||
// Render Styles ------------------------------------------------------------
|
||||
|
||||
|
@ -366,6 +369,8 @@
|
|||
#define MRF_UNDOBYDEATH 0x00000200
|
||||
#define MRF_UNDOBYDEATHFORCED 0x00000400
|
||||
#define MRF_UNDOBYDEATHSAVES 0x00000800
|
||||
#define MRF_UNDOALWAYS 0x00001000
|
||||
#define MRF_TRANSFERTRANSLATION 0x00002000
|
||||
|
||||
// Shared spawnable things from Hexen. You can spawn these in the other -----
|
||||
// games if you provide sprites for them, otherwise they'll be invisible. ---
|
||||
|
@ -1086,3 +1091,17 @@
|
|||
#define WARPF_USEPTR 0x2000
|
||||
#define WARPF_COPYVELOCITY 0x4000
|
||||
#define WARPF_COPYPITCH 0x8000
|
||||
|
||||
#define CPXF_ANCESTOR (1 << 0)
|
||||
#define CPXF_LESSOREQUAL (1 << 1)
|
||||
#define CPXF_NOZ (1 << 2)
|
||||
#define CPXF_COUNTDEAD (1 << 3)
|
||||
#define CPXF_DEADONLY (1 << 4)
|
||||
#define CPXF_EXACT (1 << 5)
|
||||
#define CPXF_SETTARGET (1 << 6)
|
||||
#define CPXF_SETMASTER (1 << 7)
|
||||
#define CPXF_SETTRACER (1 << 8)
|
||||
#define CPXF_FARTHEST (1 << 9)
|
||||
#define CPXF_CLOSEST (1 << 10)
|
||||
#define CPXF_SETONPTR (1 << 11)
|
||||
#define CPXF_CHECKSIGHT (1 << 12)
|
||||
|
|
92
zspecial.acs
92
zspecial.acs
|
@ -24,12 +24,12 @@ special
|
|||
17:Thing_Raise(1),
|
||||
18:StartConversation(1,2),
|
||||
19:Thing_Stop(1),
|
||||
20:Floor_LowerByValue(3),
|
||||
21:Floor_LowerToLowest(2),
|
||||
22:Floor_LowerToNearest(2),
|
||||
23:Floor_RaiseByValue(3),
|
||||
24:Floor_RaiseToHighest(2),
|
||||
25:Floor_RaiseToNearest(2),
|
||||
20:Floor_LowerByValue(3,4),
|
||||
21:Floor_LowerToLowest(2,3),
|
||||
22:Floor_LowerToNearest(2,3),
|
||||
23:Floor_RaiseByValue(3,5),
|
||||
24:Floor_RaiseToHighest(2,5),
|
||||
25:Floor_RaiseToNearest(2,4),
|
||||
26:Stairs_BuildDown(5),
|
||||
27:Stairs_BuildUp(5),
|
||||
28:Floor_RaiseAndCrush(3,4),
|
||||
|
@ -39,19 +39,19 @@ special
|
|||
32:Stairs_BuildUpSync(4),
|
||||
33:ForceField(0),
|
||||
34:ClearForceField(1),
|
||||
35:Floor_RaiseByValueTimes8(3),
|
||||
36:Floor_LowerByValueTimes8(3),
|
||||
37:Floor_MoveToValue(3,4),
|
||||
35:Floor_RaiseByValueTimes8(3,5),
|
||||
36:Floor_LowerByValueTimes8(3,4),
|
||||
37:Floor_MoveToValue(3,5),
|
||||
38:Ceiling_Waggle(5),
|
||||
39:Teleport_ZombieChanger(2),
|
||||
40:Ceiling_LowerByValue(3),
|
||||
41:Ceiling_RaiseByValue(3),
|
||||
40:Ceiling_LowerByValue(3,4),
|
||||
41:Ceiling_RaiseByValue(3,4),
|
||||
42:Ceiling_CrushAndRaise(3,4),
|
||||
43:Ceiling_LowerAndCrush(3,4),
|
||||
44:Ceiling_CrushStop(1),
|
||||
44:Ceiling_CrushStop(1,2),
|
||||
45:Ceiling_CrushRaiseAndStay(3,4),
|
||||
46:Floor_CrushStop(1),
|
||||
47:Ceiling_MoveToValue(3,4),
|
||||
47:Ceiling_MoveToValue(3,5),
|
||||
// 48:Sector_Attach3dMidtex
|
||||
49:GlassBreak(0,1),
|
||||
// 50:ExtraFloor_LightOnly
|
||||
|
@ -65,15 +65,15 @@ special
|
|||
// 58: Sector_CopyScroller
|
||||
59:Polyobj_OR_MoveToSpot(3),
|
||||
60:Plat_PerpetualRaise(3),
|
||||
61:Plat_Stop(1),
|
||||
61:Plat_Stop(1,2),
|
||||
62:Plat_DownWaitUpStay(3),
|
||||
63:Plat_DownByValue(4),
|
||||
64:Plat_UpWaitDownStay(3),
|
||||
65:Plat_UpByValue(4),
|
||||
66:Floor_LowerInstant(3),
|
||||
67:Floor_RaiseInstant(3),
|
||||
68:Floor_MoveToValueTimes8(4),
|
||||
69:Ceiling_MoveToValueTimes8(4),
|
||||
66:Floor_LowerInstant(3,4),
|
||||
67:Floor_RaiseInstant(3,5),
|
||||
68:Floor_MoveToValueTimes8(4,5),
|
||||
69:Ceiling_MoveToValueTimes8(4,5),
|
||||
70:Teleport(1,3),
|
||||
71:Teleport_NoFog(1,4),
|
||||
72:ThrustThing(2,4),
|
||||
|
@ -109,6 +109,9 @@ special
|
|||
// 102:Scroll_Texture_Up
|
||||
// 103:Scroll_Texture_Down
|
||||
104:Ceiling_CrushAndRaiseSilentDist(4,5),
|
||||
105:Door_WaitRaise(4,5),
|
||||
106:Door_WaitClose(3,4),
|
||||
107:Line_SetPortalTarget(2),
|
||||
|
||||
109:Light_ForceLightning(1),
|
||||
110:Light_RaiseByValue(2),
|
||||
|
@ -177,14 +180,14 @@ special
|
|||
188:Sector_SetCeilingScale(5),
|
||||
189:Sector_SetFloorScale(5),
|
||||
191:SetPlayerProperty(3),
|
||||
192:Ceiling_LowerToHighestFloor(2),
|
||||
193:Ceiling_LowerInstant(3),
|
||||
194:Ceiling_RaiseInstant(3),
|
||||
192:Ceiling_LowerToHighestFloor(2,5),
|
||||
193:Ceiling_LowerInstant(3,5),
|
||||
194:Ceiling_RaiseInstant(3,4),
|
||||
195:Ceiling_CrushRaiseAndStayA(4,5),
|
||||
196:Ceiling_CrushAndRaiseA(4,5),
|
||||
197:Ceiling_CrushAndRaiseSilentA(4,5),
|
||||
198:Ceiling_RaiseByValueTimes8(3),
|
||||
199:Ceiling_LowerByValueTimes8(3),
|
||||
198:Ceiling_RaiseByValueTimes8(3,4),
|
||||
199:Ceiling_LowerByValueTimes8(3,4),
|
||||
200:Generic_Floor(5),
|
||||
201:Generic_Ceiling(5),
|
||||
202:Generic_Door(5),
|
||||
|
@ -223,9 +226,9 @@ special
|
|||
235:Floor_TransferTrigger(1),
|
||||
236:Floor_TransferNumeric(1),
|
||||
237:ChangeCamera(3),
|
||||
238:Floor_RaiseToLowestCeiling(2),
|
||||
238:Floor_RaiseToLowestCeiling(2,5),
|
||||
239:Floor_RaiseByValueTxTy(3),
|
||||
240:Floor_RaiseByTexture(2),
|
||||
240:Floor_RaiseByTexture(2,4),
|
||||
241:Floor_LowerToLowestTxTy(2),
|
||||
242:Floor_LowerToHighest(3,4),
|
||||
243:Exit_Normal(1),
|
||||
|
@ -237,10 +240,31 @@ special
|
|||
249:Door_CloseWaitOpen(3, 4),
|
||||
250:Floor_Donut(3),
|
||||
251:FloorAndCeiling_LowerRaise(3,4),
|
||||
252:Ceiling_RaiseToNearest(2),
|
||||
253:Ceiling_LowerToLowest(2),
|
||||
254:Ceiling_LowerToFloor(2),
|
||||
252:Ceiling_RaiseToNearest(2,3),
|
||||
253:Ceiling_LowerToLowest(2,4),
|
||||
254:Ceiling_LowerToFloor(2,5),
|
||||
255:Ceiling_CrushRaiseAndStaySilA(4,5),
|
||||
|
||||
// These are specialized versions of the Generic_* specials which are defined for EE Extradata.
|
||||
256:Floor_LowerToHighestEE(2, 3),
|
||||
257:Floor_RaiseToLowest(2, 3),
|
||||
258:Floor_LowerToLowestCeiling(2,3),
|
||||
259:Floor_RaiseToCeiling(2, 5),
|
||||
260:Floor_ToCeilingInstant(1, 4),
|
||||
261:Floor_LowerByTexture(2, 3),
|
||||
262:Ceiling_RaiseToHighest(2, 3),
|
||||
263:Ceiling_ToHighestInstant(1, 3),
|
||||
264:Ceiling_LowerToNearest(2, 4),
|
||||
265:Ceiling_RaiseToLowest(2, 3),
|
||||
266:Ceiling_RaiseToHighestFloor(2, 3),
|
||||
267:Ceiling_ToFloorInstant(1, 4),
|
||||
268:Ceiling_RaiseByTexture(2, 3),
|
||||
269:Ceiling_LowerByTexture(2, 4),
|
||||
270:Stairs_BuildDownDoom(5),
|
||||
271:Stairs_BuildUpDoomSync(4),
|
||||
272:Stairs_BuildDownDoomSync(4),
|
||||
|
||||
|
||||
|
||||
// internal functions have negative values
|
||||
-1:GetLineUDMFInt(2),
|
||||
|
@ -334,12 +358,15 @@ special
|
|||
-88:SetActorRoll(2),
|
||||
-89:ChangeActorRoll(2,3),
|
||||
-90:GetActorRoll(1),
|
||||
-91:QuakeEx(8,12),
|
||||
-91:QuakeEx(8,16),
|
||||
-92:Warp(6,11),
|
||||
-93:GetMaxInventory(2),
|
||||
-94:SetSectorDamage(2,5),
|
||||
-95:SetSectorTerrain(3),
|
||||
-96:SpawnParticle(1,15),
|
||||
-96:SpawnParticle(1,16),
|
||||
-97:SetMusicVolume(1),
|
||||
-98:CheckProximity(3, 6),
|
||||
-99:CheckActorState(2,3),
|
||||
|
||||
// Zandronum's
|
||||
-100:ResetMap(0),
|
||||
|
@ -369,6 +396,11 @@ special
|
|||
-124:EndDBTransaction(0),
|
||||
-125:GetDBEntries(1),
|
||||
|
||||
// -1xx are reserved for Zandronum
|
||||
-200:CheckClass(1),
|
||||
-201:DamageActor(6), // [arookas]
|
||||
-202:SetActorFlag(3),
|
||||
|
||||
// ZDaemon's
|
||||
-19620:GetTeamScore(1),
|
||||
-19621:SetTeamScore(2),
|
||||
|
|
Loading…
Reference in a new issue