mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 13:35:12 +00:00
27db236b5d
Bug: DynOS models with animations cannot swap animations if they are loaded via lua (smlua_model_util_get_id and obj_set_model_extended). Fix: DynOS_Actor_GetActorGfx takes a graph node instead of a georef, and checks for DynosValidActors graph nodes if georef is NULL. Bug: The game can crash when calling obj_set_model_extended inside a HOOK_ON_OBJECT_RENDER hook. Fix: The crash happens in smlua_model_util_load_with_pool_and_cache_id due to pool being NULL. If the game can't allocate an AllocOnlyPool object, use DynOS to generate the graph node. Bug: warp_to_level and similar functions don't trigger HOOK_ON_WARP. Fix: Call HOOK_ON_WARP hooks in DynOS_Warp_UpdateWarp and DynOS_Warp_UpdateExit after level and mario initialization. Bug: The game sometimes calls HOOK_ON_OBJECT_RENDER hooks for unintended objects. Fix: Initialize hookRender field to 0 when creating an object. Bug: Actions can't apply gfx offsets to characters that have an anim offset (Waluigi, Wario) Fix: Add m->curAnimOffset to gfx.pos[1] instead of setting it to m->pos[1] + m->curAnimOffset, except during the jumbo star cutscene.
61 lines
2 KiB
C
61 lines
2 KiB
C
#ifndef DYNOS_C_H
|
|
#define DYNOS_C_H
|
|
#ifndef __cplusplus
|
|
|
|
#include "dynos.h"
|
|
#include "types.h"
|
|
#include "src/game/moving_texture.h"
|
|
|
|
void *dynos_swap_cmd(void *cmd);
|
|
|
|
// -- built in -- //
|
|
void *dynos_update_cmd(void *cmd);
|
|
void dynos_update_gfx();
|
|
void dynos_update_opt(void *pad);
|
|
s32 dynos_tex_import(void **output, void *ptr, s32 tile, void *grapi, void **hashmap, void *pool, s32 *poolpos, s32 poolsize);
|
|
void dynos_gfx_swap_animations(void *ptr);
|
|
|
|
// -- warps -- //
|
|
bool dynos_warp_to_level(s32 aLevel, s32 aArea, s32 aAct);
|
|
bool dynos_warp_restart_level(void);
|
|
bool dynos_warp_exit_level(s32 aDelay);
|
|
bool dynos_warp_to_castle(s32 aLevel);
|
|
|
|
// -- dynos packs -- //
|
|
int dynos_pack_get_count(void);
|
|
const char* dynos_pack_get_name(s32 index);
|
|
bool dynos_pack_get_enabled(s32 index);
|
|
void dynos_pack_set_enabled(s32 index, bool value);
|
|
void dynos_pack_init(void);
|
|
void dynos_generate_packs(const char* directory);
|
|
|
|
// -- geos -- //
|
|
void dynos_actor_override(void** aSharedChild);
|
|
void dynos_add_actor_custom(const char *filePath, const char* geoName);
|
|
const void* dynos_geolayout_get(const char *name);
|
|
void *dynos_geolayout_to_graphnode(const void *geoLayout, bool keepInMemory);
|
|
|
|
// -- collisions -- //
|
|
void dynos_add_collision(const char *filePath, const char* collisionName);
|
|
Collision* dynos_collision_get(const char* collisionName);
|
|
|
|
// -- textures -- //
|
|
void dynos_add_texture(const char *filePath, const char* textureName);
|
|
bool dynos_texture_get(const char* textureName, struct TextureInfo* outTextureInfo);
|
|
|
|
// -- movtexqcs -- //
|
|
void dynos_movtexqc_register(const char* name, s16 level, s16 area, s16 type);
|
|
struct MovtexQuadCollection* dynos_movtexqc_get_from_id(u32 id);
|
|
struct MovtexQuadCollection* dynos_movtexqc_get_from_index(s32 index);
|
|
|
|
// -- levels -- //
|
|
void dynos_add_level(s32 modIndex, const char *filePath, const char* levelName);
|
|
const char* dynos_level_get_token(u32 index);
|
|
Trajectory* dynos_level_get_trajectory(const char* name);
|
|
void dynos_level_load_background(void *ptr);
|
|
|
|
// -- other -- //
|
|
void dynos_mod_shutdown(void);
|
|
|
|
#endif
|
|
#endif
|