Commit graph

48 commits

Author SHA1 Message Date
Blockyyy
c2c846f650 Expose lvl_set_current_level (#513)
* Expose Initiate_warp

exposed initiate_warp function
exposed WARP_NODE_ constants

* expose lvl_set_current_level

* remove initiate_warp
2023-11-17 18:29:37 -05:00
Agent X
ce987ef3dd Add first person functions to Lua 2023-11-12 09:53:08 -05:00
MysterD
081a7fd9dc Added HOOK_ON_RENDER_BEHIND, deprecated djui_hud_set_render_behind_hud() 2023-11-08 19:53:27 -05:00
Blockyyy
56e7470e7b Exposed warp_special (#493)
Exposes the warp_special function and adds some constants for it

Fixed the crash by making it so a script error happens instead.
2023-11-06 14:59:20 -05:00
Agent X
49bca1cc01 sm64coopdx
Co-Authored-By: Yuyake <140215214+AngelicMiracles@users.noreply.github.com>
Co-Authored-By: FluffaMario <50761036+FluffaMario@users.noreply.github.com>
Co-Authored-By: Gregory Heskett <gheskett@gmail.com>
Co-Authored-By: iZePlayzYT <69536095+iZePlayzYT@users.noreply.github.com>
Co-Authored-By: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com>
Co-Authored-By: eros71 <16540103+eros71-dev@users.noreply.github.com>
2023-10-30 01:03:36 -04:00
EmeraldLockdown
9b502346a7
Console Overhaul (#490)
Completely redid the console ui to look more like the rest of coop
    Added log_to_console and djui_console_toggle to lua
    Made the keybind to activate it the tilda key (~) instead of ctrl+f1
2023-10-28 00:18:23 -07:00
MysterD
27b799055c Fix compile errors from recent merges 2023-10-27 18:02:04 -07:00
Keeberghrh
e02a68e221
Character Animation System (#441)
Replaces references to set_mario_animation() with set_character_animation(), but the old function still exists as a way to play any character animation on any character. Waluigi has two animations, added as a test and may not be final. Exposed new functions to Lua for usage in mods.
Primary concern is that each character requires 209 lines indicating what animations they use, similar to Character Sounds.
2023-10-27 17:43:45 -07:00
PeachyPeach
610bdfcf04
fix C string typing (#459) 2023-08-18 18:31:59 +02:00
Agent X
ed60d53ab3
Mod Storage C++ (#448)
* Mod Storage C++

* Implement Peachy's suggestions.

Thank you Peachy.
2023-07-18 17:52:11 -04:00
Dominicentek
2629381971
Customizable dialogs (#411)
* add customizable dialogs

* remove testing mod

* add HOOK_ON_DIALOG

* Reset dialog overrides in `network_shutdown`

It may have compile errors idk editing code on phone sucks

* typo smh

* copy over the file from original repo so this fork can be synced

* run autogen again

* actually im stupid
2023-06-18 20:04:39 -07:00
Agent X
f1990c618e
Add tons of new save file / star related functions (#419)
These were needed to port interact_star_or_key to Lua but are also just good to have exposed IMO.
2023-06-18 20:04:02 -07:00
Isaac0-dev
fad7984cd4
add djui_open_pause_menu() (#391) 2023-05-11 06:10:25 -04:00
Prince Frizzy
d368e4e844
Name more audio code and variables, Document some others. (#386) 2023-05-10 14:31:58 -07:00
PeachyPeach
3ab4c944ac
better kick/punch/trip, gp and flying detection (#388) 2023-05-09 15:38:29 -04:00
Agent X
52d70e33a5
Expose some painting functions to Lua (#357)
* Expose some painting functions to Lua

get_painting_warp_node
initiate_painting_warp

* Change initiate_painting_warp u8 to s16

In initiate_painting_warp, pass in -1 to not override the painting index.

* Add sanity checks to get_painting_warp_node

* Add requested changes
2023-05-03 00:54:57 -07:00
Marioiscool246
7b4b873d39
Add fov adjustment to djui_hud_world_pos_to_screen_pos (#374)
* Add fov adjustment to djui_hud_world_pos_to_screen_pos
sFOVState is now a global (gFOVState)
djui_hud_world_pos_to_screen_pos now returns false if the position is behind the camera

* Fix aspect ratio parentheses

* Rerun autogen

---------

Co-authored-by: Marioiscool246 <marioiscool101@gmail.com>
2023-04-30 22:54:55 -04:00
MysterD
f2a8df7728 Made nametags mod interpolate names and health 2023-04-24 16:45:25 -07:00
PeachyPeach
fe934ffe82
djui_hud_set_rotation (#356)
* djui_hud_set_rotation

* some goddard textures
2023-04-24 06:34:21 -04:00
MysterD
4566b7ee14 Ripped out discord network system, started re-adding invites 2023-04-15 19:53:34 -07:00
MysterD
e7ebce5207 Removed lag compensation functions that shouldn't be added to the Lua API 2023-04-03 21:56:52 -07:00
MysterD
fce88728d2 Improve lag compensation 2023-04-03 13:55:03 -07:00
MysterD
192d47aea0 Added FONT_TINY 2023-04-02 23:02:14 -07:00
Agent X
751dfe61c7
Move everything over (#280) 2023-03-20 22:36:25 -04:00
Agent X
22952dda05
Expose sound_banks_enable/disable to Lua (#311) 2023-03-18 17:12:33 -04:00
Agent X
4aada40a62
area_create_warp_node and area_get_warp_node* (#270)
* area_get_warp_node*

- Added area_get_warp_node to Lua
- Added area_get_warp_node_from_params to Lua

* area_create_warp_node and warp constants

Here you go Isaac!

* Add object param

* Commits work again, pushing everything else
2023-02-20 21:47:32 -05:00
Prince Frizzy
523e7842d9
A bunch of LUA autogen additions. (#235)
* A bunch of LUA autogen additions.
- Add support for Vec4f, Vec4s and Mat4 in the autogen.
- Improve error messages for improper argument counts
- Added support for more pointer types in the autogen.

* Fix offsets in sMat4Fields.

* autogen: Rework this at the request of DJ.
2022-11-30 00:37:12 -08:00
Prince Frizzy
f815a53080
Add some new LUA helper functions and fix some bugs. (#230)
- Add new functions for objects, Feel free to flesh some out if need be.
- Fix long-standing issue with our LUA garbage collection, It will now run after all our hooks do to prevent buildup which causes lag.
2022-11-12 05:01:50 -08:00
MysterD
b6b5b4f4e3 Add ability for mods to signal that a player will not be seen by enemies 2022-11-11 19:02:11 -08:00
MysterD
36270e4301 Reran autogen 2022-09-26 19:30:09 -07:00
Agent X
4b84a87c6f
Mod storage, network_discord_id_from_local_index and other small changes (#200)
* Mod storage & network_discord_id_from_local_index

Introducing mod storage, a key/value system for saving things like high scores or settings or anything like that to AppData\Roaming\sm64ex-coop\sav\mod-name.sav (Windows example)
You can currently save only strings meaning if you want to save a number you'd need to do
mod_storage_save("score", tostring(score))
and then
score = tonumber(mod_storage_load("score"))
To handle types like that.
network_discord_id_from_local_index() returns the discord ID of a player by local index.
Some misc changes I made were removing the unsed ini.h include in save_file.c and making the autogen converters output LF line endings instead of CRLF on windows.

* Prevent getting id if using direct connect

* Update djui_panel_player.c

Why does this bother me?

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-09-26 19:28:26 -07:00
Emerald Lockdown
8e9b2c270c
save_file_erase_current_backup_save and more (#189) 2022-09-26 19:14:53 -07:00
Agent X
6c0757c908
Color type and palette/color functions (#199)
Added a Color type (typedef u8 Color[3])
Added network_player_color_to_palette and network_player_palette_to_color
Reran autogen
2022-09-26 19:11:51 -07:00
Agent X
1241c56ed9
Expose level_trigger_warp and related constants (#197) 2022-09-19 19:51:27 -07:00
Isaac0-dev
c7bdeef8d5
multiple improvements (#176) 2022-09-12 20:00:51 -07:00
Emerald Lockdown
a864e2d3ba
Add network_is_moderator (#180) 2022-09-12 19:58:58 -07:00
Isaac0-dev
d4417171e4
Improvements (#151)
More lives fixes, death loop fix, add a null check and add get_dialog_id()
add a way to disable rom hack cam collisions
expose more sound management functions
2022-08-25 17:25:54 -07:00
Prince Frizzy
913f41f6ae
Add some more functions for use in LUA, And expose others. (#129)
* Add some functions, and restore one.
2022-08-05 22:17:05 -07:00
MysterD
59a36149fe Update autogen 2022-06-01 01:00:21 -07:00
MysterD
bd7974a544 Consider all walls when doing quarter steps (fixCollisionBugs) 2022-05-31 08:44:18 -07:00
MysterD
de2300f837 Fix clang/mac compile 2022-05-19 19:42:07 -07:00
PeachyPeach
27db236b5d
Various bug fixes + Added is_game_paused() and more background music functions to lua (#93)
Bug: DynOS models with animations cannot swap animations if they are
     loaded via lua (smlua_model_util_get_id and
     obj_set_model_extended).
Fix: DynOS_Actor_GetActorGfx takes a graph node instead of a georef,
     and checks for DynosValidActors graph nodes if georef is NULL.

Bug: The game can crash when calling obj_set_model_extended inside a
     HOOK_ON_OBJECT_RENDER hook.
Fix: The crash happens in smlua_model_util_load_with_pool_and_cache_id
     due to pool being NULL. If the game can't allocate an
     AllocOnlyPool object, use DynOS to generate the graph node.

Bug: warp_to_level and similar functions don't trigger HOOK_ON_WARP.
Fix: Call HOOK_ON_WARP hooks in DynOS_Warp_UpdateWarp and
     DynOS_Warp_UpdateExit after level and mario initialization.

Bug: The game sometimes calls HOOK_ON_OBJECT_RENDER hooks for
     unintended objects.
Fix: Initialize hookRender field to 0 when creating an object.

Bug: Actions can't apply gfx offsets to characters that have an anim
     offset (Waluigi, Wario)
Fix: Add m->curAnimOffset to gfx.pos[1] instead of setting it to
     m->pos[1] + m->curAnimOffset, except during the jumbo star
     cutscene.
2022-05-14 14:28:25 -07:00
Agent X
4bc13ef275
djui_hud_get_raw_mouse_x/y, djui_hud_set_mouse_locked (#91) 2022-05-13 19:55:47 -07:00
MysterD
933914d984 Add djui_hud_world_pos_to_screen_pos, and render interpolated rect/texture 2022-05-13 19:54:49 -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
Agent X
6466fbe457
camera_freeze, camera_unfreeze, djui_hud_get_mouse_x, djui_hud_get_mouse_y, set_override_fov, set_override_near, set_override_far (#74) 2022-04-30 17:36:38 -07:00
PeachyPeach
6726a6280a
Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69)
Improved level_info.c and added functions to LUA:
        const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
            Return a level name as an ascii string. If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
            Return a level name as an sm64 u8 string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex):
            Shortcut for get_level_name_ascii(courseNum, levelNum, areaIndex, -1).
        const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase):
            Return a star name as an ascii string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase):
            Return a star name as an sm64 u8 string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const char *get_star_name(s16 courseNum, s16 starNum):
            Shortcut for get_star_name_ascii(courseNum, starNum, -1).

    Added play_transition function to LUA.
        I chose to copy the function declaration to smlua_misc_utils.h instead of adding area.h
        to the autogen tool, as most structures, variables and functions in area.h aren't meant
        to be used by LUA scripts.

    Added a dev-only warp chat command.
        This command signature is /warp [LEVEL] [AREA] [ACT]. Level can be either a number
            or a shorthand name (bob, wf, ccm...). Area and Act are numbers.
        This command is available only when building the game with DEBUG and DEVELOPMENT.
        This command cannot be used if hosting through Discord.

    Fixed a bug with moving sounds when they are played via a lua script.
        Bug: Moving sounds (including terrain sounds, flying sound, quicksand sound)
            are not played correctly when a lua script play them via a call of
            play_sound or play_sound_with_freq_scale. This is due to how the moving
            sounds are handled internally. They use the f32 pointer provided to the
            play_sound functions to decide if the sound must be kept playing,
            stopped or restarted. Most of the time, the pointer provided is the
            cameraToObject field of Mario's object graph node. Since smlua uses a
            circular buffer for Vec3f conversion, this pointer is lost, and the
            sound engine can't decide what to do with the sound, resulting in a
            weird and incorrect sound effect.
        Fix: play_sound and play_sound_with_freq_scale now calls
            smlua_get_vec3f_for_play_sound before filling the sound request queue,
            to retrieve the correct pointer from the Vec3f provided by smlua.
2022-04-26 13:48:50 -07:00
MysterD
48cff1c5da Split up functions.md into multiple pages 2022-04-22 18:41:42 -07:00