Major amnesia revamp
Instead of forgetting maps and objects, make amnesia forget skills. Forgetting maps and objects could be circumvented with taking notes, or by using an external tool to remember the forgotten levels. Forgetting skills allows the player to optionally go down another skill path, if they trained the wrong weapon in the early game. Amnesia still forgets spells. As a replacement for the deja vu messages when entering a forgotten level, those messages will now indicate a ghost with your own name existing on the level, given only when the level is entered for the first time. These changes based on fiqhack, with some adjustments.
This commit is contained in:
@@ -159,7 +159,7 @@ typedef struct branch {
|
||||
struct linfo {
|
||||
unsigned char flags;
|
||||
#define VISITED 0x01 /* hero has visited this level */
|
||||
#define FORGOTTEN 0x02 /* hero will forget this level when reached */
|
||||
/* 0x02 was FORGOTTEN, when amnesia made you forget maps */
|
||||
#define LFILE_EXISTS 0x04 /* a level file exists for this level */
|
||||
/* Note: VISITED and LFILE_EXISTS are currently almost always
|
||||
* set at the same time. However they _mean_ different things.
|
||||
|
||||
@@ -666,7 +666,6 @@ E char *FDECL(get_annotation, (d_level *));
|
||||
E int NDECL(donamelevel);
|
||||
E int NDECL(dooverview);
|
||||
E void FDECL(show_overview, (int, int));
|
||||
E void FDECL(forget_mapseen, (int));
|
||||
E void FDECL(rm_mapseen, (int));
|
||||
E void FDECL(init_mapseen, (d_level *));
|
||||
E void NDECL(recalc_mapseen);
|
||||
@@ -1509,6 +1508,7 @@ E void NDECL(kill_genocided_monsters);
|
||||
E void FDECL(golemeffects, (struct monst *, int, int));
|
||||
E boolean FDECL(angry_guards, (BOOLEAN_P));
|
||||
E void NDECL(pacify_guards);
|
||||
E struct monst *FDECL(find_ghost_with_name, (char *));
|
||||
E void FDECL(decide_to_shapeshift, (struct monst *, int));
|
||||
E boolean FDECL(vamp_stone, (struct monst *));
|
||||
E void NDECL(monst_globals_init);
|
||||
@@ -2166,10 +2166,6 @@ E char *FDECL(tshirt_text, (struct obj *, char *));
|
||||
E int NDECL(doread);
|
||||
E boolean FDECL(is_chargeable, (struct obj *));
|
||||
E void FDECL(recharge, (struct obj *, int));
|
||||
E void FDECL(forget_objects, (int));
|
||||
E void FDECL(forget_levels, (int));
|
||||
E void NDECL(forget_traps);
|
||||
E void FDECL(forget_map, (int));
|
||||
E int FDECL(seffects, (struct obj *));
|
||||
E void FDECL(drop_boulder_on_player,
|
||||
(BOOLEAN_P, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
|
||||
@@ -2956,6 +2952,7 @@ E void FDECL(unrestrict_weapon_skill, (int));
|
||||
E void FDECL(use_skill, (int, int));
|
||||
E void FDECL(add_weapon_skill, (int));
|
||||
E void FDECL(lose_weapon_skill, (int));
|
||||
E void FDECL(drain_weapon_skill, (int));
|
||||
E int FDECL(weapon_type, (struct obj *));
|
||||
E int NDECL(uwep_skill_type);
|
||||
E int FDECL(weapon_hit_bonus, (struct obj *));
|
||||
|
||||
Reference in New Issue
Block a user