Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'NetHack-3.7' of https://github.com/nethack/nethack into…
… 8.0-savebreaking Merging in nearly a year of vanilla development. Conflict notes: - Many of the conflicts were from the following changes: - Breakup of struct instance_globals g into alphabetic (???) sub-structs. - index() and yn() not being available anymore (replacements are straightforward) - xchar not being available anymore (all xchars have to be coordxys or xint8s now; xNetHack actually imported coordxy a little earlier so I could write code that wouldn't have to be changed in this merge) - Verbose() replacing flags.verbose - add_menu now taking a color (all changed lines just added 0/NO_COLOR for it) - Splitting hmon_hitmon; reconciling these changes was long and complex and may have introduced some new bugs. - Took vanilla's addition of spinach tins to the Monk quest. - Fixed a minor bug in zap.c where an object class was stored as boolean rather than char. - Took vanilla's implementation of o monsters with poison resistance (goblins and hobgoblins don't have it). - Fixed a bug where difficulty-4 bugbear came before difficulty-3 orc in the monster list. - Took vanilla's implementation of Demonbane. Lost: warning. Gained: invoke to banish demons, is now the first sac gift for Priests. It is still a lawful silver mace. - Moved some xNetHack specific definitions from decl.h to hack.h in line with the new guidelines for what should be in those files. - Take vanilla's change in which carrying a lizard corpse no longer has any passive protection against cockatrice hissing on new moon. - Steadfastness immunity to knockback is conferred only by Giantslayer, since loadstones have been removed for a while. - Reject vanilla's anti-magic trap changes (which deal reduced physical and Pw damage) in favor of xnethack's which deal Pw and maxPw damage. - Fix a Y2K warning in makedefs.c preventing compilation with -Wall. - Drop xNetHack's custom names for room alignment in favor of vanilla's, e.g. RM_LEFT -> SPLEV_LEFT. For some reason, vanilla did not prefix SPLEV_ on the TOP or BOTTOM constants, so I did. - Dropped reset_coordinate_system() in favor of reset_xystart_size() which does the same thing, but the Lua command is still des.reset_coordinate_system(). - Removed the mpickstuff mitem_wanted callbacks in favor of vanilla's mon_would_take_item (with modifications to preserve existing xNetHack behavior with monsters that know valuable gems and want to take magical tools). - Renamed the variable "leader_is_dead" to vanilla's "killed_leader" (it does the same thing, representing whether the leader is dead by any means, not that the player personally killed them necessarily). - Reverted xnh commit daa7d61 by re-adding monmax_difficulty_lev(). Tired of it causing merge conflicts. - Took vanilla's implementation of amulet of life saving giving 60-170 HP depending on Con instead of a flat 100. - Fixed a bug where experience gained from an exploding bag of holding would not actually cause a new experience level to be gained until the next time the hero gained experience. - Took vanilla's reducing the size of the gas clouds on the Plane of Fire. - Took vanilla's (actually my pull request against vanilla's) amount of temporary very fast speed granted by the potion of speed - (40/100/160)+d10 turns depending on BUC. - Started adding comments like /* xNetHack ones start here */ to some lists or flag constants, where the order of the list items doesn't matter, to ensure that the vanilla stuff stays in one blob and the xnethack stuff stays in another blob. - Took vanilla's converting the boolean arguments to newcham into flags. - Took PatR's iterations on the wand of secret door detection feedback. - Took one new helltweaks from vanilla: the drawbridge fortress. The other helltweaks have been discarded because they're made more for the old maze levels which no longer exist here. - Took vanilla's implementation of "some objects may generate eroded": chance of erosionproof decreased from 1/40 to 1/100, recursive chance of erosion decreased from 1/40 to 1/80, chance of greased raised from 1/23263 to 1/1000 - Kept the xNetHack logic of the Astral guardian angel not appearing at all if you are petless (vanilla does the old xNetHack logic of it appearing but just being peaceful). - Took vanilla's addition of "themeroom fills" which allow a room of arbitrary shape to be specified with a random fill which can be applied to an arbitrary room, thus enabling the various shaped rooms to contain interesting fills. These have also been added to all the xNetHack themed rooms that are just a shape without special terrain or contents. - Took vanilla's implementation of the "buried treasure" themed room: rather than an "X" engraving on a random space somewhere in the same room, there will be an engraving in a random space anywhere on the level indicating the distance to the treasure spot. - Took the vanilla implementation (actually a patch I submitted) of marking fortune-cookie-only rumors with "[cookie]" instead of a leading colon. - Reverted part of commit 2b3883e in which orcs get Skilled in scimitar: vanilla's merge of scimitar and saber skills meant that all orcs could now use artifact sabers like Grayswandir at Skilled, even if they would normally have no skill in it at all (Rangers, Wizards) or low skill (Barbarians). - Revert commit 22c11b7 that changed has_ceiling(d_level*) to ceiling_exists(void) because this continues to cause merge conflicts with vanilla. has_ceiling is now used everywhere. - Took the Tutorial branch from vanilla. - Took vanilla's mpickstuff refactor and discarded the xnh one with callback functions. - Cocytus levels now use the "cold" level flag. (Other gehennom ones don't need to specify "hot" because this is assumed as the default case in sp_lev.c.) - Some new Verbose flags are added to cover xNetHack-only uses of flags.verbose. Also, the m_move[2-4] ones have turned into mon_open_door[1-3] (same values, suppressing verbosity of the same messages). This creates some weirdness in the enum because they're still sandwiched between m_move1 and m_move5. - Vanilla's blindness overhaul for roleplay blindness collided with my implementation of intrinsic blindness inflicted by dark speech. Both used the (HBlinded & FROMOUTSIDE) bit and they are supposed to behave differently (namely, dark speech blindness is supposed to be curable by several things, but roleplay blindness is NEVER curable - even the Eyes of the Overworld only suppress it now while they're worn). To keep both behaviors, I took an unused bit from the intrinsic and labeled it FROMROLEPLAY - which now controls the vanilla roleplay blindness. FROMOUTSIDE remains the xNetHack form of dark speech blindness. (Also considered using a long timeout, but that wouldn't really have worked - there are too many sources of temporary blindness cures that zero its timeout.) - The vanilla implementation of showing engravings on room and corridor tiles is missing a lot of detail compared to xNetHack (namely that there is no indication of the type of engraving). Since xNetHack has nice tiles for those, I wanted to keep them. The implementation now is basically to use the new code paths vanilla set up, but use the xNetHack engraving system. S_engroom and S_engrcorr still exist as defsyms, but do not actually render in the game. back_to_defsym() is also reverted to vanilla. - Updated the linux-xnh-debug hints file to be based on the latest linux.370 hints file.
- Loading branch information