Commit graph

557 commits

Author SHA1 Message Date
xLuigiGamerx
e4fd83bec7
Fixed the playerlist and modlist not updating their themes and added djui_menu_get_theme() (#519)
* Fixed the playerlist and modlist not updating their theme instantly

* Added djui_menu_get_theme()

* Removed text

* Fixed syntax error
2024-11-26 16:50:47 +10:00
Sunk
947ce9f080
Rework PvP Balance (#357)
* PvP Rework

This rearranges the damages of last PR. The underused attacks should still see some buffs.

* Adjust how punches apply invincibility

Also increase punch invincibility timer to 12

* EmeraldLoc's easy suggestions

* Rework punching pvp

Punching no longer reduces invincibility frames. Instead, punches can ignore knockback invincibility and the full punch punch kick combo can be done.

* Adjust numbers

Breakdances should not deal 3 damage

* Potential fix for more common tripping

"Trip" here refers to 1 damage kicks

* Add temporary invincibility to rollouts

This is a test to see how different pvp feels with this change. Suggestion by sausrelics.

* Fix invincibility

* Prevent low damage/low knockback kicks altogether

* Update ignored attack list

* Allow dives to be attacked by most actions

A lot of people don't want dives to be entirely invincible and some suggested to make dives be able to only pierce through jump kicks

* Slightly nerf kick knockback

Suggestion by emily

* Rework dive piercing

Instead of all actions being able to hit dives other than jumpkicks, now only slidekicks (and ground pounds) can hit dives.

* Mild kick knockback increase from nerf

* Change direct equality to checking flag

* Decrease dive and punch knockback

* Prevent trades against dives with slidekicks

* Revert "Prevent trades against dives with slidekicks"

This reverts commit 2a2c3266a7.

* Allow ground pounds to always hit a sliding player

* Add server setting to change pvp

* Add pvp settings to config

* Add selection to menu

* Fix issues + autogen

* Rewrite goto statement to not use goto
2024-11-25 20:48:40 +10: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
Isaac0-dev
39826deadd add a way to find surface types in collision 2024-11-22 08:57:37 +10:00
Isaac0-dev
4deff6f3f4 fix an oversight 2024-11-21 15:10:21 +10:00
Cooliokid956
6badf67a33
Add location label override (#390) 2024-10-27 15:52:17 +10:00
EmeraldLockdown
904c4c9c13
Change MAX_KEY_VALUE_LENGTH to 512 (#386) 2024-10-23 10:49:23 +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
Cooliokid956
418b1201a0
Various FOV fixes and additions (#384)
* interpolate all fovs

* perfected the fov equation

just the facts

* create fov coefficient function

use it to scale units along with fov

* add get_current_fov

returns the current fov
2024-10-22 11:04:46 +10:00
Drahnokks
636b385e48
add controller.buttonReleased (#379) 2024-10-20 09:25:08 +10:00
Isaac0-dev
f8a30e4fd8 fix some issue with recent prs 2024-10-18 12:47:24 +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
Sunk
9621424069
Fix early hits (#363)
Sometimes, the player can ground pound a pole before even landing or punch/kick an enemy at high speeds which will kill the enemy but not give bounce back to the player. This fixes those, although there are definitely mod incompatibilities.
2024-10-17 18:31:01 +10:00
Sunk
b2bf9abafa
Add some suggestions from issues (#354)
* Make dives knockback based on speed

Suggestion from issue #349

* Add `get_local_coopnet_id`

Suggestion from issue #264

* Readd breakdancing as an attack

Suggestion not only from me but also from a few players I talked with. However this was not a suggestion that came from issues.

* Change around pvp damage

Suggestion from issue #343 and some changes from talking with the creator of the suggestion

* Change `get_local_coopnet_id`

The function can now take in any local id and has been renamed to just `get_coopnet_id`

* Suggested fixes
2024-10-07 13:43:04 +10:00
Isaac0-dev
4aa2a20f72
fixes, clean up and some new features (#259)
- Only inited `smlua_audio_utils` if needed, since there will probably be plenty of people who play without ever using mods with custom audio.
- Fixed the pause anywhere setting - this ended up not being fully accurate to ex-coop, which it was originally intended to be.
- Stopped regenerating dynos collision bin on start up every time therefore giving a slight start up speed boost for some people.
- Added a config file setting that lets people choose to compress dynos bins on startup (disabled by default).
- Fixed a warning that shows on non macs during compiling.
- Properly fixed the chat box focus.
- Made the public lobby rules panel "temporary".
- Added a cleaner loading screen design.
- Added an ex-coop theme easter egg, can only be activated from the config file.
- Cleaned up the Lua traceback logging, now shows the folder and file the error occurred in, rather than the full path.
- Added a way to set `gCheckingSurfaceCollisionsForCamera`, so mods can specify to surface finding functions to ignore `SURFACE_FLAG_NO_CAM_COLLISION` internally.
- Rewrote the way smlua pushes CObjects/CPointers to Lua. Now using the C Lua API entirely to connect to Lua.
	- Fixed a use-after-free bug that could easily crash the game through Lua (explained further in one of my comments below).
- Fixed a common crash in `audio_sanity_check`.
2024-09-12 19:09:01 +10:00
EmeraldLockdown
c3d3f8545a
HOOK_ON_NAMETAGS_RENDER (#213) 2024-09-12 19:01:16 +10:00
EmeraldLockdown
39e035239c
Add djui_attempting_to_open_playerlist (#195) 2024-09-06 17:08:22 -04:00
Agent X
a4ed5ddb53 v1.0.3 2024-09-01 19:00:38 -04:00
Agent X
e6edb61dfb Bump online version 2024-09-01 17:51:20 -04:00
Agent X
c94990f743 v1.0.2 2024-09-01 14:17:52 -04:00
Cooliokid956
c509dab0cf
Add rotation interpolation (#208)
* Interpolate rotation

* Autogen'd

* Resolution 1

* Resolution 2

* Resolution 3

* Resolution 4

* Fixed jitter at low angular velocities

More in the comment below
2024-07-21 18:58:38 -04:00
Blockyyy
1ac9ce8e4c
sequence_player_set_tempo, sequence_player_set_transposition (#224)
* Made Sequence function

* snake case
2024-07-21 18:56:18 -04:00
Agent X
594ff262bc a bunch of fixes (#216)
Nice job targeting the main branch Isaac

Co-Authored-By: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com>
2024-07-17 08:37:42 -04:00
Agent X
2b6a173f8b Added gFirstPersonCamera.forceYaw 2024-07-17 08:25:23 -04:00
Agent X
60b9e43604 Fix first person a little and add pitch forcing 2024-07-11 23:10:51 -04:00
Agent X
8690c0e4ee Increment version 2024-07-10 12:06:11 -04:00
Agent X
e953fb3bf3 Hide player palette color channel functions to minimize confusion 2024-07-09 15:39:02 -04:00
Agent X
ad2e84ed30 Expose get_mario_cap_flag() 2024-07-08 22:13:41 -04:00
Agent X
2601d4cc4f Undeprecate and restore network_discord_id_from_local_index 2024-07-07 20:06:33 -04:00
Agent X
b20753f0c0 Change METAL back to CAP 2024-07-05 22:46:16 -04:00
Agent X
543511ff28 Undeprecate env region functions 2024-07-03 19:51:54 -04:00
Agent X
09d0394aba Alleviate the script warning nagging 2024-07-03 19:43:08 -04:00
Agent X
81c4180a06 Remove Waluigi anims 2024-07-01 18:32:27 -04:00
Agent X
1bde63d3d8 Expose should_push_or_pull_door() 2024-06-30 20:15:12 -04:00
Agent X
c144ff6780 Remove unused Waluigi animation 2024-06-30 17:46:18 -04:00
Agent X
b1b8ceafcb Add back legacy palette fields so mods don't immediately break 2024-06-30 10:48:22 -04:00
Agent X
b228b3bb0e Re-enable update checker/changelog code, set version back to v1.0 2024-06-30 07:43:13 -04:00
Agent X
4967c911cc This is dangerous, apparently 2024-06-29 16:39:27 -04:00
Agent X
20d2e3de6b Add djui_menu_get_font 2024-06-29 16:15:44 -04:00
Agent X
8a5a23a8a6 Add HOOK_ON_MODS_LOADED 2024-06-29 16:00:42 -04:00
Agent X
3359ebba0b Add AWESOME new lighting color functions 2024-06-27 16:54:13 -04:00
Agent X
971ddc00cd Remove legacy struct fields, fix a function name 2024-06-26 18:51:11 -04:00
Agent X
ac805bf94d Expose some behavior_script.h functions to Lua 2024-06-23 19:30:38 -04:00
Agent X
3707ca9b2e Separate some smlua_misc_utils functions into their own files & add get/set_skybox_color 2024-06-21 23:26:13 -04:00
Agent X
e42f114b2d Add gLevelValues.jrbDarkenSkybox 2024-06-21 22:57:44 -04:00
Agent X
6eae0e28d1 Change METAL to EMBLEM 2024-06-21 13:51:06 -04:00
Isaac0-dev
003136db4f
add get_surface_from_wcd_index (#75) 2024-06-21 12:14:59 -04:00
Agent X
fa2ffcdcb9 Readd 'loaded' field to mod audio for CS compatibility 2024-06-19 17:50:24 -04:00
Isaac0-dev
eeebfecca4
more loading screen fixes for non supported builds (#74) 2024-06-19 11:43:01 +10:00
Agent X
56b96a97e2 Turn collision_find_surface_on_ray into an smlua function 2024-06-17 13:03:38 -04:00
Agent X
52b4d51508 Add collision_find_surface_on_ray_precision 2024-06-16 10:45:55 -04:00
Agent X
15c9602e11 Add gLevelValues.infiniteStairsRequirement and gBehaviorValues.CourtyardBoosRequirement
Ported this PR from the sm64ex-coop dev repo.

Co-Authored-By: Emily♥ <77174187+emilyemmi@users.noreply.github.com>
2024-06-14 10:37:14 -04:00
Agent X
e780b74d1b Properly sync BITS ferris wheel platforms 2024-06-13 20:33:47 -04:00
Agent X
7026a2862f Add save_file_erase because it's already possible at this point 2024-06-13 20:33:47 -04:00
Agent X
40fb681eda Expose sound_get_level_intensity 2024-06-12 15:01:11 -04:00
Agent X
41525c1fc3 Rename HOOK_OVERRIDE_PHYS_STEP_DEFACTO_SPEED to HOOK_MARIO_OVERRIDE_PHYS_STEP_DEFACTO_SPEED 2024-06-12 09:42:43 -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
cb729dc40a Make audio streams update volume 2024-06-09 10:26:51 -04:00
Agent X
7c01e405e0 Allow mods to do -- ignore-script-warnings: true 2024-06-09 09:31:48 -04:00
Agent X
9dcbef97eb Make smlua_model_util_get_id return ModelExtendedId 2024-06-07 20:33:48 -04:00
Isaac0-dev
a04aa4c240
make Lua calls to interaction functions call interaction hooks (#52)
* make Lua calls to interaction functions call interaction hooks

* Revert "make Lua calls to interaction functions call interaction hooks"

This reverts commit 14c597cd340cb19acd72f7e4327f6f078bf09f1d.

* thanks peachy for a far better solution

* don't let mods lie about what interaction it is
2024-06-07 19:14:33 -04:00
Agent X
ed1986e743 Add volume control functions to Lua 2024-06-07 17:34:24 -04:00
Isaac0-dev
eaeaeb0f7f
add a way for mods to get dynamic surfaces that belong to specific objects (#59)
Adding this for collision minimap, but I'm sure it'd be useful for many other mods that deal with collision in this kind of way

exposes a function, obj_get_surface_from_index. pass in an object, and the index of the surface you want. numSurfaces is also added to know when to stop iterating through surfaces

Thanks to peachy for coming up with the better method of doing this

Co-authored-by: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com>
2024-06-06 17:24:28 +10:00
Agent X
6305c20410 Add 'script warnings' for using deprecated functions, add new Discord ID function 2024-06-05 18:58:38 -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
Agent X
1f3af25805 Expose fade_into_special_warp 2024-05-21 17:10:00 -04:00
Agent X
ceb7aa4649 Palette system overhaul and preset rewrite 2024-05-21 17:09:59 -04:00
Isaac0-dev
0d71c6c12f
remove animation dma tables, and provide mods more access to mario animations (#47)
This removes the old animation system which would create 16 copies of the animation table, so this should use less memory. Made m->animation->targetAnim always be a pointer to the actual animation in gMarioAnims, so mods can grab the pointer and reuse it.
added get_mario_vanilla_animation to Lua, which lets a mod get any of mario's built in animations from its index.
2024-05-21 21:17:30 +10:00
Isaac0-dev
eaa1a59996
fixed some mario cutscene action related bugs (#43)
- fixed a bug where remote players would show mario's head repeatedly twitching up and down while reading automatic dialog
- fixed a bug where remote mario's would sometimes not update while unlocking a star door, resulting in the previous animation playing during that action
- fixed a bug where players exiting a warp door could get stuck for a few extra frames due to other players opening that same door.

- added dialogId to MarioState, which is synced for remote players the dialog id that player has active. this can be used by Lua mods - don't access the local player's dialog id because that isn't updated as that is unnecessary
2024-05-14 09:45:33 +10:00
Isaac0-dev
bab8be49af
fixed a crash & memory leak from smlua_text_utils (#40)
* fixed a crash & memory leak from smlua_text_utils

* prevent autogen from exposing smlua_text_utils_shutdown

* forgot to push this
2024-05-13 19:38:53 -04:00
PeachyPeach
14cbb673fc
Proper custom object fields (#39) 2024-05-14 08:52:56 +10:00
Agent X
3d2436c808 Rename is_playerlist_open to djui_is_playerlist_open 2024-05-12 09:18:40 -04:00
Agent X
3c86c0c83b Add is_playerlist_open() 2024-05-12 09:16:55 -04:00
Agent X
cb6f5f2b30 Revert "Add gServerSettings.enableChat"
This reverts commit c21c255241.
2024-05-12 08:15:57 -04:00
Agent X
ec3fb07e76 Add @Hex4dec HOOK_ON_ATTACK_OBJECT 2024-05-11 18:44:18 -04:00
Agent X
96018588cd Fix convert_constants.py on Python 3.12 2024-05-11 17:55:38 -04:00
Agent X
e6880a5fee Add new networked water level functions 2024-05-11 17:55:18 -04:00
Agent X
c21c255241 Add gServerSettings.enableChat 2024-05-11 16:48:59 -04:00
Isaac0-dev
1e4e1f8e75
fix bugs caused by interpolating the frame an object spawns (#36) 2024-05-11 08:28:20 +10: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
Isaac0-dev
76b66e9b7d
give Lua mods some more control over dialog boxes (#19)
exposed set_menu_mode, create_dialog_box, create_dialog_box_with_response, create_dialog_box_with_var, create_dialog_inverted_box, reset_dialog_render_state
added and exposed get_dialog_response
HOOK_ON_DIALOG can now take an extra return value as a string, which will be used instead of what ever was going to be in the textbox.
2024-05-06 17:51:28 +10:00
Isaac0-dev
90b071acc0
exposed a bunch of interaction functions to Lua (#22)
Renamed the function interact_unknown_08 to interact_spiny_walking
and added the constant INTERACT_SPINY_WALKING, which has the same value of INTERACT_UNKNOWN_08
INTERACT_UNKNOWN_08 is kept for compatibility with smlua, and behavior dynos bins
2024-05-03 18:38:21 +10:00
Blockyyy
a7b2741aa7
added HOOK_ON_SEQ_LOAD (#18) 2024-04-24 22:39:34 +10:00
Agent X
b8c42f308f Disallow function that shouldn't be in Lua 2024-04-09 17:40:52 -04:00
Isaac0-dev
974577f678
djui player menu custom camera cutscene (#2) 2024-03-28 18:53:46 -04:00
PeachyPeach
2a36b14dcd Remove OMM Rebirth temporary fixes (#542) 2024-03-25 18:35:25 -04:00
Isaac0-dev
4473bfffe9
removed bass, replaced with miniaudio (#8) 2024-03-23 16:14:53 -04:00
Isaac0-dev
663e4549d8
extract assets from rom at runtime (#4)
* Proof of concept for loading rom assets at runtime

* Added skybox textures

* Adjusted format

* Load all texture assets from rom

* Adjusted rom asset loading

* Load all Vtx lists from rom

* clean up toad, wario and his cap conflicts

* Load sound samples from rom

* fix toad sounds

* Loaded sequences from rom

* Load collisions from rom

* Object animations are now loaded from the rom

* Load player animations from rom

* Load goddard anims from rom

* whoops

* fix some compile errors

* drag and drop rom checker, everything works now.

* fix errors due to merge conflicts

* fix compile errors on windows, switch to md5

* fix vertex colors during load

Co-Authored-By: Agent X <44549182+agent-11@users.noreply.github.com>

* Load dialogs from rom

* Loaded course/act names from rom

* Loaded ingame text from rom

* rerun autogen & blacklist smlua_text_utils_init

* fix ttc_seg7_vertex_0700B238 colors

---------

Co-authored-by: MysterD <myster@d>
Co-authored-by: Agent X <44549182+agent-11@users.noreply.github.com>
2024-03-23 16:11:30 -04:00
Agent X
33d710c821 Set VERSION_TEXT to "v" 2024-03-20 19:54:18 -04:00
Isaac0-dev
90331f8fe5 fix mod compatibility due to version constants 2024-03-19 20:47:18 +10:00
Agent X
5fba777c1c Set version to 1.0 for now 2024-03-18 19:28:41 -04:00
Agent X
7dd02b5c4d Massively improve "Global Player Models" option 2024-03-17 20:58:38 -04:00
Agent X
de1e24b7b9 Remove sm64ex-coop compatibility 2024-03-17 16:32:49 -04:00
Agent X
d2842becdb Restore old versioning system 2024-03-17 15:02:03 -04:00
Agent X
58a3ed49f7 Revert "Add ability to set global note frequency scale"
This reverts commit de9c3c35b2.
2024-03-13 17:24:46 -04:00
Agent X
9b67a74d93 Bump version to 0.2 2024-03-09 21:07:18 -05:00
Agent X
74422d16a4 Fix Toadette palette 2024-03-09 14:18:30 -05:00
Agent X
edd29c0719 Remove set gfx adjust for aspect ratio function
Too much power.
2024-03-08 19:47:46 -05:00
Agent X
91eb1966a0 [WIP] Update checker 2024-03-07 17:33:43 -05:00