1*010ae45bSmestre /* $OpenBSD: phantstruct.h,v 1.5 2016/01/06 14:28:09 mestre Exp $ */ 2df930be7Sderaadt /* $NetBSD: phantstruct.h,v 1.2 1995/03/24 04:00:11 cgd Exp $ */ 3df930be7Sderaadt 4df930be7Sderaadt /* 5df930be7Sderaadt * phantstruct.h - structure definitions for Phantasia 6df930be7Sderaadt */ 7df930be7Sderaadt 8*010ae45bSmestre #include <limits.h> 9*010ae45bSmestre #include <stdbool.h> 10*010ae45bSmestre 11df930be7Sderaadt struct player /* player statistics */ 12df930be7Sderaadt { 13df930be7Sderaadt double p_experience; /* experience */ 14df930be7Sderaadt double p_level; /* level */ 15df930be7Sderaadt double p_strength; /* strength */ 16df930be7Sderaadt double p_sword; /* sword */ 17df930be7Sderaadt double p_might; /* effect strength */ 18df930be7Sderaadt double p_energy; /* energy */ 19df930be7Sderaadt double p_maxenergy; /* maximum energy */ 20df930be7Sderaadt double p_shield; /* shield */ 21df930be7Sderaadt double p_quickness; /* quickness */ 22df930be7Sderaadt double p_quksilver; /* quicksilver */ 23df930be7Sderaadt double p_speed; /* effective quickness */ 24df930be7Sderaadt double p_magiclvl; /* magic level */ 25df930be7Sderaadt double p_mana; /* mana */ 26df930be7Sderaadt double p_brains; /* brains */ 27df930be7Sderaadt double p_poison; /* poison */ 28df930be7Sderaadt double p_gold; /* gold */ 29df930be7Sderaadt double p_gems; /* gems */ 30df930be7Sderaadt double p_sin; /* sin */ 31df930be7Sderaadt double p_x; /* x coord */ 32df930be7Sderaadt double p_y; /* y coord */ 33df930be7Sderaadt double p_1scratch, 34df930be7Sderaadt p_2scratch; /* variables used for decree, player battle */ 35df930be7Sderaadt 36df930be7Sderaadt struct 37df930be7Sderaadt { 38df930be7Sderaadt short ring_type; /* type of ring */ 39df930be7Sderaadt short ring_duration; /* duration of ring */ 40df930be7Sderaadt bool ring_inuse; /* ring in use flag */ 41df930be7Sderaadt } p_ring; /* ring stuff */ 42df930be7Sderaadt 43df930be7Sderaadt long p_age; /* age of player */ 44df930be7Sderaadt 45df930be7Sderaadt int p_degenerated; /* age/3000 last degenerated */ 46df930be7Sderaadt 47df930be7Sderaadt short p_type; /* character type */ 48df930be7Sderaadt short p_specialtype; /* special character type */ 49df930be7Sderaadt short p_lives; /* multiple lives for council, valar */ 50df930be7Sderaadt short p_crowns; /* crowns */ 51df930be7Sderaadt short p_charms; /* charms */ 52df930be7Sderaadt short p_amulets; /* amulets */ 53df930be7Sderaadt short p_holywater; /* holy water */ 54df930be7Sderaadt short p_lastused; /* day of year last used */ 55df930be7Sderaadt short p_status; /* playing, cloaked, etc. */ 56df930be7Sderaadt short p_tampered; /* decree'd, etc. flag */ 57df930be7Sderaadt short p_istat; /* used for inter-terminal battle */ 58df930be7Sderaadt 59df930be7Sderaadt bool p_palantir; /* palantir */ 60df930be7Sderaadt bool p_blessing; /* blessing */ 61df930be7Sderaadt bool p_virgin; /* virgin */ 62df930be7Sderaadt bool p_blindness; /* blindness */ 63df930be7Sderaadt 64df930be7Sderaadt char p_name[SZ_NAME]; /* name */ 65df930be7Sderaadt char p_password[SZ_PASSWORD];/* password */ 6634278d36Sguenther char p_login[LOGIN_NAME_MAX];/* login */ 67df930be7Sderaadt }; 68df930be7Sderaadt 69df930be7Sderaadt struct monster /* monster stats */ 70df930be7Sderaadt { 71df930be7Sderaadt double m_strength; /* strength */ 72df930be7Sderaadt double m_brains; /* brains */ 73df930be7Sderaadt double m_speed; /* speed */ 74df930be7Sderaadt double m_energy; /* energy */ 75df930be7Sderaadt double m_experience; /* experience */ 76df930be7Sderaadt double m_flock; /* % chance of flocking */ 77df930be7Sderaadt 78df930be7Sderaadt double m_o_strength; /* original strength */ 79df930be7Sderaadt double m_o_speed; /* original speed */ 80df930be7Sderaadt double m_maxspeed; /* maximum speed */ 81df930be7Sderaadt double m_o_energy; /* original energy */ 82df930be7Sderaadt double m_melee; /* melee damage */ 83df930be7Sderaadt double m_skirmish; /* skirmish damage */ 84df930be7Sderaadt 85df930be7Sderaadt int m_treasuretype; /* treasure type */ 86df930be7Sderaadt int m_type; /* special type */ 87df930be7Sderaadt 88df930be7Sderaadt char m_name[26]; /* name */ 89df930be7Sderaadt }; 90df930be7Sderaadt 91df930be7Sderaadt struct energyvoid /* energy void */ 92df930be7Sderaadt { 93df930be7Sderaadt double ev_x; /* x coordinate */ 94df930be7Sderaadt double ev_y; /* y coordinate */ 95df930be7Sderaadt bool ev_active; /* active or not */ 96df930be7Sderaadt }; 97df930be7Sderaadt 98df930be7Sderaadt struct scoreboard /* scoreboard entry */ 99df930be7Sderaadt { 100df930be7Sderaadt double sb_level; /* level of player */ 101df930be7Sderaadt char sb_type[4]; /* character type of player */ 102df930be7Sderaadt char sb_name[SZ_NAME]; /* name of player */ 10334278d36Sguenther char sb_login[LOGIN_NAME_MAX];/* login of player */ 104df930be7Sderaadt }; 105df930be7Sderaadt 106df930be7Sderaadt struct charstats /* character type statistics */ 107df930be7Sderaadt { 108df930be7Sderaadt double c_maxbrains; /* max brains per level */ 109df930be7Sderaadt double c_maxmana; /* max mana per level */ 110df930be7Sderaadt double c_weakness; /* how strongly poison affects player */ 111df930be7Sderaadt double c_goldtote; /* how much gold char can carry */ 112df930be7Sderaadt int c_ringduration; /* bad ring duration */ 113df930be7Sderaadt struct 114df930be7Sderaadt { 115df930be7Sderaadt double base; /* base for roll */ 116df930be7Sderaadt double interval; /* interval for roll */ 117df930be7Sderaadt double increase; /* increment per level */ 118df930be7Sderaadt } c_quickness, /* quickness */ 119df930be7Sderaadt c_strength, /* strength */ 120df930be7Sderaadt c_mana, /* mana */ 121df930be7Sderaadt c_energy, /* energy level */ 122df930be7Sderaadt c_brains, /* brains */ 123df930be7Sderaadt c_magiclvl; /* magic level */ 124df930be7Sderaadt }; 125df930be7Sderaadt 126df930be7Sderaadt struct menuitem /* menu item for purchase */ 127df930be7Sderaadt { 128df930be7Sderaadt char *item; /* menu item name */ 129df930be7Sderaadt double cost; /* cost of item */ 130df930be7Sderaadt }; 131