Commit graph

63 commits

Author SHA1 Message Date
Dominicentek
d97df8f87b Merge branch 'dev' of https://github.com/coop-deluxe/sm64coopdx into proximity-chat 2026-06-14 20:16:28 +02:00
PeachyPeach
06ce5a2d3f
Custom object fields enhancements (#1230)
* Define global custom object fields

* _global_custom_object_fields

* improve custom object fields

* fix cobject pairs + add custom object fields; remove unused stuff

* mucher better

* paramater

* review 1

* review 2

* Fix 'obj_get_*_with_*_field_*' functions with custom fields
2026-06-14 16:28:52 +02:00
Dominicentek
1182b8114c [voice chat] expose gVoicePlayers global 2026-06-02 21:51:54 +02:00
PeachyPeach
834512a5c5
Fix Lua/custom behaviors bugs and flaws (#1229)
* improve custom behaviors logic

* clarify description of get behavior functions; get name returns last name instead of first; create generic name only when needed

* review

* fix potential buffer overflow
2026-05-19 10:56:08 +10:00
EmeraldLockdown
37f4b2e550
Expose gHudDisplay (#1158)
* Expose `gHudDisplay`

* Fix that
2026-05-01 22:25:06 -04:00
Squishy
0d95dfde11
Add independent X and Y scaling to text rendering functions (#1182)
* djui scale cool awesome

* fix autogen

* stop unnecessary yellow underlines

* Fix accidental bind removal
2026-05-01 21:17:44 -04:00
djoslin0
2c367b556d
Add surface collision Lua hooks (#1139)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
* Add surface collision Lua hooks

- Add 6 new hooks:
    HOOK_ON_FIND_WALL_COLLISION,
    HOOK_ON_FIND_CEIL,
    HOOK_ON_FIND_FLOOR,
    HOOK_ON_FIND_WATER_LEVEL,
    HOOK_ON_FIND_POISON_GAS_LEVEL,
    HOOK_ON_FIND_SURFACE_ON_RAY

- Hooks expose current result values and allow overriding collision outputs from Lua

* Remove unnecessary branches

---------

Co-authored-by: MysterD <myster@d>
2026-03-15 14:04:36 +01:00
Agent X
d53338f2b8 Fix mario body state shade/light clamping
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled
2026-01-17 14:53:14 -05:00
Agent X
89c8650091 Add djui_is_chatbox_open 2025-11-15 10:30:32 -05:00
ManIsCat2
4fb5375d0d
GEO_BONE GeoLayout command (#913)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2025-08-20 12:46:32 +10:00
djoslin0
bf3127b3df
Add bytestring packets for mods to use (#866)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
Adds network_send_bytestring(), network_send_bytestring_to(), and
HOOK_ON_PACKET_BYTESTRING_RECEIVE

This is as close to raw bytes as you can get in lua. It allows you
to efficiently pack as much data as possible into each packet.

The existing network_send() was built for ease of use, but is quite
inefficient when you want to send a lot of data. Each number or int
field in the table amounts to 9 bytes for the key and 9 bytes for the
value. (amounting to 18 bytes per value). Whereas with the new method
you can pack that information into 1, 2, 4, or 8 bytes depending on
your type's size.

---------

Co-authored-by: MysterD <myster@d>
2025-06-30 11:24:39 +10:00
PeachyPeach
467b22e939
Gfx set command: v2 + Gfx/Vtx dynamic alloc (#718)
Some checks failed
Build coop / build-ubuntu (push) Has been cancelled
Build coop / build-windows (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled
* set_gfx_command part 2

* part 3

* get gfx/vtx from name; copy gfx/vtx

* gfx/vtx dynamic allocation lua

* gfx/vtx_new: don't take level/model/vanilla names

* Clean up gbi constants

* update example

* Isaac review; add gfx_get_next_command and vtx_get_next_vertex

* make all commands length 1; missing NULL checks
2025-04-12 18:19:14 -04:00
Agent X
0ee8d5f81e Fix/optimize/improve lighting engine 2025-03-28 23:06:48 -04:00
Agent X
661ba3b5b0 Clarify network send function comments 2025-03-23 17:38:00 -04:00
Agent X
0f0997a2ac Add mod menu text hook and make hook functions return index
Some checks are pending
Build coop / build-ubuntu (push) Waiting to run
Build coop / build-windows (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2025-03-15 18:04:59 -04:00
Isaac0-dev
0876d161e0 better level_script_parse
implemented all fields of the currently supported level commands:
- object model, position and angles
- macro model
2025-03-05 00:07:33 +10:00
Isaac0-dev
f238b3d0f5
allow Lua to manipulate displaylists and vertices (#675)
Co-authored-by: ManIsCat2 <137772623+ManIsCat2@users.noreply.github.com>
2025-02-27 14:27:55 +10:00
Agent X
8c8b7e91a3 Update some things 2024-12-29 14:38:45 -05:00
jayden
c8faa22072
Final touches for geo hooks (#588)
* new geo process children hook

* EXPOSE the mat stack

* fix formatting (oops)
2024-12-28 08:44:36 -05:00
jayden
2a19745137
Expose types of GraphNode to Lua (#580)
* expose graph_node.h

* cast_graph_node lua function

* document cast_graph_node

* graph node immutables
2024-12-22 19:15:04 -05:00
Sunk
5965b55eb6
Custom exclamation boxes (again) (#360)
* Unhardcode exclamation boxes

Part 1 of creating custom exclamation boxes

* Add `set_exclamation_box` and `get_exclamation_box`

Part 2 of creating custom exclamation boxes

* Exclamation box docs

Part 3 of creating exclamation boxes, although this was entirely optional

* Safety check

* Add a warning

* Remake component check

* Update warnings

* Check for subtables not being tables

* Reduce exclamation box size

This matches how many contents could exist in vanilla due to its hardcoded id 99 check. This check allows me to reasonably assume that no romhacks have more than 99 custom contents. Other mods that may use this function really shouldn't need more than 99 contents either.
2024-11-25 19:26:37 +10:00
Motoo Chhotoo Chintoo
e967e2cd1e
Functions to update Mod Menu elements (#385)
Three new functions have been added, to be able to change the respective mod menu elements' values:
- update_mod_menu_element_checkbox
- update_mod_menu_element_slider
- update_mod_menu_element_inputbox
2024-10-22 16:45:19 +10:00
John S
3dd9226bc9
Update math_util.c and math_util.h to support autodoc with trig functions (inline instead of macros) and add new functions to smlua_math_utils (#359)
* Update math_util.c and math_util.h to move toward inlining functions instead of macros for autodoc. Expose some misc functions useful to lua

* Fix formatting

* Fix math_util.c formatting

* Fix formatting for smlua_math_utils.c

* Fix formatting smlua_functions.c

* Fix type redundancy in _Generic macros

* Add checks for including the highly optimized builtin compiler functions for GCC/Clang

* Add compiler checking for absx() to add in the highly optimized GCC/Clang builtins

* Fix repeated use of float built-ins for non floating point numbers

* Fix grammar mistake

* Fix functions to use camelCase as requested.

* Fixed the use of a custom sqrt approximation as modern procs have a built in FSQRT instruction that is faster.

---------

Co-authored-by: js <js@cartbara.columbus.rr.com>
2024-10-18 12:20:36 +10:00
Agent X
4967c911cc This is dangerous, apparently 2024-06-29 16:39:27 -04:00
Agent X
56b96a97e2 Turn collision_find_surface_on_ray into an smlua function 2024-06-17 13:03:38 -04:00
Agent X
0e0b3c1862 Expose gCurrentArea and gCamera to Lua 2024-06-10 11:32:05 -04:00
Agent X
6471da0a07 Remove crash-prone mod menu force unpause feature 2024-06-09 10:32:43 -04:00
Agent X
2b2dceb333
Add a mod menu where mods can put DJUI elements (#56)
* Add a menu where mods can put their options at

* Document mod menu hook functions

* Add HOOK_ON_LANGUAGE_CHANGED

* Add new Cheats mod

* Make player menu disable singleplayer pause

* fix some git merge conflicts that weren't resolved (#55)

and added -latomic to build flags to fix compile warnings while compiling miniaudio

* Remove legacy 'deluxe' field from built-in mods

* Lots of improvements to memory safety

* Abbreviated hex color parsing

Co-Authored-By: Mechstreme <84944335+mechstreme@users.noreply.github.com>

---------

Co-authored-by: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com>
Co-authored-by: Mechstreme <84944335+mechstreme@users.noreply.github.com>
2024-06-01 20:52:43 -04:00
Isaac0-dev
a5c4e29d2f
allowed add_scroll_target to use behavior parameters for offset and size (#20) 2024-05-08 22:12:55 +10:00
Agent X
b6a396b0cd Document texture_override_set a little more 2024-02-21 14:59:31 -05:00
Agent X
6886f248f8 Add gControllers 2024-01-01 14:43:44 -05:00
Agent X
b603c1f858 Update manual.lua 2023-12-10 10:12:00 -05:00
MysterD
8d72c7eb76 Remove hook_exclamation_box() 2023-11-26 21:34:28 -05:00
Agent X
5cb9e25090 Overhaul console logging 2023-11-26 16:49:32 -05:00
Agent X
cc9348c71c Fix compilation warnings 2023-11-21 17:44:36 -05:00
Sunk
a85c8dbbf8 Create hook_exclamation_box in place of set_exclamation_box_contents (#524)
* Revert set_exclamation_box_contents()

In favor of the hook

* Create `hook_exclamation_box`
2023-11-21 17:22:54 -05:00
David Joslin
fbfbc15e44 manual.lua fixes 2023-11-21 17:17:21 -05:00
Agent X
e79775aea4 Improve first person and add gFirstPersonCamera 2023-11-11 16:49:46 -05:00
Agent X
802affd839 ENHANCE_LEVEL_TEXTURES and make all DynOS textures overridable in Lua 2023-11-11 12:15:32 -05:00
Sunk
c428612a9e
Add set_exclamation_box_contents() (#445)
* Properly set Mario's y vel to 0 on popping

* Change 0 to 0.0f, just in case

* Re-introduce a few vanilla bugs under gBehaviorValues

The Shell Mario glitch was patched as a side effect to patching a different bug, but several romhacks use it so I need it back.
The ability to collect multiple normal caps at once is needed for hat-in-hand using the hat factory glitch.

* Fix Shell Mario fix

Found the actual reason why the glitch doesn't work and figured that this change shouldn't affect anything else, so I removed its entry from gBehaviorValues.

* Add InfiniteRenderDistance to gBehaviorValues

I'm well aware that disabling the infinite render distance will be very desync prone, however a few glitches, most notably cloning and chuckya double jump, need objects load and unload from render distance.

* Allow mods to disable the camera centering from romhack camera

* Allow mods to disable romhack camera centering

Done again

* Update on network shutdown

* Remove a line which I have no idea why it returned

* Add set_exclamation_box_contents()

No way this is memory safe or even well made but I did what I could

* Added (most of) peachy's suggestions

Still need to figure out how to stop the game from reading further than the size of the array without using a hardcoded number

* Added more of peachy's suggestions

I figured a good way to cap how far the exclamation box reads is to pass in the length of the array as well
2023-07-18 18:18:02 -04:00
Sunk
3242c4e7c8
Document manual.lua (#443)
* Properly set Mario's y vel to 0 on popping

* Change 0 to 0.0f, just in case

* Massively increase surface pool size

Also exposed the surface pool counts by creating a few functions to get them. They only existed for debugging but may as well keep them.

* Allow extended moveset to be toggled from a chat command

I got permission to edit extended moveset. Eventually I'll try to see if I can improve upon this moveset.

* Remove old surface code

Part 1

* Heavily document manual.lua

Hopefully nothing I added is wrong

* Small change in descriptions
2023-07-18 18:00:35 -04:00
MysterD
929b10995c Allow other mods to add levels to arena 2023-05-31 16:56:57 -07:00
PeachyPeach
2aa6e1aa08
custom animations no dynos (#371)
Load animations with smlua_anim_util_register_animation and set them with smlua_anim_util_set_animation.
2023-04-28 21:00:17 -07:00
PeachyPeach
999ea1dd42
Expose globally custom behaviors defined with hook_behavior (#345)
* Expose globally custom behaviors defined with hook_behavior; macros for mod strings max length

* fixes

* made customBehaviorIndex a mod field to be more relevant
2023-04-17 21:54:55 -07:00
PeachyPeach
318807d3c2
level_script_parse description (#340)
enhanced level_script_parse description
2023-04-10 12:25:26 +02:00
Agent X
b13b96cc19 Add gServerSettings to Lua manual tables 2023-03-07 17:46:09 -05:00
Agent X
4e293712fd
Expose Paintings to Lua (#279)
* Expose paintings to Lua

* Make some "dangerous" fields immutable

I just thought being able to edit paintings IDs from Lua was a little bit too much.
2023-02-16 18:54:38 -05:00
Isaac0-dev
0b6f0dcf0e
Give Lua mods access to a form of level script preprocessing (#258)
* Give Lua mods access to a form of level script preprocessing

* Disable acts setting
2023-01-31 07:24:56 -05:00
Isaac0-dev
07ad5a55c5
add HOOK_OBJECT_SET_MODEL (#236)
* add HOOK_OBJECT_SET_MODEL
runs whenever a behaviour sets a model.
2022-11-30 00:37:43 -08:00
PeachyPeach
55ed83ddb8
djui_hud_render_texture_tile[_interpolated]; increased GFX pool and main memory pool (#211)
djui_hud_render_texture_tile: allows user to draw a part of a texture instead of the whole texture (tilesets)
    increased GFX pool size from 512kB to 4MB
    increased main memory pool size from ~11MB to 32MB
2022-11-02 19:45:20 -07:00