1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2025-04-04 07:30:42 +01:00

Compare commits

...

20 commits

Author SHA1 Message Date
d94c5b3507
Bugfix: Call fix_object after armorsmith services that can change wt
Specifically: Shrink Armor, Grow Armor, and Scales to Shield.  I don't
think the others can change weight.
2024-05-21 22:47:16 +01:00
6ca7d4cad5
Give new races trophy for octopode
Maybe parasitized android should count too?  It's kind-of a new race.
2024-05-21 22:39:28 +01:00
957574c55a
Update junethack trophy descriptions to mention ent and fix typo 2024-05-21 22:32:59 +01:00
e8c6f7b65b
Merge remote-tracking branch 'dNAO/compat-3.23.0' into 2024.05.15 2024-05-21 22:27:05 +01:00
7baf86b221 Bugfix: NetHack license help menu item was only appearing in wizmode
WIZHLP_SLOT was incorrectly set to 9 or 10 (the index of the menu
option to show the license) instead of 10 or 11.
2024-05-21 12:13:58 -04:00
chrisANG
7dcd7393ad Add Elfdalorian token to the junethack trophies csv
Right
2024-05-21 11:33:21 -04:00
chrisANG
cf42f9aaa2 Major balance fix: Pdrag tower shouldn't appear in 100% of games
Debug code :(
2024-05-21 11:22:43 -04:00
chrisANG
e4be5923ee sky artifact data.base entries 2024-05-19 16:20:06 -04:00
chrisANG
b6f5a19521 CRASH BUGFIX: Bad code in scorpion carapace props
We can get here with no obj
2024-05-18 22:46:19 -04:00
chrisANG
7c861331af Bugfix: Don't penalize the PC for "peaceful" minons from "hostile" gods
God minion lists can include normally cross-aligned minions for gods, leading to confusion here.
2024-05-18 13:49:22 -04:00
chrisANG
bdbb58899e Bugfix: Clockwork overwound status should cover a food rations worth.
Otherwise the PC can be exploded by a "standard" 80-turn winding.
2024-05-18 13:42:24 -04:00
chrisANG
5895e0b3c5 Bugfix: portal levels must be marked no-bones
Otherwise they link to the wrong dl when loaded.
2024-05-18 13:40:48 -04:00
chrisANG
973e084a2a Add missing notes to version comment. 2024-05-16 16:35:20 -04:00
chrisANG
5e678970ca Remove array-out-of-bounds error: Check for out-of-bounds kick 2024-05-16 16:34:56 -04:00
chrisANG
57789fff30 Fix other array-out-of-bounds in projectile code
h/t Noisytoot
2024-05-16 12:35:17 -04:00
chrisANG
982d3e8de1 Fix array-out-of-bounds error.
The digging projectile function can be called with the projectile about to go out of bounds.
2024-05-16 11:16:30 -04:00
chrisANG
eb3f82be49 Undefined behavior fixes: explode and worn
Explode now checks if(reg->nlocations > 0) to avoid calling memcpy with a null pointer.
-Explode has some incidental tabbing fixes so that I could actually read it.

Worn just swaps in some long constants.

h/t Noisytoot
2024-05-15 20:41:12 -04:00
chrisANG
b28c0b89cd This is trying to print everything to a %c, so cast it instead.
The other fix was just dumb.
2024-05-15 16:26:27 -04:00
chrisANG
16052920f9 Revert "Fix bad format strings in curses code"
This reverts commit 3cd8ed80b1.
2024-05-15 16:17:01 -04:00
chrisANG
414f7fc52a Some compilers do still have warnings, and code freeze is not the time to remove them. 2024-05-15 15:32:30 -04:00
13 changed files with 75 additions and 36 deletions

View file

@ -33,7 +33,6 @@ CPPFLAGS += -Wno-unused-label
CPPFLAGS += -Wno-unknown-pragmas
CPPFLAGS += -Wno-missing-braces
CPPFLAGS += -Wno-format-overflow
#CPPFLAGS += -Werror
.DELETE_ON_ERROR:

View file

@ -132,6 +132,13 @@ alhoon
with _dry brown stains of a troubling kind_ from former
Sacrifices.
[ The Tough Guide to Fantasyland, by Diana Wynne Jones ]
*amalgamated skies
*Know* that there is nothing in all the Worlds that can stand
against unity. When all know a single purpose, when all hands
are guided by one will, and all act with the same intent, the
Planes themselves may be moved.
[ The Unbroken Circle of Zerthimon,
Planescape Torment ]
amat*rasu *
The Shinto sun goddess, Amaterasu Omikami is the central
figure of Shintoism and the ancestral deity of the imperial
@ -7787,6 +7794,26 @@ serpent man of Yoth
was prostrate.
[ S. Petersen's Field Guide to
Creatures of the Dreamlands ]
*silver sky
Hear not just my words, but the meaning behind them.
Zerthimon's will, my will, your will. Let us all be as one.
In this place, broken upon shadow, carved deep in earth.
What once was sundered, from two peoples born.
Make all that was scattered whole again
by the heart that guides the will.
By the will that guides the hand.
And the hand... that guides the blade.
[ Neverwinter Nights 2 ]
*sky reflected
Zerthimon took the blade and studied its surface.
In it, he saw his reflection. It was in the
reflection of the steel that Zerthimon first *knew*
himself. Its edge was sharp, its will the wearer's.
It was the blade that would come to be raised against
Gith when Zerthimon made the Pronouncement of Two
Skies.
[ The Unbroken Circle of Zerthimon,
Planescape Torment ]
*speed*
"Attack on ground where your enemy believes you will not, from an unexpected
direction at an unexpected time. Defend where your enemy believes you are not,

View file

@ -92,7 +92,7 @@ LEVEL: "stair5" "L" @ (6, 0)
LEVEL: "sanctum" "none" @ (-1, 0)
LEVEL: "wizard1" "none" @ (7, 0)
CHAINLEVEL: "wizard2" "X" "wizard1" + (1, 0)
CHAINLEVEL: "wizard3" "Z" "wizard1" + (2, 0)
CHAINLEVEL: "wizard3" "none" "wizard1" + (2, 0)
LEVEL: "hell3" "none" @ (-3, 0)
LEVALIGN: lawful
RNDLEVEL: "hell2" "A" @ (-6, 0) 4
@ -105,7 +105,7 @@ RNDLEVEL: "abyss" "D" @ (-12,9) 6
LEVALIGN: chaotic
RNDLEVEL: "brine" "none" @ (-12,9) 3
LEVALIGN: chaotic
LEVEL: "fakewiz1" "E" @ (-12,9)
LEVEL: "fakewiz1" "none" @ (-12,9)
LEVEL: "fakewiz2" "F" @ (-12,9)
LEVEL: "fakewiz3" "G" @ (-12,9)

View file

@ -50,7 +50,7 @@
* 3.21.3: Blades of mercy, Aphanacts, species favored spells, crystal skulls, magic torch on grue level, tweaks to regular insight monsters, and misc bug fixes.
* 3.21.4: War-helm of the dreaming and monster madnesses, Silver flame cult, Chaos 1 revision, Black goat revision, Monk quest revision and move fixes/improvements, ring artifacts, Singing sword is nameable, Jrt Netjer hell vaults, Insight commanders in hell, Golden Knight artifact, halve con bonus to hp, ds undead flasks, better handling for polyform weapons, Inv. weight, daughters of Naunet, move system improvements, #downboy and #getem, and misc bug fixes.
* 3.22.0: Drow Healer, Elf Madman, Healer quest revision, Human, Vampire, and Gnome madman differentiation, new psychic and goatmom monster spells, center of all balance adjustments, y'ha-talla insight traits, amnesia cures monster madnesses, complex ward handling refactor, blasphemous lurker madness, the many wormy fingers entity (internally the "psurlon" template, but this is an artifact name), tweak glyph code to leak less info to blind PCs, allow option-file setting of template symbols, quest guardian-ship is a faction, named ("semiunique") monsters in hell get max HD and HP, and misc bug fixes and tweaks.
* 3.23.0: Yog-Sothoth cult, Cult revisions and mutations system, Descendant option, Knight fighting styles, Advanced spellcasting fixes, Monk moves are free, Samurai "Kendo", Attack and Passive pet commands, Mercurial weapon insight traits and gith artifact "swords", Scorpion Carapace revision, MC3 nerf, Monster smiths and forges v1, Random Insight monsters, Depths monster gen zone, Variable monster Hit Dice sizes, and misc bug fixes and tweaks.
* 3.23.0: Yog-Sothoth cult, Cult revisions and mutations system, Bokrug "cult", Descendant option, Knight fighting styles, Advanced spellcasting fixes, Monk moves are free, Samurai "Kendo", Half dragon level 15 intrinsics, Attack and Passive pet commands, Mercurial weapon insight traits and gith artifact "swords", Scorpion Carapace revision, MC3 nerf, Monster smiths and forges v1, Random Insight monsters, Depths monster gen zone, Variable monster Hit Dice sizes, and misc bug fixes and tweaks.
*/
#define PATCHLEVEL 15
/*

View file

@ -29,7 +29,7 @@ chaos_temple_quest,Asinine paradigm,Completed the chaos temple quest,dnh_chaos1_
mithardir_quest,Chasing after the wind,Completed the mithardir quest,x,,- on white sand
mordor_quest,Fossil of the First Age,Completed the mordor quest,x,,& under ground with elves walking over it
second_thoughts,Second thoughts,Completed a drow shared quest loyally before completing the traitor's quest,x,,Drow surrounded by corpses
illuminated,Illuminated,Learned every word of creation and accumulated 30 passive sylabel bonuses,dnh_illuminated.png,24/05/2022,
illuminated,Illuminated,Learned every word of creation and accumulated 30 passive syllable bonuses,dnh_illuminated.png,24/05/2022,
exodus,Exodus,Ascended with a pet android commander or operator android,dnh_exodus.png,29/04/2024,
fully_upgraded,Super Fighting Robot,Acquried all clockwork upgrades (except high-tension spring),x,,
hunter_of_nightmares,Hunter of Nightmares,Defeated at least one of each of the secret insight bosses,dnh_nightmare_hunter.png,9/6/2022,
@ -45,6 +45,8 @@ bokrug_ascension,Detestable gods,Completed Bokrug's ascension ritual,x,,Bokrug s
healer_quest,Plague of stolen lives,Completed healer quest,x,,H standing among %
drow_healer_quest,Twisted by dreams,Completed drow healer quest,x,,U surrounded by h
monk_quest,You must defeat Sheng Long to stand a chance,Completed monk quest,x,,@ with a bandana?
New June 2024,,,,,
iea_upgraded,The Elfdalorian,15+ upgrades on a set of imperial elven armor,,,
notdNetHack,,,,
get_kroo,Kroo's Bling,Acquire the dismal swamp completion prize.,,
get_raggo,Pet Rock,Acquire the gnomish mines completion prize.,uses same image as luckstone,
@ -58,4 +60,4 @@ used_smith,If The Shoe Fits...,Pay for an armorsmith service.,,
max_punch,Not Pulling Punches,Land a punch with all 4 offensive mystic powers active.,,
garnet_spear,Garnet Rod,Land a hit with a garnet tipped spear.,,
inked_up,Inked Up,Get a tattoo in The Sigil from Fell.,,
new_races,New Races. New Faces.,"Ascend either a salamander, a symbiote, or an etheraloid",,
new_races,New Races. New Faces.,"Ascend either a salamander, an etherealoid, an ent, or an octopode.",,

Can't render this file because it has a wrong number of fields in line 50.

View file

@ -309,7 +309,7 @@ get_satiationlimit(void)
*/
if (Race_if(PM_INCANTIFIER)) return max((u.uenmax*4)/5, 200);
if (uclockwork) return (hungermax*3)/4;
if (uclockwork) return min(hungermax-850, (hungermax*3)/4);
return hungermax/2;
}

View file

@ -35,27 +35,28 @@ create_explode_region(void)
static void
add_location_to_explode_region(int x, int y, void * _reg)
{
ExplodeRegion *reg = _reg;
int i;
ExplodeLocation *new;
for(i = 0; i < reg->nlocations; i++)
if (reg->locations[i].x == x && reg->locations[i].y == y)
return;
if (reg->nlocations == reg->alocations) {
reg->alocations = reg->alocations ? 2 * reg->alocations : 32;
new = (ExplodeLocation *)
alloc(reg->alocations * sizeof(ExplodeLocation));
if (reg->locations)
(void) memcpy((void *)new, (void *)reg->locations,
reg->nlocations * sizeof(ExplodeLocation));
free((void *)reg->locations);
reg->locations = new;
}
reg->locations[reg->nlocations].x = x;
reg->locations[reg->nlocations].y = y;
/* reg->locations[reg->nlocations].blast = 0; */
/* reg->locations[reg->nlocations].shielded = 0; */
reg->nlocations++;
ExplodeRegion *reg = _reg;
int i;
ExplodeLocation *new;
for(i = 0; i < reg->nlocations; i++)
if (reg->locations[i].x == x && reg->locations[i].y == y)
return;
if (reg->nlocations == reg->alocations) {
reg->alocations = reg->alocations ? 2 * reg->alocations : 32;
new = (ExplodeLocation *)
alloc(reg->alocations * sizeof(ExplodeLocation));
if(reg->nlocations > 0){
(void) memcpy((void *)new, (void *)reg->locations,
reg->nlocations * sizeof(ExplodeLocation));
}
free((void *)reg->locations);
reg->locations = new;
}
reg->locations[reg->nlocations].x = x;
reg->locations[reg->nlocations].y = y;
/* reg->locations[reg->nlocations].blast = 0; */
/* reg->locations[reg->nlocations].shielded = 0; */
reg->nlocations++;
}
static int

View file

@ -218,8 +218,13 @@ summon_god_minion(int godnum, boolean talk)
if (!Blind)
pline("%s appears before you.", An(Hallucination ? rndmonnam() : mon->data->mname));
}
mon->mpeaceful = FALSE;
/* don't call set_malign(); player was naughty */
if(mon->mpeaceful){
mon->mpeaceful = FALSE;
if(godnum != u.ugodbase[UGOD_CURRENT])
set_malign(mon);
/* else don't call set_malign(); player was naughty */
newsym(mon->mx,mon->my);
}
mon->msleeping = 0;
mon->mcanmove = 1;

View file

@ -630,13 +630,15 @@ do_digging_projectile(
boolean youagr = (magr && (magr == &youmonst));
int newx = bhitpos.x + dx;
int newy = bhitpos.y + dy;
struct rm *room;
boolean shopdoor = FALSE, shopwall = FALSE;
/* Location must be valid */
if (!isok(newx, newy))
//If we're out of bounds, return. Can happen if a bolt hits the level boundery.
if(!isok(newx, newy))
return;
struct rm *room = &levl[newx][newy];
room = &levl[newx][newy];
/* Projectile must be a digger */
if (!((thrownobj->otyp == BLASTER_BOLT || thrownobj->otyp == HEAVY_BLASTER_BOLT || thrownobj->otyp == CARCOSAN_BOLT || thrownobj->otyp == LASER_BEAM)))

View file

@ -2789,7 +2789,7 @@ give_ascension_trophy(void)
achieve.trophies |= HALF_ASC;
else if(Race_if(PM_YUKI_ONNA))
achieve.trophies |= YUKI_ASC;
if(Race_if(PM_SALAMANDER) || Race_if(PM_ETHEREALOID) || Race_if(PM_ENT))
if(Race_if(PM_SALAMANDER) || Race_if(PM_ETHEREALOID) || Race_if(PM_ENT) || Race_if(PM_OCTOPODE))
achieve.new_races = 1;
int i;
int keys = 0;

View file

@ -1063,6 +1063,7 @@ domonnoise(struct monst *mtmp, boolean chatting)
if(obj->objsize == MZ_GIGANTIC) obj->objsize = MZ_HUGE;
else obj->objsize--;
verbalize("Shrunk her down!");
fix_object(obj);
made_purchase = TRUE;
break;
case 2://grow armor
@ -1097,6 +1098,7 @@ domonnoise(struct monst *mtmp, boolean chatting)
if(obj->objsize == MZ_HUGE) obj->objsize = MZ_GIGANTIC;
else obj->objsize++;
verbalize("Combined em!");
fix_object(obj);
made_purchase = TRUE;
break;
case 3://repair armor
@ -1193,6 +1195,7 @@ domonnoise(struct monst *mtmp, boolean chatting)
obj->otyp - GRAY_DRAGON_SCALES;
obj->objsize = MZ_HUMAN;
obj->known = 1;
fix_object(obj);
made_purchase = TRUE;
break;
default:

View file

@ -2923,7 +2923,7 @@ u_init(void)
u.oonaenergy = !rn2(3) ? AD_FIRE : rn2(2) ? AD_COLD : AD_ELEC;
u.ring_wishes = -1;
dungeon_topology.alt_tower = 1;//!rn2(8);
dungeon_topology.alt_tower = !rn2(8);
u.silver_flame_z.dnum = u.uz.dnum;
u.silver_flame_z.dlevel = rn2(dunlevs_in_dungeon(&u.uz)) + dungeons[u.uz.dnum].depth_start;

View file

@ -315,7 +315,7 @@ get_item_property_list(int *property_list, struct obj *obj, int otyp)
}
}
//From scorpion carapace
if(obj->oartifact == ART_SCORPION_CARAPACE){
if(obj && obj->oartifact == ART_SCORPION_CARAPACE){
switch(cur_prop){
case SWIMMING:
if(check_carapace_mod(obj, CPROP_SWIMMING))