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

Update Guns Lineart and Autowiki Handling of Base Types #5729

Merged
merged 4 commits into from
Feb 19, 2024

Conversation

Drulikar
Copy link
Contributor

@Drulikar Drulikar commented Feb 16, 2024

About the pull request

This PR is a follow up to #5631 and does several things related to gun icons:

  • Autowiki now skips mags and guns with no icon_staste set (I did the same for attachments, but none are in this scenario)
  • Gun lineart now has the no_name sprite as the first sprite so it is used again as the default sprite when no lineart exists
  • Various gun linearts have been duplicated for sub types that are basically the same icon.
  • The testing for missing linearts has been fixed to check icon_state instead of base_gun_icon because only a couple guns even assigned base_gun_icon before Initialize
  • The testing for missing linearts now skips GUN_UNUSUAL_DESIGN since they can't be inspected
  • The unit_test for spritesheets now enforces css requirements. See https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier
  • The 88m4 has been renamed to _88m4 to comply with css requirements.
  • Removed the two cases where a base_gun_icon was set in the definition (that would just get reset in Initialize)
  • Since many guns are now missing sprites in the missing lineart test, the testing error is downgraded to only a debug log until they can all have an exception set or the icons set. Currently all the missing sprites are below:
Missing Sprites in icons/obj/items/weapons/guns/lineart.dmi
  • /obj/item/weapon/gun/pistol/np92, icon_state="np92"
  • /obj/item/weapon/gun/pistol/np92/suppressed, icon_state="npz92"
  • /obj/item/weapon/gun/pistol/np92/suppressed/tranq, icon_state="npz92"
  • /obj/item/weapon/gun/pistol/t73, icon_state="tt"
  • /obj/item/weapon/gun/pistol/t73/leader, icon_state="ttb"
  • /obj/item/weapon/gun/pistol/clfpistol, icon_state="m43"
  • /obj/item/weapon/gun/pistol/es4, icon_state="es4"
  • /obj/item/weapon/gun/energy/rxfm5_eva, icon_state="rxfm5_eva"
  • /obj/item/weapon/gun/launcher/rocket/anti_tank, icon_state="m83a2"
  • /obj/item/weapon/gun/launcher/rocket/anti_tank/disposable, icon_state="m83a2"
  • /obj/item/weapon/gun/launcher/rocket/upp, icon_state="hjra12"
  • /obj/item/weapon/gun/rifle/m41a/elite/xm40, icon_state="m40sd"
  • /obj/item/weapon/gun/rifle/m41a/elite/xm40/ap, icon_state="m40sd"
  • /obj/item/weapon/gun/rifle/nsg23, icon_state="nsg23"
  • /obj/item/weapon/gun/rifle/nsg23/stripped, icon_state="nsg23"
  • /obj/item/weapon/gun/rifle/nsg23/no_lock, icon_state="nsg23"
  • /obj/item/weapon/gun/rifle/nsg23/no_lock/stripped, icon_state="nsg23"
  • /obj/item/weapon/gun/rifle/mar40/lmg, icon_state="mar50"
  • /obj/item/weapon/gun/rifle/mar40/lmg/tactical, icon_state="mar50"
  • /obj/item/weapon/gun/rifle/xm177, icon_state="xm177"
  • /obj/item/weapon/gun/rifle/xm177/dutch, icon_state="xm177"
  • /obj/item/weapon/gun/rifle/ar10, icon_state="ar10"
  • /obj/item/weapon/gun/rifle/m4ra, icon_state="m4ra"
  • /obj/item/weapon/gun/rifle/m4ra/training, icon_state="m4ra"
  • /obj/item/weapon/gun/rifle/l42a/abr40, icon_state="abr40"
  • /obj/item/weapon/gun/rifle/l42a/abr40/tactical, icon_state="abr40_tac"
  • /obj/item/weapon/gun/rifle/rmc_f90, icon_state="aug"
  • /obj/item/weapon/gun/rifle/rmc_f90/a_grip, icon_state="aug_com"
  • /obj/item/weapon/gun/rifle/rmc_f90/scope, icon_state="aug_dmr"
  • /obj/item/weapon/gun/rifle/rmc_f90/shotgun, icon_state="aug_mkey"
  • /obj/item/weapon/gun/rifle/m4ra_custom, icon_state="m4ra_custom"
  • /obj/item/weapon/gun/rifle/sniper/XM43E1, icon_state="xm43e1"
  • /obj/item/weapon/gun/rifle/sniper/svd, icon_state="type88"
  • /obj/item/weapon/gun/boltaction, icon_state="boltaction"
  • /obj/item/weapon/gun/boltaction/vulture, icon_state="vulture"
  • /obj/item/weapon/gun/boltaction/vulture/skillless, icon_state="vulture"
  • /obj/item/weapon/gun/lever_action, icon_state="r4t-placeholder"
  • /obj/item/weapon/gun/lever_action/r4t, icon_state="r4t"
  • /obj/item/weapon/gun/lever_action/xm88, icon_state="boomslang"
  • /obj/item/weapon/gun/pkp, icon_state="qjy72"
  • /obj/item/weapon/gun/revolver/m44/custom/pkd_special, icon_state="lapd_2019"
  • /obj/item/weapon/gun/revolver/m44/custom/pkd_special/k2049, icon_state="lapd_2049"
  • /obj/item/weapon/gun/revolver/m44/custom/pkd_special/l_series, icon_state="pkd_double"
  • /obj/item/weapon/gun/revolver/m44/custom/webley, icon_state="webley"
  • /obj/item/weapon/gun/revolver/upp, icon_state="zhnk72"
  • /obj/item/weapon/gun/revolver/upp/shrapnel, icon_state="zhnk72"
  • /obj/item/weapon/gun/shotgun/combat/riot, icon_state="mp220"
  • /obj/item/weapon/gun/shotgun/combat/guard, icon_state="mp221"
  • /obj/item/weapon/gun/shotgun/combat/marsoc, icon_state="mk210"
  • /obj/item/weapon/gun/shotgun/type23, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/type23/breacher, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/type23/breacher/slug, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/type23/breacher/flechette, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/type23/dual, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/type23/dragon, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/type23/riot_control, icon_state="type23"
  • /obj/item/weapon/gun/shotgun/double/twobore, icon_state="twobore"
  • /obj/item/weapon/gun/smartgun/rmc, icon_state="magsg"
  • /obj/item/weapon/gun/smg/pps43, icon_state="insasu"
  • /obj/item/weapon/gun/smg/pps43/extended_mag, icon_state="insasu"
  • /obj/item/weapon/gun/smg/bizon, icon_state="type64"
  • /obj/item/weapon/gun/smg/bizon/upp, icon_state="type64_u"
  • /obj/item/weapon/gun/smg/uzi, icon_state="uzi"
  • /obj/item/weapon/gun/smg/nailgun, icon_state="nailgun"
  • /obj/item/weapon/gun/smg/nailgun/compact, icon_state="cnailgun"

Explain why it's good for the game

Now the 88m4 pistol doesn't show up as the default icon, and instead is the no_name icon:
image

Now spritesheet states that can't be displayed (such as the 88m4 because it starts with a digit) will fail unit tests:
image
but I ensured the rename to _88m4 still works correctly even with the empty state:
image

Testing Photographs and Procedure

See above.

All "new" sprites are duplicates of existing.

Changelog

🆑 Drathek
code: Autowiki now skips guns and mags without icon_states
code: Unit testing for spritesheets now enforces css requirements for class names
imageadd: Gun stats lineart now uses the no_name sprite again for guns without lineart
/:cl:

Fix test for missing lineart sprites (and downgrade to debug while we have missing sprites)
Duplicate various lineart sprites where the icon is close enough.
@github-actions github-actions bot added Sprites Remove the soul from the game. Code Improvement Make the code longer labels Feb 16, 2024
Rename 88m4 to _88m4 to comply with css requirements
Copy link
Member

@harryob harryob left a comment

Choose a reason for hiding this comment

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

oh that css test is handy

@harryob harryob added this pull request to the merge queue Feb 19, 2024
@Drulikar Drulikar added the Unit Tests Keep the game broken, forcefully. label Feb 19, 2024
Merged via the queue into cmss13-devs:master with commit efc4e0a Feb 19, 2024
26 checks passed
cm13-github added a commit that referenced this pull request Feb 19, 2024
@Drulikar Drulikar deleted the Update_Guns_Lineart_Autowiki branch February 20, 2024 00:19
github-merge-queue bot pushed a commit that referenced this pull request Feb 23, 2024
# About the pull request

**no actual sprite changes, I just renamed a couple**

Fixes the 88 Mod 4 pistol not having a holster sprite, and showing as a
bunch of orange question marks.
This was happening because #5729 changed its `icon_state` from `"88m4"`
to `"_88m4"` in order to make it actually work with CSS, but the sprite
in `icons/obj/items/clothing/belts.dmi` wasn't renamed with it.

I also changed the `item_state` to be the same and renamed the inhand
sprites, just to reduce any future confusion.

# Explain why it's good for the game

Fixes the gun not being a gun.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Before:**

![before](https://github.com/cmss13-devs/cmss13/assets/57483089/44ca7d17-440a-4ae2-8fbe-1df38a80e6f3)

**After:**

![after](https://github.com/cmss13-devs/cmss13/assets/57483089/ad27fe53-4d36-4101-9122-135dad0bf620)

</details>


# Changelog
:cl:
fix: Fixed the 88 Mod 4 pistol's holster sprite.
/:cl:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code Improvement Make the code longer Sprites Remove the soul from the game. Unit Tests Keep the game broken, forcefully.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants