ref: 07469015a833ea56db430aed28f004e205549360
dir: /dat.h/
typedef struct Pic Pic; typedef struct Resource Resource; typedef struct Good Good; typedef struct Building Building; typedef struct Terrain Terrain; typedef struct Tile Tile; enum{ Tilesz = 32, }; struct Pic{ Point picsz; u32int *pic; }; extern int scale; enum{ Gfish, Gcattle, Gwheat, Gwood, Glumber, Gstone, Giron, Gtools, Ggold, Gjewelry, Gtot, }; struct Good{ char *name; int terrain; int resource; }; extern Good goods[Gtot]; extern int initialstock[Gtot]; enum{ Rfood, Rwood, Rlumber, Rstone, Riron, Rtools, Rgold, Rjewelry, Rtot, }; struct Resource{ char *name; int goods[Gtot]; }; extern Resource resources[Rtot]; enum{ Btownhall, Bmarket, Bfishyard, Bcarpentry, Bsawmill, Bmill, Bfarm, Bquarry, Bsmeltery, Bforge, Blapidary, Btot, }; struct Building{ char *name; char *abbr; int buildtime; int buildcost[Gtot]; int prodtime; int product[Gtot]; int prodcost[Gtot]; int terrain; int upkeep[Rtot]; Pic; }; extern Building buildings[Btot]; enum{ Tplain, Twoods, Tpond, Tcrop, Tmountain, Tironvein, Tgoldvein, Ttot, }; struct Terrain{ char *name; char *abbr; int good; int initialstock; double yield; Pic; }; extern Terrain terrains[Ttot]; enum{ Snull, Svoid, Swaitbuild, Sbuild, Sstarved, Swaitsupply, Sproduce, }; struct Tile{ Terrain *t; int distance; int stock; Building *b; int state; int gotsupply; int prodstock[Gtot]; vlong clock; vlong prodΔt; vlong supplyΔt; vlong pickupΔt; int stale; }; extern Tile *map; extern int mapwidth, mapheight; extern Tile *selected; extern int stock[Gtot], rstock[Rtot]; typedef int (*Menuptr)(Tile*); enum{ Cursdef, Curstarget, }; extern void (*mapdrawfn)(void); extern int (*selectfn)(Tile*); extern int repaint; extern Menuptr menufn; extern Point EP; enum{ Te9 = 1000000000, Te6 = 1000000, SimHz = 5, AnimHz = 1, Travelticks = 10, }; extern vlong clock; extern int paused;