Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Variants (http://angband.oook.cz/forum/forumdisplay.php?f=4)
-   -   Animeband - The worst variant ever (http://angband.oook.cz/forum/showthread.php?t=49)

ehuangsan May 15, 2007 08:19

Animeband - The worst variant ever
 
Discuss anything and everything about the bastard child born from a drunk hententmon schoolgirl called Animeband in this thread. Please keep the flaming to a minimum.

日本語でどうぞ。

ehuangsan May 15, 2007 08:34

Known bugs in the current alpha
 
Known bugs and stuff in the current 0.6.0 alpha

- After going up or down stairs to a new level, the hunger indicator in the status bar is blanked out. It doesn't update until hunger status changes.

- If you take off a mecha while in a shop, your HP/Max HP will overwrite the shop inventory. Wielding the Mecha probably induces the same problem.

- Replacement technique will induce mystical hits from nowhere (doesn't happen in 0591). I know why it happens; I just don't know how to fix it well, and the previous 0591 solution was stupid anyway.

- Naive solution to the so called too much junk problem induces starvation.

- Chuukei on watch setting spews out funky text when player is X or 変愚 (if you're not Japanese, don't worry about this one)

- Rasengan doesn't work quite right. Similar problem to the replacement technique.

- Train station ought to be a menu

- Hamiltonian chain code should be rewritten and recommented so I can understand how the heck it works again.

Please let me know if y'all find any other bugs. Since my coding skills and my spare time are declining exponentially each day, I would appreciate some help too.

arcum42 May 16, 2007 10:26

Does being totally unable to compile it count as a bug?

lux Animeband060a2src # make
Making all in src
make[1]: Entering directory `/usr/local/src/angband/Animeband060a2src/src'
Makefile:290: *** missing separator. Stop.
make[1]: Leaving directory `/usr/local/src/angband/Animeband060a2src/src'
make: *** [all-recursive] Error 1
lux Animeband060a2src # cd src
lux src # make -f Makefile.std
gcc -I/usr/X11R6/include -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -D"USE_X11" -D"USE_GCU" -D"USE_NCURSES" -c -o cave.o cave.c
cave.c: In function 'prt_path':
cave.c:1449: error: too many arguments to function 'map_info'
cave.c: In function 'cave_set_feat':
cave.c:3535: warning: suggest parentheses around && within ||
make: *** [cave.o] Error 1
lux src # make -f Makefile.gtk
gcc -Wall -o `gtk-config --cflags` -D"USE_GTK" -g -c -o cave.o cave.c
cave.c: In function 'prt_path':
cave.c:1449: error: too many arguments to function 'map_info'
cave.c: In function 'cave_set_feat':
cave.c:3535: warning: suggest parentheses around && within ||
make: *** [cave.o] Error 1

(And, yes, I'm sure if I dinked around a bit with cave.c, I could get it to compile, but still...)

--Shanoah

ehuangsan May 17, 2007 06:01

Oh yeah, it doesn't compile on some of the newer versions of GCC. I forgot which versions though.

If everything goes right, it should just compile with a billion different warnings.

arcum42 May 17, 2007 06:35

Ah, that'd explain it - the only version of gcc I have on here is 4.1.1. Wonder if my amd64 processor would give it problems, too? Ah well, I'll hold off on it for a bit. I've still got Oangband, Sangband, and Vanilla to play with, after all...

--Shanoah

Leon Marrick May 17, 2007 13:39

Quote:

Originally Posted by arcum42 (Post 519)
Does being totally unable to compile it count as a bug?

gcc -I/usr/X11R6/include -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -D"USE_X11" -D"USE_GCU" -D"USE_NCURSES" -c -o cave.o cave.c
cave.c: In function 'prt_path':
cave.c:1449: error: too many arguments to function 'map_info'

Check USE_TRANSPARENCY. That'd be the obvious suspect here.

Quote:

Originally Posted by ehuangsan (Post 542)
Oh yeah, it doesn't compile on some of the newer versions of GCC. I forgot which versions though.

If everything goes right, it should just compile with a billion different warnings.

It's worth your time to remove these warnings. My code got a LOT less troublesome once I started testing on more compilers with better error messages. For a long time (pretty much up to Oangband 0.4.0) I was using only makefile.ibm, with no extra warnings. Took me forever to figure out why people couldn't compile my crap...

arcum42 May 17, 2007 21:31

Yep. Looking at the code, prt_path should be checking for transparency, but instead is just assuming you have it. So Animeband is uncompilable if you don't have transparency, currently. I hacked an #ifdef in, which got me past that error.

That got me to wizards2.c, where wiz_create_itemtype doesn't match externs.h (and yes, a million error messages.

Which led me up to this batch of errors. Sadly, I have to get going, so they'll have to wait:

util.o: In function `my_fopen_temp':
util.c:(.text+0x2f56): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
z-term.o: In function `Term_inkey':
z-term.c:(.text+0x2b00): undefined reference to `flush_ringbuf'
dungeon.o: In function `play_game':
dungeon.c:(.text+0x31bb): undefined reference to `browse_movie'
dungeon.c:(.text+0x31ca): undefined reference to `prepare_chuukei_hooks'
dungeon.c:(.text+0x31e8): undefined reference to `browse_chuukei'
dungeon.o: In function `process_command':
dungeon.c:(.text+0x22d): undefined reference to `prepare_movie_hooks'
main.o: In function `main':
main.c:(.text+0x394): undefined reference to `connect_chuukei_server'
main.c:(.text+0x481): undefined reference to `prepare_browse_movie'
main.c:(.text+0x4a6): undefined reference to `connect_chuukei_server'
collect2: ld returned 1 exit status
make: *** [angband] Error 1

--shanoah

ehuangsan May 18, 2007 09:34

Yeah, most of the warnings are WIP stuff that I haven't implemented yet, so there are lots of variables doing nothing. The only exception is the chuukei code, which was created by voodoo magic.

arcum42 May 18, 2007 10:00

Ah. Well, here's the completion of the saga so far:

First, I added the #ifdef USE_TRANSPARENCY around map_info in cave.c, to change the number of args properly.

Then I took, IIRC, static off of wiz_create_itemtype in wizards2.c, to match externs.h.

Finally, I added chuukei.c/o to the list of source files and object files in Makefile.std.

And, naturally, I played around with commenting and uncommenting a few of the different sections, to try compiling as, say, xaw, x11, and ncurses.

It now compiles. It hangs immediately after running the executable, but it compiles. (the x11 or xaw window never comes up, ncurses doesn't draw anything, and gcu clears the screen and sits with a blank screen). Too much voodoo, perhaps...

Note, I was using make -f Makefile.std simply because the main make file seemed to be broken.
I'm not sure it prepared anything beyond that.

As far as the warnings go, a lot are, yeah, but there are others. Some arguments probably just need to be recast, etc. Here's the warnings, for reference:

Code:

lux src # make -f Makefile.std
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o z-util.o z-util.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o z-virt.o z-virt.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o z-form.o z-form.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o z-rand.o z-rand.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o z-term.o z-term.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o variable.o variable.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o tables.o tables.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o util.o util.c
util.c: In function 'quarks_free':
util.c:1919: warning: value computed is not used
util.c: In function 'messages_free':
util.c:2312: warning: value computed is not used
util.c:2313: warning: value computed is not used
util.c:2314: warning: value computed is not used
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cave.o cave.c
cave.c: In function 'prt_path':
cave.c:1443: warning: unused variable 'tc'
cave.c:1442: warning: unused variable 'ta'
cave.c: In function 'cave_set_feat':
cave.c:3538: warning: suggest parentheses around && within ||
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o object1.o object1.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o object2.o object2.c
object2.c: In function 'compact_objects_aux':
object2.c:389: warning: value computed is not used
object2.c: In function 'object_copy':
object2.c:1512: warning: value computed is not used
object2.c: In function 'inven_item_optimize':
object2.c:3751: warning: value computed is not used
object2.c: In function 'combine_pack':
object2.c:4308: warning: value computed is not used
object2.c: In function 'inven_takeoff':
object2.c:20: warning: 'mechmax' may be used uninitialized in this function
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o monster1.o monster1.c
monster1.c: In function 'roff_aux':
monster1.c:166: warning: value computed is not used
monster1.c:1376: warning: value computed is not used
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o monster2.o monster2.c
monster2.c: In function 'compact_monsters_aux':
monster2.c:146: warning: value computed is not used
monster2.c: In function 'monster_place':
monster2.c:1412: warning: value computed is not used
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o xtra1.o xtra1.c
xtra1.c: In function 'calc_bonuses':
xtra1.c:2197: warning: unused variable 'r_ptr'
xtra1.c: In function 'prt_hp':
xtra1.c:463: warning: 'mechmax' may be used uninitialized in this function
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o xtra2.o xtra2.c
xtra2.c:3965: warning: 'target_set_interactive_accept_monster' defined but not used
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o spells1.o spells1.c
spells1.c: In function 'take_hit':
spells1.c:455: warning: unused variable 'old_c_meter'
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o spells2.o spells2.c
spells2.c:3923:2: warning: no newline at end of file
spells2.c: In function 'do_cmd_cook':
spells2.c:1773: warning: 'o_ptr' may be used uninitialized in this function
spells2.c:1774: warning: 'o_ptr2' may be used uninitialized in this function
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o melee1.o melee1.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o melee2.o melee2.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o save.o save.c
save.c:1181:2: warning: "/*" within comment
save.c:1182:2: warning: "/*" within comment
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o files.o files.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cmd1.o cmd1.c
cmd1.c: In function 'py_attack':
cmd1.c:1864: warning: unused variable 'dir'
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cmd2.o cmd2.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cmd3.o cmd3.c
cmd3.c: In function 'do_cmd_query_symbol':
cmd3.c:1560: warning: value computed is not used
cmd3.c:1594: warning: value computed is not used
cmd3.c:1694: warning: value computed is not used
cmd3.c: In function 'do_cmd_wield':
cmd3.c:19: warning: 'mechmax' may be used uninitialized in this function
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cmd4.o cmd4.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cmd5.o cmd5.c
cmd5.c: In function 'do_cmd_study_chi_warrior':
cmd5.c:361: warning: unused variable 'p'
cmd5.c: In function 'do_cmd_ninjutsu':
cmd5.c:1434: warning: unused variable 'px'
cmd5.c:1433: warning: unused variable 'py'
cmd5.c: In function 'do_cmd_intrinsic':
cmd5.c:3469: warning: unused variable 'redraw'
cmd5.c:3468: warning: unused variable 'flag'
cmd5.c:3457: warning: unused variable 'px'
cmd5.c:3456: warning: unused variable 'py'
cmd5.c:4301:4: warning: "/*" within comment
cmd5.c: In function 'do_cmd_chi_power':
cmd5.c:4880: warning: unused variable 'redraw'
cmd5.c:4879: warning: unused variable 'flag'
cmd5.c: In function 'do_cmd_mimic_cast':
cmd5.c:5333: warning: unused variable 'redraw'
cmd5.c:5332: warning: unused variable 'flag'
cmd5.c:5317: warning: unused variable 'px'
cmd5.c:5316: warning: unused variable 'py'
cmd5.c: In function 'do_cmd_mknight':
cmd5.c:6069: warning: unused variable 'redraw'
cmd5.c:6068: warning: unused variable 'flag'
cmd5.c:5991: warning: unused variable 'px'
cmd5.c:5990: warning: unused variable 'py'
cmd5.c: In function 'do_cmd_sentai_power':
cmd5.c:6564: warning: unused variable 'plev'
cmd5.c:6561: warning: unused variable 'redraw'
cmd5.c:6560: warning: unused variable 'flag'
cmd5.c: In function 'do_cmd_power':
cmd5.c:6931: warning: unused variable 'redraw'
cmd5.c:6930: warning: unused variable 'flag'
cmd5.c:6901: warning: unused variable 'px'
cmd5.c:6900: warning: unused variable 'py'
cmd5.c: In function 'do_cmd_mecha':
cmd5.c:7145: warning: unused variable 'plev'
cmd5.c:7142: warning: unused variable 'redraw'
cmd5.c:7141: warning: unused variable 'flag'
cmd5.c:7123: warning: unused variable 'px'
cmd5.c:7122: warning: unused variable 'py'
cmd5.c:7792:4: warning: "/*" within comment
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o cmd6.o cmd6.c
cmd6.c: In function 'do_cmd_read_scroll':
cmd6.c:1429: warning: 'mechmax' may be used uninitialized in this function
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o store.o store.c
store.c: In function 'handle_special_store':
store.c:989: warning: unused variable 'o_ptr'
store.c:2285:3: warning: "/*" within comment
store.c: In function 'store_request_item':
store.c:4504: warning: unused variable 'px'
store.c:4503: warning: unused variable 'py'
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o birth.o birth.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o load2.o load2.c
load2.c:1543:2: warning: "/*" within comment
load2.c:1544:2: warning: "/*" within comment
load2.c: In function 'rd_extra':
load2.c:1637: warning: pointer targets in passing argument 1 of 'rd_byte' differ in signedness
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o wizard1.o wizard1.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o wizard2.o wizard2.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o generate.o generate.c
generate.c: In function 'town_gen':
generate.c:4878: warning: unused variable 'a'
generate.c: In function 'wilderness_gen':
generate.c:1185: warning: 'daytime' may be used uninitialized in this function
generate.c:813: warning: 'py' may be used uninitialized in this function
generate.c:812: warning: 'px' may be used uninitialized in this function
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o dungeon.o dungeon.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o init1.o init1.c
init1.c: In function 'parse_c_info':
init1.c:2996: warning: format '%d' expects type 'int *', but argument 3 has type 'byte_hack *'
init1.c:2996: warning: format '%d' expects type 'int *', but argument 4 has type 'byte_hack *'
init1.c:2996: warning: format '%d' expects type 'int *', but argument 5 has type 'byte_hack *'
init1.c:2996: warning: format '%d' expects type 'int *', but argument 6 has type 'byte_hack *'
init1.c:2996: warning: format '%d' expects type 'int *', but argument 7 has type 'byte_hack *'
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o init2.o init2.c
init2.c: In function 'init_info_raw':
init2.c:318: warning: value computed is not used
init2.c: In function 'free_info':
init2.c:607: warning: value computed is not used
init2.c:610: warning: value computed is not used
init2.c:613: warning: value computed is not used
init2.c: In function 'init_angband':
init2.c:1868: warning: format '%d' expects type 'int', but argument 3 has type 'long int'
init2.c: In function 'cleanup_angband':
init2.c:2026: warning: value computed is not used
init2.c:2027: warning: value computed is not used
init2.c:2039: warning: value computed is not used
init2.c:2040: warning: value computed is not used
init2.c:2041: warning: value computed is not used
init2.c:2052: warning: value computed is not used
init2.c:2058: warning: value computed is not used
init2.c:2063: warning: value computed is not used
init2.c:2066: warning: value computed is not used
init2.c:2069: warning: value computed is not used
init2.c:2072: warning: value computed is not used
init2.c:2073: warning: value computed is not used
init2.c:2074: warning: value computed is not used
init2.c:2080: warning: value computed is not used
init2.c:2081: warning: value computed is not used
init2.c:2086: warning: value computed is not used
init2.c:2087: warning: value computed is not used
init2.c:2088: warning: value computed is not used
init2.c:2089: warning: value computed is not used
init2.c:2092: warning: value computed is not used
init2.c:2095: warning: value computed is not used
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o randart.o randart.c
randart.c: In function 'init_names':
randart.c:827: warning: value computed is not used
randart.c: In function 'scramble':
randart.c:2103: warning: value computed is not used
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o chuukei.o chuukei.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o main-cap.o main-cap.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o main-gcu.o main-gcu.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o main-x11.o main-x11.c
main-x11.c: In function 'init_x11':
main-x11.c:2469: warning: assignment from incompatible pointer type
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o main-xaw.o main-xaw.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o main.o main.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET"  -c -o maid-x11.o maid-x11.c
gcc -I/usr/include/ncurses -Wall -O2 -fno-strength-reduce -fomit-frame-pointer -D"USE_X11" -D"USE_GCU" -D"USE_TPOSIX" -D"USE_CURS_SET" -s -o angband z-util.o z-virt.o z-form.o z-rand.o z-term.o variable.o tables.o util.o cave.o object1.o object2.o monster1.o monster2.o xtra1.o xtra2.o spells1.o spells2.o melee1.o melee2.o save.o files.o cmd1.o cmd2.o cmd3.o cmd4.o cmd5.o cmd6.o store.o birth.o load2.o wizard1.o wizard2.o generate.o dungeon.o init1.o init2.o randart.o chuukei.o main-cap.o main-gcu.o main-x11.o main-xaw.o main.o maid-x11.o -lX11 -lncurses
util.o: In function `my_fopen_temp':
util.c:(.text+0x2f56): warning: the use of `tmpnam' is dangerous, better use `mkstemp'

And sorry if I sort of hijacked the thread with compilation issues. I'm sure people that actually can play the game would like to comment on it, as well...

--Shanoah

ehuangsan May 19, 2007 03:01

That is quite weird. It sould at least run. I'll have to look into it when I get the chance.

phaethon_h May 19, 2007 08:30

subversion
 
I arranged for a SVN (Subversion) repository for animeband (it's like CVS, but less clunky):

http://svn.icculus.org/animeband/
http://svn.icculus.org/animeband/trunk

for web-based views of the source tree.


Code:

svn co svn://svn.icculus.org/animeband/trunk animeband
for the more developmentally-oriented.

Commit access can be granted rather painlessly (unlike CVS).


We also have animeband as part of icculus.org's buzilla bug-tracking system: http://bugzilla.icculus.org/

(for what it's worth, bugzilla is the bug-tracking system originally created for and used by Mozilla/Firefox development, available as a standalone system)

The bugs database is shared with a number of other projects; animeband is one of the projects ("Product"="Animeband").

I can delve into a few primers on svn and bugzilla in this thread if needed.

Let the coding commence.

ehuangsan May 19, 2007 08:36

Oh excellent. Thanks a lot! :)

phaethon_h May 24, 2007 12:14

I added code which I think fixes one of the Replacement Technique bugs, where you teleport out of a multi-hit attack and end up teleporting into the middle of another multi-hit attack ("monster1 hit 1 of 3, teleport, monster2 hit 2/3, monster2 hit 3/3").

My idea was basically to implement "phasing out" for the duration of the turn (cf Shadowcat, Gouki/Athena teleport), so the monsters try all the motion but end up doing nothing to you (literally attacking empty air).

The one gotcha is that the teleport expends "action energy" (akin to a RPG "turn gauge/meter")... on the next turn, if you're "tired" enough, the monster you teleported next to may get a chance to attack before you get a chance to move. This is what happens with regular angband teleporting, but Replacement Technique is supposed to escape danger -- so I don't know if the "phase-in" should happen at the start of the turn (before you move, as it is now) or just as you get to move (complete escape, but godly-priority cheap).

ehuangsan May 24, 2007 16:24

Quote:

Originally Posted by phaethon_h (Post 667)
I added code which I think fixes one of the Replacement Technique bugs, where you teleport out of a multi-hit attack and end up teleporting into the middle of another multi-hit attack ("monster1 hit 1 of 3, teleport, monster2 hit 2/3, monster2 hit 3/3").

My idea was basically to implement "phasing out" for the duration of the turn (cf Shadowcat, Gouki/Athena teleport), so the monsters try all the motion but end up doing nothing to you (literally attacking empty air).

The one gotcha is that the teleport expends "action energy" (akin to a RPG "turn gauge/meter")... on the next turn, if you're "tired" enough, the monster you teleported next to may get a chance to attack before you get a chance to move. This is what happens with regular angband teleporting, but Replacement Technique is supposed to escape danger -- so I don't know if the "phase-in" should happen at the start of the turn (before you move, as it is now) or just as you get to move (complete escape, but godly-priority cheap).

Actually I didn't care much about that scenario as I did about this:

Monster 1 hits you, Monster 1 hits you, you teleport, Monster 1 hits you, Monster 1 misses you.

If you try making it so that it can interrupt an attack at anytime, funky things happen. Honestly, if you teleport and Monster 2 happens to hit you, I say oh well, that's just silly luck.

phaethon_h May 26, 2007 00:21

Quote:

Originally Posted by ehuangsan (Post 671)
Actually I didn't care much about that scenario as I did about this:

Monster 1 hits you, Monster 1 hits you, you teleport, Monster 1 hits you, Monster 1 misses you.

If you try making it so that it can interrupt an attack at anytime, funky things happen. Honestly, if you teleport and Monster 2 happens to hit you, I say oh well, that's just silly luck.

hrm. That particular scenario didn't happen to me in 060a2. The scenario I posted did happen, though: A-hit1/3, teleport next to B, B-hit2/3, B-hit3/3. But then again it was a large horde of vicious Hello Kittys (Kitties?),: if I teleported next to another HK, I got hit by the remaining number of hits from a HK, but if I ended up in the clear, no remote hits. So I assume it was the other HK getting in the last hits.

ehuangsan May 26, 2007 02:43

Quote:

Originally Posted by phaethon_h (Post 690)
hrm. That particular scenario didn't happen to me in 060a2. The scenario I posted did happen, though: A-hit1/3, teleport next to B, B-hit2/3, B-hit3/3. But then again it was a large horde of vicious Hello Kittys (Kitties?),: if I teleported next to another HK, I got hit by the remaining number of hits from a HK, but if I ended up in the clear, no remote hits. So I assume it was the other HK getting in the last hits.

That's because my dumb solution was to only make the replacement technique work on first monster hit. If you tried to make it interrupt a string of hits coming from one monster, then the problem occurs.

ehuangsan May 30, 2007 06:52

Did you manage to replicate the previous solution? I think I should have an old beta version lying around somewhere that has it.

phaethon_h June 1, 2007 06:21

Quote:

Originally Posted by ehuangsan (Post 783)
Did you manage to replicate the previous solution? I think I should have an old beta version lying around somewhere that has it.

um... no?... o_O

ehuangsan June 2, 2007 03:47

Ah, I think I remember how to replicate it.

Change the "break" statement in melee1.c where the replacement code is to "continue". Otherwise, replacement only works on the first hit of the monster melee. I don't understand why that happens though.

phaethon_h June 2, 2007 10:50

I think I'm going to need a log/messages dump of right and wrong (fabricated or not) to understand what you're trying to get at :confused:

ehuangsan June 2, 2007 16:17

Quote:

Originally Posted by phaethon_h (Post 823)
I think I'm going to need a log/messages dump of right and wrong (fabricated or not) to understand what you're trying to get at :confused:

At its current implementation, it'll only check for replacement on the monster's first attack. So you're never gonna get the situation of "Monster 1 hits you, monster 1 hits you, You use the replacement technique" for a monster with 4 attacks.

When I tried to implement that previously, it would spew something funny like "Monster 1 hits you, you use replacement, Monster 1 hits you, etc." despite the fact you are clearly phased away.

phaethon_h June 3, 2007 10:11

Changed break to continue with what's in svn and got this little game transaction:
Code:

Message Recall (0-19 of 108), Offset 0                                         
                                                                               
You hit the Drunk JET guy.
You hit the Drunk JET guy.
You miss the Drunk JET guy.
The Drunk JET guy begs you for money.
You hit the Drunk JET guy.
The Drunk JET guy flees in terror!
You hit the Drunk JET guy.
You hit the Scruffy little dog.
The Scruffy little dog flees in terror!
You hit the Hello Kitty.
The Hello Kitty claws you.
The Hello Kitty claws you.
The Hello Kitty claws you.
The Hello Kitty claws you.
The Hello Kitty attacks you, but you use the replacement technique!
You feel something roll beneath your feet.
You get a log ready.
You hit the Hello Kitty.
The Hello Kitty attacks you, but you use the replacement technique!
You feel something roll beneath your feet.

Don't know what to make of it.

ehuangsan June 3, 2007 22:16

Test it with ugly sticks and see what happens.

phaethon_h June 4, 2007 00:11

Quote:

Originally Posted by ehuangsan (Post 850)
Test it with ugly sticks and see what happens.

This... doesn't look right?...
Code:

Message Recall (0-19 of 521), Offset 0                                         
                                                                               
You get a log ready.                                                           
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
You hit the Ugly stick.                                                       
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
You hit the Ugly stick.                                                       
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
The Ugly stick hits you.                                                       
You hit the Ugly stick.                                                       
You hit the Ugly stick.                                                       
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
                                                                               
[Press 'p' for older, 'n' for newer, ..., or ESCAPE]


ehuangsan June 4, 2007 08:23

Quote:

Originally Posted by phaethon_h (Post 852)
This... doesn't look right?...
Code:

Message Recall (0-19 of 521), Offset 0                                         
                                                                               
You get a log ready.                                                           
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
You hit the Ugly stick.                                                       
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
You hit the Ugly stick.                                                       
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
You get a log ready.                                                           
The Ugly stick hits you.                                                       
You hit the Ugly stick.                                                       
You hit the Ugly stick.                                                       
The Ugly stick attacks you, but you use the replacement technique!             
You feel something roll beneath your feet.                                     
                                                                               
[Press 'p' for older, 'n' for newer, ..., or ESCAPE]


Oh I forgot, ugly sticks are no loner multi hit. Try Black Chameleons instead then.

phaethon_h June 6, 2007 23:18

This is using continue, so now I see what you mean. I know why this happens. Give me several minutes.

Code:

Message Recall (0-19 of 58), Offset 0                                         
                                                                               
The Ugly stick attacks you, but you use the replacement technique!
You feel something roll beneath your feet.
You can learn 12 more spells.
You do not have enough meter to use that power!.
You get a log ready.
You hit the Black Chameleon.
The Black Chameleon bites you.
The Black Chameleon claws you.
The Black Chameleon attacks you, but you use the replacement technique!
You feel something roll beneath your feet.
You get a log ready.
The Black Chameleon attacks you, but you use the replacement technique!
You feel something roll beneath your feet.
The Black Chameleon claws you.
The Black Chameleon hits you.
You get a log ready.
The Black Chameleon bites you.
The Black Chameleon claws you.
The Black Chameleon attacks you, but you use the replacement technique!
You feel something roll beneath your feet.


phaethon_h June 6, 2007 23:23

hrm... fixed?

Code:

Message Recall (0-19 of 60), Offset 0
                                                                               
You can learn 12 more spells.
You feel something roll beneath your feet.
Allocated.
You feel very good.
You are full!
You see no more Gold Potions of Healing.
You get a log ready.
You hit the Black Chameleon.
The Black Chameleon bites you.
The Black Chameleon attacks you, but you use the replacement technique!
You feel something roll beneath your feet.
You get a log ready.
You hit the Black Chameleon.
You hit the Black Chameleon.
The Black Chameleon attacks you, but you use the replacement technique!
You feel something roll beneath your feet.
You get a log ready.
You are no longer full.
The Black Chameleon attacks you, but you use the replacement technique!
You feel something roll beneath your feet.


ehuangsan June 7, 2007 03:23

Hah! I dunno anymore :confused:

phaethon_h June 8, 2007 14:04

Debugging the disappearing Hunger indicator.

I've nailed down where the problem is. Basically on a dungeon level change, the hunger indicator does get drawn, but is immediately overwritten by the status bar, which fills the entire row with blanks then prints "Srch", "Lev N", etc. Now, the obvious things seems to be to reverse the order of the draw... but apparently the blindness indicator gets drawn twice... once explcitly on level change, then again in the statusbar. The two locations don't line up. There are apparently other indicators that have this "ghost-image" effect as well, based on patterns in the source text.

EDIT: and why it reappears on hunger change is because only the hunger indicator gets drawn, the statusbar isn't redrawn.

I want to see what the upstream angband does, before committing any changes.

takkaria June 8, 2007 14:09

Quote:

Originally Posted by phaethon_h (Post 943)
Debugging the disappearing Hunger indicator.

I've nailed down where the problem is. Basically on a dungeon level change, the hunger indicator does get drawn, but is immediately overwritten by the status bar, which fills the entire row with blanks then prints "Srch", "Lev N", etc. Now, the obvious things seems to be to reverse the order of the draw... but apparently the blindness indicator gets drawn twice... once explcitly on level change, then again in the statusbar. The two locations don't line up. There are apparently other indicators that have this "ghost-image" effect as well, based on patterns in the source text.

I want to see what the upstream angband does, before committing any changes.

Angband just prints each individual statusline item in a predetermined fixed location. It'll be changing soon, though, to one which lists all effects from left to right whenever a redraw is required.

ehuangsan June 9, 2007 03:13

Quote:

Originally Posted by phaethon_h (Post 943)
Angband just prints each individual statusline item in a predetermined fixed location. It'll be changing soon, though, to one which lists all effects from left to right whenever a redraw is required.

Weird, I thought that the XAngband messaging system (which I stole and added to Animeband) did something similar to this.

If not, this would've been the way I would've done it.

phaethon_h June 10, 2007 07:30

Quote:

Originally Posted by ehuangsan (Post 952)
Weird, I thought that the XAngband messaging system (which I stole and added to Animeband) did something similar to this.

If not, this would've been the way I would've done it.

(a) that wasn't me you quoted :P
(b) it looks like a case of mixed code. Old angband statusbar conflicts with the XAngband statusbar you jacked. XAngband-style does not have the differing levels of hunger, but the non-X does... so... well... you probably get the conflict at this point.

phaethon_h June 27, 2007 00:03

btw, how do I *get* to the train station?

ehuangsan June 27, 2007 06:24

Choose quest mode and go to the train station in the upper left hand corner. Yeah, the train station interface needs to be changed too; make it more like a town or something.

phaethon_h June 27, 2007 13:23

Quote:

Originally Posted by ehuangsan (Post 1212)
Choose quest mode and go to the train station in the upper left hand corner. Yeah, the train station interface needs to be changed too; make it more like a town or something.

Holy cow. NOW I see the problem.

EDIT: and the problem is now fixed in svn.

ehuangsan September 3, 2007 02:23



How's the "too_much_junk" idiocy going?

p_ouji January 16, 2008 05:31

Some stuff of note.

Ninja Transform spell breaks when target is an invisible adjacent monster. PC w/o SeeInvis mimics invisible KiriKiriMai and ends up with -95 speed and the KKM kills her.

Original rooms force "Special" level feelings, including Cats Eye pits, grocery, and original vaults. Extremely annoying and kills the value of Preserve Off.

Haven't bothered with TMJ recently. Seems only the highest level Wyrms drop objects. It would by a good idea to at least force uniques to drop objects. With TMJ on.

ehuangsan January 17, 2008 02:13

Quote:

Originally Posted by p_ouji (Post 4886)
Ninja Transform spell breaks when target is an invisible adjacent monster. PC w/o SeeInvis mimics invisible KiriKiriMai and ends up with -95 speed and the KKM kills her.

Wow. I can't even fathom why that would happen. :confused:

konijn_ January 17, 2008 23:10

Quote:

Originally Posted by ehuangsan (Post 4898)
Wow. I can't even fathom why that would happen. :confused:

I would imagine that the speed bonus wrapped around for the player ? So becoming bigger than max and becoming negative.

T.

Therem Harth January 19, 2008 01:37

Another compile error, in the current version (not the alpha):

Code:

store.c:4502: error: static declaration of ‘store_request_item’ follows non-static declaration
externs.h:681: error: previous declaration of ‘store_request_item’ was here
store.c:4672: error: static declaration of ‘store_ego_item’ follows non-static declaration
externs.h:682: error: previous declaration of ‘store_ego_item’ was here
store.c:4780: error: static declaration of ‘is_egoable’ follows non-static declaration
externs.h:683: error: previous declaration of ‘is_egoable’ was here
make[1]: *** [store.o] Error 1
make[1]: Leaving directory `/home/proteus/Animeband0591src/src'
make: *** [all-recursive] Error 1

Just thought you ought to know.

phaethon_h April 2, 2008 11:24

Animeband 0.6.1a release, build/compiler adjustments to 0.6.1. Binary (compiled version) packages available now, for GNU/Linux x86, MS-Windows x86, MS-DOS x86.

Major changes:
  • Train station is menu.
  • Enhancements (fixes?) to Replacement Technique.
Project page: http://www.icculus.org/animeband/
Downloads page: http://www.icculus.org/animeband/download.php

EDIT: added binaries packages.

p_ouji April 7, 2008 02:42

animeband 0.6.1a win-binary
 
The windows package binary seems to have invisible walls/granite/magma/etc. I've changed the visuals ingame to default by the visuals menu (very tedious), and now I have all the walls looking like '#'s. I prefer playing with solid block walls but don't quite know how. This is also the first time playing animeband in Vista so that might be contributing to the problem.

Thanks for the release and stepping up as maintainer.

Nick April 7, 2008 07:33

Quote:

Originally Posted by p_ouji (Post 7097)
The windows package binary seems to have invisible walls/granite/magma/etc. I've changed the visuals ingame to default by the visuals menu (very tedious), and now I have all the walls looking like '#'s. I prefer playing with solid block walls but don't quite know how. This is also the first time playing animeband in Vista so that might be contributing to the problem.

Yep, this is a standard Vista feature. The less tedious fix is to delete font-win.prf from the lib\pref folder.

p_ouji April 29, 2008 20:41

In the binary, the lib/xtra/sound directory has the graphics tiles, and the lib/xtra/graf directory has the sound files.

p_ouji April 30, 2008 00:43

Pyrotechnics crashed the game in Vista (targeting Uchiha Sasuke in the arena). Sort of odd since the move has been pretty stable in versions past.

phaethon_h April 30, 2008 07:32

Quote:

Originally Posted by p_ouji (Post 7699)
In the binary, the lib/xtra/sound directory has the graphics tiles, and the lib/xtra/graf directory has the sound files.

Good catch there. Fix is in SVN. I don't know if this is a severe enough problem to push out another binary package. Thoughts?

Quote:

Originally Posted by p_ouji (Post 7704)
Pyrotechnics crashed the game in Vista (targeting Uchiha Sasuke in the arena). Sort of odd since the move has been pretty stable in versions past.

OK, this one's weird. I don't know why that would happen, nor how to even remotely replicate the crash.

p_ouji April 30, 2008 12:21

Pyrotechnics (and the entire sentai movelist) has weird properties. It doesn't use the "previous target" option (neither does cosplayer mimic skill or ninja transform skill) and if there is no visible target, the player can target almost anywhere on the screen and do weird things like teleport past walls to unexplored areas and, teleport beyond the targeting range. I'm no coder, but I'll hazard a guess to the crash. Maybe the move is teleporting the PC and monster to the same location, or maybe its having problems drawing something to the screen since I'm not seeing the grey area effect cloud of the move(has this been removed?).

phaethon_h April 30, 2008 18:53

Quote:

Originally Posted by p_ouji (Post 7715)
Pyrotechnics (and the entire sentai movelist) has weird properties. It doesn't use the "previous target" option (neither does cosplayer mimic skill or ninja transform skill) and if there is no visible target, the player can target almost anywhere on the screen and do weird things like teleport past walls to unexplored areas and, teleport beyond the targeting range. I'm no coder, but I'll hazard a guess to the crash. Maybe the move is teleporting the PC and monster to the same location, or maybe its having problems drawing something to the screen since I'm not seeing the grey area effect cloud of the move(has this been removed?).

The only changes I made were to fix straightforward compiler errors and the compile system (the files ending up at the wrong place was basically a name switch in the install script), so gameplay-wise, nearly nothing should have changed.

So I fiddled with sentai moves a bit. When no targets are visible, it's possible to effectively target invisible monsters:

# @ <- no monsters in sight
#### <- titanium wall
# ? <- currently invisible monster due to running behind the wall

Targeting the unseen monster is identified as open space (or similar). Yet Pyrotechnics can hit the monster despite (a) being unseen and (b) being behind a wall, leading to (c) teleporting through the wall. I've also done similar with targeting yet-to-be-seen monsters on the other side of the level and warping way too far for what the move should allow. I think this is what you discovered as well. Clearly, this is the Wrong Thing.

But, I don't know if this is related to the crash or not. I'll look into sanitizing the relevant moves first, and see if that helps any. Let me know if (and how) you can reliably cause crashes with the glitchy moves in the current release.

EDIT: Addendum: to make it even more broken, during targeting, you can press 'o' for look-mode ("free targeting") and target anything at anytime, instead of only when no monsters are seen.

MrCba June 12, 2008 19:46

I love animeband !

A little bug :
In the first screen with application's title the version's number is wrong :)

A little suggestion :
A better description for object
Something more evolved than 'affect your strength' something like '+4 strength' will be better. And a description of the effect stored in object. For example allow illumination every 10 turns.


I can also help you ! So send me a personal message in this case.

regards,
Cba

MrCba June 20, 2008 22:26

Hello,
Does someone have compiled under windows Animeband using Eclipse CDT ?

Just wanting some helps (a short tutorial for example)

Perhaps may I use an other software under Windows any suggestion ?

ehuangsan June 21, 2008 06:51

Quote:

Originally Posted by MrCba (Post 8703)
Hello,
Does someone have compiled under windows Animeband using Eclipse CDT ?

Just wanting some helps (a short tutorial for example)

Perhaps may I use an other software under Windows any suggestion ?

Have you tried MSVC++? The compile instructions on thang ought to work.

Ducklets February 8, 2020 00:55

Trap detection
 
"You leave a trap detection area, a loli appears and starts making eyes at you"

CyclopsSlayer February 8, 2020 02:31

Quote:

Originally Posted by Ducklets (Post 142958)
"You leave a trap detection area, a loli appears and starts making eyes at you"

Holy Necro, Batman!
A 12 year dead thread comes to life!

ionarevamp February 10, 2020 00:15

Quote:

Originally Posted by CyclopsSlayer (Post 142960)
Holy Necro, Batman!
A 12 year dead thread comes to life!

Unless perhaps it's simply a temporary reanimation. *shrug*

debo February 10, 2020 13:24

Quote:

Originally Posted by ionarevamp (Post 142991)
Unless perhaps it's simply a temporary reanimation. *shrug*

Itym "re-anime-tion".

CyclopsSlayer February 10, 2020 14:24

Quote:

Originally Posted by debo (Post 143003)
Itym "re-anime-tion".

*Groan* LOL!


All times are GMT +1. The time now is 08:05.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.