whales / cataclysm Goto Github PK
View Code? Open in Web Editor NEWA post-apocalyptic roguelike.
Home Page: cataclysmrl.blogspot.com
License: Other
A post-apocalyptic roguelike.
Home Page: cataclysmrl.blogspot.com
License: Other
Hi ManualDetonation! Cataclysm is a post-apocalyptic roguelike, set in the countryside of New England after a devastating plague of monsters and zombies. At present time, Cataclysm is still in early alpha, and is being developed very rapidly. As such, there are no formal version numbers, as a new version is released every day, often several a day. Source is available at the github repository, http://github.com/Whales/Cataclysm There is also a tarball available at http://squidnet.ath.cx/cataclysm.tar.gz Squidnet maintains a public SSH server. If you cannot play Cataclysm locally, or if you prefer to play it in a world shared with others, connect to [email protected] (there is no password). Compiling Cataclysm under linux is straightforward, and only requires the ncurses development libraries. Under Ubuntu, these libraries can be found in the libncurses5-dev package ("sudo apt-get install libncurses5-dev" will install this package). Cataclysm is very different from most roguelikes in many ways. Rather than being set in a vertical, linear dungeon, it is set in an unbounded, 3D world. This means that exploration plays a much bigger role than in most roguelikes, and the game is much less linear. Because the map is so huge, it is actually completely persistant between games. If you die, and start a new character, your new game will be set in the same game world as your last. Like in many roguelikes, you will be able to loot the dead bodies of previous characters; unlike most roguelikes, you will also be able to retrace their steps completely, and any dramatic changes made to the world will persist into your next game. While this makes for interesting depth of play, and the ability to "save" game progress even after death, some prefer to start each game with a freshly generated world. This can be achieved by erasing the contents of the save directory, found in the same folder as the executable. "rm save/*" will erase these files for you. Cataclysm's gameplay also includes many unique quirks, and the learning curve is somewhat steep, even for those experienced with roguelikes. Included with the game is a tutorial which runs the player through most of the key features. The game also has extensive documentation via the ? command. Pressing ?1 will list all the key commands, which is a good place to start. To submit a bug, complaint, feature request, or praise, please send them via email to [email protected]. You can also submit problem reports and patches at the github repository at http://github.com/Whales/Cataclysm . I strive to include as many feature requests as possible, and if you submit one there is a good chance that it will appear in the game within a few days. Of course, it is inevitable that I will reject some feature requests, either because they do not fit my conception of the game, or because they require more code than I think they're worth. Feature requests supplied in the form of a patch stand a better chance of inclusion, of course ;) For instructions on making changes to item types, monster types, etc., please see the EDITING file. Most changes of this variety require no training in C++, or programming in general. If you want to take Cataclysm in a new direction, please feel free to create a branch project--just let me know about it!
I think you forgot the "e" in Wood Axe (it displays as Wood Ax)
In map.cpp in the loadn function, the following line causes issues:
map tmp_map(itypes, mapitems, traps);
This segfaults on my computer due to a stack overflow. Replacing it with the following line resolves the issue:
map* tmp_map = new map(itypes, mapitems, traps);
Of course, a call to free(tmp_map) is now necessary at function end.
Pressing U with a used Flashlight causes segfault.
I'm afraid I don't have much information about what happened, but attempting to fire a longbow with wooden arrows at a zombie caused a segfault and a crash. Another minor issue is that attempting to reload bows will display the new message saying that they do not need to be reloaded, however, the item's name is garbled and contains console control characters and some invalid-character symbols.
Traps appeared in a forest in a NPC City. Needless to say, this doesn't make much sense.
Just had one follow me up a flight of stairs, much to my (very brief) surprise.
This is new, but is it intentional?
Steps:
Tutorial worlds should probably be deleted after playing them and not interfere with the main game world at all.
When using a hammer and nails (and two-by-fours) to barricade doorways or windows, materials on the ground nearby aren't counted, must all be carried in inventory.
I blew up a gas station and it crashed so I relaunched it and if I moved five or more spaces it would crash automatically.
When your survival days go over 14, it seems to reset back to 1.
README does not reflect active github url "http://github.com/Whales/Cataclysm"
After coocking some meat, i got used several inventory letters for each coocked meat
Game has stacks limit, so owning "Hoarder" makes each letter real value.
Made changes for myself.
git rev-parse HEAD
16331bb
diff --git a/item.cpp b/item.cpp
index 140d474..b2c4350 100644
--- a/item.cpp
+++ b/item.cpp
@@ -167,10 +167,12 @@ bool item::invlet_is_okay()
bool item::stacks_with(item rhs)
{
+ bool iscrafting = (goes_bad() && abs(bday - rhs.bday) < 200); // 20 min for crafting
+
bool stacks = (type == rhs.type && damage == rhs.damage &&
active == rhs.active && charges == rhs.charges &&
contents.size() == rhs.contents.size() &&
- (!goes_bad() || bday == rhs.bday));
+ (!goes_bad() || bday == rhs.bday || iscrafting));
if ((corpse == NULL && rhs.corpse != NULL) ||
(corpse != NULL && rhs.corpse == NULL) )
The download is no longer bopping up so i cant get it
Steps:
After missile launch happens something strange, seems that z-levels between finale and first underground z-level teleport themselves under finale z-level (my characters were saved on them due segfault/crash, so I was able to go upstairs right into finale level wall). There is no rocket tiles on these levels, but first underground z-level still have rocket in it. This happens always.
And two times there was level without down stairs, so finale was kind of inaccessible. At first time I tried to mininuke that level (at place where I though should be stairs) and got segfault. At second time I jumped down from the ledge to finale and when tried to go upstairs (without launching rocket) character become encased in walls.
When I tried to target missile right on it's silo, it caused segfault in linux virtualbox. I was able to leave silo, though stairs on the surface were destroyed. Windows version was ok after such bombing, but stably crashes when I try to go to the surface.
I was raiding a house when i was being robbed by a gang of NPC's apart from the spam of debug messages the leader randomly shot one of the other NPC's and killed it.
Home/End/PgupPgDn have random effects, while should have none? or diagonal movement
choosing to load a preset character with no available preset characters results in segfault
Trying to disarm a dug pit has resulted in a failure every time I've tried, even with some trap skill and carrying a shovel. In my mind, filling up a pit should be as trivial as digging it was?
g++ -O3 -c item.cpp -o obj/item.o
item.cpp: In member function ‘std::string item::info(bool)’:
item.cpp:282:43: error: ‘struct it_comest’ has no member named ‘health’
"\n Healthiness: " << int(food->health);
^
this is what i get.How to solve it?
Trying to compile repo version as of commit 76839bf under Ubuntu 10.10 x64 and am getting the following compile error:
g++ -g -c bionics.cpp -o obj/bionics.o
In file included from bionics.cpp:1:
player.h:10: fatal error: morale.h: No such file or directory
compilation terminated.
make: *** [obj/bionics.o] Error 1
I started a tutorial, and used "S" to exit. When I loaded the game, I was in a completely different place from the original tutorial room where I left off.
After installing ncurses in order to build under Cygwin, I found that the library lives in its own subdirectory (i.e. <ncurses/curses.h>
). I just symlinked everything into the base include directory as a quick fix, but it would be nice if there was an additional build flag, or maybe even some Makefile logic to select ncurses.
When to chose what item to throw and you chose a nonexisting item or the Escape key it crashes. Since I wanted to play this fun game and I managed to crash it every time, I fixed it by adding
if (index == -2) return -1;
in player::throw_range. Since I can't edit the code or are sure that I follow this projects coding standards I thought I would just mention it here.
HEAD= cf18cea
Happens with:
sbox-arm-none-linux-gnueabi-g++ (GCC) 4.2.1
git clone https://github.com/Whales/Cataclysm.git
make
game.cpp: In member function 'void game::exam_vehicle(vehicle&, int, int, int, int)':
game.cpp:4174: error: no matching function for call to 'player_activity::player_activity(player_activity)'
pldata.h:113: note: candidates are: player_activity::player_activity(player_activity&)
When falling over a ledge and going past several z-levels (like in missile silo), the game crashes with a segfault. For some reason, the last call to map::generate seems to end up with invalid stack values/pointers inside the function map::generate itself. Looks pretty complicated.
Segfault:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000695ec8 in map::generate (this=Cannot access memory at address 0x7fffff7b4168
) at mapgen.cpp:60
Backtrace:
#0 map::loadn (this=0x7fffff9a9070, g=0x7ffff7ed0010, worldx=294, worldy=349,
gridx=10, gridy=0) at map.cpp:1723
#1 0x000000000067b04d in map::load (this=0x7fffff9a9070, g=0x7ffff7ed0010,
wx=294, wy=349) at map.cpp:1454
#2 0x0000000000532988 in game::vertical_move (this=0x7ffff7ed0010, movez=-1,
force=true) at game.cpp:5384
#3 0x0000000000a090d8 in trapfunc::ledge (this=0x7fffffaef410,
g=0x7ffff7ed0010, x=62, y=67) at trapfunc.cpp:493
#4 0x0000000000533b07 in game::vertical_move (this=0x7ffff7ed0010, movez=-1,
force=true) at game.cpp:5526
#5 0x0000000000a090d8 in trapfunc::ledge (this=0x7fffffd0b9d0,
g=0x7ffff7ed0010, x=62, y=67) at trapfunc.cpp:493
#6 0x0000000000533b07 in game::vertical_move (this=0x7ffff7ed0010, movez=-1,
force=true) at game.cpp:5526
#7 0x0000000000a090d8 in trapfunc::ledge (this=0x7ffffff28120,
g=0x7ffff7ed0010, x=62, y=67) at trapfunc.cpp:493
#8 0x00000000005317b7 in game::plmove (this=0x7ffff7ed0010, x=62, y=67)
at game.cpp:5242
#9 0x00000000005150fb in game::get_input (this=0x7ffff7ed0010)
at game.cpp:1125
#10 0x0000000000512a1e in game::do_turn (this=0x7ffff7ed0010) at game.cpp:643
#11 0x000000000065c21e in main (argc=1, argv=0x7fffffffe738) at main.cpp:37
With new version It started to crash when running somewhere for a while.
Here is a backtace:
#0 0x080c485e in std::vector<itype_id, std::allocator<itype_id> >::size (this=0x3c)
at /usr/include/c++/4.6/bits/stl_vector.h:571
#1 0x080c46d4 in std::vector<itype_id, std::allocator<itype_id> >::vector (this=0xbfda0174,
__x=...) at /usr/include/c++/4.6/bits/stl_vector.h:279
#2 0x082dcbfc in map::place_items (this=0xbfdf0318, loc=mi_road, chance=5, x1=0, y1=0, x2=23,
y2=23, ongrass=false, turn=4977) at mapgen.cpp:6034
#3 0x082b29a4 in map::draw_map (this=0xbfdf0318, terrain_type=ot_road_ns, t_north=ot_road_ns,
t_east=ot_house_west, t_south=ot_road_new, t_west=ot_house_east, t_above=ot_null,
turn=4977, g=0xb7f08008) at mapgen.cpp:624
#4 0x082afceb in map::generate (this=0xbfdf0318, g=0xb7f08008, om=0xb7f0acbc, x=148, y=256,
turn=4977) at mapgen.cpp:142
#5 0x082984e9 in map::loadn (this=0xbfe8b4fc, g=0xb7f08008, worldx=144, worldy=257, gridx=4,
gridy=0) at map.cpp:1731
#6 0x08296403 in map::load (this=0xbfe8b4fc, g=0xb7f08008, wx=144, wy=257) at map.cpp:1454
#7 0x0816270a in game::update_map (this=0xb7f08008, x=@0xbff5ef24, y=@0xbff5ef28)
at game.cpp:5540
#8 0x081600cb in game::plmove (this=0xb7f08008, x=62, y=71) at game.cpp:5186
#9 0x08145a45 in game::get_input (this=0xb7f08008) at game.cpp:1112
#10 0x081437eb in game::do_turn (this=0xb7f08008) at game.cpp:630
#11 0x08278fc1 in main (argc=1, argv=0xbffff254) at main.cpp:35
Sorry if this is not a right place for bug reports
I wasn't able to get a stack trace, but it seems to happen every time I try it. Just go into the tutorial, grab the bubblewrap, head downstairs and try to pick up the water with the bubblewrap. Or pump gas and try to hold it with the bubblewrap. Bam, segfault!
make clean and make results in
item.cpp: In member function 'std::string item::info(bool)':
item.cpp:282: error: 'struct it_comest' has no member named 'health'
which was apparently added in the following commit:
0062bb2
I moved my Cataclysm 5.0 stable build files to my games folder in their own seperate folder and now when i save character templates they don't actually save or save to the wrong directory. However If I move them to the desktop it works fine.
Figured I might as well put this where it belongs there's a max item limit for inventory? Is this intentional? If so, it seems awfully low.
Gratz on the Steam Release: https://store.steampowered.com/app/2330750/Cataclysm_Dark_Days_Ahead/
;-)
Y/N dialog should accept both lowercase and uppercase keys.
Gender is not saved
I managed to obtain two stack traces, the first when starting the tutorial:
Program received signal SIGSEGV, Segmentation fault.
0x00605f70 in npc::make_shopkeep (this=0x19f180, g=0x1faf70, type=ot_set_food)
at npc.cpp:572
572 tmp = item(g->itypes[item_type], g->turn);
0 0x00605f70 in npc::make_shopkeep (this=0x19f180, g=0x1faf70, type=ot_set_food) at npc.cpp:572
1 0x00647618 in overmap::place_NPCs (this=0x19fdd0, g=0x1faf70) at overmap.cpp:759
2 0x00644cc3 in overmap::generate (this=0x19fdd0, g=0x1faf70, north=0x0, east=0x0, south=0x0, west=0x0) at overmap.cpp:400
3 0x0064e66c in overmap::open (this=0x19fdd0, g=0x1faf70, x=0, y=0, z=9) at overmap.cpp:1828
4 0x00642d92 in overmap::overmap (this=0x19fdd0, g=0x1faf70, x=0, y=0, z=9) at overmap.cpp:120
5 0x0046f54b in game::start_tutorial (this=0x1faf70, type=TUT_BASIC) at game.cpp:468
6 0x0046e739 in game::opening_screen (this=0x1faf70) at game.cpp:273
7 0x0046dbfd in game::game (this=0x1faf70) at game.cpp:183
8 0x00521d80 in main (argc=1, argv=0x2d10f8) at main.cpp:24
This one when starting a regular game:
Program received signal SIGSEGV, Segmentation fault.
0x00605f70 in npc::make_shopkeep (this=0x1c6aa0, g=0x1faf70, type=ot_set_bionics)
at npc.cpp:572
572 tmp = item(g->itypes[item_type], g->turn);
0 0x00605f70 in npc::make_shopkeep (this=0x1c6aa0, g=0x1faf70, type=ot_set_bionics) at npc.cpp:572
1 0x00647618 in overmap::place_NPCs (this=0x1c7748, g=0x1faf70) at overmap.cpp:759
2 0x00644cc3 in overmap::generate (this=0x1c7748, g=0x1faf70, north=0x0, east=0x0, south=0x0, west=0x0) at overmap.cpp:400
3 0x0064e66c in overmap::open (this=0x1c7748, g=0x1faf70, x=0, y=0, z=0) at overmap.cpp:1828
4 0x00642d92 in overmap::overmap (this=0x1c7748, g=0x1faf70, x=0, y=0, z=0) at overmap.cpp:120
5 0x0046f1cd in game::start_game (this=0x1faf70) at game.cpp:416
6 0x0046f05c in game::opening_screen (this=0x1faf70) at game.cpp:394
7 0x0046dbfd in game::game (this=0x1faf70) at game.cpp:183
8 0x00521d80 in main (argc=1, argv=0x3d1178) at main.cpp:24
The problem seems to be the same.
Crafting something which needs a soldering iron both as a tool and a component could be accomplished with only one soldering iron.
I upgraded from experimental 2900 to 2992, copied over saved game folder, config, graveyard, memorial, templates folders. In-game when I tried to wear an elec balaclava it said "You cannot wear a helmet!"
I then installed a less new experimental version, 2980 and it lets me wear a helmet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.