Git Product home page Git Product logo

splicehack-rewrite's Introduction

Kestrel Gregorich-Trevor

  • 🔭 I’m currently working on a number of small projects, only some of which are on GitHub.
  • 🌱 I’m currently learning vim shortcuts.
  • 💬 Ask me about Roguelikes!
  • 😄 Pronouns: She/Her/Hers!
  • ⚡ Opinions expressed here are my own, and do not reflect the views of any company or organization that I am employed by or have been previously employed by. Additionally, all public repositories found below are not managed or the property of any company or organization, current or previous.

Reference

  • 🖌 Dotfiles: A repository for my personal dotfiles. Useful if you want to make your desktop look like mine.

Hobbyist Projects

  • 🧪 Mutagen: My entry in the 2017 Fighting Game AI Competition. Placed 4th overall.
  • 🛡 SpliceHack: A fork of NetHack. Actively developed, with an active playerbase.
  • 🛡 Zenzizenzizenzic: A traditional roguelike built from scratch in C.

splicehack-rewrite's People

Contributors

actual-nh avatar alkom avatar apowers313 avatar barthouse avatar bhaak avatar bhouse-microsoft avatar chasonr avatar copperwater avatar davecohrs avatar dnicolaas avatar entrez avatar fredriq avatar janne-hmp avatar k21971 avatar kougyokugentou avatar maddthesane avatar mogigoma avatar nh-karnov avatar nhkeni avatar nhmall avatar nhtangles avatar nikolas avatar nullcgt avatar paxed avatar remirol avatar rojjacebolla avatar splatpope avatar tung avatar uniqp avatar vivit-r avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

splicehack-rewrite's Issues

Last call: Name of repo/wiki page/abbreviations

Last call to rename freely! This is the moment when DNH wound up committed to the "dNAO" repo instead of the more fittingly-named "dnethack" repo; are lost DNH players out there, blindly playing from the wrong repo? This is the moment that doomed UnNetHack to an unsearchable forked repo; were contributors lost due to inconvenience?

With only 4 watchers/stars and no server host, "spl-r" can be moved. Renamed. Or even merged in as a new branch on the old repo, with no shared commit history to the other branches.

I hope that SpliceHack-Rewrite isn't the final name. I haven't come up with any wonderful replacements. But for lack of something brilliant, we could use:
FreshSplice. NewSplice. NiceHack. NetKes. PartyHack. Something else... or even simply SpliceHack.

(writing this as an "issue" just so that it can be a Project card)

Failed monster sanity checks exposed by fuzzer.

This is a very persistent bug, and I have not been able to discover the source. It occurs fairly frequently when fuzzing, and yet I've never found it during regular gameplay.

Sample output:


Suddenly, the dungeon collapses.
illegal mon data 555555a03568; mnum=317 (fmon)
  Generating more information you may report:

[00] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(+0xea318) [0x55555563e318]
[01] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(+0xeaad1) [0x55555563ead1]
[02] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(panic+0x26e) [0x555555640ea8]
[03] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(+0x15fb30) [0x5555556b3b30]
[04] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(mon_sanity_check+0x6c) [0x5555556b44b0]
[05] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(sanity_check+0x23) [0x5555555e000a]
[06] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(moveloop+0x11d9) [0x5555555b312e]
[07] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(main+0x8b2) [0x5555557eb29b]
[08] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7ffff7c340b3]
[09] /home/username/Workspace/SpliceHack-Rewrite/src/splicehack(_start+0x2e) [0x5555555b1c8e]

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7c32859 in __GI_abort () at abort.c:79
#2  0x000055555563eac8 in NH_abort () at end.c:206
#3  0x0000555555640ea8 in panic (str=str@entry=0x555555876918 "illegal mon data %s; mnum=%d (%s)") at end.c:705
#4  0x00005555556b3b30 in sanity_check_single_mon (mtmp=mtmp@entry=0x555555b2ab00, chk_geno=chk_geno@entry=1 '\001', msg=msg@entry=0x555555833eb9 "fmon") at mon.c:63
#5  0x00005555556b44b0 in mon_sanity_check () at mon.c:205
#6  0x00005555555e000a in sanity_check () at cmd.c:3012
#7  0x00005555555b312e in moveloop (resuming=<optimized out>) at allmain.c:493
#8  0x00005555557eb29b in main (argc=<optimized out>, argv=0x7fffffffe658) at ../sys/unix/unixmain.c:335

Any help with this issue would be greatly appreciated.

just jotting down this important looking warning before i go to sleep

this seems important:

makemon.c: In function ‘m_initweap’:
makemon.c:648:9: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
  648 |         if (!rn2(4))
makemon.c:650:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
  650 |             break;

and this attempt to block exploders from becoming explosive, looks like valid syntax based on other things in this file. but it isn't:

makemon.c: In function ‘is_valid_template’:
makemon.c:2805:21: error: ‘struct monst’ has no member named ‘mlet’
 2805 |         return !mtmp->mlet == (S_EYE || S_LIGHT);

Hand Grenade Explosions are sometimes the wrong type.

This issue occurs when a monster throws a frag grenade. The explosion type should be fiery, but instead it appears as magical. This issue is not present whenever the player throws a grenade.

The issue is fairly clearly the fault of the grenade_explode code in zap.c, reproduced here:

/*
 * Note: obj is not valid after return
 */
void
grenade_explode(struct obj *obj, int x, int y, boolean isyou)
{
    int ztype;
    int otyp = obj->otyp;
    int yours = isyou ? 1 : -1;
    boolean save_mon_moving = g.context.mon_moving;

    g.context.mon_moving = yours ? FALSE : TRUE;

    if (obj->oartifact == ART_HAND_GRENADE_OF_ANTIOCH) {
        ztype = isyou * ZT_SPELL(ZT_MAGIC_MISSILE);
        explode(x, y, ztype, d(50,6), WEAPON_CLASS,
            isyou * -1 * EXPL_FIERY);
    } else if (otyp == FRAG_GRENADE) {
        ztype = isyou * ZT_SPELL(EXPL_FIERY);
        explode(x, y, ztype, d(3,6), WEAPON_CLASS,
            isyou * -1 * EXPL_FIERY);
    } else if (otyp == GAS_GRENADE) {
        ztype = isyou * ZT_SPELL(ZT_POISON_GAS);
        explode(x, y, ztype, d(3,6), WEAPON_CLASS,
            isyou * -1 * EXPL_NOXIOUS);
    }
    g.context.mon_moving = save_mon_moving;
    wake_nearto(x, y, 400);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.