Skip to main content

Meat grinder, Hannibal-style

The thing about Cataclysm-DDA is...

This is a zombie-survival game. This part is going to be more gruesome than usual, so I suggest you spare yourselves and turn away right this moment.
.
.
.
.
.
.
Proceed at your own discretion.
.
.
.
.
.
.
You have been warned.
.
.
.
.
.
The survival is meant to be tough and difficult. A bunch of city-folks are thrown into the deep-end of the nature with added quirks of friendly next-door neighbors giving you a helping hand in becoming one with their stomach. No grocery stores, no farms, no livestock, no help, not at the beginning, anyways. Therefore, the game explored the possibility, and the horror, of survivors doing everything they must do to survive. That, to some, meant eating the flesh of other humans given the chance. The game features many meat-based food items, and almost all of them has a counterpart that uses human flesh in place. This includs the protein powder.

I told you to look away.

Caveat

This particular bug had no associated issue. Rather, I found this bug while working on protein_powder portion of the code. One of my searches turned up hflesh_powder. Having played the game for good few years, I knew instantly, and tragically, what that meant. Much like the protein_powder, it lacked the mortar_and_pestle in its recipe. I had considered adding it together with protein_powder, but since the issue specifically called for protein_powder, I had decided to PR the two bugfixes separately.

Process

Since I already knew all names of the object, it was just a simple repeat of the process followed in the protein_powder bugfix.

The Hannibal in you

Now, the flesh-eating crazy folks of the Cataclysm-DDA world can rejoice and revel in the increased reality of doing what they must to survive. To each their own.

Comments

Popular posts from this blog

Creating a patch for GNU GCC using Git

Overview and Target Audience The GNU GCC project followed a blend of a traditional method with contemporary git tools when it comes to contributing code, making the experience unique from some other, git-based projects. This blog post will explore different aspects of the process, helpful commands, and various scripts that would make the experience more pleasent for new contributors. While this blog aims to help new contributors get acustomed to the GNU GCC code culture and make contributing easier, it must be stressed that this is not in any way in-depth exploration of the process. This should help you put your first foot forward; the community will help you take the rest of the steps from that point on. This post also assumes the user is in a POSIX environment (e.g. Linux, FreeBSD). Git and GNU As stated in this phoronix post , GNU GCC made a full transition to git early 2020. As of this writing, the community seems to be adjusting to the new tools. GNU GCC hosts its own git serve...

Debugging with GCC: GIMPLE

GCC and GIMPLE One of the very first thing GCC asks the GSoC applicants to do, even before writing the application, is to try various different debugging techniques using GCC. I was personally familiar with the basic, compile-with-g-flag-and-use-gdb method. Turns out, there's more: GIMPLE. A Simple but Non-trivial Program Problem Description The instruction asks to compile a simple but non-trivial program with some flags that generates debugging information: -O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all . Because I was keep reading on ways to debug GCC just prior to the statement, I immediately thought "GCC" and tried make -j8 CXXFLAGS="-O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all" . This was a mistake: turns out, GCC can't be compiled with those flags. Thankfully, GCC developers have a very active IRC channel for me to signal SOS. Resolution jakub and segher were quick to respond to my call for help. jakub: it isn't meant that y...

Project: Boost-free goblins

The headache: Boost Don't take me wrongly: Boost library is a powerful set of tools for bleeding-edge technology. Much of it gets absorbed into the C++ Standard Libraries. The problem lies in our project being inactive for 7 years, which means it is relying on a library that is 7 years behind. Installing such an old library is a chore, and securing a pre-built package is problematic at best. The project is even incompatible with the later versions of Boost. It may have once given the original developers a powerful technology to propel their project in the past, but now we are stuck with clock stopped at 2011. Along with libtcod being stuck also in 2012, dealing with Boost is critical to bringing the project up-to-date. Options There are several ways to address the issue. Option 1 : Upgrade We can read each related source code, research how Boost has modified the relevant function calls, and either fix the expected return type or required input type, This may lead to mor...