RingRacers/extras/gdcc/inc/ACS/rrspecial.acs
2022-12-28 16:58:16 -05:00

287 lines
8 KiB
Text

//-----------------------------------------------------------------------------
//
// Copyright(C) 2015-2017 David Hill
// Copyright(C) 2022 Sally Cochenour
//
// See COPYLIB for license information.
//
//-----------------------------------------------------------------------------
//
// Header for target library libacs.
//
// Defines for Dr. Robotnik's Ring Racers' ACS.
//
//-----------------------------------------------------------------------------
#ifndef __GDCC_Header__ACS__rrspecial_acs__
#define __GDCC_Header__ACS__rrspecial_acs__
//----------------------------------------------------------------------------|
// Macros |
//
#define ACS_ExecuteWait(name, ...) \
do \
{ \
str __execute_wait_name = (name); \
ACS_Execute(__execute_wait_name, __VA_ARGS__); \
ScriptWait(__execute_wait_name); \
} \
while(0)
#define ACS_PrintPropertyBase() \
(char): PrintChar, \
(str): PrintString, \
\
a(global): PrintGlobalCharArray, \
a(global): PrintGlobalCharRange, \
a(local): PrintLocalCharArray, \
a(local): PrintLocalCharRange, \
a(module): PrintModuleCharArray, \
a(module): PrintModuleCharRange, \
a(world): PrintWorldCharArray, \
a(world): PrintWorldCharRange, \
\
b: PrintBinary, \
c: PrintChar, \
d: PrintInt, \
f: PrintFixed, \
i: PrintInt, \
s: PrintString, \
x: PrintHex
#pragma state save
#pragma define raw ON
#define suspend do (__suspend()); while(0)
#pragma state restore
//----------------------------------------------------------------------------|
// Functions |
//
// [type] [ID]:[function name]([required args], [optional args])
special
int 400:Sector_CopyHeights(3, 4),
int 402:Light_Copy(2, 3),
int 403:Sector_CopyHeightsMove(4, 6),
int 405:Sector_MovePlanes(4, 5),
int 408:Sector_CopyTextures(3),
int 409:Sector_ChangeTag(2, 3),
int 410:Line_ChangeFrontSectorTag(2, 3),
int 411:Sector_StopMovement(1),
int 412:Thing_Teleport(1, 5),
int 413:Level_SetMusic(1, 8),
int 414:PlaySFX(1, 4),
int 415:Console_Execute(1),
int 416:Light_Flicker(5),
int 417:Light_Glow(5),
int 418:Light_Blink(6),
int 420:Light_Fade(3, 4),
int 421:Light_Stop(1),
int 422:Camera_CutAwayView(2),
int 423:Level_SetSky(1, 2),
int 424:Level_SetWeather(1, 2),
int 425:Thing_SetState(1),
int 426:Thing_Stop(0, 1),
int 427:Player_AddScore(1),
int 428:Sector_PlatformMovement(2, 5),
int 429:Sector_Crush(3),
int 433:Thing_SetFlip(1),
int 435:Sector_ChangeScroll(3),
int 436:FOF_Shatter(2),
int 437:Player_DisableControl(1),
int 438:Thing_SetScale(1),
int 439:Line_CopyTextures(3, 4),
int 440:Level_StartMetalSonicRace(0),
int 441:SetUnlockableTrigger(1),
int 442:Sector_ChangeThingStates(3, 4),
int 443:Lua_Execute(1, 12),
int 444:Earthquake(1, 3),
int 445:FOF_SetExists(3),
int 446:FOF_Crumble(2, 3),
int 447:Sector_SetColormap(2, 3),
int 448:Level_SetSkyboxViewpoints(3, 4),
int 449:Level_SetBossDisabled(2),
int 450:Line_Execute(1),
int 451:Line_ExecuteRandom(2),
int 452:FOF_SetAlpha(3, 4),
int 453:FOF_Fade(4, 5),
int 454:FOF_StopFade(2, 3),
int 455:Sector_FadeColormap(3, 4),
int 456:Sector_StopColormapFade(1),
int 457:Thing_StartTracking(4, 5),
int 458:Thing_StopTracking(0),
int 459:Prompt_Execute(4, 5),
int 460:Player_AddRings(1, 3),
int 461:Thing_Spawn(5, 9),
int 462:Level_StopClock(0),
int 463:Thing_Dye(1), // color
int 464:TriggerEggCapsule(1, 2),
int 466:Level_SetFailed(1),
int 467:Sector_SetLight(2, 4),
int 468:Line_SetArg(2, 4),
int 469:Sector_SetGravity(2, 4),
int 475:ACS_Execute(1, 11),
int 476:ACS_ExecuteAlways(1, 11),
int 477:ACS_Suspend(1),
int 478:ACS_Terminate(1),
int 480:Polyobj_DoorSlide(5),
int 481:Polyobj_DoorSwing(4),
int 482:Polyobj_Move(4, 5),
int 484:Polyobj_Rotate(3, 4),
int 488:Polyobj_MoveByWaypoints(3, 5),
int 489:Polyobj_SetVisibilityTangibility(3),
int 491:Polyobj_SetAlpha(2, 3),
int 492:Polyobj_FadeAlpha(3, 4),
int 499:Sector_ToggleWaypoints(2),
// Internal functions have negative values
// [type] [ID]:[function name]([required args], [type of each arg, including optional ones])
/*
int -1:GetLineUDMFInt(2, int, str),
fixed -2:GetLineUDMFFixed(2, int, str),
int -3:GetThingUDMFInt(2, int, str),
fixed -4:GetThingUDMFFixed(2, int, str),
int -5:GetSectorUDMFInt(2, int, str),
fixed -6:GetSectorUDMFFixed(2, int, str),
int -7:GetSideUDMFInt(3, int, int, str),
fixed -8:GetSideUDMFFixed(3, int, int, str),
*/
// 0 to 56: Implemented by ACSVM
void { 2 }:__suspend(void),
void { 55, 56}:Delay(int),
int { 57, 58}:Random(int, int),
fixed { 57, 58}:RandomFixed(fixed, fixed),
int { 59, 60}:ThingCount(str, int),
void { 61, 62}:TagWait(int),
void { 63, 64}:PolyWait(int),
void { 65, 66}:ChangeFloor(int, str),
void { 67, 68}:ChangeCeiling(int, str),
// 69 to 79: Implemented by ACSVM
int { 80 }:LineSide(void),
void { 81, 82}:__ScriptWaitDirect(int), // 81 to 82: Implemented by ACSVM
void { 83 }:ClearLineSpecial(void),
// 84 to 85: Implemented by ACSVM
void { 85 }:BeginPrint(void),
void { 85 }:BeginPrintBold(void),
void { 85 }:BeginLog(void),
void { 86 }:EndPrint(void),
void { 87 }:PrintString(str), // 87 to 89: Implemented by ACSVM
void { 88 }:PrintInt(int),
void { 88 }:PrintNumber(int),
void { 89 }:PrintChar(int),
int { 90 }:PlayerCount(void),
int { 91 }:GameType(void),
int { 92 }:GameSpeed(void),
int { 93 }:Timer(void),
void { 94 }:SectorSound(str, int),
void { 95 }:AmbientSound(str, int),
void { 97 }:SetLineTexture(int, int, int, str),
void { 98 }:SetLineBlocking(int, int),
void { 99 }:SetLineSpecial(int, int, int, int, int, int, int),
void {100 }:ThingSound(int, str, int),
void {101 }:EndPrintBold(void),
int {136 }:FixedMul(int, int), // 136 to 137: Implemented by ACSVM
int {137 }:FixedDiv(int, int),
void {157 }:PrintFixed(fixed), // 157: Implemented by ACSVM
// 167 to 173: Implemented by ACSVM
// 175 to 179: Implemented by ACSVM
// 181 to 189: Implemented by ACSVM
// 203 to 217: Implemented by ACSVM
// 225 to 243: Implemented by ACSVM
int {253 }:StrLen(str), // 253: Implemented by ACSVM
// 256 to 257: Implemented by ACSVM
void {257 }:SetResultValue(int),
void {257 }:SetResultValueFixed(fixed),
// 263: Implemented by ACSVM
void {270 }:EndLog(void),
void {273 }:PrintModuleCharArray(int, int), // 273 to 275: Implemented by ACSVM
void {274 }:PrintWorldCharArray(int, int),
void {275 }:PrintGlobalCharArray(int, int),
// 291 to 325: Implemented by ACSVM
// 330: Implemented by ACSVM
void {349 }:PrintBinary(int), // 349 to 361: Implemented by ACSVM
void {350 }:PrintHex(int),
str {352 }:EndStrParam(void),
void {353 }:PrintModuleCharRange(int, int, int, int),
void {354 }:PrintWorldCharRange(int, int, int, int),
void {355 }:PrintGlobalCharRange(int, int, int, int),
int {356 }:StrCpyToModuleCharRange(int, int, int, int, str, int),
int {357 }:StrCpyToWorldCharRange(int, int, int, int, str, int),
int {358 }:StrCpyToGlobalCharRange(int, int, int, int, str, int),
void {361 }:ScriptWait(str),
// 363 to 380: Implemented by ACSVM
void {378 }:PrintLocalCharArray(int, int),
void {379 }:PrintLocalCharRange(int, int, int, int),
int {380 }:StrCpyToLocalCharRange(int, int, int, int, str, int);
print __Print
(
(begin): BeginPrint,
(end): EndPrint,
ACS_PrintPropertyBase()
);
print __PrintBold
(
(begin): BeginPrintBold,
(end): EndPrintBold,
ACS_PrintPropertyBase()
);
print PrintRaw
(
ACS_PrintPropertyBase()
);
print __Log
(
(begin): BeginLog,
(end): EndLog,
ACS_PrintPropertyBase()
);
#endif//__GDCC_Header__ACS__rrspecial_acs__