1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2024-09-19 14:05:02 +01:00
notnotdnethack/include/engrave.h
Ron Nazarov 8583c380bb
Replace genericptr compatibility macro with its definition
Also genericptr_t, which is the same thing but a typedef instead of a macro.
2024-05-05 15:48:55 +01:00

204 lines
6.1 KiB
C

/* SCCS Id: @(#)engrave.h 3.4 1991/07/31 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
#ifndef ENGRAVE_H
#define ENGRAVE_H
struct engr {
struct engr *nxt_engr;
char *engr_txt;
xchar engr_x, engr_y;
unsigned engr_lth; /* for save & restore; not length of text */
long engr_time; /* moment engraving was (will be) finished */
xchar engr_type;
#define DUST 1
#define ENGRAVE 2
#define BURN 3
#define MARK 4
#define ENGR_BLOOD 5
#define HEADSTONE 6
#define N_ENGRAVE 6
xchar ward_type;
int ward_id; /* id number of ward, or of the halucinatory ward if halu_ward is TRUE */
#define HEPTAGRAM 1
#define GORGONEION 2
#define CIRCLE_OF_ACHERON 3
#define PENTAGRAM 4
#define HEXAGRAM 5
#define HAMSA 6
#define ELDER_SIGN 7
#define ELDER_ELEMENTAL_EYE 8
#define SIGN_OF_THE_SCION_QUEEN 9
#define CARTOUCHE_OF_THE_CAT_LORD 10
#define WINGS_OF_GARUDA 11
#define SIGIL_OF_CTHUGHA 12
#define BRAND_OF_ITHAQUA 13
#define TRACERY_OF_KARAKAL 14
#define YELLOW_SIGN 15
#define DONTLEARNWARD 16
#define ANDREALPHUS_TRANSIT 16
#define ANDREALPHUS_STABILIZE 17
#define FIRST_RUNE 18
#define TOUSTEFNA 18
#define DREPRUN 19
#define OTTASTAFUR 20
#define KAUPALOKI 21
#define VEIOISTAFUR 22
#define THJOFASTAFUR 23
#define TH_RUNE 24
#define T_RUNE 25
#define NG_RUNE 26
#define A_RUNE 27
#define NUMBER_OF_WARDS 27
#define LAST_WARD 27
#define FIRST_SEAL (LAST_WARD+1)
#define AHAZU (LAST_WARD+1)
#define AMON (LAST_WARD+2)
#define ANDREALPHUS (LAST_WARD+3)
#define ANDROMALIUS (LAST_WARD+4)
#define ASTAROTH (LAST_WARD+5)
#define BALAM (LAST_WARD+6)
#define BERITH (LAST_WARD+7)
#define BUER (LAST_WARD+8)
#define CHUPOCLOPS (LAST_WARD+9)
#define DANTALION (LAST_WARD+10)
#define ECHIDNA (LAST_WARD+11)
#define EDEN (LAST_WARD+12)
#define ENKI (LAST_WARD+13)
#define EURYNOME (LAST_WARD+14)
#define EVE (LAST_WARD+15)
#define FAFNIR (LAST_WARD+16)
#define HUGINN_MUNINN (LAST_WARD+17)
#define IRIS (LAST_WARD+18)
#define JACK (LAST_WARD+19)
#define MALPHAS (LAST_WARD+20)
#define MARIONETTE (LAST_WARD+21)
#define MOTHER (LAST_WARD+22)
#define NABERIUS (LAST_WARD+23)
#define ORTHOS (LAST_WARD+24)
#define OSE (LAST_WARD+25)
#define OTIAX (LAST_WARD+26)
#define PAIMON (LAST_WARD+27)
#define SHIRO (LAST_WARD+28)
#define SIMURGH (LAST_WARD+29)
#define TENEBROUS (LAST_WARD+30)
#define YMIR (LAST_WARD+31)
#define QUEST_SPIRITS (LAST_WARD+32)
#define DAHLVER_NAR (LAST_WARD+32)
#define ACERERAK (LAST_WARD+33)
#define COUNCIL (LAST_WARD+34)
#define COSMOS (LAST_WARD+35)
#define LIVING_CRYSTAL (LAST_WARD+36)
#define TWO_TREES (LAST_WARD+37)
#define MISKA (LAST_WARD+38)
#define NUDZIRATH (LAST_WARD+39)
#define ALIGNMENT_THING (LAST_WARD+40)
#define UNKNOWN_GOD (LAST_WARD+41)
#define BLACK_WEB (LAST_WARD+42)
#define YOG_SOTHOTH (LAST_WARD+43)
#define NUMINA (LAST_WARD+44)
/*Some hallucinatory engravings have special properties. Keep track of them here*/
/*default engraving, disconnected lines*/
#define DISCONNECTED_LINES 1
/*Functional halucinatory wards, keep in sync with engrave.c!*/
#define CERULEAN_SIGN 2
/*These wards move across the ground. Keep in sync with allmain*/
#define NORTHEAST_GLIDER 3
#define NORTHWEST_GLIDER 4
#define SOUTHWEST_GLIDER 5
#define SOUTHEAST_GLIDER 6
#define DEAD_GLIDER 7
/*These engravings correspond to active drow houses*/
#define BAENRE 8
#define FIRST_DROW_SYM BAENRE
#define BARRISON_DEL_ARMGO 9
#define XORLARRIN 10
#define FAEN_TLABBAR 11
#define MIZZRYM 12
#define FEY_BRANCHE 13
#define MELARN 14
#define DUSKRYN 15
#define FIRST_HOUSE BAENRE
#define LAST_HOUSE DUSKRYN
/*These engravings correspond to disbanded drow houses*/
#define BRONT_TEJ 16
#define CELOFRAIE 17
#define DEVIR 18
#define DO_URDEN 19
#define ELEC_THIL 20
#define H_KAR 21
#define HUN_ETT 22
#define MASQ_IL_YR 23
#define MLIN_THOBBYN 24
#define OBLODRA 25
#define S_SRIL 26
#define SYR_THAERL 27
#define TEKEN_DUIS 28
#define THAEYALLA 29
#define X_LARRAZ_ET_SOJ 30
#define FIRST_FALLEN_HOUSE BRONT_TEJ
#define LAST_FALLEN_HOUSE X_LARRAZ_ET_SOJ
/*Special behavior, these identify hedrow towers*/
#define SORCERE 31
#define MAGTHERE 32
#define XAXOX 33
#define FIRST_TOWER SORCERE
#define LAST_TOWER MAGTHERE
#define HOSTILE_TOWER XAXOX
#define LAST_BASTION_SYMBOL 34
/*Special behavior, these identify drow gods*/
#define LOLTH_SYMBOL 35
#define KIARANSALEE_SYMBOL 36
#define PEN_A_SYMBOL 37
#define VER_TAS_SYMBOL 38
#define FIRST_GODDESS LOLTH_SYMBOL
#define LAST_GODDESS VER_TAS_SYMBOL
#define EILISTRAEE_SYMBOL 39
#define GHAUNADAUR_SYMBOL 40
#define LOST_HOUSE 41
#define EDDER_SYMBOL 42
#define Y_CULT_SYMBOL 43
#define LAST_DROW_SYM Y_CULT_SYMBOL
#define FOOTPRINT 44
#define HOOFPRINT 45
#define FIRST_PLANE_SYMBOL 46
#define LAST_PLANE_SYMBOL 61
#define CLAW_MARKS 62
xchar halu_ward; /* If you draw while halucinating, you inscribe a halucinatory symbol */
/*One type of ward per square
Max of seven redundant copies (so you can fight on the ward)
Note: max of 3 Gorgoneia on a square
Note: max of 4 circles of acheron per square. Makes it a good emergency ward but a poor combat ward.
Note: max of 6 hamsa on the square. Hamsa after the first two must be drawn in pairs
Note: max of 6 elder signs per square. They form a more detailed, star shaped sign.
Note: elder sign becomes more potent at 6 copies.
Note: elder elemental eye becomes more potent at 5 and 7 copies.
Note: Gorgoneia become more potent with each copy.
Note: cartouche of the cat lord becomes more potent at 7 and 9 glyphs.
*/
xchar complete_wards; // functional
xchar scuffed_wards; // 90%
xchar degraded_wards;// 75%
xchar partial_wards;// 50%
};
#define newengr(lth) (struct engr *)alloc((unsigned)(lth) + sizeof(struct engr))
#define dealloc_engr(engr) free((void *) (engr))
#endif /* ENGRAVE_H */