Added some missing funcs
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
#include "../gl_state.hpp"
|
||||
#include "../render_manager.hpp"
|
||||
#include "../shader_glsl_ft.hpp"
|
||||
#include "../sprite.hpp"
|
||||
#include "../stage.hpp"
|
||||
#include "../uniform.hpp"
|
||||
#include "../wrap.hpp"
|
||||
#include "draw_object.hpp"
|
||||
@@ -2394,6 +2396,31 @@ namespace mdl {
|
||||
|
||||
static const mat4* rob_chara_item_equip_mat = 0;
|
||||
|
||||
HOOK(void, FASTCALL, sub_14031AF10, 0x000000014031AF10, obj_axis_aligned_bounding_box* aabb, color4u8_bgra color) {
|
||||
mdl::EtcObj etc(mdl::ETC_OBJ_SPHERE);
|
||||
etc.color = color;
|
||||
etc.fog = false;
|
||||
etc.data.cube.size = aabb->size * 2.0f;
|
||||
|
||||
mat4 mat;
|
||||
mat4_translate(&aabb->center, &mat);
|
||||
disp_manager->entry_obj_etc(&mat, &etc);
|
||||
}
|
||||
|
||||
HOOK(void, FASTCALL, sub_14031AFE0, 0x000000014031AFE0, obj_bounding_sphere* bounding_sphere, color4u8_bgra color) {
|
||||
mdl::EtcObj etc(mdl::ETC_OBJ_SPHERE);
|
||||
etc.color = color;
|
||||
etc.fog = false;
|
||||
etc.data.sphere.radius = bounding_sphere->radius;
|
||||
etc.data.sphere.slices = 0x20;
|
||||
etc.data.sphere.stacks = 0x20;
|
||||
etc.data.sphere.wire = false;
|
||||
|
||||
mat4 mat;
|
||||
mat4_translate(&bounding_sphere->center, &mat);
|
||||
disp_manager->entry_obj_etc(&mat, &etc);
|
||||
}
|
||||
|
||||
HOOK(void, FASTCALL, DispManager__entry_obj, 0x00000001404379E0,
|
||||
obj* obj_data, obj_mesh_vertex_buffer* obj_vert_buf, obj_mesh_index_buffer* obj_index_buf,
|
||||
prj::vector<GLuint>* textures, vec4* blend_color, mat4* bone_mat, obj* obj_morph,
|
||||
@@ -2403,6 +2430,10 @@ namespace mdl {
|
||||
abort();
|
||||
}
|
||||
|
||||
HOOK(void, FASTCALL, DispManager__entry_obj_etc, 0x00000001404395C0, mdl::EtcObj* etc) {
|
||||
disp_manager->entry_obj_etc(&mat4_identity, etc);
|
||||
}
|
||||
|
||||
HOOK(void, FASTCALL, DispManager__entry_obj_by_obj, 0x0000000140439A20, obj* obj_data, prj::vector<GLuint>* textures,
|
||||
obj_mesh_vertex_buffer* obj_vert_buf, obj_mesh_index_buffer* obj_index_buf, mat4* bone_mat, float_t alpha) {
|
||||
if (!obj_data)
|
||||
@@ -2416,6 +2447,17 @@ namespace mdl {
|
||||
textures, blend_color_ptr, bone_mat, 0, 0, 0, 0, 0, 0, 0, !!bone_mat);
|
||||
}
|
||||
|
||||
HOOK(void, FASTCALL, sub_1404BCC60, 0x00000001404BCC60, vec3* pos, float_t width, float_t height) {
|
||||
mdl::EtcObj etc(ETC_OBJ_PLANE);
|
||||
etc.color = *spr_color;
|
||||
etc.data.plane.w = (int)width;
|
||||
etc.data.plane.h = (int)height;
|
||||
|
||||
mat4 mat;
|
||||
mat4_translate(pos, &mat);
|
||||
disp_manager->entry_obj_etc(&mat, &etc);
|
||||
}
|
||||
|
||||
HOOK(void, FASTCALL, DispManager__entry_obj_by_object_info_object_skin, 0x00000001405E8E20,
|
||||
object_info obj_info, prj::vector<texture_pattern_struct>* texture_pattern,
|
||||
texture_data_struct* texture_data, float_t alpha, mat4* matrices, mat4* ex_data_matrices, mat4* mat) {
|
||||
@@ -2453,8 +2495,12 @@ namespace mdl {
|
||||
|
||||
WRITE_NOP_6(0x0000000140512BE6);
|
||||
|
||||
INSTALL_HOOK(sub_14031AF10);
|
||||
INSTALL_HOOK(sub_14031AFE0);
|
||||
INSTALL_HOOK(DispManager__entry_obj);
|
||||
INSTALL_HOOK(DispManager__entry_obj_etc);
|
||||
INSTALL_HOOK(DispManager__entry_obj_by_obj);
|
||||
INSTALL_HOOK(sub_1404BCC60);
|
||||
INSTALL_HOOK(DispManager__entry_obj_by_object_info_object_skin);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,6 +96,8 @@ namespace spr {
|
||||
static void draw_sprite_scale(spr::SprArgs* args);
|
||||
}
|
||||
|
||||
vec4* spr_color = (vec4*)0x00000001411ACC30;
|
||||
|
||||
size_t(FASTCALL* sprite_manager_get_reqlist_count)(int32_t index)
|
||||
= (size_t(FASTCALL*)(int32_t index))0x000000014063FA90;
|
||||
|
||||
@@ -1088,7 +1090,6 @@ namespace spr {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sprite_manager_init() {
|
||||
if (!sprite_manager_render_data)
|
||||
sprite_manager_render_data = new spr::SpriteManager::RenderData;
|
||||
|
||||
@@ -190,6 +190,8 @@ namespace spr {
|
||||
extern void(FASTCALL* put_rgb_cross)(mat4* mat);
|
||||
}
|
||||
|
||||
extern vec4* spr_color;
|
||||
|
||||
extern size_t(FASTCALL* sprite_manager_get_reqlist_count)(int32_t index);
|
||||
|
||||
extern void sprite_manager_init();
|
||||
|
||||
@@ -83,6 +83,7 @@ struct stage {
|
||||
|
||||
static_assert(sizeof(stage) == 0x68, "\"stage\" struct should have a size of 0x68");
|
||||
|
||||
extern size_t(FASTCALL* stage_data_handler_get_stage_data_count)() = (size_t(FASTCALL*)())0x000000014064AFC0;
|
||||
|
||||
static bool object_bounding_sphere_check_visibility_shadow(obj_bounding_sphere* sphere, mat4* mat);
|
||||
static bool object_bounding_sphere_check_visibility_shadow_chara(obj_bounding_sphere* sphere);
|
||||
|
||||
@@ -7,4 +7,6 @@
|
||||
|
||||
#include "../KKdLib/default.hpp"
|
||||
|
||||
extern size_t(FASTCALL*stage_data_handler_get_stage_data_count)();
|
||||
|
||||
extern void stage_patch();
|
||||
|
||||
Reference in New Issue
Block a user