exported all the states to ZScript.

This commit is contained in:
Christoph Oelckers 2023-10-18 19:00:58 +02:00
parent c914f2736a
commit 6725867462
7 changed files with 1240 additions and 15 deletions

View file

@ -106,3 +106,363 @@ xx(Darts)
xx(Bloody)
xx(Shotgun2)
xx(genIdle)
xx(genRecoil)
xx(batIdle)
xx(batFlyIdle)
xx(batChase)
xx(batPonder)
xx(batGoto)
xx(batBite)
xx(batRecoil)
xx(batSearch)
xx(batSwoop)
xx(batFly)
xx(batTurn)
xx(batHide)
xx(batDodgeUp)
xx(batDodgeUpRight)
xx(batDodgeUpLeft)
xx(batDodgeDown)
xx(batDodgeDownRight)
xx(batDodgeDownLeft)
xx(beastIdle)
xx(beastChase)
xx(beastDodge)
xx(beastGoto)
xx(beastSlash)
xx(beastStomp)
xx(beastSearch)
xx(beastRecoil)
xx(beastTeslaRecoil)
xx(beastSwimIdle)
xx(beastSwimChase)
xx(beastSwimDodge)
xx(beastSwimGoto)
xx(beastSwimSearch)
xx(beastSwimSlash)
xx(beastSwimRecoil)
xx(beastMorphToBeast)
xx(beastMorphFromCultist)
xx(beastMoveSwimChaseAlt)
xx(beastSwimAttack)
xx(beastSwimTurn)
xx(eelIdle)
xx(eelFlyIdle)
xx(eelChase)
xx(eelPonder)
xx(eelGoto)
xx(eelBite)
xx(eelRecoil)
xx(eelSearch)
xx(eelSwoop)
xx(eelFly)
xx(eelTurn)
xx(eelHide)
xx(eelDodgeUp)
xx(eelDodgeUpRight)
xx(eelDodgeUpLeft)
xx(eelDodgeDown)
xx(eelDodgeDownRight)
xx(eelDodgeDownLeft)
xx(cultistBurnIdle)
xx(cultistBurnChase)
xx(cultistBurnGoto)
xx(cultistBurnSearch)
xx(cultistBurnAttack)
xx(zombieABurnChase)
xx(zombieABurnGoto)
xx(zombieABurnSearch)
xx(zombieABurnAttack)
xx(zombieFBurnChase)
xx(zombieFBurnGoto)
xx(zombieFBurnSearch)
xx(zombieFBurnAttack)
xx(innocentBurnChase)
xx(innocentBurnGoto)
xx(innocentBurnSearch)
xx(innocentBurnAttack)
xx(beastBurnChase)
xx(beastBurnGoto)
xx(beastBurnSearch)
xx(beastBurnAttack)
xx(tinycalebBurnChase)
xx(tinycalebBurnGoto)
xx(tinycalebBurnSearch)
xx(tinycalebBurnAttack)
xx(tinycalebIdle)
xx(tinycalebChase)
xx(tinycalebDodge)
xx(tinycalebGoto)
xx(tinycalebAttack)
xx(tinycalebSearch)
xx(tinycalebRecoil)
xx(tinycalebTeslaRecoil)
xx(tinycalebSwimIdle)
xx(tinycalebSwimChase)
xx(tinycalebSwimDodge)
xx(tinycalebSwimGoto)
xx(tinycalebSwimSearch)
xx(tinycalebSwimAttack)
xx(tinycalebSwimRecoil)
xx(tinycalebSwimUnused)
xx(tinycalebSwimMoveIn)
xx(tinycalebSwimTurn)
xx(cerberusIdle)
xx(cerberusSearch)
xx(cerberusChase)
xx(cerberusRecoil)
xx(cerberusTeslaRecoil)
xx(cerberusGoto)
xx(cerberusBite)
xx(cerberusBurn)
xx(cerberus3Burn)
xx(cerberus2Idle)
xx(cerberus2Search)
xx(cerberus2Chase)
xx(cerberus2Recoil)
xx(cerberus2Goto)
xx(cerberus2Bite)
xx(cerberus2Burn)
xx(cerberus4Burn)
xx(cerberusTurn1)
xx(cerberusTurn2)
xx(cultistIdle)
xx(cultistProneIdle)
xx(fanaticProneIdle)
xx(cultistProneIdle3)
xx(cultistChase)
xx(fanaticChase)
xx(cultistDodge)
xx(cultistGoto)
xx(cultistProneChase)
xx(cultistProneDodge)
xx(cultistTThrow)
xx(cultistSThrow)
xx(cultistTsThrow)
xx(cultistDThrow)
xx(cultistDThrow2)
xx(cultistDThrow3C)
xx(cultistDThrow3B)
xx(cultistDThrow3A)
xx(cultistDThrow4)
xx(cultistSearch)
xx(cultistSFire)
xx(cultistTFire)
xx(cultistTsFire)
xx(cultistSProneFire)
xx(cultistTProneFire)
xx(cultistTsProneFire)
xx(cultistTsProneFireFixed)
xx(cultistRecoil)
xx(cultistProneRecoil)
xx(cultistTeslaRecoil)
xx(cultistSwimIdle)
xx(cultistSwimChase)
xx(cultistSwimDodge)
xx(cultistSwimGoto)
xx(cultistSwimSearch)
xx(cultistSSwimFire)
xx(cultistTSwimFire)
xx(cultistTsSwimFire)
xx(cultistSwimRecoil)
xx(gargoyleFIdle)
xx(gargoyleStatueIdle)
xx(gargoyleFChase)
xx(gargoyleFGoto)
xx(gargoyleFSlash)
xx(gargoyleFThrow)
xx(gargoyleSThrow)
xx(gargoyleSBlast)
xx(gargoyleFRecoil)
xx(gargoyleFSearch)
xx(gargoyleFMorph2)
xx(gargoyleFMorph)
xx(gargoyleSMorph2)
xx(gargoyleSMorph)
xx(gargoyleSwoop)
xx(gargoyleFly)
xx(gargoyleTurn)
xx(gargoyleDodgeUp)
xx(gargoyleFDodgeUpRight)
xx(gargoyleFDodgeUpLeft)
xx(gargoyleDodgeDown)
xx(gargoyleFDodgeDownRight)
xx(gargoyleFDodgeDownLeft)
xx(statueFBreakSEQ)
xx(statueSBreakSEQ)
xx(ghostIdle)
xx(ghostChase)
xx(ghostGoto)
xx(ghostSlash)
xx(ghostThrow)
xx(ghostBlast)
xx(ghostRecoil)
xx(ghostTeslaRecoil)
xx(ghostSearch)
xx(ghostSwoop)
xx(ghostFly)
xx(ghostTurn)
xx(ghostDodgeUp)
xx(ghostDodgeUpRight)
xx(ghostDodgeUpLeft)
xx(ghostDodgeDown)
xx(ghostDodgeDownRight)
xx(ghostDodgeDownLeft)
xx(gillBeastIdle)
xx(gillBeastChase)
xx(gillBeastDodge)
xx(gillBeastGoto)
xx(gillBeastBite)
xx(gillBeastSearch)
xx(gillBeastRecoil)
xx(gillBeastSwimIdle)
xx(gillBeastSwimChase)
xx(gillBeastSwimDodge)
xx(gillBeastSwimGoto)
xx(gillBeastSwimSearch)
xx(gillBeastSwimBite)
xx(gillBeastSwimRecoil)
xx(gillBeastSwimUnused)
xx(gillBeastSwimMoveIn)
xx(gillBeastSwimTurn)
xx(handIdle)
xx(hand13A3B4)
xx(handSearch)
xx(handChase)
xx(handRecoil)
xx(handGoto)
xx(handJump)
xx(houndIdle)
xx(houndSearch)
xx(houndChase)
xx(houndRecoil)
xx(houndTeslaRecoil)
xx(houndGoto)
xx(houndBite)
xx(houndBurn)
xx(innocentIdle)
xx(innocentSearch)
xx(innocentChase)
xx(innocentRecoil)
xx(innocentTeslaRecoil)
xx(innocentGoto)
xx(podIdle)
xx(podMove)
xx(podSearch)
xx(podStartChase)
xx(podRecoil)
xx(podChase)
xx(tentacleIdle)
xx(tentaclePlaySound1)
xx(tentaclePlaySound1A)
xx(tentaclePlaySound2)
xx(tentaclePlaySound2A)
xx(tentacleMove)
xx(tentacleSearch)
xx(tentacleStartChase)
xx(tentacleRecoil)
xx(tentacleChase)
xx(ratIdle)
xx(ratSearch)
xx(ratChase)
xx(ratDodge)
xx(ratRecoil)
xx(ratGoto)
xx(ratBite)
xx(spidIdle)
xx(spidChase)
xx(spidDodge)
xx(spidGoto)
xx(spidSearch)
xx(spidBite)
xx(spidJump)
xx(spidBirth)
xx(tchernobogIdle)
xx(tchernobogSearch)
xx(tchernobogChase)
xx(tchernobogRecoil)
xx(tchernobogGoto)
xx(tchernobogBurn1)
xx(tchernobogBurn2)
xx(tchernobogFireAtk)
xx(tchernobogTurn)
xx(zombieAIdle)
xx(zombieAChase)
xx(zombieAPonder)
xx(zombieAGoto)
xx(zombieAHack)
xx(zombieASearch)
xx(zombieARecoil)
xx(zombieATeslaRecoil)
xx(zombieARecoil2)
xx(zombieAStand)
xx(zombieEIdle)
xx(zombieEUp2)
xx(zombieEUp)
xx(zombie2Idle)
xx(zombie2Search)
xx(zombieSIdle)
xx(zombieEStand)
xx(zombieFIdle)
xx(zombieFChase)
xx(zombieFGoto)
xx(zombieFDodge)
xx(zombieFHack)
xx(zombieFPuke)
xx(zombieFThrow)
xx(zombieFSearch)
xx(zombieFRecoil)
xx(zombieFTeslaRecoil)
// the following similar names must be continuous
xx(genPatrolState_0)
xx(genPatrolState_1)
xx(genPatrolState_2)
xx(genPatrolState_3)
xx(genPatrolState_4)
xx(genPatrolState_5)
xx(genPatrolState_6)
xx(genPatrolState_7)
xx(genPatrolState_8)
xx(genPatrolState_9)
xx(genPatrolState_10)
xx(genPatrolState_11)
xx(genPatrolState_12)
xx(genPatrolState_13)
xx(genPatrolState_14)
xx(genPatrolState_15)
xx(genPatrolState_16)
xx(genPatrolState_17)
xx(genPatrolState_18)
xx(genPatrolState_19)
xx(genPatrolState_20)
xx(genPatrolState_21)
xx(genPatrolState_22)
xx(genPatrolState_23)
xx(genPatrolState_24)
xx(genPatrolState_25)
xx(genPatrolState_26)
xx(genPatrolState_27)
xx(genPatrolState_28)
xx(genPatrolState_29)
xx(genPatrolState_30)
xx(genPatrolState_31)
xx(genPatrolState_32)
xx(genPatrolState_33)
xx(genPatrolState_34)
xx(genPatrolState_35)
xx(genPatrolState_36)
xx(genPatrolState_37)
xx(genPatrolState_38)
xx(genPatrolState_39)
xx(genPatrolState_40)
xx(genPatrolState_41)
xx(genPatrolState_42)
xx(genPatrolState_43)
xx(genPatrolState_44)
xx(genPatrolState_45)
xx(genPatrolState_46)
xx(genPatrolState_47)
xx(genPatrolState_48)
xx(genPatrolState_49)

View file

@ -37,10 +37,10 @@ AISTATE podStartChase = { kAiStateChase, 8, &AF(podAttack), 600, NULL, NULL, NUL
AISTATE podRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &podChase };
AISTATE podChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveTurn), &AF(aiPodChase), NULL };
AISTATE tentacleIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE tentacle13A6A8 = { kAiStateOther, 7, &AF(podPlaySound1), 0, NULL, NULL, NULL, &tentacle13A6C4 };
AISTATE tentacle13A6C4 = { kAiStateOther, -1, nullptr, 0, NULL, NULL, NULL, &tentacleChase };
AISTATE tentacle13A6E0 = { kAiStateOther, 8, &AF(podPlaySound2), 0, NULL, NULL, NULL, &tentacle13A6FC };
AISTATE tentacle13A6FC = { kAiStateOther, -1, nullptr, 0, NULL, NULL, NULL, &tentacleIdle };
AISTATE tentaclePlaySound1 = { kAiStateOther, 7, &AF(podPlaySound1), 0, NULL, NULL, NULL, &tentaclePlaySound1A };
AISTATE tentaclePlaySound1A = { kAiStateOther, -1, nullptr, 0, NULL, NULL, NULL, &tentacleChase };
AISTATE tentaclePlaySound2 = { kAiStateOther, 8, &AF(podPlaySound2), 0, NULL, NULL, NULL, &tentaclePlaySound2A };
AISTATE tentaclePlaySound2A = { kAiStateOther, -1, nullptr, 0, NULL, NULL, NULL, &tentacleIdle };
AISTATE tentacleMove = { kAiStateOther, 8, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodMove), &tentacleSearch };
AISTATE tentacleSearch = { kAiStateOther, 0, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodSearch), NULL };
AISTATE tentacleStartChase = { kAiStateOther, 6, &AF(podExplode), 120, NULL, NULL, NULL, &tentacleChase };

View file

@ -285,10 +285,10 @@ extern AISTATE podStartChase;
extern AISTATE podRecoil;
extern AISTATE podChase;
extern AISTATE tentacleIdle;
extern AISTATE tentacle13A6A8;
extern AISTATE tentacle13A6C4;
extern AISTATE tentacle13A6E0;
extern AISTATE tentacle13A6FC;
extern AISTATE tentaclePlaySound1;
extern AISTATE tentaclePlaySound1A;
extern AISTATE tentaclePlaySound2;
extern AISTATE tentaclePlaySound2A;
extern AISTATE tentacleMove;
extern AISTATE tentacleSearch;
extern AISTATE tentacleStartChase;

View file

@ -442,10 +442,10 @@ enum {
kAiStateRecoil = 5,
kAiStateAttack = 6,
#ifdef NOONE_EXTENSIONS
kAiStateKnockout,
kAiStateIdleSleep,
kAiStatePatrolBase,
kAiStatePatrolWaitL = kAiStatePatrolBase,
kAiStateKnockout = kAiStatePatrolBase,
kAiStateIdleSleep,
kAiStatePatrolWaitL,
kAiStatePatrolWaitC,
kAiStatePatrolWaitW,
kAiStatePatrolMoveL,

View file

@ -287,10 +287,10 @@ static AISTATE* const allAIStates[] =
&podRecoil,
&podChase,
&tentacleIdle,
&tentacle13A6A8,
&tentacle13A6C4,
&tentacle13A6E0,
&tentacle13A6FC,
&tentaclePlaySound1,
&tentaclePlaySound1A,
&tentaclePlaySound2,
&tentaclePlaySound2A,
&tentacleMove,
&tentacleSearch,
&tentacleStartChase,
@ -347,8 +347,482 @@ static AISTATE* const allAIStates[] =
&zombieFSearch,
&zombieFRecoil,
&zombieFTeslaRecoil,
&genPatrolStates[0],
&genPatrolStates[1],
&genPatrolStates[2],
&genPatrolStates[3],
&genPatrolStates[4],
&genPatrolStates[5],
&genPatrolStates[6],
&genPatrolStates[7],
&genPatrolStates[8],
&genPatrolStates[9],
&genPatrolStates[10],
&genPatrolStates[11],
&genPatrolStates[12],
&genPatrolStates[13],
&genPatrolStates[14],
&genPatrolStates[15],
&genPatrolStates[16],
&genPatrolStates[17],
&genPatrolStates[18],
&genPatrolStates[19],
&genPatrolStates[20],
&genPatrolStates[21],
&genPatrolStates[22],
&genPatrolStates[23],
&genPatrolStates[24],
&genPatrolStates[25],
&genPatrolStates[26],
&genPatrolStates[27],
&genPatrolStates[28],
&genPatrolStates[29],
&genPatrolStates[30],
&genPatrolStates[31],
&genPatrolStates[32],
&genPatrolStates[33],
&genPatrolStates[34],
&genPatrolStates[35],
&genPatrolStates[36],
&genPatrolStates[37],
&genPatrolStates[38],
&genPatrolStates[39],
&genPatrolStates[40],
&genPatrolStates[41],
&genPatrolStates[42],
&genPatrolStates[43],
&genPatrolStates[44],
&genPatrolStates[45],
&genPatrolStates[46],
&genPatrolStates[47],
&genPatrolStates[48],
&genPatrolStates[49],
};
static const char* const allAIStateNames[] =
{
"none",
"genIdle",
"genRecoil",
"batIdle",
"batFlyIdle",
"batChase",
"batPonder",
"batGoto",
"batBite",
"batRecoil",
"batSearch",
"batSwoop",
"batFly",
"batTurn",
"batHide",
"batDodgeUp",
"batDodgeUpRight",
"batDodgeUpLeft",
"batDodgeDown",
"batDodgeDownRight",
"batDodgeDownLeft",
"beastIdle",
"beastChase",
"beastDodge",
"beastGoto",
"beastSlash",
"beastStomp",
"beastSearch",
"beastRecoil",
"beastTeslaRecoil",
"beastSwimIdle",
"beastSwimChase",
"beastSwimDodge",
"beastSwimGoto",
"beastSwimSearch",
"beastSwimSlash",
"beastSwimRecoil",
"beastMorphToBeast",
"beastMorphFromCultist",
"beastMoveSwimChaseAlt",
"beastSwimAttack",
"beastSwimTurn",
"eelIdle",
"eelFlyIdle",
"eelChase",
"eelPonder",
"eelGoto",
"eelBite",
"eelRecoil",
"eelSearch",
"eelSwoop",
"eelFly",
"eelTurn",
"eelHide",
"eelDodgeUp",
"eelDodgeUpRight",
"eelDodgeUpLeft",
"eelDodgeDown",
"eelDodgeDownRight",
"eelDodgeDownLeft",
"cultistBurnIdle",
"cultistBurnChase",
"cultistBurnGoto",
"cultistBurnSearch",
"cultistBurnAttack",
"zombieABurnChase",
"zombieABurnGoto",
"zombieABurnSearch",
"zombieABurnAttack",
"zombieFBurnChase",
"zombieFBurnGoto",
"zombieFBurnSearch",
"zombieFBurnAttack",
"innocentBurnChase",
"innocentBurnGoto",
"innocentBurnSearch",
"innocentBurnAttack",
"beastBurnChase",
"beastBurnGoto",
"beastBurnSearch",
"beastBurnAttack",
"tinycalebBurnChase",
"tinycalebBurnGoto",
"tinycalebBurnSearch",
"tinycalebBurnAttack",
"tinycalebIdle",
"tinycalebChase",
"tinycalebDodge",
"tinycalebGoto",
"tinycalebAttack",
"tinycalebSearch",
"tinycalebRecoil",
"tinycalebTeslaRecoil",
"tinycalebSwimIdle",
"tinycalebSwimChase",
"tinycalebSwimDodge",
"tinycalebSwimGoto",
"tinycalebSwimSearch",
"tinycalebSwimAttack",
"tinycalebSwimRecoil",
"tinycalebSwimUnused",
"tinycalebSwimMoveIn",
"tinycalebSwimTurn",
"cerberusIdle",
"cerberusSearch",
"cerberusChase",
"cerberusRecoil",
"cerberusTeslaRecoil",
"cerberusGoto",
"cerberusBite",
"cerberusBurn",
"cerberus3Burn",
"cerberus2Idle",
"cerberus2Search",
"cerberus2Chase",
"cerberus2Recoil",
"cerberus2Goto",
"cerberus2Bite",
"cerberus2Burn",
"cerberus4Burn",
"cerberusTurn1",
"cerberusTurn2",
"cultistIdle",
"cultistProneIdle",
"fanaticProneIdle",
"cultistProneIdle3",
"cultistChase",
"fanaticChase",
"cultistDodge",
"cultistGoto",
"cultistProneChase",
"cultistProneDodge",
"cultistTThrow",
"cultistSThrow",
"cultistTsThrow",
"cultistDThrow",
"cultistDThrow2",
"cultistDThrow3C",
"cultistDThrow3B",
"cultistDThrow3A",
"cultistDThrow4",
"cultistSearch",
"cultistSFire",
"cultistTFire",
"cultistTsFire",
"cultistSProneFire",
"cultistTProneFire",
"cultistTsProneFire",
"cultistTsProneFireFixed",
"cultistRecoil",
"cultistProneRecoil",
"cultistTeslaRecoil",
"cultistSwimIdle",
"cultistSwimChase",
"cultistSwimDodge",
"cultistSwimGoto",
"cultistSwimSearch",
"cultistSSwimFire",
"cultistTSwimFire",
"cultistTsSwimFire",
"cultistSwimRecoil",
"gargoyleFIdle",
"gargoyleStatueIdle",
"gargoyleFChase",
"gargoyleFGoto",
"gargoyleFSlash",
"gargoyleFThrow",
"gargoyleSThrow",
"gargoyleSBlast",
"gargoyleFRecoil",
"gargoyleFSearch",
"gargoyleFMorph2",
"gargoyleFMorph",
"gargoyleSMorph2",
"gargoyleSMorph",
"gargoyleSwoop",
"gargoyleFly",
"gargoyleTurn",
"gargoyleDodgeUp",
"gargoyleFDodgeUpRight",
"gargoyleFDodgeUpLeft",
"gargoyleDodgeDown",
"gargoyleFDodgeDownRight",
"gargoyleFDodgeDownLeft",
"statueFBreakSEQ",
"statueSBreakSEQ",
"ghostIdle",
"ghostChase",
"ghostGoto",
"ghostSlash",
"ghostThrow",
"ghostBlast",
"ghostRecoil",
"ghostTeslaRecoil",
"ghostSearch",
"ghostSwoop",
"ghostFly",
"ghostTurn",
"ghostDodgeUp",
"ghostDodgeUpRight",
"ghostDodgeUpLeft",
"ghostDodgeDown",
"ghostDodgeDownRight",
"ghostDodgeDownLeft",
"gillBeastIdle",
"gillBeastChase",
"gillBeastDodge",
"gillBeastGoto",
"gillBeastBite",
"gillBeastSearch",
"gillBeastRecoil",
"gillBeastSwimIdle",
"gillBeastSwimChase",
"gillBeastSwimDodge",
"gillBeastSwimGoto",
"gillBeastSwimSearch",
"gillBeastSwimBite",
"gillBeastSwimRecoil",
"gillBeastSwimUnused",
"gillBeastSwimMoveIn",
"gillBeastSwimTurn",
"handIdle",
"hand13A3B4",
"handSearch",
"handChase",
"handRecoil",
"handGoto",
"handJump",
"houndIdle",
"houndSearch",
"houndChase",
"houndRecoil",
"houndTeslaRecoil",
"houndGoto",
"houndBite",
"houndBurn",
"innocentIdle",
"innocentSearch",
"innocentChase",
"innocentRecoil",
"innocentTeslaRecoil",
"innocentGoto",
"podIdle",
"podMove",
"podSearch",
"podStartChase",
"podRecoil",
"podChase",
"tentacleIdle",
"tentaclePlaySound1",
"tentaclePlaySound1A",
"tentaclePlaySound2",
"tentaclePlaySound2A",
"tentacleMove",
"tentacleSearch",
"tentacleStartChase",
"tentacleRecoil",
"tentacleChase",
"ratIdle",
"ratSearch",
"ratChase",
"ratDodge",
"ratRecoil",
"ratGoto",
"ratBite",
"spidIdle",
"spidChase",
"spidDodge",
"spidGoto",
"spidSearch",
"spidBite",
"spidJump",
"spidBirth",
"tchernobogIdle",
"tchernobogSearch",
"tchernobogChase",
"tchernobogRecoil",
"tchernobogGoto",
"tchernobogBurn1",
"tchernobogBurn2",
"tchernobogFireAtk",
"tchernobogTurn",
"zombieAIdle",
"zombieAChase",
"zombieAPonder",
"zombieAGoto",
"zombieAHack",
"zombieASearch",
"zombieARecoil",
"zombieATeslaRecoil",
"zombieARecoil2",
"zombieAStand",
"zombieEIdle",
"zombieEUp2",
"zombieEUp",
"zombie2Idle",
"zombie2Search",
"zombieSIdle",
"zombieEStand",
"zombieFIdle",
"zombieFChase",
"zombieFGoto",
"zombieFDodge",
"zombieFHack",
"zombieFPuke",
"zombieFThrow",
"zombieFSearch",
"zombieFRecoil",
"zombieFTeslaRecoil",
"genPatrolState_0",
"genPatrolState_1",
"genPatrolState_2",
"genPatrolState_3",
"genPatrolState_4",
"genPatrolState_5",
"genPatrolState_6",
"genPatrolState_7",
"genPatrolState_8",
"genPatrolState_9",
"genPatrolState_10",
"genPatrolState_11",
"genPatrolState_12",
"genPatrolState_13",
"genPatrolState_14",
"genPatrolState_15",
"genPatrolState_16",
"genPatrolState_17",
"genPatrolState_18",
"genPatrolState_19",
"genPatrolState_20",
"genPatrolState_21",
"genPatrolState_22",
"genPatrolState_23",
"genPatrolState_24",
"genPatrolState_25",
"genPatrolState_26",
"genPatrolState_27",
"genPatrolState_28",
"genPatrolState_29",
"genPatrolState_30",
"genPatrolState_31",
"genPatrolState_32",
"genPatrolState_33",
"genPatrolState_34",
"genPatrolState_35",
"genPatrolState_36",
"genPatrolState_37",
"genPatrolState_38",
"genPatrolState_39",
"genPatrolState_40",
"genPatrolState_41",
"genPatrolState_42",
"genPatrolState_43",
"genPatrolState_44",
"genPatrolState_45",
"genPatrolState_46",
"genPatrolState_47",
"genPatrolState_48",
"genPatrolState_49",
};
const char* statetype[] = {
"kAiStateOther",
"kAiStateIdle",
"kAiStateGenIdle",
"kAiStateMove",
"kAiStateSearch",
"kAiStateChase",
"kAiStateRecoil",
"kAiStateAttack",
"kAiStateKnockout",
"kAiStateIdleSleep",
"kAiStatePatrolWaitL",
"kAiStatePatrolWaitC",
"kAiStatePatrolWaitW",
"kAiStatePatrolMoveL",
"kAiStatePatrolMoveC",
"kAiStatePatrolMoveW",
"kAiStatePatrolTurnL",
"kAiStatePatrolTurnC",
"kAiStatePatrolTurnW",
"kAiStatePatrolMax",
};
// name, type, duration, trigger, enter, move, think, next
// AISTATE "genIdle", "+0", 1, 0, null, null, null, null, "none";
void exportStates()
{
for (size_t i = 1; i < countof(allAIStates); i++)
{
AISTATE* state = allAIStates[i];
assert(state->stateType >= kAiStateOther && state->stateType <= kAiStatePatrolMax);
unsigned ii = 0;
for (auto cstate : allAIStates)
{
if (state->nextState == cstate)
break;
ii++;
}
Printf("\t\t\"%s\", \"+%d\", %s, %d, %s, %s, %s, %s, \"%s\";\n",
allAIStateNames[i],
state->seqId,
statetype[state->stateType + 1],
state->stateTicks,
state->funcId? (*state->funcId)->Name.GetChars() : "none",
state->enterFunc ? (*state->enterFunc)->Name.GetChars() : "none",
state->moveFunc ? (*state->moveFunc)->Name.GetChars() : "none",
state->thinkFunc ? (*state->thinkFunc)->Name.GetChars() : "none",
allAIStateNames[ii]
);
}
}
CCMD(exportstates)
{
C_DoCommand("logfile states");
exportStates();
}
#ifdef NOONE_EXTENSIONS
// Serializing states is a lot more tricky for custom dudes.
// Note that this makes no assumptions about the relationship between actor and dude because at restoration this isn't known.

View file

@ -212,6 +212,7 @@ version "4.12"
#include "zscript/games/duke/world/redneckbreak.zs"
#include "zscript/games/blood/bloodgame.zs"
#include "zscript/games/blood/states.zs"
#include "zscript/games/blood/ui/menu.zs"
#include "zscript/games/blood/ui/sbar.zs"
#include "zscript/games/blood/ui/screens.zs"

View file

@ -0,0 +1,390 @@
extend class BloodActor
{
enum AIStateTypes
{
kAiStateOther = -1,
kAiStateIdle = 0,
kAiStateGenIdle = 1,
kAiStateMove = 2,
kAiStateSearch = 3,
kAiStateChase = 4,
kAiStateRecoil = 5,
kAiStateAttack = 6,
kAiStatePatrolBase,
kAiStateKnockout = kAiStatePatrolBase,
kAiStateIdleSleep,
kAiStatePatrolWaitL,
kAiStatePatrolWaitC,
kAiStatePatrolWaitW,
kAiStatePatrolMoveL,
kAiStatePatrolMoveC,
kAiStatePatrolMoveW,
kAiStatePatrolTurnL,
kAiStatePatrolTurnC,
kAiStatePatrolTurnW,
kAiStatePatrolMax
}
default
{
AIState "genIdle", "+0", kAiStateGenIdle, 0, null, null, null, null, "none";
AIState "genRecoil", "+5", kAiStateRecoil, 20, null, null, null, null, "genIdle";
AIState "batIdle", "+0", kAiStateIdle, 0, null, null, null, batThinkTarget, "none";
AIState "batFlyIdle", "+6", kAiStateIdle, 0, null, null, null, batThinkTarget, "none";
AIState "batChase", "+6", kAiStateChase, 0, null, null, batMoveForward, batThinkChase, "batFlyIdle";
AIState "batPonder", "+6", kAiStateOther, 0, null, null, null, batThinkPonder, "none";
AIState "batGoto", "+6", kAiStateMove, 600, null, null, batMoveForward, batThinkGoto, "batFlyIdle";
AIState "batBite", "+7", kAiStateChase, 60, batBiteSeqCallback, null, null, null, "batPonder";
AIState "batRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "batChase";
AIState "batSearch", "+6", kAiStateSearch, 120, null, null, batMoveForward, batThinkSearch, "batFlyIdle";
AIState "batSwoop", "+6", kAiStateOther, 60, null, null, batMoveSwoop, batThinkChase, "batChase";
AIState "batFly", "+6", kAiStateMove, 0, null, null, batMoveFly, batThinkChase, "batChase";
AIState "batTurn", "+6", kAiStateMove, 60, null, null, aiMoveTurn, null, "batChase";
AIState "batHide", "+6", kAiStateOther, 0, null, null, batMoveToCeil, batMoveForward, "none";
AIState "batDodgeUp", "+6", kAiStateMove, 120, null, null, batMoveDodgeUp, null, "batChase";
AIState "batDodgeUpRight", "+6", kAiStateMove, 90, null, null, batMoveDodgeUp, null, "batChase";
AIState "batDodgeUpLeft", "+6", kAiStateMove, 90, null, null, batMoveDodgeUp, null, "batChase";
AIState "batDodgeDown", "+6", kAiStateMove, 120, null, null, batMoveDodgeDown, null, "batChase";
AIState "batDodgeDownRight", "+6", kAiStateMove, 90, null, null, batMoveDodgeDown, null, "batChase";
AIState "batDodgeDownLeft", "+6", kAiStateMove, 90, null, null, batMoveDodgeDown, null, "batChase";
AIState "beastIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "beastChase", "+8", kAiStateChase, 0, null, null, beastMoveForward, beastThinkChase, "none";
AIState "beastDodge", "+8", kAiStateMove, 60, null, null, aiMoveDodge, null, "beastChase";
AIState "beastGoto", "+8", kAiStateMove, 600, null, null, beastMoveForward, beastThinkGoto, "beastIdle";
AIState "beastSlash", "+6", kAiStateChase, 120, SlashSeqCallback, null, null, null, "beastChase";
AIState "beastStomp", "+7", kAiStateChase, 120, StompSeqCallback, null, null, null, "beastChase";
AIState "beastSearch", "+8", kAiStateSearch, 120, null, null, beastMoveForward, beastThinkSearch, "beastIdle";
AIState "beastRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "beastDodge";
AIState "beastTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "beastDodge";
AIState "beastSwimIdle", "+9", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "beastSwimChase", "+9", kAiStateChase, 0, null, null, beastMoveSwim, beastThinkSwimChase, "none";
AIState "beastSwimDodge", "+9", kAiStateMove, 90, null, null, aiMoveDodge, null, "beastSwimChase";
AIState "beastSwimGoto", "+9", kAiStateMove, 600, null, null, beastMoveForward, beastThinkSwimGoto, "beastSwimIdle";
AIState "beastSwimSearch", "+9", kAiStateSearch, 120, null, null, beastMoveForward, beastThinkSearch, "beastSwimIdle";
AIState "beastSwimSlash", "+9", kAiStateChase, 0, SlashSeqCallback, null, null, beastThinkSwimChase, "beastSwimChase";
AIState "beastSwimRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "beastSwimDodge";
AIState "beastMorphToBeast", "+-1", kAiStateOther, 0, null, MorphToBeast, null, null, "beastIdle";
AIState "beastMorphFromCultist", "+2576", kAiStateOther, 0, null, null, null, null, "beastMorphToBeast";
AIState "beastMoveSwimChaseAlt", "+9", kAiStateOther, 120, null, null, beastMoveSwimAlt, beastThinkSwimChase, "beastSwimChase";
AIState "beastSwimAttack", "+9", kAiStateOther, 0, null, null, beastMoveIn, beastThinkSwimChase, "beastSwimChase";
AIState "beastSwimTurn", "+9", kAiStateOther, 120, null, null, aiMoveTurn, null, "beastSwimChase";
AIState "eelIdle", "+0", kAiStateIdle, 0, null, null, null, eelThinkTarget, "none";
AIState "eelFlyIdle", "+0", kAiStateIdle, 0, null, null, null, eelThinkTarget, "none";
AIState "eelChase", "+0", kAiStateChase, 0, null, null, eelMoveForward, eelThinkChase, "eelIdle";
AIState "eelPonder", "+0", kAiStateOther, 0, null, null, null, eelThinkPonder, "none";
AIState "eelGoto", "+0", kAiStateMove, 600, null, null, null, eelThinkGoto, "eelIdle";
AIState "eelBite", "+7", kAiStateChase, 60, eelBiteSeqCallback, null, null, null, "eelChase";
AIState "eelRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "eelChase";
AIState "eelSearch", "+0", kAiStateSearch, 120, null, null, eelMoveForward, eelThinkSearch, "eelIdle";
AIState "eelSwoop", "+0", kAiStateOther, 60, null, null, eelMoveSwoop, eelThinkChase, "eelChase";
AIState "eelFly", "+0", kAiStateMove, 0, null, null, eelMoveAscend, eelThinkChase, "eelChase";
AIState "eelTurn", "+0", kAiStateMove, 60, null, null, aiMoveTurn, null, "eelChase";
AIState "eelHide", "+0", kAiStateOther, 0, null, null, eelMoveToCeil, eelMoveForward, "none";
AIState "eelDodgeUp", "+0", kAiStateMove, 120, null, null, eelMoveDodgeUp, null, "eelChase";
AIState "eelDodgeUpRight", "+0", kAiStateMove, 90, null, null, eelMoveDodgeUp, null, "eelChase";
AIState "eelDodgeUpLeft", "+0", kAiStateMove, 90, null, null, eelMoveDodgeUp, null, "eelChase";
AIState "eelDodgeDown", "+0", kAiStateMove, 120, null, null, eelMoveDodgeDown, null, "eelChase";
AIState "eelDodgeDownRight", "+0", kAiStateMove, 90, null, null, eelMoveDodgeDown, null, "eelChase";
AIState "eelDodgeDownLeft", "+0", kAiStateMove, 90, null, null, eelMoveDodgeDown, null, "eelChase";
AIState "cultistBurnIdle", "+3", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "cultistBurnChase", "+3", kAiStateChase, 0, null, null, aiMoveForward, burnThinkChase, "none";
AIState "cultistBurnGoto", "+3", kAiStateMove, 3600, null, null, aiMoveForward, burnThinkGoto, "cultistBurnSearch";
AIState "cultistBurnSearch", "+3", kAiStateSearch, 3600, null, null, aiMoveForward, burnThinkSearch, "cultistBurnSearch";
AIState "cultistBurnAttack", "+3", kAiStateChase, 120, BurnSeqCallback, null, null, null, "cultistBurnChase";
AIState "zombieABurnChase", "+3", kAiStateChase, 0, null, null, aiMoveForward, burnThinkChase, "none";
AIState "zombieABurnGoto", "+3", kAiStateMove, 3600, null, null, aiMoveForward, burnThinkGoto, "zombieABurnSearch";
AIState "zombieABurnSearch", "+3", kAiStateSearch, 3600, null, null, aiMoveForward, burnThinkSearch, "none";
AIState "zombieABurnAttack", "+3", kAiStateChase, 120, BurnSeqCallback, null, null, null, "zombieABurnChase";
AIState "zombieFBurnChase", "+3", kAiStateChase, 0, null, null, aiMoveForward, burnThinkChase, "none";
AIState "zombieFBurnGoto", "+3", kAiStateMove, 3600, null, null, aiMoveForward, burnThinkGoto, "zombieFBurnSearch";
AIState "zombieFBurnSearch", "+3", kAiStateSearch, 3600, null, null, aiMoveForward, burnThinkSearch, "none";
AIState "zombieFBurnAttack", "+3", kAiStateChase, 120, BurnSeqCallback, null, null, null, "zombieFBurnChase";
AIState "innocentBurnChase", "+3", kAiStateChase, 0, null, null, aiMoveForward, burnThinkChase, "none";
AIState "innocentBurnGoto", "+3", kAiStateMove, 3600, null, null, aiMoveForward, burnThinkGoto, "zombieFBurnSearch";
AIState "innocentBurnSearch", "+3", kAiStateSearch, 3600, null, null, aiMoveForward, burnThinkSearch, "none";
AIState "innocentBurnAttack", "+3", kAiStateChase, 120, BurnSeqCallback, null, null, null, "zombieFBurnChase";
AIState "beastBurnChase", "+3", kAiStateChase, 0, null, null, aiMoveForward, burnThinkChase, "none";
AIState "beastBurnGoto", "+3", kAiStateMove, 3600, null, null, aiMoveForward, burnThinkGoto, "beastBurnSearch";
AIState "beastBurnSearch", "+3", kAiStateSearch, 3600, null, null, aiMoveForward, burnThinkSearch, "beastBurnSearch";
AIState "beastBurnAttack", "+3", kAiStateChase, 120, BurnSeqCallback, null, null, null, "beastBurnChase";
AIState "tinycalebBurnChase", "+3", kAiStateChase, 0, null, null, aiMoveForward, burnThinkChase, "none";
AIState "tinycalebBurnGoto", "+3", kAiStateMove, 3600, null, null, aiMoveForward, burnThinkGoto, "tinycalebBurnSearch";
AIState "tinycalebBurnSearch", "+3", kAiStateSearch, 3600, null, null, aiMoveForward, burnThinkSearch, "tinycalebBurnSearch";
AIState "tinycalebBurnAttack", "+3", kAiStateChase, 120, BurnSeqCallback, null, null, null, "tinycalebBurnChase";
AIState "tinycalebIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "tinycalebChase", "+6", kAiStateChase, 0, null, null, aiMoveForward, calebThinkChase, "none";
AIState "tinycalebDodge", "+6", kAiStateMove, 90, null, null, aiMoveDodge, null, "tinycalebChase";
AIState "tinycalebGoto", "+6", kAiStateMove, 600, null, null, aiMoveForward, calebThinkGoto, "tinycalebIdle";
AIState "tinycalebAttack", "+0", kAiStateChase, 120, SeqAttackCallback, null, null, null, "tinycalebChase";
AIState "tinycalebSearch", "+6", kAiStateSearch, 120, null, null, aiMoveForward, calebThinkSearch, "tinycalebIdle";
AIState "tinycalebRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "tinycalebDodge";
AIState "tinycalebTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "tinycalebDodge";
AIState "tinycalebSwimIdle", "+10", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "tinycalebSwimChase", "+8", kAiStateChase, 0, null, null, calebMoveSwimChase, calebThinkSwimChase, "none";
AIState "tinycalebSwimDodge", "+8", kAiStateMove, 90, null, null, aiMoveDodge, null, "tinycalebSwimChase";
AIState "tinycalebSwimGoto", "+8", kAiStateMove, 600, null, null, aiMoveForward, calebThinkSwimGoto, "tinycalebSwimIdle";
AIState "tinycalebSwimSearch", "+8", kAiStateSearch, 120, null, null, aiMoveForward, calebThinkSearch, "tinycalebSwimIdle";
AIState "tinycalebSwimAttack", "+10", kAiStateChase, 0, SeqAttackCallback, null, null, null, "tinycalebSwimChase";
AIState "tinycalebSwimRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "tinycalebSwimDodge";
AIState "tinycalebSwimUnused", "+8", kAiStateOther, 120, null, null, calebSwimUnused, calebThinkSwimChase, "tinycalebSwimChase";
AIState "tinycalebSwimMoveIn", "+8", kAiStateOther, 0, null, null, calebSwimMoveIn, calebThinkSwimChase, "tinycalebSwimChase";
AIState "tinycalebSwimTurn", "+8", kAiStateOther, 120, null, null, aiMoveTurn, null, "tinycalebSwimChase";
AIState "cerberusIdle", "+0", kAiStateIdle, 0, null, null, null, cerberusThinkTarget, "none";
AIState "cerberusSearch", "+7", kAiStateSearch, 1800, null, null, aiMoveForward, cerberusThinkSearch, "cerberusIdle";
AIState "cerberusChase", "+7", kAiStateChase, 0, null, null, aiMoveForward, cerberusThinkChase, "none";
AIState "cerberusRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "cerberusSearch";
AIState "cerberusTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "cerberusSearch";
AIState "cerberusGoto", "+7", kAiStateMove, 600, null, null, aiMoveForward, cerberusThinkGoto, "cerberusIdle";
AIState "cerberusBite", "+6", kAiStateChase, 60, cerberusBiteSeqCallback, null, null, null, "cerberusChase";
AIState "cerberusBurn", "+6", kAiStateChase, 60, cerberusBurnSeqCallback, null, null, null, "cerberusChase";
AIState "cerberus3Burn", "+6", kAiStateChase, 60, cerberusBurnSeqCallback2, null, null, null, "cerberusChase";
AIState "cerberus2Idle", "+0", kAiStateIdle, 0, null, null, null, cerberusThinkTarget, "none";
AIState "cerberus2Search", "+7", kAiStateSearch, 1800, null, null, aiMoveForward, cerberusThinkSearch, "cerberus2Idle";
AIState "cerberus2Chase", "+7", kAiStateChase, 0, null, null, aiMoveForward, cerberusThinkChase, "none";
AIState "cerberus2Recoil", "+5", kAiStateRecoil, 0, null, null, null, null, "cerberus2Search";
AIState "cerberus2Goto", "+7", kAiStateMove, 600, null, null, aiMoveForward, cerberusThinkGoto, "cerberus2Idle";
AIState "cerberus2Bite", "+6", kAiStateChase, 60, cerberusBiteSeqCallback, null, null, null, "cerberus2Chase";
AIState "cerberus2Burn", "+6", kAiStateChase, 60, cerberusBurnSeqCallback, null, null, null, "cerberus2Chase";
AIState "cerberus4Burn", "+6", kAiStateChase, 60, cerberusBurnSeqCallback2, null, null, null, "cerberus2Chase";
AIState "cerberusTurn1", "+7", kAiStateOther, 120, null, null, aiMoveTurn, null, "cerberusChase";
AIState "cerberusTurn2", "+7", kAiStateOther, 120, null, null, aiMoveTurn, null, "cerberusChase";
AIState "cultistIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "cultistProneIdle", "+17", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "fanaticProneIdle", "+17", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "cultistProneIdle3", "+17", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "cultistChase", "+9", kAiStateChase, 0, null, null, aiMoveForward, cultThinkChase, "none";
AIState "fanaticChase", "+0", kAiStateChase, 0, null, null, aiMoveTurn, cultThinkChase, "none";
AIState "cultistDodge", "+9", kAiStateMove, 90, null, null, aiMoveDodge, null, "cultistChase";
AIState "cultistGoto", "+9", kAiStateMove, 600, null, null, aiMoveForward, cultThinkGoto, "cultistIdle";
AIState "cultistProneChase", "+14", kAiStateChase, 0, null, null, aiMoveForward, cultThinkChase, "none";
AIState "cultistProneDodge", "+14", kAiStateMove, 90, null, null, aiMoveDodge, null, "cultistProneChase";
AIState "cultistTThrow", "+7", kAiStateChase, 120, cultThrowSeqCallback, null, null, null, "cultistTFire";
AIState "cultistSThrow", "+7", kAiStateChase, 120, cultThrowSeqCallback, null, null, null, "cultistSFire";
AIState "cultistTsThrow", "+7", kAiStateChase, 120, cultThrowSeqCallback, null, null, null, "cultistTsFire";
AIState "cultistDThrow", "+7", kAiStateChase, 120, cultThrowSeqCallback, null, null, null, "cultistChase";
AIState "cultistDThrow2", "+7", kAiStateChase, 120, cultThrowSeqCallback2, null, null, null, "cultistChase";
AIState "cultistDThrow3C", "+7", kAiStateChase, 120, cultThrowSeqCallback3, null, null, null, "cultistIdle";
AIState "cultistDThrow3B", "+7", kAiStateChase, 120, cultThrowSeqCallback3, null, null, cultThinkSearch, "cultistDThrow3C";
AIState "cultistDThrow3A", "+7", kAiStateChase, 120, cultThrowSeqCallback3, null, null, cultThinkSearch, "cultistDThrow3B";
AIState "cultistDThrow4", "+7", kAiStateChase, 120, cultThrowSeqCallback3, null, null, cultThinkSearch, "cultistDThrow4";
AIState "cultistSearch", "+9", kAiStateSearch, 1800, null, null, aiMoveForward, cultThinkSearch, "cultistIdle";
AIState "cultistSFire", "+6", kAiStateChase, 60, ShotSeqCallback, null, null, null, "cultistChase";
AIState "cultistTFire", "+6", kAiStateChase, 0, TommySeqCallback, null, aiMoveTurn, cultThinkChase, "cultistTFire";
AIState "cultistTsFire", "+6", kAiStateChase, 0, TeslaSeqCallback, null, aiMoveTurn, cultThinkChase, "cultistChase";
AIState "cultistSProneFire", "+8", kAiStateChase, 60, ShotSeqCallback, null, null, null, "cultistProneChase";
AIState "cultistTProneFire", "+8", kAiStateChase, 0, TommySeqCallback, null, aiMoveTurn, cultThinkChase, "cultistTProneFire";
AIState "cultistTsProneFire", "+8", kAiStateChase, 0, TeslaSeqCallback, null, aiMoveTurn, null, "cultistTsProneFire";
AIState "cultistTsProneFireFixed", "+8", kAiStateChase, 0, TeslaSeqCallback, null, aiMoveTurn, cultThinkChase, "cultistTsProneFireFixed";
AIState "cultistRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "cultistDodge";
AIState "cultistProneRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "cultistProneDodge";
AIState "cultistTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "cultistDodge";
AIState "cultistSwimIdle", "+13", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "cultistSwimChase", "+13", kAiStateChase, 0, null, null, aiMoveForward, cultThinkChase, "none";
AIState "cultistSwimDodge", "+13", kAiStateMove, 90, null, null, aiMoveDodge, null, "cultistSwimChase";
AIState "cultistSwimGoto", "+13", kAiStateMove, 600, null, null, aiMoveForward, cultThinkGoto, "cultistSwimIdle";
AIState "cultistSwimSearch", "+13", kAiStateSearch, 1800, null, null, aiMoveForward, cultThinkSearch, "cultistSwimIdle";
AIState "cultistSSwimFire", "+8", kAiStateChase, 60, ShotSeqCallback, null, null, null, "cultistSwimChase";
AIState "cultistTSwimFire", "+8", kAiStateChase, 0, TommySeqCallback, null, aiMoveTurn, cultThinkChase, "cultistTSwimFire";
AIState "cultistTsSwimFire", "+8", kAiStateChase, 0, TeslaSeqCallback, null, aiMoveTurn, cultThinkChase, "cultistTsSwimFire";
AIState "cultistSwimRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "cultistSwimDodge";
AIState "gargoyleFIdle", "+0", kAiStateIdle, 0, null, null, null, gargThinkTarget, "none";
AIState "gargoyleStatueIdle", "+0", kAiStateIdle, 0, null, null, null, null, "none";
AIState "gargoyleFChase", "+0", kAiStateChase, 0, null, null, gargMoveForward, gargThinkChase, "gargoyleFIdle";
AIState "gargoyleFGoto", "+0", kAiStateMove, 600, null, null, gargMoveForward, gargThinkGoto, "gargoyleFIdle";
AIState "gargoyleFSlash", "+6", kAiStateChase, 120, SlashFSeqCallback, null, null, null, "gargoyleFChase";
AIState "gargoyleFThrow", "+6", kAiStateChase, 120, ThrowFSeqCallback, null, null, null, "gargoyleFChase";
AIState "gargoyleSThrow", "+6", kAiStateChase, 120, ThrowSSeqCallback, null, gargMoveForward, null, "gargoyleFChase";
AIState "gargoyleSBlast", "+7", kAiStateChase, 60, BlastSSeqCallback, null, gargMoveSlow, null, "gargoyleFChase";
AIState "gargoyleFRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "gargoyleFChase";
AIState "gargoyleFSearch", "+0", kAiStateSearch, 120, null, null, gargMoveForward, gargThinkSearch, "gargoyleFIdle";
AIState "gargoyleFMorph2", "+-1", kAiStateOther, 0, null, entryFStatue, null, null, "gargoyleFIdle";
AIState "gargoyleFMorph", "+6", kAiStateOther, 0, null, null, null, null, "gargoyleFMorph2";
AIState "gargoyleSMorph2", "+-1", kAiStateOther, 0, null, entrySStatue, null, null, "gargoyleFIdle";
AIState "gargoyleSMorph", "+6", kAiStateOther, 0, null, null, null, null, "gargoyleSMorph2";
AIState "gargoyleSwoop", "+0", kAiStateOther, 120, null, null, gargMoveSwoop, gargThinkChase, "gargoyleFChase";
AIState "gargoyleFly", "+0", kAiStateMove, 120, null, null, gargMoveFly, gargThinkChase, "gargoyleFChase";
AIState "gargoyleTurn", "+0", kAiStateMove, 120, null, null, aiMoveTurn, null, "gargoyleFChase";
AIState "gargoyleDodgeUp", "+0", kAiStateMove, 60, null, null, gargMoveDodgeUp, null, "gargoyleFChase";
AIState "gargoyleFDodgeUpRight", "+0", kAiStateMove, 90, null, null, gargMoveDodgeUp, null, "gargoyleFChase";
AIState "gargoyleFDodgeUpLeft", "+0", kAiStateMove, 90, null, null, gargMoveDodgeUp, null, "gargoyleFChase";
AIState "gargoyleDodgeDown", "+0", kAiStateMove, 120, null, null, gargMoveDodgeDown, null, "gargoyleFChase";
AIState "gargoyleFDodgeDownRight", "+0", kAiStateMove, 90, null, null, gargMoveDodgeDown, null, "gargoyleFChase";
AIState "gargoyleFDodgeDownLeft", "+0", kAiStateMove, 90, null, null, gargMoveDodgeDown, null, "gargoyleFChase";
AIState "statueFBreakSEQ", "+5", kAiStateOther, 0, null, entryFStatue, null, playStatueBreakSnd, "gargoyleFMorph2";
AIState "statueSBreakSEQ", "+5", kAiStateOther, 0, null, entrySStatue, null, playStatueBreakSnd, "gargoyleSMorph2";
AIState "ghostIdle", "+0", kAiStateIdle, 0, null, null, null, ghostThinkTarget, "none";
AIState "ghostChase", "+0", kAiStateChase, 0, null, null, ghostMoveForward, ghostThinkChase, "ghostIdle";
AIState "ghostGoto", "+0", kAiStateMove, 600, null, null, ghostMoveForward, ghostThinkGoto, "ghostIdle";
AIState "ghostSlash", "+6", kAiStateChase, 120, ghostSlashSeqCallback, null, null, null, "ghostChase";
AIState "ghostThrow", "+6", kAiStateChase, 120, ghostThrowSeqCallback, null, null, null, "ghostChase";
AIState "ghostBlast", "+6", kAiStateChase, 120, ghostBlastSeqCallback, null, ghostMoveSlow, null, "ghostChase";
AIState "ghostRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "ghostChase";
AIState "ghostTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "ghostChase";
AIState "ghostSearch", "+0", kAiStateSearch, 120, null, null, ghostMoveForward, ghostThinkSearch, "ghostIdle";
AIState "ghostSwoop", "+0", kAiStateOther, 120, null, null, ghostMoveSwoop, ghostThinkChase, "ghostChase";
AIState "ghostFly", "+0", kAiStateMove, 0, null, null, ghostMoveFly, ghostThinkChase, "ghostChase";
AIState "ghostTurn", "+0", kAiStateMove, 120, null, null, aiMoveTurn, null, "ghostChase";
AIState "ghostDodgeUp", "+0", kAiStateMove, 60, null, null, ghostMoveDodgeUp, null, "ghostChase";
AIState "ghostDodgeUpRight", "+0", kAiStateMove, 90, null, null, ghostMoveDodgeUp, null, "ghostChase";
AIState "ghostDodgeUpLeft", "+0", kAiStateMove, 90, null, null, ghostMoveDodgeUp, null, "ghostChase";
AIState "ghostDodgeDown", "+0", kAiStateMove, 120, null, null, ghostMoveDodgeDown, null, "ghostChase";
AIState "ghostDodgeDownRight", "+0", kAiStateMove, 90, null, null, ghostMoveDodgeDown, null, "ghostChase";
AIState "ghostDodgeDownLeft", "+0", kAiStateMove, 90, null, null, ghostMoveDodgeDown, null, "ghostChase";
AIState "gillBeastIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "gillBeastChase", "+9", kAiStateChase, 0, null, null, aiMoveForward, gillThinkChase, "none";
AIState "gillBeastDodge", "+9", kAiStateMove, 90, null, null, aiMoveDodge, null, "gillBeastChase";
AIState "gillBeastGoto", "+9", kAiStateMove, 600, null, null, aiMoveForward, gillThinkGoto, "gillBeastIdle";
AIState "gillBeastBite", "+6", kAiStateChase, 120, GillBiteSeqCallback, null, null, null, "gillBeastChase";
AIState "gillBeastSearch", "+9", kAiStateMove, 120, null, null, aiMoveForward, gillThinkSearch, "gillBeastIdle";
AIState "gillBeastRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "gillBeastDodge";
AIState "gillBeastSwimIdle", "+10", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "gillBeastSwimChase", "+10", kAiStateChase, 0, null, null, gillMoveSwimChase, gillThinkSwimChase, "none";
AIState "gillBeastSwimDodge", "+10", kAiStateMove, 90, null, null, aiMoveDodge, null, "gillBeastSwimChase";
AIState "gillBeastSwimGoto", "+10", kAiStateMove, 600, null, null, aiMoveForward, gillThinkSwimGoto, "gillBeastSwimIdle";
AIState "gillBeastSwimSearch", "+10", kAiStateSearch, 120, null, null, aiMoveForward, gillThinkSearch, "gillBeastSwimIdle";
AIState "gillBeastSwimBite", "+7", kAiStateChase, 0, GillBiteSeqCallback, null, null, gillThinkSwimChase, "gillBeastSwimChase";
AIState "gillBeastSwimRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "gillBeastSwimDodge";
AIState "gillBeastSwimUnused", "+10", kAiStateOther, 120, null, null, gillMoveSwimUnused, gillThinkSwimChase, "gillBeastSwimChase";
AIState "gillBeastSwimMoveIn", "+10", kAiStateOther, 0, null, null, gillSwimMoveIn, gillThinkSwimChase, "gillBeastSwimChase";
AIState "gillBeastSwimTurn", "+10", kAiStateOther, 120, null, null, null, aiMoveTurn, "gillBeastSwimChase";
AIState "handIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "hand13A3B4", "+0", kAiStateOther, 0, null, null, null, null, "none";
AIState "handSearch", "+6", kAiStateMove, 600, null, null, aiMoveForward, handThinkSearch, "handIdle";
AIState "handChase", "+6", kAiStateChase, 0, null, null, aiMoveForward, handThinkChase, "none";
AIState "handRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "handSearch";
AIState "handGoto", "+6", kAiStateMove, 1800, null, null, aiMoveForward, handThinkGoto, "handIdle";
AIState "handJump", "+7", kAiStateChase, 120, HandJumpSeqCallback, null, null, null, "handChase";
AIState "houndIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "houndSearch", "+8", kAiStateMove, 1800, null, null, aiMoveForward, houndThinkSearch, "houndIdle";
AIState "houndChase", "+8", kAiStateChase, 0, null, null, aiMoveForward, houndThinkChase, "none";
AIState "houndRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "houndSearch";
AIState "houndTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "houndSearch";
AIState "houndGoto", "+8", kAiStateMove, 600, null, null, aiMoveForward, houndThinkGoto, "houndIdle";
AIState "houndBite", "+6", kAiStateChase, 60, houndBiteSeqCallback, null, null, null, "houndChase";
AIState "houndBurn", "+7", kAiStateChase, 60, houndBurnSeqCallback, null, null, null, "houndChase";
AIState "innocentIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "innocentSearch", "+6", kAiStateSearch, 1800, null, null, aiMoveForward, innocThinkSearch, "innocentIdle";
AIState "innocentChase", "+6", kAiStateChase, 0, null, null, aiMoveForward, innocThinkChase, "none";
AIState "innocentRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "innocentChase";
AIState "innocentTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "innocentChase";
AIState "innocentGoto", "+6", kAiStateMove, 600, null, null, aiMoveForward, innocThinkGoto, "innocentIdle";
AIState "podIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "podMove", "+7", kAiStateMove, 3600, null, null, aiMoveTurn, aiPodMove, "podSearch";
AIState "podSearch", "+0", kAiStateSearch, 3600, null, null, aiMoveTurn, aiPodSearch, "podSearch";
AIState "podStartChase", "+8", kAiStateChase, 600, podAttack, null, null, null, "podChase";
AIState "podRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "podChase";
AIState "podChase", "+6", kAiStateChase, 0, null, null, aiMoveTurn, aiPodChase, "none";
AIState "tentacleIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "tentaclePlaySound1", "+7", kAiStateOther, 0, podPlaySound1, null, null, null, "tentaclePlaySound1A";
AIState "tentaclePlaySound1A", "+-1", kAiStateOther, 0, null, null, null, null, "tentacleChase";
AIState "tentaclePlaySound2", "+8", kAiStateOther, 0, podPlaySound2, null, null, null, "tentaclePlaySound2A";
AIState "tentaclePlaySound2A", "+-1", kAiStateOther, 0, null, null, null, null, "tentacleIdle";
AIState "tentacleMove", "+8", kAiStateOther, 3600, null, null, aiMoveTurn, aiPodMove, "tentacleSearch";
AIState "tentacleSearch", "+0", kAiStateOther, 3600, null, null, aiMoveTurn, aiPodSearch, "none";
AIState "tentacleStartChase", "+6", kAiStateOther, 120, podExplode, null, null, null, "tentacleChase";
AIState "tentacleRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "tentacleChase";
AIState "tentacleChase", "+6", kAiStateChase, 0, null, null, aiMoveTurn, aiPodChase, "none";
AIState "ratIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "ratSearch", "+7", kAiStateSearch, 1800, null, null, aiMoveForward, ratThinkSearch, "ratIdle";
AIState "ratChase", "+7", kAiStateChase, 0, null, null, aiMoveForward, ratThinkChase, "none";
AIState "ratDodge", "+7", kAiStateMove, 0, null, null, null, null, "ratChase";
AIState "ratRecoil", "+7", kAiStateRecoil, 0, null, null, null, null, "ratDodge";
AIState "ratGoto", "+7", kAiStateMove, 600, null, null, aiMoveForward, ratThinkGoto, "ratIdle";
AIState "ratBite", "+6", kAiStateChase, 120, ratBiteSeqCallback, null, null, null, "ratChase";
AIState "spidIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "spidChase", "+7", kAiStateChase, 0, null, null, aiMoveForward, spidThinkChase, "none";
AIState "spidDodge", "+7", kAiStateMove, 90, null, null, aiMoveDodge, null, "spidChase";
AIState "spidGoto", "+7", kAiStateMove, 600, null, null, aiMoveForward, spidThinkGoto, "spidIdle";
AIState "spidSearch", "+7", kAiStateSearch, 1800, null, null, aiMoveForward, spidThinkSearch, "spidIdle";
AIState "spidBite", "+6", kAiStateChase, 60, SpidBiteSeqCallback, null, null, null, "spidChase";
AIState "spidJump", "+8", kAiStateChase, 60, SpidJumpSeqCallback, null, aiMoveForward, null, "spidChase";
AIState "spidBirth", "+0", kAiStateOther, 60, SpidBirthSeqCallback, null, null, null, "spidIdle";
AIState "tchernobogIdle", "+0", kAiStateIdle, 0, null, null, null, tchernobogThinkTarget, "none";
AIState "tchernobogSearch", "+8", kAiStateSearch, 1800, null, null, aiMoveForward, tchernobogThinkSearch, "tchernobogIdle";
AIState "tchernobogChase", "+8", kAiStateChase, 0, null, null, aiMoveForward, tchernobogThinkChase, "none";
AIState "tchernobogRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "tchernobogSearch";
AIState "tchernobogGoto", "+8", kAiStateMove, 600, null, null, aiMoveForward, tchernobogThinkGoto, "tchernobogIdle";
AIState "tchernobogBurn1", "+6", kAiStateMove, 60, tchernobogBurnSeqCallback, null, null, null, "tchernobogChase";
AIState "tchernobogBurn2", "+6", kAiStateChase, 60, tchernobogBurnSeqCallback2, null, null, null, "tchernobogChase";
AIState "tchernobogFireAtk", "+7", kAiStateChase, 60, tchernobogFire, null, null, null, "tchernobogChase";
AIState "tchernobogTurn", "+8", kAiStateChase, 60, null, null, aiMoveTurn, null, "tchernobogChase";
AIState "zombieAIdle", "+0", kAiStateIdle, 0, null, entryAIdle, null, aiThinkTarget, "none";
AIState "zombieAChase", "+8", kAiStateChase, 0, null, null, aiMoveForward, zombaThinkChase, "none";
AIState "zombieAPonder", "+0", kAiStateOther, 0, null, null, aiMoveTurn, zombaThinkPonder, "none";
AIState "zombieAGoto", "+8", kAiStateMove, 1800, null, null, aiMoveForward, zombaThinkGoto, "zombieAIdle";
AIState "zombieAHack", "+6", kAiStateChase, 80, HackSeqCallback, null, null, null, "zombieAPonder";
AIState "zombieASearch", "+8", kAiStateSearch, 1800, null, null, aiMoveForward, zombaThinkSearch, "zombieAIdle";
AIState "zombieARecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "zombieAPonder";
AIState "zombieATeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "zombieAPonder";
AIState "zombieARecoil2", "+1", kAiStateRecoil, 360, null, null, null, null, "zombieAStand";
AIState "zombieAStand", "+11", kAiStateMove, 0, StandSeqCallback, null, null, null, "zombieAPonder";
AIState "zombieEIdle", "+12", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "zombieEUp2", "+0", kAiStateMove, 1, null, entryEZombie, null, null, "zombieASearch";
AIState "zombieEUp", "+9", kAiStateMove, 180, null, entryEStand, null, null, "zombieEUp2";
AIState "zombie2Idle", "+0", kAiStateIdle, 0, null, entryAIdle, null, myThinkTarget, "none";
AIState "zombie2Search", "+8", kAiStateSearch, 1800, null, null, null, myThinkSearch, "zombie2Idle";
AIState "zombieSIdle", "+10", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "zombieEStand", "+11", kAiStateOther, 0, StandSeqCallback, entryEZombie, null, null, "zombieAPonder";
AIState "zombieFIdle", "+0", kAiStateIdle, 0, null, null, null, aiThinkTarget, "none";
AIState "zombieFChase", "+8", kAiStateChase, 0, null, null, aiMoveForward, zombfThinkChase, "none";
AIState "zombieFGoto", "+8", kAiStateMove, 600, null, null, aiMoveForward, zombfThinkGoto, "zombieFIdle";
AIState "zombieFDodge", "+8", kAiStateMove, 0, null, null, aiMoveDodge, zombfThinkChase, "zombieFChase";
AIState "zombieFHack", "+6", kAiStateChase, 120, zombfHackSeqCallback, null, null, null, "zombieFChase";
AIState "zombieFPuke", "+9", kAiStateChase, 120, PukeSeqCallback, null, null, null, "zombieFChase";
AIState "zombieFThrow", "+6", kAiStateChase, 120, ThrowSeqCallback, null, null, null, "zombieFChase";
AIState "zombieFSearch", "+8", kAiStateSearch, 1800, null, null, aiMoveForward, zombfThinkSearch, "zombieFIdle";
AIState "zombieFRecoil", "+5", kAiStateRecoil, 0, null, null, null, null, "zombieFChase";
AIState "zombieFTeslaRecoil", "+4", kAiStateRecoil, 0, null, null, null, null, "zombieFChase";
AIState "genPatrolState_0", "+0", kAiStatePatrolWaitL, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_1", "+7", kAiStatePatrolWaitL, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_2", "+9", kAiStatePatrolMoveL, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_3", "+8", kAiStatePatrolMoveL, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_4", "+0", kAiStatePatrolMoveL, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_5", "+6", kAiStatePatrolMoveL, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_6", "+7", kAiStatePatrolMoveL, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_7", "+3", kAiStatePatrolMoveL, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_8", "+9", kAiStatePatrolTurnL, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_9", "+8", kAiStatePatrolTurnL, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_10", "+0", kAiStatePatrolTurnL, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_11", "+6", kAiStatePatrolTurnL, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_12", "+7", kAiStatePatrolTurnL, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_13", "+3", kAiStatePatrolTurnL, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_14", "+0", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_15", "+10", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_16", "+13", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_17", "+17", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_18", "+8", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_19", "+9", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_20", "+2", kAiStatePatrolWaitW, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_21", "+0", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_22", "+10", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_23", "+13", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_24", "+8", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_25", "+9", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_26", "+7", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_27", "+6", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_28", "+5", kAiStatePatrolMoveW, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_29", "+0", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_30", "+10", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_31", "+13", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_32", "+8", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_33", "+9", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_34", "+7", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_35", "+6", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_36", "+5", kAiStatePatrolTurnW, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_37", "+17", kAiStatePatrolWaitC, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_38", "+11", kAiStatePatrolWaitC, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_39", "+10", kAiStatePatrolWaitC, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_40", "+14", kAiStatePatrolWaitC, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_41", "+1", kAiStatePatrolWaitC, 0, null, null, null, aiPatrolThink, "none";
AIState "genPatrolState_42", "+14", kAiStatePatrolMoveC, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_43", "+10", kAiStatePatrolMoveC, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_44", "+9", kAiStatePatrolMoveC, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_45", "+4", kAiStatePatrolMoveC, 0, null, null, aiPatrolMove, aiPatrolThink, "none";
AIState "genPatrolState_46", "+14", kAiStatePatrolTurnC, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_47", "+10", kAiStatePatrolTurnC, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_48", "+9", kAiStatePatrolTurnC, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
AIState "genPatrolState_49", "+4", kAiStatePatrolTurnC, 0, null, aiPatrolRandGoalAng, aiPatrolTurn, aiPatrolThink, "none";
}
}