Commit Graph

2129 Commits (208c092e12ab2cc2c1039525194dcf5615defd16)

Author SHA1 Message Date
PeachyPeach 208c092e12 [BUG FIX] DynOS Bin Vtx overflow (#79)
Vertex coords are saved as s16 instead of f32 inside DynOS .bin files,
causing unintended overflow for vertex coords outside of the range
[-32768, +32767]. The format cannot be changed without breaking all
existing DynOS models, so, when writing a .bin file, a sentinel value
is added at the top of the vertex buffer for buffers that need f32
coords. If that sentinel is detected during the reading process,
the next vertex coords will be read as f32 instead of s16.
2022-05-02 17:31:29 -07:00
Agent X cad4930a73 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 5ddf093c26 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 ea17d936b2 Check for ACT_FLAG_INTANGIBLE in passes_pvp_interaction_checks() 2022-04-30 17:28:02 -07:00
MysterD 48427e02a5 WIP: uncapped framerate 11 2022-04-30 17:25:47 -07:00
MysterD 6bfd6ef81d Fix remote player pole position 2022-04-30 17:11:18 -07:00
MysterD 1d67bb3347 WIP: uncapped framerate 10 2022-04-30 17:11:09 -07:00
MysterD 41ccd61684 Bump version 2022-04-29 22:13:16 -07:00
MysterD 3dab069f87 Make djui run at 60fps in the pause menu again 2022-04-29 21:59:09 -07:00
MysterD 2745fb3383 Force frame limit to sane values 2022-04-29 21:35:10 -07:00
MysterD 8cd24d18ac Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-29 21:32:18 -07:00
MysterD c742606452 WIP: uncapped framerate 9 2022-04-29 21:28:14 -07:00
MysterD bde20acb0d Improve reliable packet timer/resend rate 2022-04-29 21:27:23 -07:00
Prince Frizzy 03ee22b232 Add two new LUA util functions. (#72) 2022-04-28 20:42:29 -07:00
MysterD d6245b4d5b WIP: uncapped framerate 8 2022-04-28 00:22:15 -07:00
MysterD d002eeb66b WIP: uncapped framerate 7 2022-04-27 21:42:22 -07:00
MysterD 35aee27cf3 WIP: uncapped framerate 6 2022-04-27 21:27:14 -07:00
MysterD 1b65874f6d WIP: uncapped framerate 5 2022-04-27 19:43:55 -07:00
MysterD b5f7c3a254 WIP: uncapped framerate 4 2022-04-27 18:41:05 -07:00
Isaac b45e8e7e58 Check if in water before changing camera. (#71) 2022-04-27 18:34:31 -07:00
MysterD 5fb91dba5b WIP: uncapped framerate 3 2022-04-27 18:25:43 -07:00
MysterD 56b6e587d8 Fix issue where some billboards would randomly be disabled 2022-04-27 18:01:22 -07:00
MysterD bdb58d0cd5 WIP: uncapped framerate 2 2022-04-26 22:42:57 -07:00
MysterD 83b9609b10 WIP: uncapped framerate 2022-04-26 20:00:18 -07:00
MysterD 70b5ba9579 Added general purpose profile functions 2022-04-26 18:35:59 -07:00
Prince Frizzy 3c38c276c9 Add error logging to matrix stuff. (#70) 2022-04-26 13:49:09 -07:00
PeachyPeach 6d360f259c 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 a41c9f3f7b Make coop-compiler use O2 2022-04-23 20:01:52 -07:00
MysterD 26b3ec966c Created a minor version number 2022-04-23 15:55:26 -07:00
MysterD 41aac2a3c4 Possible mac compile fix 2022-04-23 15:54:39 -07:00
MysterD a7f76be622 Fix crash when pausing in an invalid act 2022-04-23 15:54:31 -07:00
MysterD 6b008c7518 Fix crash in find_surface_on_ray_list() 2022-04-23 15:50:14 -07:00
MysterD 10305fcd5c Another download fix, whoopsies 2022-04-23 15:13:28 -07:00
MysterD 2827c523ce Fix memory corruption in download 2022-04-23 15:08:33 -07:00
MysterD 55ed56b7f4 Revert DynOS auto-disable-billboard 2022-04-23 14:28:02 -07:00
MysterD 40896e09d0 Prevent DynOS packs from being enabled then disabled on launch 2022-04-23 03:23:30 -07:00
MysterD 0f821483b1 Automatically disable billboards when a DynOS model uses more than 6 vertices 2022-04-23 03:05:16 -07:00
MysterD a8fbf26338 Fix crash when toggling dynos packs 2022-04-23 02:22:12 -07:00
MysterD 22f39d3933 Fixed rare crash in geo_process_node_and_siblings 2022-04-23 01:12:12 -07:00
MysterD 163ab1b277 Merge branch 'unst24' into unstable 2022-04-23 00:38:39 -07:00
MysterD 37606faead Made specialTripleJump a field of MarioState instead of a global 2022-04-23 00:35:49 -07:00
MysterD 09c258f752 Sort mods list 2022-04-23 00:30:43 -07:00
MysterD 25d9f2c5b8 Added more detailed lua error logs 2022-04-23 00:15:08 -07:00
MysterD 6436c257ac Allow Lua to set fields to nil 2022-04-22 23:49:14 -07:00
MysterD 09217150e1 Fix error cascade when one mod has script errors 2022-04-22 23:42:03 -07:00
MysterD 5ef726c378 Made Lua errors show a backtrace for almost all cases 2022-04-22 23:31:25 -07:00
MysterD 03b81569e9 More performance improvements 2022-04-22 20:57:18 -07:00
MysterD ae0bf647f7 Fix sm74 ee course 11 2022-04-22 19:27:19 -07:00
MysterD c2d4cd1cc8 Fix up DynOS actor override 2022-04-22 18:57:26 -07:00
MysterD 4a4501d0e4 Fixed finding of renamed custom actors 2022-04-22 18:54:11 -07:00