Commit graph

60 commits

Author SHA1 Message Date
PeachyPeach
a8e397047a
CAP color; near/far warning fix (#214)
Added CAP color part; Player's cap no longer uses the SHIRT color
    Added METAL color as an alias of CAP color; Metal characters now uses the CAP color to tint the metal texture (was SHIRT color)
    Fixed the cap inside color (was HAIR color)
    Fixed the near/far warning
2022-10-30 17:30:40 -07:00
PeachyPeach
6449b7d578
Complete color palettes; gfx macros (#191) 2022-09-18 17:30:13 -07:00
Llennpie
7056d27484
Fix black outline bug on model textures (#152) 2022-08-25 17:26:22 -07:00
TheGag96
dc3ca7c76d
Arbitrary shirt, pants, glove colors + settings menu (#145)
* Support for more granular player colors

You can now configure RGB values for shirt, pants, gloves, and shoes.
Due to some limitations, configuring shoes does nothing at the moment.

* Remove paletteIndex and friends

Restructured and filled in some remaining code to account for that.

* Add Edit Palette panel to Player panel

* Change PlayerPalette contents to an enum-indexed array, remove shoes

This gets rid of all the hokey code doing switch cases on the
different parts.

* Fix goof with player model selection box

Should actually have affect now even if a custom palette is being used.

* Fix gap in player color display list commands

The extra space was leftover from when I was trying to get shoes
working. Forgot to clean it up.

* Standardize PlayerParts enum, including for lua constants autogen

* djui_panel_player.c: Properly hook sending palette changes on unpause

Editing the palette and then unpausing should send out the packet to
everyone with the new palette changes (and update the palette preset
selection box), but since we weren't hooking that situation before, it
would stay changed only for you. You would have had to press the Back
button for it to work right.

* Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex`

This lets mod code like this still work unchanged:

if s.team == 2 then
    np.overridePaletteIndex = 7
elseif s.team == 1 then
    np.overridePaletteIndex = 15
else
    np.overridePaletteIndex = np.paletteIndex
end

It's essentially faked, and would work strangely if the value of either
variable was inspected more closely directly. This should at least
handle the typical use case, though.

Every frame, `overridePaletteIndex` is checked to see if it was modified
from its previous value. If so, `overridePalette` is set to the preset
corresponding to the index. `paletteIndex` contains a special value that
when used to assign to `overridePaletteIndex`, it copies `palette` into
`overridePalette` to restore the real colors, which of course may not
follow the presets at all.

* characters.h: Pack `PlayerPalette` to eliminate size differences between computers

* mario_misc.c: Remove remaining "TODO GAG"
2022-08-07 15:13:19 -07:00
MysterD
de2300f837 Fix clang/mac compile 2022-05-19 19:42:07 -07:00
PeachyPeach
68e1b72b99
3-digits orange numbers; Fixed red coins and secrets bugs; Correct red coins display during pause (#82)
Modified number_geo to allow it to display orange numbers from 0 to 999.
    Edited red coins/secrets code:
        Added two fields in the Area struct: numRedCoins and numSecrets
        The number of red coins/secrets in every area is computed during level script processing
        Removed the useless global gRedCoinsCollected
    These changes fix the following bugs:
        Wrong sound effect played and incorrect number displayed when there is more than 8 red coins/5 secrets
        Desynced red coins/secrets counter when going from an area to another
        Remotely spawning red coins/secrets stars in other areas without collecting all red coins/secrets
    Pausing the game now shows the correct number of collected red coins / the total number of red coins in the current area.
2022-05-07 19:09:37 -07:00
MysterD
ad6642a4bd Add support for custom HUD textures and faster texture packs w/o EXTERNAL_DATA 2022-05-06 22:03:12 -07:00
MysterD
8d10529061 Fix Luigi metal color 2022-04-16 23:53:10 -07:00
MysterD
af9b359227 Replace Luigi model with FluffaLuigi's 2022-04-14 22:02:33 -07:00
MysterD
93beb2001e Prevent generating extra geos for player models, allow referencing mario textures 2022-04-14 21:49:41 -07:00
MysterD
4cc80f65e2 Fixed metal toad corrupting held, or nearby, objects 2022-04-14 21:02:33 -07:00
MysterD
1508f07fef Added actor textures to dynos builtin list; added shadow_spike_ext 2022-04-13 19:13:25 -07:00
MysterD
469e4ac4e4 Load Super Keeberghrh's ERROR model when DynOS can't find the model 2022-03-16 01:34:18 -07:00
Sonicxryan
2802d0e7a4
Color metal textures based on palette (#26) 2022-03-13 17:32:27 -07:00
Prince Frizzy
75bb9b7912
Update to Refresh 13 (#19)
* Refresh 13

Co-authored-by: n64 <n64>
2022-03-13 00:17:10 -08:00
MysterD
4ddf7ddf81 Updated Wario model by FluffaLuigi
Fixed Wario's hip offset
Updated UV and textures
2022-03-09 21:24:39 -08:00
MysterD
99192aabb5 Fix Wario textures when EXTERNAL_DATA is set 2022-02-18 19:04:25 -08:00
MysterD
eb22894ca7 Revert "Fixed rendering of metal Toad's held objects"
This reverts commit efcf78dee1.
2022-02-18 18:48:43 -08:00
MysterD
efcf78dee1 Fixed rendering of metal Toad's held objects 2022-02-16 23:15:59 -08:00
MysterD
6f8714c764 Added FluffaLuigi's Wario model 2022-02-13 21:52:35 -08:00
MysterD
0d2358d4c6 Adjust waluigi_cap's compilation order 2022-01-15 20:43:49 -08:00
MysterD
5a507afe8d Renamed waluigi textures so they can be committed 2021-09-05 15:39:50 -07:00
MysterD
4cebce4864 Added Waluigi - model provided by Super Keeberghrh 2021-09-05 14:23:47 -07:00
MysterD
4b3276afbf Fixed rendering of metal-Luigi's held object 2021-09-01 18:25:19 -07:00
MysterD
8fa8fc4799 Prevented Toad's face from getting corrupted in certain areas 2021-08-22 16:30:27 -07:00
MysterD
4688ffe1f0 Added toad player character 2021-08-18 22:55:31 -07:00
MysterD
8a40aeddea Refactored how enemies display a cap in their hand 2021-08-18 21:39:39 -07:00
MysterD
43932249c6 Added support for spawning Luigi-versions of metal/vanish/wing cap as items 2021-08-15 11:46:28 -07:00
MysterD
1b5ceda89d Split luigi/custom character models into custom and zcustom 2021-08-15 01:06:25 -07:00
MysterD
d772764c4e Fixed cap-on-ground colorization behavior 2021-08-09 23:39:29 -07:00
Llennpie
e8fd9c723b Fix strange black outline that appears on custom cap textures 2021-08-09 00:45:14 -04:00
MysterD
710a7e4749 Color detached caps according to player palette 2021-08-06 01:02:07 -07:00
MysterD
59748737f1 Colorize cap logo according to player's palette 2021-08-05 18:30:56 -07:00
fgsfds
109e713689 implement changeable model colors
in a very dumb way:

the custom colors are set for lights 3, 4, 5, 6 in a GEO_ASM callback, then copied to lights 1, 2 using gsSPCopyLightEXT
2021-04-06 00:22:42 +03:00
anzz1
bc7ec31c02
Enemy hat fixes (#83)
* Ukiki now steals Mario/Luigi hat correctly
* Klepto now steals Mario/Luigi hat correctly
* Mr. Blizzard now knocks off Mario/Luigi hat correctly
* Fwoosh now knocks off Mario/Luigi hat correctly

Co-authored-by: anzz1 <>
2020-10-16 03:03:25 -07:00
MysterD
fe163a73dd Add no camera collision to various objects 2020-10-04 23:55:06 -07:00
MysterD
e0903003f4 Rewrote how players are initialized, stored, and displayed
Since the second-player code was the first code I wrote, it was implemented
poorly. At that point, I didn't know the code base at all and the way it was
written would prevent anyone from ever adding to those parts.

The rewrite allows me to use the default geo.inc.c file for Mario, and removes
all of the geo2.inc.c files. I no longer do a bunch of bit shifting to figure
out which player is being drawn in the rendering code.

I'm also now able to remove tons of duplicate code that exists just for the
remote player. The main player code is generic enough to support both indices.
A side-effect of the rewrite is I was able to remove many assumptions in the
code where two-players is assumed, but many other parts of the code still
assume two players.

This is a fairly major change that, if all goes well, will be completely
unnoticed by the player. However, I do expect new bugs to pop up in strange
places. Time will tell.
2020-09-06 18:52:52 -07:00
MysterD
df7904e288 Geo2 removal wip 2020-09-06 13:54:01 -07:00
MysterD
1324ce83be Fixed Luigi sideburns, renamed Luigi textures 2020-09-05 10:02:11 -07:00
MysterD
478f77e6bf Fix EXTERNAL_DATA for Luigi
Fixes #25
2020-09-05 00:11:15 -07:00
MysterD
ee35c999aa Made Luigi a bit bigger 2020-08-23 23:44:11 -07:00
MysterD
eeec6aae49 L is real 2020
Added Luigi model.
Renamed all previous references to 'Luigi' to 'Mario2' since player 1
isn't always mario, and player 2 isn't always luigi.
Now server is always mario and client is always Luigi.

Luigi model credits:
Original model by Cjes, converted by AloXado320, textures added/fixed by
SunlitSpace542.
2020-08-08 21:36:49 -07:00
MysterD
c437e075ff Separated held objects, made Bobombs Luigi-aware 2020-07-31 18:03:57 -07:00
MysterD
4486e8000c Began fixing up Luigi collisions 2020-07-30 18:44:09 -07:00
MysterD
0737d2e03f Separated animations between players 2020-07-30 18:09:47 -07:00
n64
4a448cf10d merge refresh 10 2020-06-20 02:49:59 +03:00
fgsfds
8749ebda17 give the correct textures a different name instead 2020-06-14 13:37:57 +03:00
fgsfds
bc6ebbf191 use full texture sizes for the eyes of big bomb lad and chuckya
this fixes the incorrect rendering of their eyes when EXTERNAL_DATA is enabled
2020-06-10 19:11:09 +03:00
fgsfds
f6e456e1c0 correct star texture size
should fix incorrect star envmap with EXTERNAL_DATA
2020-06-10 18:44:30 +03:00
fgsfds
62e78a74c0 fix crashes with EXTERNAL_TEXTURES on JP/EU and Bowser
related to two huge textures and fonts
2020-05-27 02:51:21 +03:00