//----------------------------------------------------------------------------- // // 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__