Conditions

The following is a list of condition opcodes used by Yoda Stories.

TODO: Check if Indy uses the same opcodes

OpcodeName# of argumentsDescription
0x000ZoneNotInitialized0Evaluates to true exactly once (used for initialization)
0x001ZoneEntered0Evaluates to true if hero just entered the zone
0x002Bump3
0x003PlacedItemIs5
0x004StandingOn3Check if hero is at arg_0xarg_1 and the floor tile is arg_2
0x005CounterIs1Current zone's counter value is equal to arg_0
0x006RandomIs1Current zone's random value is equal to arg_0
0x007RandomIsGreaterThan1Current zone's random value is greater than arg_0
0x008RandomIsLessThan1Current zone's random value is less than arg_0
0x009EnterByPlane0
0x00aTileAtIs4Check if tile at arg_0xarg_1xarg_2 is equal to arg_3
0x00bMonsterIsDead1True if monster arg_0 is dead.
0x00cHasNoActiveMonsters0
0x00dHasItem1True if inventory contains arg_0. If arg_0 is -1 check if inventory contains the item provided by the current zone's puzzle
0x00eRequiredItemIs1
0x00fEndingIs1True if arg_0 is equal to current goal item id
0x010ZoneIsSolved0True if the current zone is solved
0x011NoItemPlaced5Returns true if the user did not place an item
0x012HasGoalItem0Returns true if the hero has the goal item
0x013HealthIsLessThan1Hero's health is less than arg_0.
0x014HealthIsGreaterThan1Hero's health is greater than arg_0.
0x015Unused5
0x016FindItemIs1True the item provided by current zone is arg_0
0x017PlacedItemIsNot5
0x018HeroIsAt2True if hero's x/y position is args_0xargs_1.
0x019SectorCounterIs1Current zone's sector-counter value is equal to arg_0
0x01aSectorCounterIsLessThan1Current zone's sector-counter value is less than arg_0
0x01bSectorCounterIsGreaterThan1Current zone's sector-counter value is greater than arg_0
0x01cGamesWonIs1Total games won is equal to arg_0
0x01dDropsQuestItemAt2
0x01eHasAnyRequiredItem0Determines if inventory contains any of the required items needed for current zone
0x01fCounterIsNot1Current zone's counter value is not equal to arg_0
0x020RandomIsNot1Current zone's random value is not equal to arg_0
0x021SectorCounterIsNot1Current zone's sector-counter value is not equal to arg_0
0x022IsVariable4Check if variable identified by arg_0arg_1arg_2 is set to arg_3. Internally this is implemented as opcode 0x0a, check if tile at arg_0xarg_1xarg_2 is equal to arg_3
0x023GamesWonIsGreaterThan1Total games won is greater than arg_0