Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added quadrupedal species handling. #3952

Merged
merged 1 commit into from
May 3, 2024

Conversation

MistakeNot4892
Copy link
Contributor

Description of changes

  • Adds an abstract quadrupedal bodytype.
  • Moves stance and grasp handling down to /mob/living and generalizes it to work for arbitrary numbers of stance limbs via an organ category system.
  • Moves sprite sheet setting into a new proc, setup_sprite_sheets().
  • Likewise with bodyflag restrictions.
  • Adds support for mob/bodytype-provided state modifiers for organs, markings and mob overlays.
  • Adds support for returning multiple equip_adjust lists.
  • Probably other stuff.

Why and what will this PR improve

More flexible bodytypes.
Supporting code for #3940.

Authorship

Myself.

Changelog

Nothing player-facing.

@MistakeNot4892 MistakeNot4892 added the ready for review This PR is ready for review and merge. label Apr 30, 2024
@MistakeNot4892 MistakeNot4892 mentioned this pull request Apr 30, 2024
11 tasks
@out-of-phaze out-of-phaze self-requested a review April 30, 2024 05:28
out-of-phaze
out-of-phaze previously approved these changes Apr 30, 2024
hand_x_offset += world.icon_size
if(mymob.client)
mymob.client.screen |= swap_elem
if(length(swaphand_hud_objects))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this if(length(swaphand_hud_objects)) check isn't strictly necessary because for (var/i in 1 to 0) will skip the loop body.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Length check is technically a microopt over a zero iteration loop so I'm happy to leave it. <_<

out-of-phaze
out-of-phaze previously approved these changes May 1, 2024
if(T.density && T.simulated) //walls work
return TRUE
for(var/obj/O in orange(1, src))
if(O && O.density && O.anchored)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be worth changing this to include || OBJ_FLAG_SUPPORT_MOB?

out-of-phaze
out-of-phaze previously approved these changes May 1, 2024
out-of-phaze
out-of-phaze previously approved these changes May 1, 2024
@@ -0,0 +1,51 @@
/obj/item/organ/external/leg/quadruped
name = "left rear leg"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hind leg, maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah this came up and I instantly forgot about it

@out-of-phaze out-of-phaze merged commit d7c5a76 into NebulaSS13:dev May 3, 2024
13 checks passed
@MistakeNot4892 MistakeNot4892 deleted the feature/quadrupeds branch May 23, 2024 02:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review This PR is ready for review and merge.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants