Commit graph

2301 commits

Author SHA1 Message Date
MysterD
379d5df5dc Fix various checks for whether or not we should generate tex files 2022-05-07 15:54:27 -07:00
MysterD
cdcbdabb37 Allow Lua to get any vanilla texture 2022-05-07 03:05:25 -07:00
MysterD
52c863fb36 Bump version 2022-05-06 22:09:30 -07:00
MysterD
6a4f64027c Make the DynOS button more generic 2022-05-06 22:09:14 -07:00
MysterD
3fe3b4ca19 Add custom hud texture example 2022-05-06 22:06:35 -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
MysterD
7320883fb4 Another snow crash fix 2022-05-05 00:01:00 -07:00
MysterD
bb8d846237 Possible fix for crash handler 2022-05-05 00:01:00 -07:00
MysterD
3a2bcd8c25 Another possible fix for snow crash 2022-05-05 00:01:00 -07:00
MysterD
63a30f7838 Possible fix for crash in gfx_texture_cache_lookup() 2022-05-05 00:01:00 -07:00
MysterD
8e01c6e4ef Add null checks to initiate_delayed_warp() 2022-05-05 00:01:00 -07:00
MysterD
3fb3cbe1f1 Possible fix for snow crash 2022-05-05 00:01:00 -07:00
MysterD
327d97ad06 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-05-04 00:14:42 -07:00
MysterD
2e57e001d4 Another snow crash fix 2022-05-04 06:26:40 -07:00
MysterD
0b33a26960 Possible fix for crash handler 2022-05-04 06:00:46 -07:00
MysterD
4b15338536 Another possible fix for snow crash 2022-05-04 05:50:30 -07:00
MysterD
e912636633 Automatically disable billboards on DynOS models with >6 vertices 2022-05-04 00:14:33 -07:00
MysterD
7576dfbc7c Possible fix for crash in gfx_texture_cache_lookup() 2022-05-03 22:11:44 -07:00
MysterD
7868a61d6a Add null checks to initiate_delayed_warp() 2022-05-03 22:08:30 -07:00
MysterD
ee032fe123 Possible fix for snow crash 2022-05-03 22:01:06 -07:00
Isaac
7d82923aa4
Fix headless server compile (3) (#78) 2022-05-02 19:45:32 -07:00
Agent X
b972bb1be4
Add surface_terrains.h to constants (#77) 2022-05-02 17:31:55 -07:00
PeachyPeach
92d3c19c51
[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
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
8f35305d33 Bump version 2022-04-29 22:13:16 -07:00
MysterD
180bf952b1 Make djui run at 60fps in the pause menu again 2022-04-29 21:59:09 -07:00
MysterD
b8bfd92061 Force frame limit to sane values 2022-04-29 21:35:10 -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
58cee9098b Improve reliable packet timer/resend rate 2022-04-29 21:27:23 -07:00
Prince Frizzy
2a405b3233
Add two new LUA util functions. (#72) 2022-04-28 20:42:29 -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
e8fe92bdad Fix issue where some billboards would randomly be disabled 2022-04-27 18:01:22 -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
MysterD
c0969c7833 Added general purpose profile functions 2022-04-26 18:35:59 -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
343076dec1 Make coop-compiler use O2 2022-04-23 20:01:52 -07:00