Commit graph

924 commits

Author SHA1 Message Date
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
8812fbac8b
HOOK_ALLOW_INTERACT; new HUD functions (#73)
Added new hook: HOOK_ALLOW_INTERACT:
        Called before Mario interacts with an object. Return true to allow the interaction.
        The hook signature is bool function(MarioState, Object, InteractionType)

    Added new HUD constants:
        enum HudDisplayValue:
            HUD_DISPLAY_LIVES
            HUD_DISPLAY_COINS
            HUD_DISPLAY_STARS
            HUD_DISPLAY_WEDGES
            HUD_DISPLAY_KEYS
            HUD_DISPLAY_FLAGS
            HUD_DISPLAY_TIMER
        enum HudDisplayFlags:
            HUD_DISPLAY_FLAGS_NONE
            HUD_DISPLAY_FLAGS_LIVES
            HUD_DISPLAY_FLAGS_COIN_COUNT
            HUD_DISPLAY_FLAGS_STAR_COUNT
            HUD_DISPLAY_FLAGS_CAMERA_AND_POWER
            HUD_DISPLAY_FLAGS_KEYS
            HUD_DISPLAY_FLAGS_UNKNOWN_0020
            HUD_DISPLAY_FLAGS_TIMER
            HUD_DISPLAY_FLAGS_EMPHASIZE_POWER

    Added new HUD functions:
        s32 hud_get_value(enum HudDisplayValue type)
        void hud_set_value(enum HudDisplayValue type, s32 value)
        void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height)
2022-04-30 17:33:38 -07:00
MysterD
a0e15a63db Check for ACT_FLAG_INTANGIBLE in passes_pvp_interaction_checks() 2022-04-30 17:28:02 -07:00
MysterD
121ae62d4c WIP: uncapped framerate 11 2022-04-30 17:25:47 -07:00
MysterD
26718d60d6 Fix remote player pole position 2022-04-30 17:11:18 -07:00
MysterD
7c3006025c WIP: uncapped framerate 10 2022-04-30 17:11:09 -07:00
MysterD
2d85ba5a35 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-29 21:32:18 -07:00
MysterD
582cae97ed WIP: uncapped framerate 9 2022-04-29 21:28:14 -07:00
MysterD
ef51666c98 WIP: uncapped framerate 8 2022-04-28 00:22:15 -07:00
MysterD
803db891d2 WIP: uncapped framerate 7 2022-04-27 21:42:22 -07:00
MysterD
5e17edfd01 WIP: uncapped framerate 6 2022-04-27 21:27:14 -07:00
MysterD
6e47f226c9 WIP: uncapped framerate 5 2022-04-27 19:43:55 -07:00
MysterD
0eece3001f WIP: uncapped framerate 4 2022-04-27 18:41:05 -07:00
Isaac
da79a14cec
Check if in water before changing camera. (#71) 2022-04-27 18:34:31 -07:00
MysterD
02ab54b3ad WIP: uncapped framerate 3 2022-04-27 18:25:43 -07:00
MysterD
cca8cdc860 WIP: uncapped framerate 2 2022-04-26 22:42:57 -07:00
MysterD
da0d4b3733 WIP: uncapped framerate 2022-04-26 20:00:18 -07:00
Prince Frizzy
bf55c2da35
Add error logging to matrix stuff. (#70) 2022-04-26 13:49:09 -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
76d32bef42 Fix crash when pausing in an invalid act 2022-04-23 15:54:31 -07:00
MysterD
9e33ce39e6 Automatically disable billboards when a DynOS model uses more than 6 vertices 2022-04-23 03:05:16 -07:00
MysterD
d73216a899 Fixed rare crash in geo_process_node_and_siblings 2022-04-23 01:12:12 -07:00
MysterD
71105833c5 Made specialTripleJump a field of MarioState instead of a global 2022-04-23 00:35:49 -07:00
MysterD
df294c0f64 Fix up DynOS actor override 2022-04-22 18:57:26 -07:00
MysterD
f6ff4a0730 Special stages show their level name in the pause menu again 2022-04-22 18:53:53 -07:00
MysterD
ef7dc41560 Added HOOK_ON_DEATH 2022-04-21 18:34:12 -07:00
MysterD
c8a0e6da10 Fixed player interactions 2022-04-21 00:48:26 -07:00
MysterD
bdca8006ca Only have interactions happen for the local player 2022-04-20 22:10:52 -07:00
MysterD
4b63a16056 Added passes_pvp_interaction_checks() 2022-04-20 18:27:34 -07:00
MysterD
186149b2dd Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-20 11:22:18 -07:00
MysterD
18d7140954 Add headPos to marioBodyState 2022-04-20 18:21:36 -07:00
137329506980462592
8e75268c04
Ice color palettes (#66)
Ice color palettes

Co-authored-by: MysteryMeatwad <61129329+MysteryMeatwad@users.noreply.github.com>
2022-04-20 11:21:11 -07:00
PeachyPeach
9e5a45ecdd
Added lua profiler; Added useful object functions; Bug fixes (#65)
Added a basic lua profiler
        If the game is compiled with LUA_PROFILER=1, displays on screen the average execution time per frame of each active lua mod, in microseconds.

    Added object functions
        For some reasons, accessing the object fields obj.o* via lua is rather slow, and can drastically increase execution time of custom behaviors. For basic stuff like setting an object's velocity or moving it, some functions, missing from the original code, have been added:
        s32 obj_is_valid_for_interaction(struct Object *o): returns 1 if an object is valid for interaction, i.e. active, tangible and not interacted.
        s32 obj_check_hitbox_overlap(struct Object *o1, struct Object *o2): returns 1 if two objects hitboxes overlap. Doesn't check tangibility, only hitbox values.
        void obj_set_vel(struct Object *o, f32 vx, f32 vy, f32 vz): sets an object's velocity.
        void obj_move_xyz(struct Object *o, f32 dx, f32 dy, f32 dz): moves an object position by (dx, dy, dz).

    Bug fixes:
        Disable collisions with walls and ceilings after Mario exits a warp pipe to prevent softlocks in narrow places.
        Make the koopa shell exclamation box respawn after some time.
        Quicksand no longer downwarps and instant-kills Mario if he's shocked while being above it.
2022-04-20 11:20:45 -07:00
Prince Frizzy
8b9b33f0af
Some bug fixes. (#67)
* Some bug fixes.

Fix Bully Star Spawning Cutscene to be player dependent.
Add missing line to Makefile.
Fix compile error with Clang in save_file.c

* Fix DDD Chests Star spawining in the wrong location.
2022-04-20 11:18:17 -07:00
MysterD
2347ab61c1 Added HOOK_ON_OBJECT_RENDER 2022-04-19 22:36:47 -07:00
MysterD
78bda75e45 Massive DynOS refactor for performance/organization 2022-04-19 21:06:18 -07:00
MysterD
dd6f6c430e Refactor how objects set their models 2022-04-19 18:47:50 -07:00
Prince Frizzy
bba1b39424
Matrix Code Cleanup. (#64) 2022-04-16 19:48:40 -07:00
MysterD
c996f7b481 Prevent crashes when executing an unimplemented action 2022-04-15 18:36:45 -07:00
MysterD
fbce5f23c6 Added ability to set a level to skip credits, fixed SM74 bugs 2022-04-15 18:33:10 -07:00
MysterD
8d2e732243 Revert "Prevent bettercam from zooming in until player is fully obscured"
This reverts commit 250e97aed2.
2022-04-15 12:09:41 -07:00
MysterD
d4d24ab114 Fix crash in cutscene_enter_painting 2022-04-15 18:26:55 -07:00
MysterD
250e97aed2 Prevent bettercam from zooming in until player is fully obscured 2022-04-14 21:27:31 -07:00
MysterD
6b46a04030 Fixed wiggler dialog crash 2022-04-14 19:40:37 -07:00
MysterD
105907cd71 Made PVP stunlocks harder 2022-04-14 18:28:08 -07:00
MysterD
bf435d5aa9 Fixed knockback direction 2022-04-14 18:25:42 -07:00
MysterD
1d7dfe4d3c Reset squish settings on spawn 2022-04-14 18:14:10 -07:00
MysterD
f5e19541e8 Fix crash in bhv_rotating_clock_arm_loop 2022-04-14 00:57:02 -07:00
MysterD
7fc7acbc2e Mouse controlled camera no longer affects main menu camera 2022-04-14 00:54:32 -07:00
MysterD
1559f4db0b Bowsers BITDW ground tremor now affects all players 2022-04-14 00:49:55 -07:00