Code:
123 #ifdef LOADSO_STATIC_VERSION
124 func_point_t xuni_loadso_load_function(loadso_t object, const char *func) {
125 struct string_function_t data[] = {
126 {"game_click", (func_point_t)game_click},
127 {"game_event", (func_point_t)game_event},
128 {"game_free", (func_point_t)game_free},
129 {"game_init", (func_point_t)game_init},
130 {"game_paint", (func_point_t)game_paint},
131 {"game_start", (func_point_t)game_start},
132 {"menu_click", (func_point_t)menu_click},
133 {"menu_event", (func_point_t)menu_event},
134 {"menu_free", (func_point_t)menu_free},
135 {"menu_init", (func_point_t)menu_init},
136 {"menu_paint", (func_point_t)menu_paint},
137 {"menu_start", (func_point_t)menu_start},
138 {"options_click", (func_point_t)options_click},
139 {"options_event", (func_point_t)options_event},
140 {"options_free", (func_point_t)options_free},
141 {"options_graphics_deactivate",
142 (func_point_t)options_graphics_deactivate},
143 {"options_init", (func_point_t)options_init},
144 {"options_paint", (func_point_t)options_paint},
145 {"options_start", (func_point_t)options_start},
146 {"options_theme_deactivate", (func_point_t)options_theme_deactivate}
147 };
148 func_point_t funcp
149 = string_to_function(data, sizeof(data) / sizeof(*data), func);
150
151 if(!funcp) {
152 log_message(ERROR_TYPE_RESOURCE, 0, __FILE__, __LINE__,
153 "Unknown function: \"%s\"", func);
154 }
155
156 return funcp;
157 }
158 #endif
By means of macros, I would conditionally compile code to load functions from shared libraries (the shared library code is in