mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-26 22:13:01 +00:00
d87dd73db1
* Allow Lua action hooks to specify custom functions for more behavior ...like gravity, and update all current mods to match. Spin jump and wall slide from the Extended Moveset mod now have gravity code basically matching the original mod. Currently, any place you'd want to use one of these new action hooks still requires an O(n) check through all action hook per call. This should probably be changed. * Fix some remaining issues with Extended Moveset Lua port - Remove divergent spin jump code - Remove divergent roll code - Remap roll button to Y - Reimplement dive slide to make dive hop work like the original - Allow spin from double jump, backflip, side flip * Fix more issues with Extended Moveset Lua port - Reimplement all users of update_walking_speed to incorporate the Tight Controls edits and modified speed caps - Fix instances of angle arithmetic to wrap properly across the mod * Don't chop off group bits of custom action flags; assign missing groups in mods This fixes the Extended Moveset's underwater actions. Chopping off those bits was making the game consider the underwater actions to be a part of the Stationary group, which caused `check_common_stationary_cancels`, which upwarps Mario to the surface. * Tweak roll sliding angle tendency Rolling will now gradually (but fairly quckly) try to tend Mario's facing angle down the slope. This is cleaner than my old method that tries to flip Mario's angle (wrongly) when he begins moving downward, having that logic coexist with the logic for normal sliding actions that can also tend Mario to face backward down the slope. Just looks ugly now by comparison. * Disallow spin jump on slides in Extended Moveset port This matches the original mod * Extended Moveset: Crazy Box Bounce check * Extended Moveset: Fix hugging the wall when spin jumping after wall kick * Extended Moveset: Fix ledge drop snapping up to ground Just reimplement `act_air_hit_wall` ourselves. * Extended Moveset: Add Kaze's walking speed fix * smlua_hooks.c: Restore option to use old API for hook_mario_action The intent is to allow mods outside of this repo to continue working. Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
181 lines
3.5 KiB
Lua
181 lines
3.5 KiB
Lua
-------------
|
|
-- globals --
|
|
-------------
|
|
|
|
--- @type MarioState[]
|
|
gMarioStates = {}
|
|
|
|
--- @type NetworkPlayer[]
|
|
gNetworkPlayers = {}
|
|
|
|
--- @type Mod[]
|
|
gActiveMods = {}
|
|
|
|
--- @type Character[]
|
|
gCharacter = {}
|
|
|
|
--- @type GlobalTextures
|
|
gTextures = {}
|
|
|
|
--- @type GlobalObjectAnimations
|
|
gObjectAnimations = {}
|
|
|
|
--- @type GlobalObjectCollisionData
|
|
gGlobalObjectCollisionData = {}
|
|
|
|
--- @alias SyncTable table
|
|
|
|
--- @type SyncTable
|
|
gGlobalSyncTable = {}
|
|
|
|
--- @type SyncTable[]
|
|
gPlayerSyncTable = {}
|
|
|
|
--- @type LevelValues
|
|
gLevelValues = {}
|
|
|
|
--- @type BehaviorValues
|
|
gBehaviorValues = {}
|
|
|
|
--- @type BehaviorValues
|
|
gBehaviorValues = {}
|
|
|
|
--- @type PlayerPalette[]
|
|
gPalettePresets = {}
|
|
|
|
-----------
|
|
-- hooks --
|
|
-----------
|
|
|
|
--- @param behaviorId BehaviorId
|
|
--- @param objectList ObjectList
|
|
--- @param replaceBehavior boolean
|
|
--- @param initFunction fun(obj:Object)
|
|
--- @param loopFunction fun(obj:Object)
|
|
--- @return BehaviorId
|
|
function hook_behavior(behaviorId, objectList, replaceBehavior, initFunction, loopFunction)
|
|
-- ...
|
|
end
|
|
|
|
--- @param command string
|
|
--- @param description string
|
|
--- @param func fun(msg:string)
|
|
function hook_chat_command(command, description, func)
|
|
-- ...
|
|
end
|
|
|
|
--- @param hookEventType LuaHookedEventType
|
|
--- @param func function
|
|
function hook_event(hookEventType, func)
|
|
-- ...
|
|
end
|
|
|
|
--- @param actionId integer
|
|
--- @param funcOrFuncTable fun(m:MarioState):integer | table(fun(m:MarioState):integer)
|
|
--- @param interactionType InteractionFlag
|
|
function hook_mario_action(actionId, funcOrFuncTable, interactionType)
|
|
-- ...
|
|
end
|
|
|
|
--- @param syncTable SyncTable
|
|
--- @param field any
|
|
--- @param tag any
|
|
--- @param func fun(tag:any, oldVal:any, newVal:any)
|
|
function hook_on_sync_table_change(syncTable, field, tag, func)
|
|
-- ...
|
|
end
|
|
|
|
---------------
|
|
-- functions --
|
|
---------------
|
|
|
|
--- @param t number
|
|
--- @return number
|
|
function sins(t)
|
|
-- ...
|
|
end
|
|
|
|
--- @param t number
|
|
--- @return number
|
|
function coss(t)
|
|
-- ...
|
|
end
|
|
|
|
--- @param y number
|
|
--- @param x number
|
|
--- @return integer
|
|
function atan2s(y, x)
|
|
-- ...
|
|
end
|
|
|
|
--- @param objFieldTable table
|
|
--- @return nil
|
|
function define_custom_obj_fields(objFieldTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param object Object
|
|
--- @param standardSync boolean
|
|
--- @param fieldTable table
|
|
--- @return nil
|
|
function network_init_object(object, standardSync, fieldTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param object Object
|
|
--- @param reliable boolean
|
|
--- @return nil
|
|
function network_send_object(object, reliable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param reliable boolean
|
|
--- @param dataTable table
|
|
--- @return nil
|
|
function network_send(reliable, dataTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param toLocalIndex integer
|
|
--- @param reliable boolean
|
|
--- @param dataTable table
|
|
--- @return nil
|
|
function network_send_to(toLocalIndex, reliable, dataTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param textureName string
|
|
--- @return TextureInfo
|
|
function get_texture_info(textureName)
|
|
-- ...
|
|
end
|
|
|
|
--- @param textureName string
|
|
--- @return TextureInfo
|
|
function get_texture_info(textureName)
|
|
-- ...
|
|
end
|
|
|
|
--- @param texInfo TextureInfo
|
|
--- @param x number
|
|
--- @param y number
|
|
--- @param scaleW number
|
|
--- @param scaleH number
|
|
--- @return nil
|
|
function djui_hud_render_texture(texInfo, x, y, scaleW, scaleH)
|
|
-- ...
|
|
end
|
|
|
|
--- @param texInfo TextureInfo
|
|
--- @param prevX number
|
|
--- @param prevY number
|
|
--- @param prevScaleW number
|
|
--- @param prevScaleH number
|
|
--- @param x number
|
|
--- @param y number
|
|
--- @param scaleW number
|
|
--- @param scaleH number
|
|
--- @return nil
|
|
function djui_hud_render_texture_interpolated(texInfo, prevX, prevY, prevScaleW, prevScaleH, x, y, scaleW, scaleH)
|
|
-- ...
|
|
end
|