/** * Handle as message from JavaScript on the worker thread. * * @param[in] message The message to parse and handle. */ static void HandleMessage(struct PP_Var message) { const char *function_name,*error; struct PP_Var params,result_var; if ( ParseMessage(message, &function_name, ¶ms) != 0 ) { PostMessage("Error: Unable to parse message"); return; } HandleFunc function = GetFunctionByName(function_name); if ( function == 0 ) { PostMessage("Error: Unknown function \"%s\"", function_name); // Function name wasn't found. return; } // Function name was found, call it. int result = (*function)(params, &result_var, &error); if ( result != 0 ) { if ( error != NULL ) { PostMessage("Error: \"%s\" failed: %s.", function_name, error); free((void*)error); } else PostMessage("Error: \"%s\" failed.", function_name); return; } // Function returned an output dictionary. Send it to JavaScript. g_ppb_messaging->PostMessage(g_instance, result_var); g_ppb_var->Release(result_var); }
/** Handle as message from JavaScript on the worker thread. * * @param[in] message The message to parse and handle. */ static void HandleMessage(char* message) { char* function_name; char* params[MAX_PARAMS]; size_t num_params; char* output = NULL; int result; HandleFunc function; num_params = ParseMessage(message, &function_name, ¶ms[0], MAX_PARAMS); function = GetFunctionByName(function_name); if (!function) { /* Function name wasn't found. Error. */ ppb_messaging_interface->PostMessage( g_instance, PrintfToVar("Error: Unknown function \"%s\"", function)); } /* Function name was found, call it. */ result = (*function)(num_params, ¶ms[0], &output); if (result != 0) { /* Error. */ struct PP_Var var; if (output != NULL) { var = PrintfToVar("Error: Function \"%s\" returned error %d. " "Additional output: %s", function_name, result, output); free(output); } else { var = PrintfToVar( "Error: Function \"%s\" returned error %d.", function_name, result); } /* Post the error to JavaScript, so the user can see it. */ ppb_messaging_interface->PostMessage(g_instance, var); return; } if (output != NULL) { /* Function returned an output string. Send it to JavaScript. */ ppb_messaging_interface->PostMessage(g_instance, CStrToVar(output)); free(output); } }
/** * @brief Prepare all level data. **/ void LevelSystemOnLoad(/*void*/) { // Register config file ConfigRegisterConfig(File_Levels, Structure_List, CONFIG_FILE_ALIAS_LEVELS); // If level system disabled, then stop if(!gCvarList[CVAR_LEVEL_SYSTEM].BoolValue) { return; } // Gets levels config path static char sPathLevels[PLATFORM_LINE_LENGTH]; bool bExists = ConfigGetFullPath(CONFIG_PATH_LEVELS, sPathLevels); // If file doesn't exist, then log and stop if(!bExists) { // Log failure LogEvent(false, LogType_Fatal, LOG_GAME_EVENTS, LogModule_Levels, "Config Validation", "Missing levels config file: %s", sPathLevels); return; } // Sets path to the config file ConfigSetConfigPath(File_Levels, sPathLevels); // Load config from file and create array structure bool bSuccess = ConfigLoadConfig(File_Levels, gServerData.Levels); // Unexpected error, stop plugin if(!bSuccess) { LogEvent(false, LogType_Fatal, LOG_GAME_EVENTS, LogModule_Levels, "Config Validation", "Unexpected error encountered loading: %s", sPathLevels); return; } // Now copy data to array structure LevelSystemOnCacheData(); // Sets config data ConfigSetConfigLoaded(File_Levels, true); ConfigSetConfigReloadFunc(File_Levels, GetFunctionByName(GetMyHandle(), "LevelSystemOnConfigReload")); ConfigSetConfigHandle(File_Levels, gServerData.Levels); }
static void HandleMessage(char* message) { char* function_name; char* params[MAX_PARAMS]; size_t num_params; char* output = NULL; int result; HandleFunc function; num_params = ParseMessage(message, &function_name, ¶ms[0], MAX_PARAMS); function = GetFunctionByName(function_name); if (!function) { ppb_messaging_interface->PostMessage( g_instance, PrintfToVar("Error: Unknown function \"%s\"", function_name)); return; } result = (*function)(num_params, ¶ms[0], &output); if (result != 0) { struct PP_Var var; if (output != NULL) { var = PrintfToVar("Error: \"%s\" failed: %d: %s.", function_name, result, output); free(output); } else { var = PrintfToVar( "Error: \"%s\" failed: %d.", function_name, result); } ppb_messaging_interface->PostMessage(g_instance, var); return; } if (output != NULL) { ppb_messaging_interface->PostMessage(g_instance, CStrToVar(output)); free(output); } }
void C2F(setfsolvj)(char *name, int *rep) { fsolvjfonc = (fsolvjf) GetFunctionByName(name, rep, FTab_fsolvj); }
void C2F(setfcolgu)(char *name, int *rep) { fcolgufonc = (fcolguf) GetFunctionByName(name, rep, FTab_fcolgu); }
void C2F(setinterf)(char *name, int *rep) { interffonc = (interff) GetFunctionByName(name, rep, FTab_interf); }
void C2F(setfint2d)(char *name, int *rep) { fint2dfonc = (fint2df) GetFunctionByName(name, rep, FTab_fint2d); }
void C2F(setfsurf)(char *name, int *rep) { fsurffonc = (fsurff) GetFunctionByName(name, rep, FTab_fsurf); }
void C2F(setfpjacd)(char *name, int *rep) { fpjacdfonc = (fpjacdf) GetFunctionByName(name, rep, FTab_fpjacd); }
void C2F(setfresd)(char *name, int *rep) { fresdfonc = (fresdf) GetFunctionByName(name, rep, FTab_fresd); }
void C2F(setlsqrsolvj)(char *name, int *rep) { lsqrsolvjfonc = (lsqrsolvjf) GetFunctionByName(name, rep, FTab_lsqrsolvj); }
void C2F(setfadda)(char *name, int *rep) { faddafonc = (faddaf) GetFunctionByName(name, rep, FTab_fadda); }
void C2F(setfj2)(char *name, int *rep) { fj2fonc = (fj2f) GetFunctionByName(name, rep, FTab_fj2); }
void C2F(setfydot)(char *name, int *rep) { fydotfonc = (fydotf) GetFunctionByName(name, rep, FTab_fydot); }