Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PR] Dismemberable mutants and tweaks to the appearance builder thing
#1
Information 
PULL REQUEST DETAILS



[WIP] [HELP WANTED] [FEATURE] [FUCK] [INPUT WANTED]
About the PR
I merged my limb rework and tails PR!

I'm trying to rework much of the way appearance information is stored, how human bodies are constructed for display, and expanding the role of the appearanceholder, all so I can cut off my lizard tail and eat it.

The goal is to allow non-humans with non-human.dmi icons be assembled through the update_body thing, and make severed body parts retain their display information even when reattached.

Some design notes:
- If display information can be stored and calculated somewhere other than update_body, it should.
- Especially relevant for things like limbs and heads, where the data for their display is stored in those body parts and simply retrieved when the body's appearance is updated. This'll allow severed human limbs to retain their skin color both on the ground and on other people.
- The appearance holder should hold all customization-related information, such as the body's icon (and state if they're rendered with a static icon), the head's icon, and any appearance flags the body has.
- Use a couple sets of bitflags to tell the body constructor and limbs what set of vals to use from the appearance holder, whether it should be colorized or draw from the "special" set of customization vars, for instance.
- Heads need to be able to change their appearance almost entirely, both on the body and on the ground, since I can't figure out how to swap out someone's head without killing them or murdering their client.
- And store all the body builder accessible customization info (hair, eyes, etc) there. Will require barbery to alter the head's vars, not the appearance holder... probably.
- Added in limbs and images for most of the mutant races.

So far, much of it works. Limbs retain their colors across reattachments, certain mutants can be dismembered just like humans, heads are properly updated across setting and resetting of mutantraces.

But much remains to do before it can even come close to being ready for primetime.
- Monkeys are invisible except for their limbs, which are human. Cus I havent set them up yet.
- Shamblers for some reason completely break if you lose a limb and change mutant race, causing you to have the shambler image stuck behind your mob forever.
- Dropped heads are invisible.
- Tails are rendered over the body, but under clothes, even though they worked fine for a moment and I dont know why.
- Anything that relies on changing the appearance holder to change the player's appearance most likely does not work.
- Changing mutant race calls Update_Body like 10 times more than I feel it should.
- Sometimes losing a limb makes everything but your hands invisible.
- Most definitely a fuckton of other bugs that I havent even come close to finding, and possibly never will on my own.

Here are some pictures!

![Annotation 2020-08-13 213452](https://user-images.githubusercontent.co...d59e99.png)
![Annotation 2020-08-13 171241](https://user-images.githubusercontent.co...ec3135.png)
![manliz](https://user-images.githubusercontent.co...1437c0.png)
![Annotation 2020-08-06 210144](https://user-images.githubusercontent.co...46628c.png)
![tails2](https://user-images.githubusercontent.co...388c5c.png)
![tailgibs](https://user-images.githubusercontent.co...743508.png)

Why's this needed?

i just wanted to hollow out a werewolf's head and make a mask out of it.

Changelog


Code:
(u)Superlagg:
(*)Increased mutant dismemberability by 20%.
(+)Made some small sprite changes to the base pizza sprite.


PULL REQUEST DETAILS
#2
Excellent improvement. I am sure some nightmare surgery creations are going to come out of this.
#3
Finally, after two months and more, this project has been finished! Tails were also implemented as part of this PR. I'll quote the creator on the changes and let the words speak for themselves:

Quote:I'm trying to rework much of the way appearance information is stored, how human bodies are constructed for display, and expanding the role of the appearanceholder, all so I can cut off my lizard tail and eat it.

The goal is to allow non-humans with non-human.dmi icons be assembled through the update_body thing, and make severed body parts retain their display information even when reattached.

Some design notes:
  • If display information can be stored and calculated somewhere other than update_body, it should.
    • Especially relevant for things like limbs and heads, where the data for their display is stored in those body parts and simply retrieved when the body's appearance is updated. This'll allow severed human limbs to retain their skin color both on the ground and on other people.
  • The appearance holder should hold all customization-related information, such as the body's icon (and state if they're rendered with a static icon), the head's icon, and any appearance flags the body has.
  • Use a couple sets of bitflags to tell the body constructor and limbs what set of vals to use from the appearance holder, whether it should be colorized or draw from the "special" set of customization vars, for instance.
  • Heads need to be able to change their appearance almost entirely, both on the body and on the ground, since I can't figure out how to swap out someone's head without killing them or murdering their client.
    • And store all the body builder accessible customization info (hair, eyes, etc) there. Will require barbery to alter the head's vars, not the appearance holder... probably.
  • Added in limbs and images for most of the mutant races.
So far, much of it works. Limbs retain their colors across reattachments, certain mutants can be dismembered just like humans, heads are properly updated across setting and resetting of mutantraces.

Should work just fine!

In laypeople's terms:
Quote:(u)Superlagg:
(*)Dismembered mutants now show that they are missing limbs.
(*)Mutant limbs now show up properly when attached to someone else.
(*)Tails can now be cut off and reattached to just about anyone.

This is a somewhat comprehensive change, so feedback is appreciated! Don't be afraid to make a thread or mention issues on #imcoder!


Forum Jump:


Users browsing this thread: 1 Guest(s)