BigEndian(); BitfieldRightToLeft();
enum <byte> BOOL { False, True=0xFF};
////////////////////////////////////////////////////////////////DATE////////////////////////////////////////////////////////////////
typedef short DATE <read=DATEread>;
string DATEread (DATE &t) {
int year = t / 11; enum { Sea1, Sea2, Fir1, Fir2, Ear1, Ear2, Dar1, Dar2, Sto1, Sto2, Sac } season = t % 11; string s = SPrintf(s, "%i·%s", year, EnumToString(season)); return s;
////////////////////////////////////////////////////////////////STR////////////////////////////////////////////////////////////////
typedef struct {
SetForeColor(cPurple);
short len;
SetForeColor(cDkPurple);
local int64 pos = FTell(); if (len) uchar Str[len];
string STRread (STR &v) { if (v.len) return v.Str; return ""; } void STRwrite (STR &v, string s) {
if (v.len == Strlen(s)) Strncpy(v.Str, s, v.len); else { if (v.len < Strlen(s)) InsertBytes(v.pos, Strlen(s)-v.len); if (v.len > Strlen(s)) DeleteBytes(v.pos, v.len-Strlen(s)); WriteBytes(s, v.pos, Strlen(s)); v.len = Strlen(s); }
////////////////////////////////////////////////////////////////ARRAY////////////////////////////////////////////////////////////////
typedef struct {
local int64 pos = FTell();
SetForeColor(cWhite);
short ct;
SetForeColor(cDkBlue);
if (ct) short Int[ct] <format=hex>;
SetForeColor(cNone);
} ARRAY <optimize=false, read=ARRAYread>;
string ARRAYread (ARRAY &v) { string s = SPrintf(s, "%i", v.ct); return s; }
////////////////////////////////////////////////////////////////CHIEF////////////////////////////////////////////////////////////////
typedef struct { enum <short> PERSONALITY { low=1, mid, high, pc=0xCDCD } ChiefDaring;
PERSONALITY ChiefGenerosity; PERSONALITY ChiefGuile; PERSONALITY ChiefPiety; } CHIEF <read=CHIEFread>;
string CHIEFread (CHIEF &c) {
string s; switch (c.ChiefDaring) { case 1 : s += "·Dar-"; break; case 3 : s += "·Dar+"; break; } switch (c.ChiefGenerosity) { case 1 : s += "·Gen-"; break; case 3 : s += "·Gen+"; break; } switch (c.ChiefGuile) { case 1 : s += "·Gui-"; break; case 3 : s += "·Gui+"; break; } switch (c.ChiefPiety) { case 1 : s += "·Pie-"; break; case 3 : s += "·Pie+"; break; } s = SubStr(s, 1); return s;
////////////////////////////////////////////////////////////////POP////////////////////////////////////////////////////////////////
typedef struct { short Healthy, Absent, Sick, Wounded; } POP <read=POPread>;
string POPread (POP &v) { string s = SPrintf(s, "%i·%i·%i·%i", v.Healthy, v.Absent, v.Sick, v.Wounded); return s; }
////////////////////////////////////////////////////////////////GODS////////////////////////////////////////////////////////////////
typedef struct {
long:1; long Ancestors:1; long ArganArgar:1;long Barntar:1; long ChalanaArroy:1;long Elmal:1; long Ernalda:1; long Eurmal:1; long Humakt:1; long Issaries:1; long KeroFin:1; long LhankorMhy:1; long Malia:1; long MaranGor:1; long Odayla:1; long Orlanth:1; long TarardRiel:1; long Uralda:1; long Urox:1; long Vinga:1; long WindSpirits:1;
string GODSread (GODS &v) {
string s; if(v.Ancestors) s+="·A"; if(v.ArganArgar)s+="·a"; if (v.Barntar) s+="·B"; if(v.ChalanaArroy)s+="·C"; if(v.Elmal) s+="·El"; if(v.Ernalda) s+="·Er"; if (v.Eurmal) s+="·Eu"; if(v.Humakt) s+="·H"; if(v.Issaries) s+="·Is"; if(v.KeroFin) s+="·k"; if (v.LhankorMhy) s+="·L"; if(v.Malia) s+="·m"; if(v.MaranGor) s+="·mg"; if(v.Odayla) s+="·Od"; if (v.Orlanth) s+="·Or"; if(v.TarardRiel) s+="·t"; if(v.Uralda) s+="·Ua"; if(v.Urox) s+="·Ux"; if (v.Vinga) s+="·V"; if(v.WindSpirits) s+="·w"; s = SubStr(s, 1); return s;}
////////////////////////////////////////////////////////////////RAID////////////////////////////////////////////////////////////////
typedef struct {
short ClanIdx; enum <short> { Cattle=65527, Battle=65532 } Type; DATE Date; enum <short> { draw, win_caught, loss_steal=65535 } Result;} RAID <read=RAIDread>;
string RAIDread (RAID &r) {
int i = r.ClanIdx-1; if (i<0) i = 0; string s = SPrintf(s, "%s·%s·%s·%s", DATEread(r.Date), EnumToString(r.Type), EnumToString(r.Result), SubStr(Clans.Clan[i].dataLR.Name.Str,0,Clans.Clan[i].dataLR.Name.len)); return s;
////////////////////////////////////////////////////////////////BALANCE////////////////////////////////////////////////////////////////
enum <short> BALANCE { War, Balanced, Peace };
////////////////////////////////////////////////////////////////SKILL////////////////////////////////////////////////////////////////
typedef struct { SetForeColor(cDkBlue); LittleEndian();
double Animals; double Bargaining; double Combat; double Custom; double Leadership; double Magic; double Plant; BigEndian(); SetForeColor(cNone);
string SKILLSread (SKILLS &v) { string s = SPrintf(s, "%1.f·%1.f·%1.f·%1.f·%1.f·%1.f·%1.f", v.Animals, v.Bargaining, v.Combat, v.Custom, v.Leadership, v.Magic, v.Plant); return s; }
////////////////////////////////////////////////////////////////TRAIT////////////////////////////////////////////////////////////////
typedef struct {
long AntiAldryami :1, AntiUndead :1; long _aggressive:1; //alliance: appeal to generosity, greed; tribute: appeal to guile, generosity, war: raid feuding neighbours; diplo: we can survive alone long _Arrogant :1; //dictatorial, tribute: contest; kallyr: toast long _11:1; long _fearful :1; //tribute: avoid contest; trade: fear of ambush; magic: nervous of gods long _12:1; long _13:1; long _unconfident :1; //tribute: can't win contest long _21:1; long _lore:1; //cites lore long _peacelike :1; long Matriarchal :1; long Mumbler:1; //say crazy things, proverbial long _greedy :1; //alliance: appeal to generosity; tribute: annual tribute long Patriarchal :1; long _31:1; long _religious :1; //alliance: appeal to faith/orlanth long _Poetic :1; //alliance: appeal to poetry; wyrm: follow ancestor long _pacifist :1; //tribute: don't threaten long ProDragonewt :1, Proverbial :1; long _Tribelike :1; //diplo: gift neighbours to form tribe; trade: less trade, go explore (per omens) long _generous :1; //? Generous? korlmar long _hateful :1; //lousy XXX! long _41:1; long Religious :1; //alliance: worship long _Told:1; //war: "told you XXX were gonna raid us!" long Tradelike :1; //trade: more treasure long Tribelike :1; //alliance: tribe long Warlike :1; long _42:1;
string TRAITread (TRAIT &t) { string s;
if (t.AntiAldryami) s += "·Elf-"; if (t.AntiUndead) s += "·Undead-"; if (t._aggressive) s += "·?"; if (t._Arrogant) s += "·_Arrogant"; if (t._11) s += "·11"; if (t._fearful) s += "·_fearful"; if (t._12) s += "·12"; if (t._13) s += "·13"; if (t._unconfident) s += "·_unconfid"; if (t._21) s += "·21"; if (t._lore) s += "·_lore"; if (t._peacelike) s += "·_peace"; if (t.Matriarchal) s += "·Matri"; if (t.Mumbler) s += "·Mumbler"; if (t._greedy) s += "·?"; if (t.Patriarchal) s += "·Patri"; if (t._31) s += "·31"; if (t._religious) s += "·_religious"; if (t._Poetic) s += "·_Poetic"; if (t._pacifist) s += "·_pacifist"; if (t.ProDragonewt) s += "·Newt+"; if (t.Proverbial) s += "·Proverbial"; if (t._Tribelike) s += "·?"; if (t._generous) s += "·?"; if (t._hateful) s += "·_hateful"; if (t._41) s += "·41"; if (t.Religious) s += "·Religious"; if (t._Told) s += "·_Told"; if (t.Tradelike) s += "·_trade?"; if (t.Tribelike) s += "·_tribe?"; if (t.Warlike) s += "·Warlike"; if (t._42) s += "·42"; s = SubStr(s, 1); return s;
////////////////////////////////////////////////////////////////LEADER////////////////////////////////////////////////////////////////
typedef struct {
SetBackColor(cDkGray);
short Age;
SetBackColor(cLtPurple);
short ClanIdx; enum <short> { Male=1, Female } Gender; short TurnsUnavailable; BOOL Heroic; //contest win, etc enum <short> { Home, emissary, explorer=13, caravan=16, enthralled=18, Dead } Location; //enthralled by horsespawn STR Name; char Picture[12]; GODS Religion; short Seat, Sick; SKILLS Skills; enum <short> { Alive, Dead_tmp1, Dead_tmp2, Dead_perm } State; SetBackColor(cLtRed); TRAIT Trait; SetBackColor(cLtPurple); enum <short> { craft=1, farm, heal, hunter, law, magic, noble, trader, trick, war } Type; short Wounded, YearsOnRing;
string LEADERread (LEADER &v) { string s; if (v.Seat>0) s = "+"; else s = "-"; return s + v.Name.Str + ": " + TRAITread(v.Trait); } void LEADERwrite (LEADER &v, string s) { string t = s; STRwrite(v.Name, t); }
////////////////////////////////////////////////////////////////RELATION////////////////////////////////////////////////////////////////
typedef struct {
short ClanIdx, Attitude;
SetForeColor(cDkGreen);
short _always0;
SetForeColor(cNone);
short Favors, Alliance, Feud; BOOL Trade; BOOL Near; //canRaid (N) BOOL Neighbour; //canSeize SetForeColor(cDkGreen); short _; //short SetForeColor(cNone); short TimesRaidedBy; //negative SetForeColor(cDkGreen); short _; SetForeColor(cNone); short TimesRaided; SetForeColor(cDkGreen); short _; SetForeColor(cNone); short Slights; struct { short _wePayTribute, Cattle, Food, Goods; } Tribute; SetForeColor(cDkGreen); short _; SetForeColor(cNone); short _Flag; //changes whether a clan is displayed} RELATION <optimize=false, read=RELATIONread>;
string RELATIONread (RELATION &v) {
int i = v.Attitude; string s = SPrintf(s, "%s=%i", SubStr(Clans.Clan[v.ClanIdx-1].dataLR.Name.Str, 0, Clans.Clan[v.ClanIdx-1].dataLR.Name.len), i); return s;
////////////////////////////////////////////////////////////////TREASURE////////////////////////////////////////////////////////////////
typedef struct { local int Idx = TreasureIdx++; short Qt; short WearerIdx; } TREASURE <optimize=false, read=TREASUREread, write=TREASUREwrite>;
void TREASUREwrite (TREASURE &t, string s) { int i; int j = SScanf(s, "%i", i); if (j) t.Qt = i; }
////////////////////////////////////////////////////////////////CLAN A-L////////////////////////////////////////////////////////////////
typedef struct {
SetBackColor(cLtBlue);
struct { BOOL _Exists; SetForeColor(cDkGreen); short _xAB; //short, alternates 1/0 from the first clan SetForeColor(cNone); short Barley; BOOL _BaseOrlanthiClan; short Cattle; SetForeColor(cDkGreen); CHIEF Chief; SetForeColor(cNone); short Children[15]; enum <short> { Player, Orlanthi, Foreigner } ClanClass; //guessed, affects whether borders are displayed on map short ClanIdx; BALANCE ClanType; POP Crafters; short Cropland; enum <short> { possible, failed, joined } TribeForm; STR Description; POP Farmers; short Food; struct { short Ditch :1, Hillfort :1, Ramparts :1, StakePerimeter :1, WoodenStockade :1, StoneWall :1, WatchTower :1, ImprovedStoneWall :1; } Fortifications; short Goods; GODS GreatTemples; short Harvest; SetForeColor(cDkGreen); short _xH; //is short SetForeColor(cNone); short Horses; POP Housecarls; //Weaponthanes; //Housecarls POP Hunters; SetForeColor(cDkGreen); short _xHI[20]; //short SetForeColor(cNone); short InnerPatrol, KingIdx, KingshipReputation; SetForeColor(cDkGreen); short _xKL1; //short byte _xKL2[10]; //byte SetForeColor(cNone); struct { RAID LastRaided, LastRaidedBy; } LastRaids; SetForeColor(cDkGreen); short _xL; //LastPeace? 2=marriage alliance, 3=beaten/warned, decreases over time SetForeColor(cNone); } dataAL;
////////////////////////////////////////////////////////////////LEADERS////////////////////////////////////////////////////////////////
struct { SetBackColor(cNone); SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) LEADER Leader[ct]; } Leaders;
////////////////////////////////////////////////////////////////DATA L-R////////////////////////////////////////////////////////////////
struct { SetBackColor(cLtAqua); short Earthblood; struct { byte Children, Crops, Diplomacy, Health, Herds, Hunting, Mysteries, Quests, Trade, War, Destiny, Heroism; } Magics; enum <short> { Ancestors=1, ArganArgar, Barntar, ChalanaArroy, Elmal, Ernalda, Eurmal, Humakt, Issaries, KeroFin, LhankorMhy, Malia, MaranGor, Odayla, Orlanth, TarardRiel, Uralda, Urox, Vinga, WindSpirits } MainDeity; struct { short Clan, Farmer, Warrior; } Mood; STR Name; POP Nobles; SetForeColor(cDkGreen); short _xNO; //short SetForeColor(cNone); short OuterPatrol, Pasture, Pigs; struct { short Farmers, Oxen; } Planted; BOOL PlayerHasThralls; STR Plural; short Magic; //powerpoints struct { byte Plain, Fancy, Amulets, Gems, Greenware, Iron, Ivory; } Production; GODS MinorShrines; struct { struct RAIDS { SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) RAID Raid[ct]; } Raided; RAIDS RaidedBy; } Raids; short VictoryScore; //increase over time? } dataLR;
////////////////////////////////////////////////////////////////RELATIONS////////////////////////////////////////////////////////////////
SetBackColor(cLtYellow); struct { SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) RELATION Relation[ct]; } Relations;
////////////////////////////////////////////////////////////////DATA R-W////////////////////////////////////////////////////////////////
local int i = 0;
struct {
SetColor(cNone,cLtAqua);
short RingMemberIdx[7]; BOOL RoyalClan; SetForeColor(cDkGreen); short _RoyalJealousy; //=1 upon Einarth Milk-Eye prophecy, =3 tribe-bandits fight, =0 upon moot for new king SetForeColor(cNone); short Rye; struct { SetColor(cNone,cLtGreen); struct { byte Blessing[4], _; } Sacrifice[20]; struct { byte Blessing[4], _; } Known[20]; SetColor(cNone,cLtAqua); } Rituals; byte Sacrificed[20]; //Gods short Sheep; GODS Shrines; short _Shrine_[2]; SetColor(cNone,cLtGreen); struct { byte _, Blessing[4]; } ShrinePermanent[20]; SetColor(cNone,cLtAqua); GODS Temples; POP Thralls; BOOL ThrallsOkay;
//i = 0;
struct { local int TreasureIdx = 1; SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) TREASURE Treasure[ct]; TREASURE _Treasure;
//if (i) { local string s = SPrintf(s, "%s+", SubStr(dataLR.Name.Str, 0, dataLR.Name.len)); Printf("%s ", s); }
} Treasures; short Wildlands; short Wheat; } dataRW;
//s = SPrintf(s, "%i %s: %i + %i + %i = %i\n", dataAL.ClanIdx, SubStr(dataLR.Name.Str, 0, dataLR.Name.len), dataAL.Cropland, dataLR.Pasture, dataRW.Wildlands, dataAL.Cropland+dataLR.Pasture+dataRW.Wildlands); Printf("%s", s);
ARRAY Zones; //display only
//local string s = SPrintf(s, "%s = %d\n", dataLR.Name.Str, dataAL._xBC); Printf("%s",s);
////////////////////////////////////////////////////////////////HISTORY////////////////////////////////////////////////////////////////
if (dataAL.ClanIdx==1) struct { //all data lengths confirmed
SetBackColor(cNone);
SetForeColor(cDkGreen);
short _x1; //increase per season, reset per year SetForeColor(cNone);
enum <short> { ancestors=1, elmal, urox, odayla, ernalda, orlanth, issaries, lhankormhy, chalanaarroy, uralda } Awakened; SetForeColor(cDkGreen);
short _x2[2]; //short
SetForeColor(cNone);
GODS KnownDeities; enum <short> { Battle_of_Extinguishing_Field=1, Hundred_Day_Hunt, Jesteds_Settlement, Procession_of_Animals, Harnessed_Oxen, Hidden_Place, Marking_Bone, First_Pot, Clan_Making_Dance } EarliestEvent; struct { DATE LastEmissary, LastExplore; } LastMissions; SetForeColor(cDkGreen); BOOL _x3; short _x4[3]; //short SetForeColor(cNone); BOOL RaidedDuringEarth; SetForeColor(cDkGreen); byte _x5[2]; DATE _Date, _Date; SetForeColor(cNone); enum <short> { needed=1, more, lots, huge } LandClaim; SetForeColor(cDkGreen); DATE _LastMission; //last diplo/trade mission, not sure SetForeColor(cNone); short _YearNow; //short short TribePolicy; SetForeColor(cDkGreen); short _x1; //short short _x1; //increase per season, reset per year SetForeColor(cNone); BALANCE ClanType; SetForeColor(cDkGreen); short _x1; //short DATE _DateLastTrade; //not sure SetForeColor(cNone); BOOL RaidedDuringSea; struct { short Cattle; SetForeColor(cDkGreen); short _x[2]; //short SetForeColor(cNone); short Horses, Pigs, Population, Sheep; } Resources; SetForeColor(cDkGreen); long _x6; //long SetForeColor(cNone); DATE _Date; BOOL HeroQuest[9]; SetForeColor(cDkGreen); byte _x7; short _Generosity; //short DATE _Date; short _x1; //short SetForeColor(cNone); short Myth[15]; local string s = SPrintf(s, "History= %i, %i", _x1[0], _x1[2]); Printf(s); } History;
string CLANread (CLAN &v) { return v.dataLR.Name.Str + " (" + CHIEFread(v.dataAL.Chief) + ")"; } void CLANwrite (CLAN &v, string s) { string t = s;
STRwrite(v.dataLR.Plural, t + "s"); STRwrite(v.dataLR.Name, t);
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////HEADER////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
struct {
char Opal[4]; byte _x1[8]; short Omens; //or Omens short _x2; enum <short> { Short=1, Long } Length; DATE Date; short Harvest; //1 to 7
////////////////////////////////////////////////////////////////VARS////////////////////////////////////////////////////////////////
struct {
local int VarIdx = 0;
SetForeColor(cWhite);
short ct;
SetForeColor(cNone);
typedef struct { local int Idx = VarIdx++; SetForeColor(cBlue); if (ReadShort(FTell())<0x7FF0 || ReadShort(FTell())>0x8000) long Value; else { enum <short> { Leader=0x7FF2, clan, tribe, treasure, leaders=0x7FFA, clans, tribes, treasures } Class <format=hex>; short Value; } SetForeColor(cGray); short Short; BOOL Bool; STR String; } VAR <optimize=false, read=VARread>; VAR Var[ct];
////////////////////////////////////////////////////////////////MAP////////////////////////////////////////////////////////////////
SetBackColor(cLtYellow);
struct { struct { BOOL Hex[27]; } Line[32]; } Map;
////////////////////////////////////////////////////////////////TREASURES////////////////////////////////////////////////////////////////
SetBackColor(cNone);
struct {
short Total; local int TreasureIdx = 1; typedef struct { local int Idx = TreasureIdx++; short Qt; } ONSALE <optimize=false, read=ONSALEread, write=ONSALEwrite>; ONSALE OnSale[120];
void ONSALEwrite (ONSALE &t, string s) { int i; int j = SScanf(s, "%i", i); if (j) t.Qt = i; }
////////////////////////////////////////////////////////////////ARRAYS////////////////////////////////////////////////////////////////
struct { ARRAY Array[12]; } __arrays; //randomized at gamestart, all empty arrays for Tutorial and Opal
////////////////////////////////////////////////////////////////LEADERNAMES////////////////////////////////////////////////////////////////
struct {
SetForeColor(cWhite);
short females;
SetForeColor(cNone);
local int i = 0; typedef struct { local int Idx = i++; short Used; } FEMALE <optimize=false, read=FEMALEread>; if (females) FEMALE Female[females]; SetForeColor(cWhite); short males; SetForeColor(cNone); i = 0; typedef struct { local int Idx = i++; short Used; } MALE <optimize=false, read=MALEread>; if (males) MALE Male[males];
////////////////////////////////////////////////////////////////CLANS////////////////////////////////////////////////////////////////
struct {
SetBackColor(cLtBlue);
SetForeColor(cWhite);
short ct;
SetForeColor(cNone);
if (ct) CLAN Clan[ct] <optimize=false>;
} Clans;
SetBackColor(cNone);
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
struct {
short _xLunarWar; //=0 gamestart, =2 upon Tarsh recruit event for Lunar war short _x2; //=-1 always
////////////////////////////////////////////////////////////////CLANNAMES////////////////////////////////////////////////////////////////
struct {
typedef struct { short Name; } CLANNAME <optimize=false, read=CLANNAMEread>;
struct {
SetForeColor(cWhite);
short ct;
SetForeColor(cDkBlue);
if (ct) CLANNAME Clan[ct];
SetForeColor(cNone);
} ClanName;
short count; byte _x3[7]; struct { SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) byte x[ct]; } _x4; struct { SetForeColor(cWhite); short ct; SetForeColor(cDkBlue); if (ct) CLANNAME Clan[ct]; SetForeColor(cNone); } ClanPlural;
} ClanNames;
////////////////////////////////////////////////////////////////TRIBES////////////////////////////////////////////////////////////////
SetBackColor(cLtRed);
struct {
SetForeColor(cWhite);
short ct;
SetForeColor(cNone);
struct { DATE LastElection; byte _x1; STR Name; struct { short ClanIdx, LeaderIdx; } King; struct { SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) struct { short ClanIdx; DATE DateJoined; } Clan[ct]; } Clans; short _x2; long _x3 <format=hex>; short _x2; BOOL _x4; struct { SetForeColor(cWhite); short ct; SetForeColor(cNone); if (ct) byte _x[ct]; } _x5; } Tribe[ct] <optimize=false>;
////////////////////////////////////////////////////////////////?////////////////////////////////////////////////////////////////
//struct {
SetBackColor(cLtYellow);
short __shorts2[5]; //tribes related? _x1[0]==-1 until tribe formed SetBackColor(cLtPurple);
BOOL __bools[53];
SetBackColor(cNone);
//} __static; //always same value at gamestart (not randomized)
////////////////////////////////////////////////////////////////EVENTS////////////////////////////////////////////////////////////////
SetBackColor(cLtBlue);
struct {
SetForeColor(cWhite);
short ct;
SetForeColor(cNone);
typedef struct { short EventIdx; enum <short> { explore=0xFFF8, trade=0xFFFA, diplo, raid } Mission; short Turns; short _x3; short LeaderIdx, ClanIdx; short _x4; struct { short Weaponthane, Weaponthane, Fyrd, Cattle, Horses, Goods, Food; enum <short> { Slowly=1, Normally, Quickly } Travel; short Treasure; } Convoy; struct { short TargetX, TargetY; enum <short> { ask_cattle_route=1, ask_food, ask_info, ask_magic, tribute, gift, alliance, peace } Goal; enum <short> { Small=1, Medium, Large, Pathfinder=15328 } Caravan; } Objective; } QUE <optimize=false, read=QUEread>; if (ct) QUE Que[ct]; local int EventIdx = 0; typedef struct { local int Idx = EventIdx++; short Value; } EVENT <optimize=false, read=EVENTread>; SetBackColor(cLtGreen); struct { EventIdx = 0; EVENT Event[1579]; } Times; //how many times it happened? SetBackColor(cLtAqua); struct { EventIdx = 0; EVENT Event[1579]; } Years; //upon event, usually set to 0x7FFF, -1 per year
} Events;
////////////////////////////////////////////////////////////////LANDS////////////////////////////////////////////////////////////////
SetBackColor(cLtYellow);
struct {
SetForeColor(cWhite);
short ct;
SetForeColor(cNone);
if (ct) short Owner[ct];
SetColor(cNone,cNone);
char Opal[4];
} Zones;
#include "KoDPinc.bt"
Powered by hypermail