Added flyff-api (not in use yet)
Added structs exported from Ghidra Added a lot of interop
This commit is contained in:
parent
e694cf8562
commit
31abe1c85b
|
|
@ -1,9 +1,6 @@
|
||||||
project (fugg)
|
project (fugg)
|
||||||
cmake_minimum_required(VERSION 3.5.1)
|
cmake_minimum_required(VERSION 3.5.1)
|
||||||
|
|
||||||
# Flyff is based on c++14
|
|
||||||
add_definitions(-std=c++14 -Os)
|
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "-Os")
|
set(CMAKE_C_FLAGS "-Os")
|
||||||
set(CMAKE_CXX_FLAGS "-Os")
|
set(CMAKE_CXX_FLAGS "-Os")
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
add_library (
|
||||||
|
flyff-api
|
||||||
|
"src/flyff.cpp"
|
||||||
|
"include/flyff.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(flyff-api PUBLIC "include")
|
||||||
|
target_link_libraries (flyff-api LINK_PUBLIC flyff-client)
|
||||||
|
|
@ -2,7 +2,7 @@ add_subdirectory("wasm-rt")
|
||||||
|
|
||||||
add_library (
|
add_library (
|
||||||
flyff-client
|
flyff-client
|
||||||
"src/client.cpp"
|
"src/client.c"
|
||||||
"include/client.h"
|
"include/client.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,404 @@
|
||||||
#pragma once
|
/* Automatically generated by wasm2c */
|
||||||
|
#ifndef CLIENT_H_GENERATED_
|
||||||
|
#define CLIENT_H_GENERATED_
|
||||||
|
|
||||||
#include "../src/client.h"
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "wasm-rt.h"
|
||||||
|
|
||||||
|
/* TODO(binji): only use stdint.h types in header */
|
||||||
|
#ifndef WASM_RT_CORE_TYPES_DEFINED
|
||||||
|
#define WASM_RT_CORE_TYPES_DEFINED
|
||||||
|
typedef uint8_t u8;
|
||||||
|
typedef int8_t s8;
|
||||||
|
typedef uint16_t u16;
|
||||||
|
typedef int16_t s16;
|
||||||
|
typedef uint32_t u32;
|
||||||
|
typedef int32_t s32;
|
||||||
|
typedef uint64_t u64;
|
||||||
|
typedef int64_t s64;
|
||||||
|
typedef float f32;
|
||||||
|
typedef double f64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* import: 'env' '_abort' */
|
||||||
|
extern void (*Z_envZ__abort)(void);
|
||||||
|
/* import: 'env' '__emval_decref' */
|
||||||
|
extern void (*Z_envZ___emval_decref)(u32);
|
||||||
|
/* import: 'env' '__emval_new_cstring' */
|
||||||
|
extern u32 (*Z_envZ___emval_new_cstring)(u32);
|
||||||
|
/* import: 'env' '_glActiveTexture' */
|
||||||
|
extern void (*Z_envZ__glActiveTexture)(u32);
|
||||||
|
/* import: 'env' '_glBindTexture' */
|
||||||
|
extern void (*Z_envZ__glBindTexture)(u32, u32);
|
||||||
|
/* import: 'env' '_glVertexAttribPointer' */
|
||||||
|
extern void (*Z_envZ__glVertexAttribPointer)(u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDisableVertexAttribArray' */
|
||||||
|
extern void (*Z_envZ__glDisableVertexAttribArray)(u32);
|
||||||
|
/* import: 'env' '__emval_set_property' */
|
||||||
|
extern void (*Z_envZ___emval_set_property)(u32, u32, u32);
|
||||||
|
/* import: 'env' '__emval_get_property' */
|
||||||
|
extern u32 (*Z_envZ___emval_get_property)(u32, u32);
|
||||||
|
/* import: 'env' '_glUniformMatrix4fv' */
|
||||||
|
extern void (*Z_envZ__glUniformMatrix4fv)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__emval_get_method_caller' */
|
||||||
|
extern u32 (*Z_envZ___emval_get_method_caller)(u32, u32);
|
||||||
|
/* import: 'env' '__emval_take_value' */
|
||||||
|
extern u32 (*Z_envZ___emval_take_value)(u32, u32);
|
||||||
|
/* import: 'env' '_glDisable' */
|
||||||
|
extern void (*Z_envZ__glDisable)(u32);
|
||||||
|
/* import: 'env' '_glBindBuffer' */
|
||||||
|
extern void (*Z_envZ__glBindBuffer)(u32, u32);
|
||||||
|
/* import: 'env' '__emval_run_destructors' */
|
||||||
|
extern void (*Z_envZ___emval_run_destructors)(u32);
|
||||||
|
/* import: 'env' '__emval_get_global' */
|
||||||
|
extern u32 (*Z_envZ___emval_get_global)(u32);
|
||||||
|
/* import: 'env' '_glUniform1f' */
|
||||||
|
extern void (*Z_envZ__glUniform1f)(u32, f32);
|
||||||
|
/* import: 'env' '_glEnable' */
|
||||||
|
extern void (*Z_envZ__glEnable)(u32);
|
||||||
|
/* import: 'env' '__emval_call_void_method' */
|
||||||
|
extern void (*Z_envZ___emval_call_void_method)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glTexParameteri' */
|
||||||
|
extern void (*Z_envZ__glTexParameteri)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_alSourcef' */
|
||||||
|
extern void (*Z_envZ__alSourcef)(u32, u32, f32);
|
||||||
|
/* import: 'env' '_glUseProgram' */
|
||||||
|
extern void (*Z_envZ__glUseProgram)(u32);
|
||||||
|
/* import: 'env' '_glEnableVertexAttribArray' */
|
||||||
|
extern void (*Z_envZ__glEnableVertexAttribArray)(u32);
|
||||||
|
/* import: 'env' '_alSourcei' */
|
||||||
|
extern void (*Z_envZ__alSourcei)(u32, u32, u32);
|
||||||
|
/* import: 'env' '__emval_as' */
|
||||||
|
extern f64 (*Z_envZ___emval_as)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDrawArrays' */
|
||||||
|
extern void (*Z_envZ__glDrawArrays)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDepthMask' */
|
||||||
|
extern void (*Z_envZ__glDepthMask)(u32);
|
||||||
|
/* import: 'env' '_glBlendFunc' */
|
||||||
|
extern void (*Z_envZ__glBlendFunc)(u32, u32);
|
||||||
|
/* import: 'env' '_glBindFramebuffer' */
|
||||||
|
extern void (*Z_envZ__glBindFramebuffer)(u32, u32);
|
||||||
|
/* import: 'env' '_glDrawElements' */
|
||||||
|
extern void (*Z_envZ__glDrawElements)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__emval_incref' */
|
||||||
|
extern void (*Z_envZ___emval_incref)(u32);
|
||||||
|
/* import: 'env' '_alSourceStop' */
|
||||||
|
extern void (*Z_envZ__alSourceStop)(u32);
|
||||||
|
/* import: 'env' '_glGetUniformLocation' */
|
||||||
|
extern u32 (*Z_envZ__glGetUniformLocation)(u32, u32);
|
||||||
|
/* import: 'env' '__emval_call_method' */
|
||||||
|
extern f64 (*Z_envZ___emval_call_method)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glUniform3fv' */
|
||||||
|
extern void (*Z_envZ__glUniform3fv)(u32, u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_memory_view' */
|
||||||
|
extern void (*Z_envZ___embind_register_memory_view)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glViewport' */
|
||||||
|
extern void (*Z_envZ__glViewport)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glTexImage2D' */
|
||||||
|
extern void (*Z_envZ__glTexImage2D)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glGetError' */
|
||||||
|
extern u32 (*Z_envZ__glGetError)(void);
|
||||||
|
/* import: 'env' '_glDeleteFramebuffers' */
|
||||||
|
extern void (*Z_envZ__glDeleteFramebuffers)(u32, u32);
|
||||||
|
/* import: 'env' '_alGetSourcei' */
|
||||||
|
extern void (*Z_envZ__alGetSourcei)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glColorMask' */
|
||||||
|
extern void (*Z_envZ__glColorMask)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_function' */
|
||||||
|
extern void (*Z_envZ___embind_register_function)(u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_alDeleteSources' */
|
||||||
|
extern void (*Z_envZ__alDeleteSources)(u32, u32);
|
||||||
|
/* import: 'env' '_glGenTextures' */
|
||||||
|
extern void (*Z_envZ__glGenTextures)(u32, u32);
|
||||||
|
/* import: 'env' '_glDeleteBuffers' */
|
||||||
|
extern void (*Z_envZ__glDeleteBuffers)(u32, u32);
|
||||||
|
/* import: 'env' '_glBufferData' */
|
||||||
|
extern void (*Z_envZ__glBufferData)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glGenBuffers' */
|
||||||
|
extern void (*Z_envZ__glGenBuffers)(u32, u32);
|
||||||
|
/* import: 'env' '_glScissor' */
|
||||||
|
extern void (*Z_envZ__glScissor)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glStencilMask' */
|
||||||
|
extern void (*Z_envZ__glStencilMask)(u32);
|
||||||
|
/* import: 'env' '__embind_register_integer' */
|
||||||
|
extern void (*Z_envZ___embind_register_integer)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_alSource3f' */
|
||||||
|
extern void (*Z_envZ__alSource3f)(u32, u32, f32, f32, f32);
|
||||||
|
/* import: 'env' '__emval_get_module_property' */
|
||||||
|
extern u32 (*Z_envZ___emval_get_module_property)(u32);
|
||||||
|
/* import: 'env' '_glFramebufferTexture2D' */
|
||||||
|
extern void (*Z_envZ__glFramebufferTexture2D)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__emval_typeof' */
|
||||||
|
extern u32 (*Z_envZ___emval_typeof)(u32);
|
||||||
|
/* import: 'env' '_glUniform2f' */
|
||||||
|
extern void (*Z_envZ__glUniform2f)(u32, f32, f32);
|
||||||
|
/* import: 'env' '_glUniform2fv' */
|
||||||
|
extern void (*Z_envZ__glUniform2fv)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glFrontFace' */
|
||||||
|
extern void (*Z_envZ__glFrontFace)(u32);
|
||||||
|
/* import: 'env' '_glGenFramebuffers' */
|
||||||
|
extern void (*Z_envZ__glGenFramebuffers)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_vibrate' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_vibrate)(u32);
|
||||||
|
/* import: 'env' '_glUniform1i' */
|
||||||
|
extern void (*Z_envZ__glUniform1i)(u32, u32);
|
||||||
|
/* import: 'env' '_glGetProgramiv' */
|
||||||
|
extern void (*Z_envZ__glGetProgramiv)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glCheckFramebufferStatus' */
|
||||||
|
extern u32 (*Z_envZ__glCheckFramebufferStatus)(u32);
|
||||||
|
/* import: 'env' '_glClear' */
|
||||||
|
extern void (*Z_envZ__glClear)(u32);
|
||||||
|
/* import: 'env' '_glStencilFunc' */
|
||||||
|
extern void (*Z_envZ__glStencilFunc)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glGetIntegerv' */
|
||||||
|
extern void (*Z_envZ__glGetIntegerv)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_exit_fullscreen' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_exit_fullscreen)(void);
|
||||||
|
/* import: 'env' '_emscripten_request_fullscreen' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_request_fullscreen)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_performance_now' */
|
||||||
|
extern f64 (*Z_envZ__emscripten_performance_now)(void);
|
||||||
|
/* import: 'env' '_emscripten_cancel_main_loop' */
|
||||||
|
extern void (*Z_envZ__emscripten_cancel_main_loop)(void);
|
||||||
|
/* import: 'env' '_emscripten_set_main_loop' */
|
||||||
|
extern void (*Z_envZ__emscripten_set_main_loop)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDetachShader' */
|
||||||
|
extern void (*Z_envZ__glDetachShader)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_devicemotion_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_devicemotion_callback_on_thread)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDeleteProgram' */
|
||||||
|
extern void (*Z_envZ__glDeleteProgram)(u32);
|
||||||
|
/* import: 'env' '__emval_new' */
|
||||||
|
extern u32 (*Z_envZ___emval_new)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_beforeunload_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_beforeunload_callback_on_thread)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDeleteShader' */
|
||||||
|
extern void (*Z_envZ__glDeleteShader)(u32);
|
||||||
|
/* import: 'env' '_glDepthFunc' */
|
||||||
|
extern void (*Z_envZ__glDepthFunc)(u32);
|
||||||
|
/* import: 'env' '_emscripten_resize_heap' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_resize_heap)(u32);
|
||||||
|
/* import: 'env' '__embind_register_std_wstring' */
|
||||||
|
extern void (*Z_envZ___embind_register_std_wstring)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_strftime' */
|
||||||
|
extern u32 (*Z_envZ__strftime)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_webglcontextrestored_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_webglcontextrestored_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_focusout_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_focusout_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_keyup_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_keyup_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_keydown_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_keydown_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_wheel_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_wheel_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_mouseleave_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_mouseleave_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_mousemove_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_mousemove_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_mouseup_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_mouseup_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_mousedown_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_mousedown_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_touchcancel_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_touchcancel_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_touchmove_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_touchmove_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_touchend_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_touchend_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_touchstart_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_touchstart_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_webgl_destroy_context' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_webgl_destroy_context)(u32);
|
||||||
|
/* import: 'env' '_emscripten_set_orientationchange_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_orientationchange_callback_on_thread)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_resize_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_resize_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_visibilitychange_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_visibilitychange_callback_on_thread)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glClearColor' */
|
||||||
|
extern void (*Z_envZ__glClearColor)(f32, f32, f32, f32);
|
||||||
|
/* import: 'env' '_glGetProgramInfoLog' */
|
||||||
|
extern void (*Z_envZ__glGetProgramInfoLog)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glLinkProgram' */
|
||||||
|
extern void (*Z_envZ__glLinkProgram)(u32);
|
||||||
|
/* import: 'env' '_glAttachShader' */
|
||||||
|
extern void (*Z_envZ__glAttachShader)(u32, u32);
|
||||||
|
/* import: 'env' '_glGetShaderiv' */
|
||||||
|
extern void (*Z_envZ__glGetShaderiv)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glLineWidth' */
|
||||||
|
extern void (*Z_envZ__glLineWidth)(f32);
|
||||||
|
/* import: 'env' '__emscripten_date_now' */
|
||||||
|
extern f64 (*Z_envZ___emscripten_date_now)(void);
|
||||||
|
/* import: 'env' '__embind_register_float' */
|
||||||
|
extern void (*Z_envZ___embind_register_float)(u32, u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_std_string' */
|
||||||
|
extern void (*Z_envZ___embind_register_std_string)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_async_wget_data' */
|
||||||
|
extern void (*Z_envZ__emscripten_async_wget_data)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_alSourcePlay' */
|
||||||
|
extern void (*Z_envZ__alSourcePlay)(u32);
|
||||||
|
/* import: 'env' '_alListenerfv' */
|
||||||
|
extern void (*Z_envZ__alListenerfv)(u32, u32);
|
||||||
|
/* import: 'env' '_alListener3f' */
|
||||||
|
extern void (*Z_envZ__alListener3f)(u32, f32, f32, f32);
|
||||||
|
/* import: 'env' '_emscripten_set_webglcontextlost_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_webglcontextlost_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_element_css_size' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_element_css_size)(u32, f64, f64);
|
||||||
|
/* import: 'env' '_emscripten_set_canvas_element_size' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_canvas_element_size)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_webgl_make_context_current' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_webgl_make_context_current)(u32);
|
||||||
|
/* import: 'env' '_emscripten_webgl_create_context' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_webgl_create_context)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_webgl_init_context_attributes' */
|
||||||
|
extern void (*Z_envZ__emscripten_webgl_init_context_attributes)(u32);
|
||||||
|
/* import: 'env' '_glUniform4f' */
|
||||||
|
extern void (*Z_envZ__glUniform4f)(u32, f32, f32, f32, f32);
|
||||||
|
/* import: 'env' '_glCompressedTexImage2D' */
|
||||||
|
extern void (*Z_envZ__glCompressedTexImage2D)(u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glBindAttribLocation' */
|
||||||
|
extern void (*Z_envZ__glBindAttribLocation)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glGetActiveAttrib' */
|
||||||
|
extern void (*Z_envZ__glGetActiveAttrib)(u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_get_orientation_status' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_get_orientation_status)(u32);
|
||||||
|
/* import: 'env' '_glCreateProgram' */
|
||||||
|
extern u32 (*Z_envZ__glCreateProgram)(void);
|
||||||
|
/* import: 'env' '_glGetShaderInfoLog' */
|
||||||
|
extern void (*Z_envZ__glGetShaderInfoLog)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glCompileShader' */
|
||||||
|
extern void (*Z_envZ__glCompileShader)(u32);
|
||||||
|
/* import: 'env' '_glShaderSource' */
|
||||||
|
extern void (*Z_envZ__glShaderSource)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glCreateShader' */
|
||||||
|
extern u32 (*Z_envZ__glCreateShader)(u32);
|
||||||
|
/* import: 'env' '_glCullFace' */
|
||||||
|
extern void (*Z_envZ__glCullFace)(u32);
|
||||||
|
/* import: 'env' '_emscripten_webgl_enable_extension' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_webgl_enable_extension)(u32, u32);
|
||||||
|
/* import: 'env' '_glGetString' */
|
||||||
|
extern u32 (*Z_envZ__glGetString)(u32);
|
||||||
|
/* import: 'env' '_glStencilOp' */
|
||||||
|
extern void (*Z_envZ__glStencilOp)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_set_fullscreenchange_callback_on_thread' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_set_fullscreenchange_callback_on_thread)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_glDeleteTextures' */
|
||||||
|
extern void (*Z_envZ__glDeleteTextures)(u32, u32);
|
||||||
|
/* import: 'env' '_fd_seek' */
|
||||||
|
extern u32 (*Z_envZ__fd_seek)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_bigint' */
|
||||||
|
extern void (*Z_envZ___embind_register_bigint)(u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_strftime_l' */
|
||||||
|
extern u32 (*Z_envZ__strftime_l)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_environ_get' */
|
||||||
|
extern u32 (*Z_envZ__environ_get)(u32, u32);
|
||||||
|
/* import: 'env' '_environ_sizes_get' */
|
||||||
|
extern u32 (*Z_envZ__environ_sizes_get)(u32, u32);
|
||||||
|
/* import: 'env' '_fd_close' */
|
||||||
|
extern u32 (*Z_envZ__fd_close)(u32);
|
||||||
|
/* import: 'env' '_fd_write' */
|
||||||
|
extern u32 (*Z_envZ__fd_write)(u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_memcpy_big' */
|
||||||
|
extern void (*Z_envZ__emscripten_memcpy_big)(u32, u32, u32);
|
||||||
|
/* import: 'env' '__emscripten_get_now_is_monotonic' */
|
||||||
|
extern u32 (*Z_envZ___emscripten_get_now_is_monotonic)(void);
|
||||||
|
/* import: 'env' '__gmtime_js' */
|
||||||
|
extern void (*Z_envZ___gmtime_js)(u32, u32);
|
||||||
|
/* import: 'env' '__localtime_js' */
|
||||||
|
extern void (*Z_envZ___localtime_js)(u32, u32);
|
||||||
|
/* import: 'env' '__mktime_js' */
|
||||||
|
extern u32 (*Z_envZ___mktime_js)(u32);
|
||||||
|
/* import: 'env' '__tzset_js' */
|
||||||
|
extern void (*Z_envZ___tzset_js)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_glCopyTexSubImage2D' */
|
||||||
|
extern void (*Z_envZ__glCopyTexSubImage2D)(u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_emval' */
|
||||||
|
extern void (*Z_envZ___embind_register_emval)(u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_bool' */
|
||||||
|
extern void (*Z_envZ___embind_register_bool)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '__embind_register_void' */
|
||||||
|
extern void (*Z_envZ___embind_register_void)(u32, u32);
|
||||||
|
/* import: 'env' '_emscripten_log' */
|
||||||
|
extern void (*Z_envZ__emscripten_log)(u32, u32, u32);
|
||||||
|
/* import: 'env' '_alDeleteBuffers' */
|
||||||
|
extern void (*Z_envZ__alDeleteBuffers)(u32, u32);
|
||||||
|
/* import: 'env' '_alBufferData' */
|
||||||
|
extern void (*Z_envZ__alBufferData)(u32, u32, u32, u32, u32);
|
||||||
|
/* import: 'env' '_alGenBuffers' */
|
||||||
|
extern void (*Z_envZ__alGenBuffers)(u32, u32);
|
||||||
|
/* import: 'env' '_alGetEnumValue' */
|
||||||
|
extern u32 (*Z_envZ__alGetEnumValue)(u32);
|
||||||
|
/* import: 'env' '_alcCloseDevice' */
|
||||||
|
extern u32 (*Z_envZ__alcCloseDevice)(u32);
|
||||||
|
/* import: 'env' '_alcDestroyContext' */
|
||||||
|
extern void (*Z_envZ__alcDestroyContext)(u32);
|
||||||
|
/* import: 'env' '_alGenSources' */
|
||||||
|
extern void (*Z_envZ__alGenSources)(u32, u32);
|
||||||
|
/* import: 'env' '_alListenerf' */
|
||||||
|
extern void (*Z_envZ__alListenerf)(u32, f32);
|
||||||
|
/* import: 'env' '_alcMakeContextCurrent' */
|
||||||
|
extern u32 (*Z_envZ__alcMakeContextCurrent)(u32);
|
||||||
|
/* import: 'env' '_alcCreateContext' */
|
||||||
|
extern u32 (*Z_envZ__alcCreateContext)(u32, u32);
|
||||||
|
/* import: 'env' '_alcOpenDevice' */
|
||||||
|
extern u32 (*Z_envZ__alcOpenDevice)(u32);
|
||||||
|
/* import: 'env' '_emscripten_get_fullscreen_status' */
|
||||||
|
extern u32 (*Z_envZ__emscripten_get_fullscreen_status)(u32);
|
||||||
|
/* import: 'env' '_emscripten_force_exit' */
|
||||||
|
extern void (*Z_envZ__emscripten_force_exit)(u32);
|
||||||
|
/* import: 'env' '_glTexSubImage2D' */
|
||||||
|
extern void (*Z_envZ__glTexSubImage2D)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
void Z_client_init(void);
|
||||||
|
void Z_client_free(void);
|
||||||
|
|
||||||
|
/* export: 'memory' */
|
||||||
|
extern wasm_rt_memory_t (*Z_clientZ_memory);
|
||||||
|
/* export: '___wasm_call_ctors' */
|
||||||
|
extern void (*Z_clientZ____wasm_call_ctors)(void);
|
||||||
|
/* export: '_malloc' */
|
||||||
|
extern u32 (*Z_clientZ__malloc)(u32);
|
||||||
|
/* export: '_free' */
|
||||||
|
extern void (*Z_clientZ__free)(u32);
|
||||||
|
/* export: '_main' */
|
||||||
|
extern u32 (*Z_clientZ__main)(u32, u32);
|
||||||
|
/* export: '___getTypeName' */
|
||||||
|
extern u32 (*Z_clientZ____getTypeName)(u32);
|
||||||
|
/* export: '__embind_initialize_bindings' */
|
||||||
|
extern void (*Z_clientZ___embind_initialize_bindings)(void);
|
||||||
|
/* export: 'table' */
|
||||||
|
extern wasm_rt_table_t (*Z_clientZ_table);
|
||||||
|
/* export: 'stackSave' */
|
||||||
|
extern u32 (*Z_clientZ_stackSave)(void);
|
||||||
|
/* export: 'stackRestore' */
|
||||||
|
extern void (*Z_clientZ_stackRestore)(u32);
|
||||||
|
/* export: 'stackAlloc' */
|
||||||
|
extern u32 (*Z_clientZ_stackAlloc)(u32);
|
||||||
|
/* export: 'dynCall_vij' */
|
||||||
|
extern void (*Z_clientZ_dynCall_vij)(u32, u32, u32, u32);
|
||||||
|
/* export: 'dynCall_ji' */
|
||||||
|
extern u32 (*Z_clientZ_dynCall_ji)(u32, u32);
|
||||||
|
/* export: 'dynCall_iiiijiii' */
|
||||||
|
extern u32 (*Z_clientZ_dynCall_iiiijiii)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* export: 'dynCall_viijii' */
|
||||||
|
extern void (*Z_clientZ_dynCall_viijii)(u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* export: 'dynCall_iiiiij' */
|
||||||
|
extern u32 (*Z_clientZ_dynCall_iiiiij)(u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* export: 'dynCall_iiiiijj' */
|
||||||
|
extern u32 (*Z_clientZ_dynCall_iiiiijj)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* export: 'dynCall_iiiiiijj' */
|
||||||
|
extern u32 (*Z_clientZ_dynCall_iiiiiijj)(u32, u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
||||||
|
/* export: 'dynCall_jiji' */
|
||||||
|
extern u32 (*Z_clientZ_dynCall_jiji)(u32, u32, u32, u32, u32);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* CLIENT_H_GENERATED_ */
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ static void init_func_types(void) {
|
||||||
|
|
||||||
static void w2c__free(u32);
|
static void w2c__free(u32);
|
||||||
static u32 w2c_f166(u32);
|
static u32 w2c_f166(u32);
|
||||||
static void w2c_f167(u32, u32);
|
void w2c_f167(u32, u32);
|
||||||
static u32 w2c_f168(u32, u32, u32);
|
static u32 w2c_f168(u32, u32, u32);
|
||||||
static u32 w2c_f169(u32, u32, u32);
|
static u32 w2c_f169(u32, u32, u32);
|
||||||
static void w2c_f170(u32, u32, u32);
|
static void w2c_f170(u32, u32, u32);
|
||||||
|
|
@ -449,7 +449,7 @@ static u32 w2c_f204(u32, u32);
|
||||||
static u32 w2c_f205(u32, u32);
|
static u32 w2c_f205(u32, u32);
|
||||||
static u32 w2c_f206(u32, u32, u32);
|
static u32 w2c_f206(u32, u32, u32);
|
||||||
static void w2c_f207(u32, u32);
|
static void w2c_f207(u32, u32);
|
||||||
static u32 w2c_f208(u64);
|
u32 w2c_f208(u64);
|
||||||
static void w2c_f209(u32, u32);
|
static void w2c_f209(u32, u32);
|
||||||
static u32 w2c_f210(u32, u32);
|
static u32 w2c_f210(u32, u32);
|
||||||
static void w2c_f211(u32, u32);
|
static void w2c_f211(u32, u32);
|
||||||
|
|
@ -8517,15 +8517,17 @@ static u32 w2c_f166(u32 w2c_p0) {
|
||||||
return w2c_i0;
|
return w2c_i0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void w2c_f167(u32 w2c_p0, u32 w2c_p1) {
|
void w2c_f167(u32 w2c_p0, u32 w2c_p1) {
|
||||||
u32 w2c_l2 = 0, w2c_l3 = 0, w2c_l4 = 0, w2c_l5 = 0, w2c_l6 = 0, w2c_l7 = 0;
|
u32 w2c_l2 = 0, w2c_l3 = 0, w2c_l4 = 0, w2c_l5 = 0, w2c_l6 = 0, w2c_l7 = 0;
|
||||||
FUNC_PROLOGUE;
|
FUNC_PROLOGUE;
|
||||||
u32 w2c_i0, w2c_i1, w2c_i2, w2c_i3;
|
u32 w2c_i0, w2c_i1, w2c_i2, w2c_i3;
|
||||||
u64 w2c_j1;
|
u64 w2c_j1;
|
||||||
|
|
||||||
w2c_i0 = w2c_g0;
|
w2c_i0 = w2c_g0;
|
||||||
w2c_i1 = 16u;
|
w2c_i1 = 16u;
|
||||||
w2c_i0 -= w2c_i1;
|
w2c_i0 -= w2c_i1;
|
||||||
w2c_l2 = w2c_i0;
|
w2c_l2 = w2c_i0;
|
||||||
|
|
||||||
w2c_g0 = w2c_i0;
|
w2c_g0 = w2c_i0;
|
||||||
w2c_i0 = w2c_p1;
|
w2c_i0 = w2c_p1;
|
||||||
w2c_i0 = i32_load((&w2c_memory), (u64)(w2c_i0) + 4u);
|
w2c_i0 = i32_load((&w2c_memory), (u64)(w2c_i0) + 4u);
|
||||||
|
|
@ -8590,10 +8592,15 @@ static void w2c_f167(u32 w2c_p0, u32 w2c_p1) {
|
||||||
i64_store((&w2c_memory), (u64)(w2c_i0), w2c_j1);
|
i64_store((&w2c_memory), (u64)(w2c_i0), w2c_j1);
|
||||||
goto w2c_B2;
|
goto w2c_B2;
|
||||||
}
|
}
|
||||||
|
// uStack16
|
||||||
w2c_i0 = w2c_l2;
|
w2c_i0 = w2c_l2;
|
||||||
|
// param2->data
|
||||||
w2c_i1 = w2c_l7;
|
w2c_i1 = w2c_l7;
|
||||||
|
// length_
|
||||||
w2c_i2 = w2c_l4;
|
w2c_i2 = w2c_l4;
|
||||||
w2c_f177(w2c_i0, w2c_i1, w2c_i2);
|
// (&uStack16, param2->data, length_)
|
||||||
|
w2c_f177(w2c_i0, w2c_i1, w2c_i2);
|
||||||
|
|
||||||
w2c_B2:;
|
w2c_B2:;
|
||||||
w2c_i0 = w2c_p0;
|
w2c_i0 = w2c_p0;
|
||||||
w2c_i1 = w2c_l3;
|
w2c_i1 = w2c_l3;
|
||||||
|
|
@ -19869,7 +19876,7 @@ static void w2c_f207(u32 w2c_p0, u32 w2c_p1) {
|
||||||
FUNC_EPILOGUE;
|
FUNC_EPILOGUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 w2c_f208(u64 w2c_p0) {
|
u32 w2c_f208(u64 w2c_p0) {
|
||||||
u32 w2c_l1 = 0, w2c_l2 = 0, w2c_l3 = 0, w2c_l4 = 0, w2c_l5 = 0, w2c_l6 = 0;
|
u32 w2c_l1 = 0, w2c_l2 = 0, w2c_l3 = 0, w2c_l4 = 0, w2c_l5 = 0, w2c_l6 = 0;
|
||||||
FUNC_PROLOGUE;
|
FUNC_PROLOGUE;
|
||||||
u32 w2c_i0, w2c_i1, w2c_i2, w2c_i3;
|
u32 w2c_i0, w2c_i1, w2c_i2, w2c_i3;
|
||||||
|
|
@ -116320,6 +116327,9 @@ static void w2c_f424(u32 w2c_p0) {
|
||||||
w2c_i0 -= w2c_i1;
|
w2c_i0 -= w2c_i1;
|
||||||
w2c_i1 = 17381u;
|
w2c_i1 = 17381u;
|
||||||
w2c_i0 = w2c_f204(w2c_i0, w2c_i1);
|
w2c_i0 = w2c_f204(w2c_i0, w2c_i1);
|
||||||
|
|
||||||
|
printf("This gets printed when you have no target.\n");
|
||||||
|
|
||||||
w2c_p0 = w2c_i0;
|
w2c_p0 = w2c_i0;
|
||||||
w2c_i0 = w2c_l5;
|
w2c_i0 = w2c_l5;
|
||||||
w2c_j1 = 0ull;
|
w2c_j1 = 0ull;
|
||||||
|
|
@ -1036655,6 +1036665,16 @@ static u32 w2c_f2295(u32 w2c_p0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void w2c_f2296(u32 w2c_p0, u32 w2c_p1) {
|
static void w2c_f2296(u32 w2c_p0, u32 w2c_p1) {
|
||||||
|
const wasm_rt_memory_t* memory = &w2c_memory;
|
||||||
|
const unsigned char* data = &memory->data[w2c_p0];
|
||||||
|
const size_t length = w2c_p1;
|
||||||
|
|
||||||
|
puts("Sending network packet:");
|
||||||
|
for(int i = 0; i < length; i++) {
|
||||||
|
printf("%02X ", data[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
u32 w2c_l2 = 0, w2c_l3 = 0;
|
u32 w2c_l2 = 0, w2c_l3 = 0;
|
||||||
FUNC_PROLOGUE;
|
FUNC_PROLOGUE;
|
||||||
u32 w2c_i0, w2c_i1, w2c_i2, w2c_i3, w2c_i4;
|
u32 w2c_i0, w2c_i1, w2c_i2, w2c_i3, w2c_i4;
|
||||||
|
|
@ -1,405 +0,0 @@
|
||||||
/* Automatically generated by wasm2c */
|
|
||||||
#ifndef CLIENT_H_GENERATED_
|
|
||||||
#define CLIENT_H_GENERATED_
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include "wasm-rt.h"
|
|
||||||
|
|
||||||
/* TODO(binji): only use stdint.h types in header */
|
|
||||||
#ifndef WASM_RT_CORE_TYPES_DEFINED
|
|
||||||
#define WASM_RT_CORE_TYPES_DEFINED
|
|
||||||
typedef uint8_t u8;
|
|
||||||
typedef int8_t s8;
|
|
||||||
typedef uint16_t u16;
|
|
||||||
typedef int16_t s16;
|
|
||||||
typedef uint32_t u32;
|
|
||||||
typedef int32_t s32;
|
|
||||||
typedef uint64_t u64;
|
|
||||||
typedef int64_t s64;
|
|
||||||
typedef float f32;
|
|
||||||
typedef double f64;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* import: 'env' '_abort' */
|
|
||||||
extern void (*Z_envZ__abort)(void);
|
|
||||||
/* import: 'env' '__emval_decref' */
|
|
||||||
extern void (*Z_envZ___emval_decref)(u32);
|
|
||||||
/* import: 'env' '__emval_new_cstring' */
|
|
||||||
extern u32 (*Z_envZ___emval_new_cstring)(u32);
|
|
||||||
/* import: 'env' '_glActiveTexture' */
|
|
||||||
extern void (*Z_envZ__glActiveTexture)(u32);
|
|
||||||
/* import: 'env' '_glBindTexture' */
|
|
||||||
extern void (*Z_envZ__glBindTexture)(u32, u32);
|
|
||||||
/* import: 'env' '_glVertexAttribPointer' */
|
|
||||||
extern void (*Z_envZ__glVertexAttribPointer)(u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDisableVertexAttribArray' */
|
|
||||||
extern void (*Z_envZ__glDisableVertexAttribArray)(u32);
|
|
||||||
/* import: 'env' '__emval_set_property' */
|
|
||||||
extern void (*Z_envZ___emval_set_property)(u32, u32, u32);
|
|
||||||
/* import: 'env' '__emval_get_property' */
|
|
||||||
extern u32 (*Z_envZ___emval_get_property)(u32, u32);
|
|
||||||
/* import: 'env' '_glUniformMatrix4fv' */
|
|
||||||
extern void (*Z_envZ__glUniformMatrix4fv)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__emval_get_method_caller' */
|
|
||||||
extern u32 (*Z_envZ___emval_get_method_caller)(u32, u32);
|
|
||||||
/* import: 'env' '__emval_take_value' */
|
|
||||||
extern u32 (*Z_envZ___emval_take_value)(u32, u32);
|
|
||||||
/* import: 'env' '_glDisable' */
|
|
||||||
extern void (*Z_envZ__glDisable)(u32);
|
|
||||||
/* import: 'env' '_glBindBuffer' */
|
|
||||||
extern void (*Z_envZ__glBindBuffer)(u32, u32);
|
|
||||||
/* import: 'env' '__emval_run_destructors' */
|
|
||||||
extern void (*Z_envZ___emval_run_destructors)(u32);
|
|
||||||
/* import: 'env' '__emval_get_global' */
|
|
||||||
extern u32 (*Z_envZ___emval_get_global)(u32);
|
|
||||||
/* import: 'env' '_glUniform1f' */
|
|
||||||
extern void (*Z_envZ__glUniform1f)(u32, f32);
|
|
||||||
/* import: 'env' '_glEnable' */
|
|
||||||
extern void (*Z_envZ__glEnable)(u32);
|
|
||||||
/* import: 'env' '__emval_call_void_method' */
|
|
||||||
extern void (*Z_envZ___emval_call_void_method)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glTexParameteri' */
|
|
||||||
extern void (*Z_envZ__glTexParameteri)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_alSourcef' */
|
|
||||||
extern void (*Z_envZ__alSourcef)(u32, u32, f32);
|
|
||||||
/* import: 'env' '_glUseProgram' */
|
|
||||||
extern void (*Z_envZ__glUseProgram)(u32);
|
|
||||||
/* import: 'env' '_glEnableVertexAttribArray' */
|
|
||||||
extern void (*Z_envZ__glEnableVertexAttribArray)(u32);
|
|
||||||
/* import: 'env' '_alSourcei' */
|
|
||||||
extern void (*Z_envZ__alSourcei)(u32, u32, u32);
|
|
||||||
/* import: 'env' '__emval_as' */
|
|
||||||
extern f64 (*Z_envZ___emval_as)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDrawArrays' */
|
|
||||||
extern void (*Z_envZ__glDrawArrays)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDepthMask' */
|
|
||||||
extern void (*Z_envZ__glDepthMask)(u32);
|
|
||||||
/* import: 'env' '_glBlendFunc' */
|
|
||||||
extern void (*Z_envZ__glBlendFunc)(u32, u32);
|
|
||||||
/* import: 'env' '_glBindFramebuffer' */
|
|
||||||
extern void (*Z_envZ__glBindFramebuffer)(u32, u32);
|
|
||||||
/* import: 'env' '_glDrawElements' */
|
|
||||||
extern void (*Z_envZ__glDrawElements)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__emval_incref' */
|
|
||||||
extern void (*Z_envZ___emval_incref)(u32);
|
|
||||||
/* import: 'env' '_alSourceStop' */
|
|
||||||
extern void (*Z_envZ__alSourceStop)(u32);
|
|
||||||
/* import: 'env' '_glGetUniformLocation' */
|
|
||||||
extern u32 (*Z_envZ__glGetUniformLocation)(u32, u32);
|
|
||||||
/* import: 'env' '__emval_call_method' */
|
|
||||||
extern f64 (*Z_envZ___emval_call_method)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glUniform3fv' */
|
|
||||||
extern void (*Z_envZ__glUniform3fv)(u32, u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_memory_view' */
|
|
||||||
extern void (*Z_envZ___embind_register_memory_view)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glViewport' */
|
|
||||||
extern void (*Z_envZ__glViewport)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glTexImage2D' */
|
|
||||||
extern void (*Z_envZ__glTexImage2D)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glGetError' */
|
|
||||||
extern u32 (*Z_envZ__glGetError)(void);
|
|
||||||
/* import: 'env' '_glDeleteFramebuffers' */
|
|
||||||
extern void (*Z_envZ__glDeleteFramebuffers)(u32, u32);
|
|
||||||
/* import: 'env' '_alGetSourcei' */
|
|
||||||
extern void (*Z_envZ__alGetSourcei)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glColorMask' */
|
|
||||||
extern void (*Z_envZ__glColorMask)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_function' */
|
|
||||||
extern void (*Z_envZ___embind_register_function)(u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_alDeleteSources' */
|
|
||||||
extern void (*Z_envZ__alDeleteSources)(u32, u32);
|
|
||||||
/* import: 'env' '_glGenTextures' */
|
|
||||||
extern void (*Z_envZ__glGenTextures)(u32, u32);
|
|
||||||
/* import: 'env' '_glDeleteBuffers' */
|
|
||||||
extern void (*Z_envZ__glDeleteBuffers)(u32, u32);
|
|
||||||
/* import: 'env' '_glBufferData' */
|
|
||||||
extern void (*Z_envZ__glBufferData)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glGenBuffers' */
|
|
||||||
extern void (*Z_envZ__glGenBuffers)(u32, u32);
|
|
||||||
/* import: 'env' '_glScissor' */
|
|
||||||
extern void (*Z_envZ__glScissor)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glStencilMask' */
|
|
||||||
extern void (*Z_envZ__glStencilMask)(u32);
|
|
||||||
/* import: 'env' '__embind_register_integer' */
|
|
||||||
extern void (*Z_envZ___embind_register_integer)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_alSource3f' */
|
|
||||||
extern void (*Z_envZ__alSource3f)(u32, u32, f32, f32, f32);
|
|
||||||
/* import: 'env' '__emval_get_module_property' */
|
|
||||||
extern u32 (*Z_envZ___emval_get_module_property)(u32);
|
|
||||||
/* import: 'env' '_glFramebufferTexture2D' */
|
|
||||||
extern void (*Z_envZ__glFramebufferTexture2D)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__emval_typeof' */
|
|
||||||
extern u32 (*Z_envZ___emval_typeof)(u32);
|
|
||||||
/* import: 'env' '_glUniform2f' */
|
|
||||||
extern void (*Z_envZ__glUniform2f)(u32, f32, f32);
|
|
||||||
/* import: 'env' '_glUniform2fv' */
|
|
||||||
extern void (*Z_envZ__glUniform2fv)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glFrontFace' */
|
|
||||||
extern void (*Z_envZ__glFrontFace)(u32);
|
|
||||||
/* import: 'env' '_glGenFramebuffers' */
|
|
||||||
extern void (*Z_envZ__glGenFramebuffers)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_vibrate' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_vibrate)(u32);
|
|
||||||
/* import: 'env' '_glUniform1i' */
|
|
||||||
extern void (*Z_envZ__glUniform1i)(u32, u32);
|
|
||||||
/* import: 'env' '_glGetProgramiv' */
|
|
||||||
extern void (*Z_envZ__glGetProgramiv)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glCheckFramebufferStatus' */
|
|
||||||
extern u32 (*Z_envZ__glCheckFramebufferStatus)(u32);
|
|
||||||
/* import: 'env' '_glClear' */
|
|
||||||
extern void (*Z_envZ__glClear)(u32);
|
|
||||||
/* import: 'env' '_glStencilFunc' */
|
|
||||||
extern void (*Z_envZ__glStencilFunc)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glGetIntegerv' */
|
|
||||||
extern void (*Z_envZ__glGetIntegerv)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_exit_fullscreen' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_exit_fullscreen)(void);
|
|
||||||
/* import: 'env' '_emscripten_request_fullscreen' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_request_fullscreen)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_performance_now' */
|
|
||||||
extern f64 (*Z_envZ__emscripten_performance_now)(void);
|
|
||||||
/* import: 'env' '_emscripten_cancel_main_loop' */
|
|
||||||
extern void (*Z_envZ__emscripten_cancel_main_loop)(void);
|
|
||||||
/* import: 'env' '_emscripten_set_main_loop' */
|
|
||||||
extern void (*Z_envZ__emscripten_set_main_loop)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDetachShader' */
|
|
||||||
extern void (*Z_envZ__glDetachShader)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_devicemotion_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_devicemotion_callback_on_thread)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDeleteProgram' */
|
|
||||||
extern void (*Z_envZ__glDeleteProgram)(u32);
|
|
||||||
/* import: 'env' '__emval_new' */
|
|
||||||
extern u32 (*Z_envZ___emval_new)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_beforeunload_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_beforeunload_callback_on_thread)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDeleteShader' */
|
|
||||||
extern void (*Z_envZ__glDeleteShader)(u32);
|
|
||||||
/* import: 'env' '_glDepthFunc' */
|
|
||||||
extern void (*Z_envZ__glDepthFunc)(u32);
|
|
||||||
/* import: 'env' '_emscripten_resize_heap' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_resize_heap)(u32);
|
|
||||||
/* import: 'env' '__embind_register_std_wstring' */
|
|
||||||
extern void (*Z_envZ___embind_register_std_wstring)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_strftime' */
|
|
||||||
extern u32 (*Z_envZ__strftime)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_webglcontextrestored_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_webglcontextrestored_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_focusout_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_focusout_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_keyup_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_keyup_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_keydown_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_keydown_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_wheel_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_wheel_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_mouseleave_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_mouseleave_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_mousemove_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_mousemove_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_mouseup_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_mouseup_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_mousedown_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_mousedown_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_touchcancel_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_touchcancel_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_touchmove_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_touchmove_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_touchend_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_touchend_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_touchstart_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_touchstart_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_webgl_destroy_context' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_webgl_destroy_context)(u32);
|
|
||||||
/* import: 'env' '_emscripten_set_orientationchange_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_orientationchange_callback_on_thread)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_resize_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_resize_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_visibilitychange_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_visibilitychange_callback_on_thread)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glClearColor' */
|
|
||||||
extern void (*Z_envZ__glClearColor)(f32, f32, f32, f32);
|
|
||||||
/* import: 'env' '_glGetProgramInfoLog' */
|
|
||||||
extern void (*Z_envZ__glGetProgramInfoLog)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glLinkProgram' */
|
|
||||||
extern void (*Z_envZ__glLinkProgram)(u32);
|
|
||||||
/* import: 'env' '_glAttachShader' */
|
|
||||||
extern void (*Z_envZ__glAttachShader)(u32, u32);
|
|
||||||
/* import: 'env' '_glGetShaderiv' */
|
|
||||||
extern void (*Z_envZ__glGetShaderiv)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glLineWidth' */
|
|
||||||
extern void (*Z_envZ__glLineWidth)(f32);
|
|
||||||
/* import: 'env' '__emscripten_date_now' */
|
|
||||||
extern f64 (*Z_envZ___emscripten_date_now)(void);
|
|
||||||
/* import: 'env' '__embind_register_float' */
|
|
||||||
extern void (*Z_envZ___embind_register_float)(u32, u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_std_string' */
|
|
||||||
extern void (*Z_envZ___embind_register_std_string)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_async_wget_data' */
|
|
||||||
extern void (*Z_envZ__emscripten_async_wget_data)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_alSourcePlay' */
|
|
||||||
extern void (*Z_envZ__alSourcePlay)(u32);
|
|
||||||
/* import: 'env' '_alListenerfv' */
|
|
||||||
extern void (*Z_envZ__alListenerfv)(u32, u32);
|
|
||||||
/* import: 'env' '_alListener3f' */
|
|
||||||
extern void (*Z_envZ__alListener3f)(u32, f32, f32, f32);
|
|
||||||
/* import: 'env' '_emscripten_set_webglcontextlost_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_webglcontextlost_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_element_css_size' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_element_css_size)(u32, f64, f64);
|
|
||||||
/* import: 'env' '_emscripten_set_canvas_element_size' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_canvas_element_size)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_webgl_make_context_current' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_webgl_make_context_current)(u32);
|
|
||||||
/* import: 'env' '_emscripten_webgl_create_context' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_webgl_create_context)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_webgl_init_context_attributes' */
|
|
||||||
extern void (*Z_envZ__emscripten_webgl_init_context_attributes)(u32);
|
|
||||||
/* import: 'env' '_glUniform4f' */
|
|
||||||
extern void (*Z_envZ__glUniform4f)(u32, f32, f32, f32, f32);
|
|
||||||
/* import: 'env' '_glCompressedTexImage2D' */
|
|
||||||
extern void (*Z_envZ__glCompressedTexImage2D)(u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glBindAttribLocation' */
|
|
||||||
extern void (*Z_envZ__glBindAttribLocation)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glGetActiveAttrib' */
|
|
||||||
extern void (*Z_envZ__glGetActiveAttrib)(u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_get_orientation_status' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_get_orientation_status)(u32);
|
|
||||||
/* import: 'env' '_glCreateProgram' */
|
|
||||||
extern u32 (*Z_envZ__glCreateProgram)(void);
|
|
||||||
/* import: 'env' '_glGetShaderInfoLog' */
|
|
||||||
extern void (*Z_envZ__glGetShaderInfoLog)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glCompileShader' */
|
|
||||||
extern void (*Z_envZ__glCompileShader)(u32);
|
|
||||||
/* import: 'env' '_glShaderSource' */
|
|
||||||
extern void (*Z_envZ__glShaderSource)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glCreateShader' */
|
|
||||||
extern u32 (*Z_envZ__glCreateShader)(u32);
|
|
||||||
/* import: 'env' '_glCullFace' */
|
|
||||||
extern void (*Z_envZ__glCullFace)(u32);
|
|
||||||
/* import: 'env' '_emscripten_webgl_enable_extension' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_webgl_enable_extension)(u32, u32);
|
|
||||||
/* import: 'env' '_glGetString' */
|
|
||||||
extern u32 (*Z_envZ__glGetString)(u32);
|
|
||||||
/* import: 'env' '_glStencilOp' */
|
|
||||||
extern void (*Z_envZ__glStencilOp)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_set_fullscreenchange_callback_on_thread' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_set_fullscreenchange_callback_on_thread)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_glDeleteTextures' */
|
|
||||||
extern void (*Z_envZ__glDeleteTextures)(u32, u32);
|
|
||||||
/* import: 'env' '_fd_seek' */
|
|
||||||
extern u32 (*Z_envZ__fd_seek)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_bigint' */
|
|
||||||
extern void (*Z_envZ___embind_register_bigint)(u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_strftime_l' */
|
|
||||||
extern u32 (*Z_envZ__strftime_l)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_environ_get' */
|
|
||||||
extern u32 (*Z_envZ__environ_get)(u32, u32);
|
|
||||||
/* import: 'env' '_environ_sizes_get' */
|
|
||||||
extern u32 (*Z_envZ__environ_sizes_get)(u32, u32);
|
|
||||||
/* import: 'env' '_fd_close' */
|
|
||||||
extern u32 (*Z_envZ__fd_close)(u32);
|
|
||||||
/* import: 'env' '_fd_write' */
|
|
||||||
extern u32 (*Z_envZ__fd_write)(u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_memcpy_big' */
|
|
||||||
extern void (*Z_envZ__emscripten_memcpy_big)(u32, u32, u32);
|
|
||||||
/* import: 'env' '__emscripten_get_now_is_monotonic' */
|
|
||||||
extern u32 (*Z_envZ___emscripten_get_now_is_monotonic)(void);
|
|
||||||
/* import: 'env' '__gmtime_js' */
|
|
||||||
extern void (*Z_envZ___gmtime_js)(u32, u32);
|
|
||||||
/* import: 'env' '__localtime_js' */
|
|
||||||
extern void (*Z_envZ___localtime_js)(u32, u32);
|
|
||||||
/* import: 'env' '__mktime_js' */
|
|
||||||
extern u32 (*Z_envZ___mktime_js)(u32);
|
|
||||||
/* import: 'env' '__tzset_js' */
|
|
||||||
extern void (*Z_envZ___tzset_js)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_glCopyTexSubImage2D' */
|
|
||||||
extern void (*Z_envZ__glCopyTexSubImage2D)(u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_emval' */
|
|
||||||
extern void (*Z_envZ___embind_register_emval)(u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_bool' */
|
|
||||||
extern void (*Z_envZ___embind_register_bool)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '__embind_register_void' */
|
|
||||||
extern void (*Z_envZ___embind_register_void)(u32, u32);
|
|
||||||
/* import: 'env' '_emscripten_log' */
|
|
||||||
extern void (*Z_envZ__emscripten_log)(u32, u32, u32);
|
|
||||||
/* import: 'env' '_alDeleteBuffers' */
|
|
||||||
extern void (*Z_envZ__alDeleteBuffers)(u32, u32);
|
|
||||||
/* import: 'env' '_alBufferData' */
|
|
||||||
extern void (*Z_envZ__alBufferData)(u32, u32, u32, u32, u32);
|
|
||||||
/* import: 'env' '_alGenBuffers' */
|
|
||||||
extern void (*Z_envZ__alGenBuffers)(u32, u32);
|
|
||||||
/* import: 'env' '_alGetEnumValue' */
|
|
||||||
extern u32 (*Z_envZ__alGetEnumValue)(u32);
|
|
||||||
/* import: 'env' '_alcCloseDevice' */
|
|
||||||
extern u32 (*Z_envZ__alcCloseDevice)(u32);
|
|
||||||
/* import: 'env' '_alcDestroyContext' */
|
|
||||||
extern void (*Z_envZ__alcDestroyContext)(u32);
|
|
||||||
/* import: 'env' '_alGenSources' */
|
|
||||||
extern void (*Z_envZ__alGenSources)(u32, u32);
|
|
||||||
/* import: 'env' '_alListenerf' */
|
|
||||||
extern void (*Z_envZ__alListenerf)(u32, f32);
|
|
||||||
/* import: 'env' '_alcMakeContextCurrent' */
|
|
||||||
extern u32 (*Z_envZ__alcMakeContextCurrent)(u32);
|
|
||||||
/* import: 'env' '_alcCreateContext' */
|
|
||||||
extern u32 (*Z_envZ__alcCreateContext)(u32, u32);
|
|
||||||
/* import: 'env' '_alcOpenDevice' */
|
|
||||||
extern u32 (*Z_envZ__alcOpenDevice)(u32);
|
|
||||||
/* import: 'env' '_emscripten_get_fullscreen_status' */
|
|
||||||
extern u32 (*Z_envZ__emscripten_get_fullscreen_status)(u32);
|
|
||||||
/* import: 'env' '_emscripten_force_exit' */
|
|
||||||
extern void (*Z_envZ__emscripten_force_exit)(u32);
|
|
||||||
/* import: 'env' '_glTexSubImage2D' */
|
|
||||||
extern void (*Z_envZ__glTexSubImage2D)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
void Z_client_init(void);
|
|
||||||
void Z_client_free(void);
|
|
||||||
|
|
||||||
/* export: 'memory' */
|
|
||||||
extern wasm_rt_memory_t (*Z_clientZ_memory);
|
|
||||||
/* export: '___wasm_call_ctors' */
|
|
||||||
extern void (*Z_clientZ____wasm_call_ctors)(void);
|
|
||||||
/* export: '_malloc' */
|
|
||||||
extern u32 (*Z_clientZ__malloc)(u32);
|
|
||||||
/* export: '_free' */
|
|
||||||
extern void (*Z_clientZ__free)(u32);
|
|
||||||
/* export: '_main' */
|
|
||||||
extern u32 (*Z_clientZ__main)(u32, u32);
|
|
||||||
/* export: '___getTypeName' */
|
|
||||||
extern u32 (*Z_clientZ____getTypeName)(u32);
|
|
||||||
/* export: '__embind_initialize_bindings' */
|
|
||||||
extern void (*Z_clientZ___embind_initialize_bindings)(void);
|
|
||||||
/* export: 'table' */
|
|
||||||
extern wasm_rt_table_t (*Z_clientZ_table);
|
|
||||||
/* export: 'stackSave' */
|
|
||||||
extern u32 (*Z_clientZ_stackSave)(void);
|
|
||||||
/* export: 'stackRestore' */
|
|
||||||
extern void (*Z_clientZ_stackRestore)(u32);
|
|
||||||
/* export: 'stackAlloc' */
|
|
||||||
extern u32 (*Z_clientZ_stackAlloc)(u32);
|
|
||||||
/* export: 'dynCall_vij' */
|
|
||||||
extern void (*Z_clientZ_dynCall_vij)(u32, u32, u32, u32);
|
|
||||||
/* export: 'dynCall_ji' */
|
|
||||||
extern u32 (*Z_clientZ_dynCall_ji)(u32, u32);
|
|
||||||
/* export: 'dynCall_iiiijiii' */
|
|
||||||
extern u32 (*Z_clientZ_dynCall_iiiijiii)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* export: 'dynCall_viijii' */
|
|
||||||
extern void (*Z_clientZ_dynCall_viijii)(u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* export: 'dynCall_iiiiij' */
|
|
||||||
extern u32 (*Z_clientZ_dynCall_iiiiij)(u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* export: 'dynCall_iiiiijj' */
|
|
||||||
extern u32 (*Z_clientZ_dynCall_iiiiijj)(u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* export: 'dynCall_iiiiiijj' */
|
|
||||||
extern u32 (*Z_clientZ_dynCall_iiiiiijj)(u32, u32, u32, u32, u32, u32, u32, u32, u32, u32);
|
|
||||||
/* export: 'dynCall_jiji' */
|
|
||||||
extern u32 (*Z_clientZ_dynCall_jiji)(u32, u32, u32, u32, u32);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* CLIENT_H_GENERATED_ */
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
add_library (
|
add_library (
|
||||||
wasm-rt
|
wasm-rt
|
||||||
"src/wasm-rt-impl.cpp"
|
"src/wasm-rt-impl.c"
|
||||||
"src/wasm-rt-impl.h"
|
"src/wasm-rt-impl.h"
|
||||||
"include/wasm-rt.h"
|
"include/wasm-rt.h"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,9 @@
|
||||||
#ifndef WASM_RT_H_
|
#ifndef WASM_RT_H_
|
||||||
#define WASM_RT_H_
|
#define WASM_RT_H_
|
||||||
|
|
||||||
|
// Added to have printing capabilities in `flyff-client`.
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -157,8 +160,7 @@ typedef struct {
|
||||||
} wasm_rt_elem_t;
|
} wasm_rt_elem_t;
|
||||||
|
|
||||||
/** A Memory object. */
|
/** A Memory object. */
|
||||||
class wasm_rt_memory_t {
|
typedef struct {
|
||||||
public:
|
|
||||||
/** The linear memory data, with a byte length of `size`. */
|
/** The linear memory data, with a byte length of `size`. */
|
||||||
uint8_t* data;
|
uint8_t* data;
|
||||||
/** The current and maximum page count for this Memory object. If there is no
|
/** The current and maximum page count for this Memory object. If there is no
|
||||||
|
|
@ -166,7 +168,7 @@ public:
|
||||||
uint32_t pages, max_pages;
|
uint32_t pages, max_pages;
|
||||||
/** The current size of the linear memory, in bytes. */
|
/** The current size of the linear memory, in bytes. */
|
||||||
uint32_t size;
|
uint32_t size;
|
||||||
};
|
} wasm_rt_memory_t;
|
||||||
|
|
||||||
/** A Table object. */
|
/** A Table object. */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,9 @@ add_executable(
|
||||||
"src/interop/export/platform.cpp"
|
"src/interop/export/platform.cpp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Flyff is based on c++14
|
||||||
|
add_definitions(-std=c++14 -Os)
|
||||||
|
|
||||||
target_include_directories(fugg-client PUBLIC "include")
|
target_include_directories(fugg-client PUBLIC "include")
|
||||||
target_link_libraries (fugg-client LINK_PUBLIC fugg-core flyff-client)
|
target_link_libraries (fugg-client LINK_PUBLIC fugg-core flyff-client)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,27 @@ namespace fugg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "interop/flyff.h"
|
||||||
|
|
||||||
|
void translate(const std::string& id) {
|
||||||
|
auto result = std::make_unique<fugg::detail::RawBasicString>();
|
||||||
|
auto id_ = std::make_unique<fugg::String>(id);
|
||||||
|
|
||||||
|
std::cout << "Result before: " << result->data << ", " << result->size << ", " << result->cap << std::endl;
|
||||||
|
|
||||||
|
flyff::api::w2c_f167(
|
||||||
|
fugg::RuntimePointer<fugg::detail::RawBasicString>(result.get()).as_raw(),
|
||||||
|
fugg::RuntimePointer<fugg::String>(id_.get()).as_raw()
|
||||||
|
);
|
||||||
|
|
||||||
|
std::cout << "Result after: " << reinterpret_cast<void*>(result->data) << ", "
|
||||||
|
<< result->size << ", "
|
||||||
|
<< reinterpret_cast<void*>(result->cap) << std::endl;
|
||||||
|
|
||||||
|
auto showable = *reinterpret_cast<fugg::String*>(result.get());
|
||||||
|
std::cout << "Result = " << showable->c_str() << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
@ -61,6 +82,8 @@ namespace fugg
|
||||||
|
|
||||||
void before_main_loop() {
|
void before_main_loop() {
|
||||||
auto& client = fugg::Client::instance();
|
auto& client = fugg::Client::instance();
|
||||||
|
|
||||||
|
translate("ids_textclient_cannot_dropmoney");
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "interop/flyff.h"
|
#include "interop/flyff.h"
|
||||||
|
|
@ -75,6 +98,47 @@ void after_main_loop() {
|
||||||
// std::cout << item.some_string->c_str() << std::endl;
|
// std::cout << item.some_string->c_str() << std::endl;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// auto& player_pointer = fugg::module_ref<uintptr_t>(0x0003546c);
|
||||||
|
|
||||||
|
// if(player_pointer != 0) {
|
||||||
|
// auto& player = fugg::module_ref<flyff::Mover>(player_pointer);
|
||||||
|
|
||||||
|
// std::cout << "Player pos: "
|
||||||
|
// << player.world_position.x << ", "
|
||||||
|
// << player.world_position.y << ", "
|
||||||
|
// << player.world_position.z << std::endl;
|
||||||
|
|
||||||
|
// std::cout << "Current target: " << player.selected_target_id << std::endl;
|
||||||
|
// std::cout << "Current animation: " << player.current_animation << std::endl;
|
||||||
|
// std::cout << "Name: " << player.name->c_str() << std::endl;
|
||||||
|
|
||||||
|
// if(player.selected_target_id != 0) {
|
||||||
|
// struct ObjectHolder {
|
||||||
|
// uintptr_t next;
|
||||||
|
// unsigned int list_index;
|
||||||
|
// unsigned long long hash;
|
||||||
|
// uintptr_t mover;
|
||||||
|
// };
|
||||||
|
|
||||||
|
// auto& selected_target_holder = fugg::module_ref<ObjectHolder>(
|
||||||
|
// w2c_f208(player.selected_target_id)
|
||||||
|
// );
|
||||||
|
|
||||||
|
// auto& selected_target = fugg::module_ref<flyff::Mover>(
|
||||||
|
// selected_target_holder.mover
|
||||||
|
// );
|
||||||
|
|
||||||
|
// std::cout << "(" << reinterpret_cast<void*>(selected_target_holder.mover) << ") Target: "
|
||||||
|
// << selected_target.name->c_str() << " at "
|
||||||
|
// << selected_target.world_position.x << ", "
|
||||||
|
// << selected_target.world_position.y << ", "
|
||||||
|
// << selected_target.world_position.z << std::endl;
|
||||||
|
|
||||||
|
// } else {
|
||||||
|
// std::cout << "Got no target." << std::endl;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
// auto& item_properties = fugg::module_ref<fugg::Vector<flyff::ItemProperty>>(0x00035194);
|
// auto& item_properties = fugg::module_ref<fugg::Vector<flyff::ItemProperty>>(0x00035194);
|
||||||
// std::cout << "Expecting " << reinterpret_cast<void*>(fugg::wasm::kMemory.address_of(0x00035194)) << std::endl;
|
// std::cout << "Expecting " << reinterpret_cast<void*>(fugg::wasm::kMemory.address_of(0x00035194)) << std::endl;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,5 +13,11 @@ namespace fugg {
|
||||||
void initialise();
|
void initialise();
|
||||||
// Execute the `main` function of the flyff-client.
|
// Execute the `main` function of the flyff-client.
|
||||||
int main() const;
|
int main() const;
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
T* allocate(size_t size);
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void deallocate(T* ptr);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -265,7 +265,6 @@ WASM_IMPORT_IMPL(env, _fd_write) = [](u32 a, u32 b, u32 c, u32 d) {
|
||||||
// "Hb": "_emscripten_memcpy_big",
|
// "Hb": "_emscripten_memcpy_big",
|
||||||
WASM_IMPORT_IMPL(env, _emscripten_memcpy_big) = [](u32 dest_, u32 src_, u32 length) {
|
WASM_IMPORT_IMPL(env, _emscripten_memcpy_big) = [](u32 dest_, u32 src_, u32 length) {
|
||||||
// WASM runtime calls this, so no need to change the pointers since it's "internal".
|
// WASM runtime calls this, so no need to change the pointers since it's "internal".
|
||||||
// Right?
|
|
||||||
const auto& dest = fugg::ModulePointer<void>(dest_);
|
const auto& dest = fugg::ModulePointer<void>(dest_);
|
||||||
const auto& src = fugg::ModulePointer<void>(src_);
|
const auto& src = fugg::ModulePointer<void>(src_);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,24 @@
|
||||||
|
|
||||||
#include "fugg.h"
|
#include "fugg.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace flyff {
|
namespace flyff {
|
||||||
#include "structs/ItemProperty.h"
|
#include "structs/ItemProperty.h"
|
||||||
#include "structs/MusicProperty.h"
|
#include "structs/MusicProperty.h"
|
||||||
|
#include "structs/Mover.h"
|
||||||
|
|
||||||
|
namespace api {
|
||||||
|
static_assert(sizeof(fugg::ModulePointer<void>) == sizeof(u32), "ModulePointer needs the same size as u32");
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
// Translate
|
||||||
|
// extern void translate(u32, u32);
|
||||||
|
// extern void w2c_f167(fugg::String*, std::string*);
|
||||||
|
extern void w2c_f167(u32, u32);
|
||||||
|
|
||||||
|
extern u32 w2c_f208(u64);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include <wasm-rt.h>
|
#include <wasm-rt.h>
|
||||||
#include <client.h>
|
#include <client.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
enum class Job : int {
|
||||||
|
Vagrant = 0,
|
||||||
|
Mercenary = 1,
|
||||||
|
Acrobat = 2,
|
||||||
|
Assist = 3,
|
||||||
|
Magician = 4,
|
||||||
|
Puppeteer = 5,
|
||||||
|
Knight = 6,
|
||||||
|
Blade = 7,
|
||||||
|
Jester = 8,
|
||||||
|
Ranger = 9,
|
||||||
|
Ringmaster = 10,
|
||||||
|
Billposter = 11,
|
||||||
|
Psychikeeper = 12,
|
||||||
|
Elementor = 13
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,13 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
enum class ObjectType : int {
|
||||||
|
Object = 0 /* Background object */,
|
||||||
|
Animation = 1 /* Animation object */,
|
||||||
|
Ctrl = 2 /* Special background object */,
|
||||||
|
Sfx = 3 /* Special effect object */,
|
||||||
|
Item = 4 /* Item */,
|
||||||
|
Mover = 5 /* Moving object */,
|
||||||
|
Region = 6 /* Region (event, attribute) */,
|
||||||
|
Ship = 7,
|
||||||
|
Path = 8
|
||||||
|
};
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
#include "interop/imports.h"
|
#include "interop/imports.h"
|
||||||
|
|
||||||
void *malloc (size_t __size) {
|
void *malloc (size_t __size) {
|
||||||
|
// void * operator new(std::size_t __size) {
|
||||||
using namespace fugg::interop;
|
using namespace fugg::interop;
|
||||||
// This malloc is always called from the runtime.
|
// This malloc is always called from the runtime.
|
||||||
|
|
||||||
|
|
@ -19,23 +20,23 @@ void *malloc (size_t __size) {
|
||||||
(*import::_malloc)(__size)
|
(*import::_malloc)(__size)
|
||||||
};
|
};
|
||||||
|
|
||||||
#if TRACE_ALLOC
|
// #if TRACE_ALLOC
|
||||||
std::cout << "FLYFF: Allocated " << __size << " bytes at " << ptr << std::endl;
|
std::cout << "FLYFF: Allocated INSIDE " << __size << " bytes at " << reinterpret_cast<void*>(ptr.as_raw()) << std::endl;
|
||||||
#endif
|
// #endif
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
} else {
|
} else {
|
||||||
auto ptr = emscripten_builtin_malloc(__size);
|
auto ptr = emscripten_builtin_malloc(__size);
|
||||||
|
|
||||||
#if TRACE_ALLOC
|
// #if TRACE_ALLOC
|
||||||
std::cout << "FUGG: Allocated " << __size << " bytes at " << ptr << std::endl;
|
std::cout << "FUGG: Allocated OUTSIDE " << __size << " bytes at " << reinterpret_cast<void*>(ptr) << std::endl;
|
||||||
#endif
|
// #endif
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void free (void *__ptr) {
|
void free (void *__ptr) {
|
||||||
|
// void operator delete(void * __ptr) {
|
||||||
using namespace fugg::interop;
|
using namespace fugg::interop;
|
||||||
// printf("Trying to free ptr %p\n", __ptr);
|
// printf("Trying to free ptr %p\n", __ptr);
|
||||||
|
|
||||||
|
|
@ -44,15 +45,15 @@ void free (void *__ptr) {
|
||||||
|
|
||||||
(*import::_free)(ptr.as_raw());
|
(*import::_free)(ptr.as_raw());
|
||||||
|
|
||||||
#if TRACE_ALLOC
|
// #if TRACE_ALLOC
|
||||||
std::cout << "FLYFF: Free'd pointer at " << ptr << std::endl;
|
std::cout << "FLYFF: Free'd INSIDE pointer at " << reinterpret_cast<void*>(ptr.as_raw()) << std::endl;
|
||||||
#endif
|
// #endif
|
||||||
} else {
|
} else {
|
||||||
emscripten_builtin_free(__ptr);
|
emscripten_builtin_free(__ptr);
|
||||||
|
|
||||||
#if TRACE_ALLOC
|
// #if TRACE_ALLOC
|
||||||
printf("FUGG: Free'd pointer at %p\n", __ptr);
|
std::cout << "FUGG: Free'd OUTSIDE pointer at " << reinterpret_cast<void*>(__ptr) << std::endl;
|
||||||
#endif
|
// #endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,7 @@ add_library (
|
||||||
"include/fugg.h"
|
"include/fugg.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set_target_properties(fugg-core PROPERTIES LINKER_LANGUAGE CXX)
|
||||||
|
|
||||||
target_include_directories(fugg-core PUBLIC "include")
|
target_include_directories(fugg-core PUBLIC "include")
|
||||||
target_link_libraries (fugg-core LINK_PUBLIC flyff-client)
|
target_link_libraries (fugg-core LINK_PUBLIC flyff-client)
|
||||||
|
|
@ -27,6 +27,9 @@ namespace fugg {
|
||||||
// Type &operator*() const {
|
// Type &operator*() const {
|
||||||
// return *this->get();
|
// return *this->get();
|
||||||
// }
|
// }
|
||||||
|
operator bool() {
|
||||||
|
return this->get() != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
operator Type*() const {
|
operator Type*() const {
|
||||||
return this->get();
|
return this->get();
|
||||||
|
|
@ -61,9 +64,9 @@ namespace fugg {
|
||||||
return reinterpret_cast<ModulePointerType>(this->get());
|
return reinterpret_cast<ModulePointerType>(this->get());
|
||||||
}
|
}
|
||||||
|
|
||||||
Type *operator->() {
|
// Type *operator->() {
|
||||||
return this->get();
|
// return this->get();
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Type &operator*() const {
|
// Type &operator*() const {
|
||||||
// return *this->get();
|
// return *this->get();
|
||||||
|
|
@ -92,7 +95,6 @@ namespace fugg {
|
||||||
explicit RelativePointer(const ModulePointerType& offset) : offset_(offset) { }
|
explicit RelativePointer(const ModulePointerType& offset) : offset_(offset) { }
|
||||||
explicit RelativePointer(Type *const &offset) : offset_(reinterpret_cast<ModulePointerType>(offset)) { }
|
explicit RelativePointer(Type *const &offset) : offset_(reinterpret_cast<ModulePointerType>(offset)) { }
|
||||||
|
|
||||||
// Implicit conversion to PointerType to ease passing pointers to a module.
|
|
||||||
// FIXME: This is specificly for sending pointers to the module.
|
// FIXME: This is specificly for sending pointers to the module.
|
||||||
ModulePointerType as_raw() const {
|
ModulePointerType as_raw() const {
|
||||||
const auto start = reinterpret_cast<ModulePointerType>((*memory)->data);
|
const auto start = reinterpret_cast<ModulePointerType>((*memory)->data);
|
||||||
|
|
@ -100,6 +102,7 @@ namespace fugg {
|
||||||
return this->offset_ - start;
|
return this->offset_ - start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Type *operator->() {
|
Type *operator->() {
|
||||||
return this->get();
|
return this->get();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,24 @@ namespace fugg {
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
explicit BasicString() {
|
||||||
|
memset(&__l, 0, sizeof(__long));
|
||||||
|
}
|
||||||
|
|
||||||
|
explicit BasicString(const std::basic_string<T>& existing) {
|
||||||
|
// Copy the data to the stack.
|
||||||
|
auto temp = *reinterpret_cast<const RawBasicString*>(&existing);
|
||||||
|
// If the string is using the __long representation, we need to
|
||||||
|
// change the pointer to pointer into the module memory.
|
||||||
|
auto is_small = -1 < (char)reinterpret_cast<__short*>(&temp)->size;
|
||||||
|
|
||||||
|
if(!is_small) {
|
||||||
|
temp.data = RuntimePointer<const char>(existing.c_str()).as_raw();
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(&__l, &temp, sizeof(RawBasicString));
|
||||||
|
}
|
||||||
|
|
||||||
detail::ArrowProxy<RawBasicString, std::basic_string<T>> operator->() {
|
detail::ArrowProxy<RawBasicString, std::basic_string<T>> operator->() {
|
||||||
// Copy the data to the stack.
|
// Copy the data to the stack.
|
||||||
auto temp = *reinterpret_cast<RawBasicString*>(&__l);
|
auto temp = *reinterpret_cast<RawBasicString*>(&__l);
|
||||||
|
|
@ -157,6 +175,7 @@ namespace fugg {
|
||||||
};
|
};
|
||||||
|
|
||||||
using String = BasicString<char>;
|
using String = BasicString<char>;
|
||||||
|
static_assert(sizeof(String) == sizeof(std::string), "String needs to be the same size as std::string.");
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
class HashTable {
|
class HashTable {
|
||||||
|
|
|
||||||
Reference in New Issue