2022-03-13 06:28:57 +01:00
|
|
|
-------------
|
|
|
|
-- globals --
|
|
|
|
-------------
|
|
|
|
|
|
|
|
--- @type MarioState[]
|
|
|
|
gMarioStates = {}
|
|
|
|
|
|
|
|
--- @type NetworkPlayer[]
|
|
|
|
gNetworkPlayers = {}
|
|
|
|
|
2022-04-23 03:44:59 +02:00
|
|
|
--- @type Mod[]
|
|
|
|
gActiveMods = {}
|
|
|
|
|
2022-03-13 06:28:57 +01:00
|
|
|
--- @type Character[]
|
|
|
|
gCharacter = {}
|
|
|
|
|
|
|
|
--- @type GlobalTextures
|
|
|
|
gTextures = {}
|
|
|
|
|
|
|
|
--- @type GlobalObjectAnimations
|
|
|
|
gObjectAnimations = {}
|
|
|
|
|
|
|
|
--- @type GlobalObjectCollisionData
|
|
|
|
gGlobalObjectCollisionData = {}
|
|
|
|
|
|
|
|
--- @alias SyncTable table
|
|
|
|
|
|
|
|
--- @type SyncTable
|
|
|
|
gGlobalSyncTable = {}
|
|
|
|
|
|
|
|
--- @type SyncTable[]
|
|
|
|
gPlayerSyncTable = {}
|
|
|
|
|
2022-04-09 04:39:22 +02:00
|
|
|
--- @type LevelValues
|
|
|
|
gLevelValues = {}
|
|
|
|
|
2022-04-09 08:01:41 +02:00
|
|
|
--- @type BehaviorValues
|
|
|
|
gBehaviorValues = {}
|
|
|
|
|
Arbitrary shirt, pants, glove colors + settings menu (#145)
* Support for more granular player colors
You can now configure RGB values for shirt, pants, gloves, and shoes.
Due to some limitations, configuring shoes does nothing at the moment.
* Remove paletteIndex and friends
Restructured and filled in some remaining code to account for that.
* Add Edit Palette panel to Player panel
* Change PlayerPalette contents to an enum-indexed array, remove shoes
This gets rid of all the hokey code doing switch cases on the
different parts.
* Fix goof with player model selection box
Should actually have affect now even if a custom palette is being used.
* Fix gap in player color display list commands
The extra space was leftover from when I was trying to get shoes
working. Forgot to clean it up.
* Standardize PlayerParts enum, including for lua constants autogen
* djui_panel_player.c: Properly hook sending palette changes on unpause
Editing the palette and then unpausing should send out the packet to
everyone with the new palette changes (and update the palette preset
selection box), but since we weren't hooking that situation before, it
would stay changed only for you. You would have had to press the Back
button for it to work right.
* Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex`
This lets mod code like this still work unchanged:
if s.team == 2 then
np.overridePaletteIndex = 7
elseif s.team == 1 then
np.overridePaletteIndex = 15
else
np.overridePaletteIndex = np.paletteIndex
end
It's essentially faked, and would work strangely if the value of either
variable was inspected more closely directly. This should at least
handle the typical use case, though.
Every frame, `overridePaletteIndex` is checked to see if it was modified
from its previous value. If so, `overridePalette` is set to the preset
corresponding to the index. `paletteIndex` contains a special value that
when used to assign to `overridePaletteIndex`, it copies `palette` into
`overridePalette` to restore the real colors, which of course may not
follow the presets at all.
* characters.h: Pack `PlayerPalette` to eliminate size differences between computers
* mario_misc.c: Remove remaining "TODO GAG"
2022-08-08 00:13:19 +02:00
|
|
|
--- @type BehaviorValues
|
|
|
|
gBehaviorValues = {}
|
|
|
|
|
|
|
|
--- @type PlayerPalette[]
|
|
|
|
gPalettePresets = {}
|
|
|
|
|
2022-11-30 09:37:43 +01:00
|
|
|
--- @type LakituState
|
|
|
|
gLakituState = {}
|
|
|
|
|
2023-02-17 00:54:38 +01:00
|
|
|
--- @type PaintingValues
|
|
|
|
gPaintingValues = {}
|
|
|
|
|
2023-03-07 23:46:09 +01:00
|
|
|
--- @type ServerSettings
|
|
|
|
gServerSettings = {}
|
|
|
|
|
2022-03-13 06:28:57 +01:00
|
|
|
-----------
|
|
|
|
-- 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
|
2022-08-08 00:25:00 +02:00
|
|
|
--- @param funcOrFuncTable fun(m:MarioState):integer | table(fun(m:MarioState):integer)
|
2022-03-13 06:28:57 +01:00
|
|
|
--- @param interactionType InteractionFlag
|
2022-08-08 00:25:00 +02:00
|
|
|
function hook_mario_action(actionId, funcOrFuncTable, interactionType)
|
2022-03-13 06:28:57 +01:00
|
|
|
-- ...
|
|
|
|
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
|
|
|
|
|
2022-04-22 09:13:30 +02:00
|
|
|
--- @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
|
2022-05-07 12:05:25 +02:00
|
|
|
|
|
|
|
--- @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)
|
|
|
|
-- ...
|
2022-05-14 04:54:49 +02:00
|
|
|
end
|
|
|
|
|
2022-11-03 03:45:20 +01:00
|
|
|
--- @param texInfo TextureInfo
|
|
|
|
--- @param x number
|
|
|
|
--- @param y number
|
|
|
|
--- @param scaleW number
|
|
|
|
--- @param scaleH number
|
|
|
|
--- @param tileX number
|
|
|
|
--- @param tileY number
|
|
|
|
--- @param tileW number
|
|
|
|
--- @param tileH number
|
|
|
|
--- @return nil
|
|
|
|
function djui_hud_render_texture_tile(texInfo, x, y, scaleW, scaleH, tileX, tileY, tileW, tileH)
|
|
|
|
-- ...
|
|
|
|
end
|
|
|
|
|
2022-05-14 04:54:49 +02:00
|
|
|
--- @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
|
2022-11-03 03:45:20 +01:00
|
|
|
|
|
|
|
--- @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
|
|
|
|
--- @param tileX number
|
|
|
|
--- @param tileY number
|
|
|
|
--- @param tileW number
|
|
|
|
--- @param tileH number
|
|
|
|
--- @return nil
|
|
|
|
function djui_hud_render_texture_tile_interpolated(texInfo, prevX, prevY, prevScaleW, prevScaleH, x, y, scaleW, scaleH, tileX, tileY, tileW, tileH)
|
|
|
|
-- ...
|
|
|
|
end
|
2023-01-31 13:24:56 +01:00
|
|
|
|
|
|
|
--- @param levelNum number
|
|
|
|
--- @param func fun(areaNum:number, bhv:table)
|
|
|
|
--- @return nil
|
|
|
|
function level_script_parse(levelNum, func)
|
|
|
|
-- ...
|
|
|
|
end
|