/* load_egg_cmd: * Reads a list of commands. */ static EGG_COMMAND *load_egg_cmd(EGG *egg, int root, char *error) { EGG_COMMAND *cmd = NULL; EGG_COMMAND *tail = NULL; EGG_TYPE *type; char buf[1024]; char buf2[256]; /* helper macro for inserting new commands into the list */ #define ADD_COMMAND(_type_) \ { \ if (tail) { \ tail->next = malloc(sizeof(EGG_COMMAND)); \ tail = tail->next; \ } \ else \ tail = cmd = malloc(sizeof(EGG_COMMAND)); \ \ tail->type = _type_; \ tail->line = egg_line; \ tail->var = NULL; \ tail->exp = NULL; \ tail->cmd = NULL; \ tail->cmd2 = NULL; \ tail->next = NULL; \ } while ((!egg_eof()) && (!error[0])) { get_word(buf); if (strcmp(buf, "}") == 0) { /* block end marker */ if (root) egg_error(error, "Unexpected '}'"); else return cmd; } else if (strcmp(buf, "if") == 0) { /* parse an if statement */ get_word(buf); if (strcmp(buf, "(") != 0) { egg_error(error, "Missing '('"); } else { get_formula(buf, ')', error); if (!error[0]) { get_brace(error); if (!error[0]) { ADD_COMMAND(EGG_COMMAND_IF); tail->exp = malloc(strlen(buf)+1); strcpy(tail->exp, buf); tail->cmd = load_egg_cmd(egg, FALSE, error); } } } } else if (strcmp(buf, "else") == 0) { /* parse an else statement */ if ((!tail) || (tail->type != EGG_COMMAND_IF) || (tail->cmd2)) { egg_error(error, "Invalid context for 'else'"); } else { get_brace(error); if (!error[0]) tail->cmd2 = load_egg_cmd(egg, FALSE, error); } } else if (strcmp(buf, "lay") == 0) { /* parse a lay statement */ ADD_COMMAND(EGG_COMMAND_LAY); get_word(buf); if (strcmp(buf, "(") == 0) { get_formula(buf, ')', error); if (!error[0]) { tail->exp = malloc(strlen(buf)+1); strcpy(tail->exp, buf); get_word(buf); } } if (!error[0]) { check_ascii_word(buf, error); if (!error[0]) { tail->var = malloc(strlen(buf)+1); strcpy(tail->var, buf); get_word(buf); if (strcmp(buf, "{") == 0) tail->cmd = load_egg_cmd(egg, FALSE, error); else if (strcmp(buf, ";") != 0) egg_error(error, "Expecting '{' or ';'"); } } } else if (strcmp(buf, "die") == 0) { /* parse a die statement */ ADD_COMMAND(EGG_COMMAND_DIE); get_word(buf); if (strcmp(buf, ";") != 0) egg_error(error, "Missing ';'"); } else if (strcmp(buf, "type") == 0) { /* parse a type definition */ if (!root) { egg_error(error, "Nested type definition"); } else { get_ascii_word(buf, error); if (!error[0]) { type = malloc(sizeof(EGG_TYPE)); type->name = malloc(strlen(buf)+1); strcpy(type->name, buf); type->cmd = NULL; type->next = NULL; get_brace(error); if (error[0]) { free(type->name); free(type); } else { type->cmd = load_egg_cmd(egg, FALSE, error); if (error[0]) { free(type->name); free(type); } else { type->next = egg->type; egg->type = type; } } } } } else if (buf[0]) { /* this must be a variable assignment */ check_ascii_word(buf, error); if (!error[0]) { get_word(buf2); if (strcmp(buf2, "=") == 0) { ADD_COMMAND(EGG_COMMAND_SET); } else if (strcmp(buf2, ":") == 0) { get_word(buf2); if (strcmp(buf2, "=") != 0) { egg_error(error, "Missing '='"); } else { ADD_COMMAND(EGG_COMMAND_INIT); } } else { egg_error(error, "F****d up syntax "); } if (!error[0]) { tail->var = malloc(strlen(buf)+1); strcpy(tail->var, buf); get_formula(buf, ';', error); if (!error[0]) { tail->exp = malloc(strlen(buf)+1); strcpy(tail->exp, buf); } } } } } if ((!error[0]) && (egg_eof()) && (!root)) egg_error(error, "Unexpected EOF"); if (error[0]) { destroy_egg_cmd(cmd); return NULL; } return cmd; }
//========================== // V_Init //========================== void V_Init( void ) { v_centermove = CVAR_REGISTER( "v_centermove", "0.15", 0 ); v_centerspeed = CVAR_REGISTER( "v_centerspeed","500", 0 ); cl_bobcycle = CVAR_REGISTER( "cl_bobcycle","0.8", 0 ); cl_bob = CVAR_REGISTER( "cl_bob","0.01", 0 ); cl_bobup = CVAR_REGISTER( "cl_bobup","0.5", 0 ); cl_waterdist = CVAR_REGISTER( "cl_waterdist","4", 0 ); cl_chasedist = CVAR_REGISTER( "cl_chasedist","112", 0 ); #if XT_FEATURES //non-canon :) cl_weaponlag = CVAR_REGISTER( "cl_weaponlag", "0.3", FCVAR_ARCHIVE ); #else cl_weaponlag = CVAR_REGISTER( "cl_weaponlag", "0", FCVAR_ARCHIVE ); #endif // setup some engine cvars for custom rendering mod_allow_materials = CVAR_GET_POINTER( "host_allow_materials" ); r_overview = CVAR_GET_POINTER( "dev_overview" ); r_finish = CVAR_GET_POINTER( "gl_finish" ); r_fastsky = CVAR_GET_POINTER( "r_fastsky" ); r_speeds = CVAR_GET_POINTER( "r_speeds" ); r_stencilbits = CVAR_GET_POINTER( "gl_stencilbits" ); r_width = CVAR_GET_POINTER( "width" ); r_height = CVAR_GET_POINTER( "height" ); r_test = CVAR_GET_POINTER( "gl_test" ); cl_viewsize = CVAR_GET_POINTER( "viewsize" ); r_novis = CVAR_GET_POINTER( "r_novis" ); r_nocull = CVAR_GET_POINTER( "r_nocull" ); r_lockpvs = CVAR_GET_POINTER( "r_lockpvs" ); r_dynamic = CVAR_GET_POINTER( "r_dynamic" ); r_lightmap = CVAR_GET_POINTER( "r_lightmap" ); r_wireframe = CVAR_GET_POINTER( "gl_wireframe" ); r_draw_beams = CVAR_GET_POINTER( "cl_draw_beams" ); r_adjust_fov = CVAR_GET_POINTER( "r_adjust_fov" ); r_fullbright = CVAR_GET_POINTER( "r_fullbright" ); r_drawentities = CVAR_GET_POINTER( "r_drawentities" ); r_allow_static = CVAR_GET_POINTER( "gl_allow_static" ); r_allow_mirrors = CVAR_GET_POINTER( "gl_allow_mirrors" ); r_detailtextures = CVAR_GET_POINTER( "r_detailtextures" ); r_faceplanecull = CVAR_GET_POINTER( "r_faceplanecull" ); r_lighting_ambient = CVAR_GET_POINTER( "r_lighting_ambient" ); r_lighting_modulate = CVAR_GET_POINTER( "r_lighting_modulate" ); r_lightstyle_lerping= CVAR_GET_POINTER( "cl_lightstyle_lerping" ); r_lighting_extended = CVAR_GET_POINTER( "r_lighting_extended" ); cl_vsmoothing = CVAR_REGISTER( "cl_vsmoothing", "0.05", FCVAR_ARCHIVE ); r_allow_portals = CVAR_REGISTER( "gl_allow_portals", "1", FCVAR_ARCHIVE|FCVAR_CLIENTDLL ); r_allow_screens = CVAR_REGISTER( "gl_allow_screens", "1", FCVAR_ARCHIVE|FCVAR_CLIENTDLL ); gl_renderer = CVAR_REGISTER( "gl_renderer", "1", FCVAR_CLIENTDLL|FCVAR_ARCHIVE ); r_shadows = CVAR_REGISTER( "r_shadows", "2", FCVAR_CLIENTDLL|FCVAR_ARCHIVE ); r_bloom = CVAR_REGISTER( "r_bloom", "0", FCVAR_ARCHIVE ); r_bloom_alpha = CVAR_REGISTER( "r_bloom_alpha", "0.1", FCVAR_ARCHIVE ); r_bloom_diamond_size = CVAR_REGISTER( "r_bloom_diamond_size", "8", FCVAR_ARCHIVE ); r_bloom_intensity = CVAR_REGISTER( "r_bloom_intensity", "1", FCVAR_ARCHIVE ); r_bloom_darken = CVAR_REGISTER( "r_bloom_darken", "4", FCVAR_ARCHIVE ); r_bloom_sample_size = CVAR_REGISTER( "r_bloom_sample_size", "320", FCVAR_ARCHIVE ); r_bloom_fast_sample = CVAR_REGISTER( "r_bloom_fast_sample", "0", FCVAR_ARCHIVE ); r_grass = CVAR_REGISTER( "r_grass", "1", FCVAR_ARCHIVE ); r_grass_alpha = CVAR_REGISTER( "r_grass_alpha", "0.5", FCVAR_ARCHIVE ); r_grass_lighting = CVAR_REGISTER( "r_grass_lighting", "1", FCVAR_ARCHIVE ); r_grass_shadows = CVAR_REGISTER( "r_grass_shadows", "1", FCVAR_ARCHIVE ); r_grass_fade_start = CVAR_REGISTER( "r_grass_fade_start", "1280", FCVAR_ARCHIVE ); r_grass_fade_dist = CVAR_REGISTER( "r_grass_fade_dist", "512", FCVAR_ARCHIVE ); r_overbright = CVAR_REGISTER( "r_overbright", "0", FCVAR_ARCHIVE ); r_skyfog = CVAR_REGISTER( "r_skyfog", "0", FCVAR_ARCHIVE ); ADD_COMMAND( "thirdperson", V_ThirdPerson ); ADD_COMMAND( "firstperson", V_FirstPerson ); ADD_COMMAND( "centerview", V_StartPitchDrift ); }
#ifdef CONFIG_USBDEV_JTAG DECLARE_COMMAND(jtag) #endif #ifdef CONFIG_USBDEV_AVRISP DECLARE_COMMAND(avrisp) #endif #ifdef COMMAND_PIN DECLARE_COMMAND(pinmode) #endif /****************************************************************************************/ // Create table of names and function pointers const global_command_t global_command_table[] PROGMEM = { ADD_COMMAND(version) #ifdef CONFIG_COMMAND_MENUTEST ADD_COMMAND(menutest) #endif #ifdef CONFIG_COMMAND_DUMPKEYS ADD_COMMAND(dumpkeys) #endif #ifdef CONFIG_COMMAND_BITBANG ADD_COMMAND(bitbang) #endif #ifdef CONFIG_COMMAND_TEST ADD_COMMAND(test) #endif ADD_COMMAND(help) #ifdef COMMAND_LOG ADD_COMMAND(log)
/* ============ InitInput ============ */ void InitInput( void ) { ADD_COMMAND ("+moveup", IN_UpDown); ADD_COMMAND ("-moveup", IN_UpUp); ADD_COMMAND ("+movedown", IN_DownDown); ADD_COMMAND ("-movedown", IN_DownUp); ADD_COMMAND ("+left", IN_LeftDown); ADD_COMMAND ("-left", IN_LeftUp); ADD_COMMAND ("+right", IN_RightDown); ADD_COMMAND ("-right", IN_RightUp); ADD_COMMAND ("+forward", IN_ForwardDown); ADD_COMMAND ("-forward", IN_ForwardUp); ADD_COMMAND ("+back", IN_BackDown); ADD_COMMAND ("-back", IN_BackUp); ADD_COMMAND ("+lookup", IN_LookupDown); ADD_COMMAND ("-lookup", IN_LookupUp); ADD_COMMAND ("+lookdown", IN_LookdownDown); ADD_COMMAND ("-lookdown", IN_LookdownUp); ADD_COMMAND ("+strafe", IN_StrafeDown); ADD_COMMAND ("-strafe", IN_StrafeUp); ADD_COMMAND ("+moveleft", IN_MoveleftDown); ADD_COMMAND ("-moveleft", IN_MoveleftUp); ADD_COMMAND ("+moveright", IN_MoverightDown); ADD_COMMAND ("-moveright", IN_MoverightUp); ADD_COMMAND ("+speed", IN_SpeedDown); ADD_COMMAND ("-speed", IN_SpeedUp); ADD_COMMAND ("+attack", IN_AttackDown); ADD_COMMAND ("-attack", IN_AttackUp); ADD_COMMAND ("+attack2", IN_Attack2Down); ADD_COMMAND ("-attack2", IN_Attack2Up); ADD_COMMAND ("+use", IN_UseDown); ADD_COMMAND ("-use", IN_UseUp); ADD_COMMAND ("+jump", IN_JumpDown); ADD_COMMAND ("-jump", IN_JumpUp); ADD_COMMAND ("impulse", IN_Impulse); ADD_COMMAND ("+klook", IN_KLookDown); ADD_COMMAND ("-klook", IN_KLookUp); ADD_COMMAND ("+mlook", IN_MLookDown); ADD_COMMAND ("-mlook", IN_MLookUp); ADD_COMMAND ("+jlook", IN_JLookDown); ADD_COMMAND ("-jlook", IN_JLookUp); ADD_COMMAND ("+duck", IN_DuckDown); ADD_COMMAND ("-duck", IN_DuckUp); ADD_COMMAND ("+reload", IN_ReloadDown); ADD_COMMAND ("-reload", IN_ReloadUp); ADD_COMMAND ("+alt1", IN_Alt1Down); ADD_COMMAND ("-alt1", IN_Alt1Up); ADD_COMMAND ("+graph", IN_GraphDown); ADD_COMMAND ("-graph", IN_GraphUp); ADD_COMMAND ("+score", IN_ScoreDown); ADD_COMMAND ("-score", IN_ScoreUp); ADD_COMMAND ("+break", IN_BreakDown); ADD_COMMAND ("-break", IN_BreakUp); lookstrafe = CVAR_REGISTER ( "lookstrafe", "0", FCVAR_ARCHIVE ); lookspring = CVAR_REGISTER ( "lookspring", "0", FCVAR_ARCHIVE ); cl_anglespeedkey = CVAR_REGISTER ( "cl_anglespeedkey", "0.67", 0 ); cl_yawspeed = CVAR_REGISTER ( "cl_yawspeed", "210", 0 ); cl_pitchspeed = CVAR_REGISTER ( "cl_pitchspeed", "225", 0 ); cl_upspeed = CVAR_REGISTER ( "cl_upspeed", "320", 0 ); cl_forwardspeed = CVAR_REGISTER ( "cl_forwardspeed", "400", FCVAR_ARCHIVE ); cl_backspeed = CVAR_REGISTER ( "cl_backspeed", "400", FCVAR_ARCHIVE ); cl_sidespeed = CVAR_REGISTER ( "cl_sidespeed", "400", 0 ); cl_movespeedkey = CVAR_REGISTER ( "cl_movespeedkey", "0.3", 0 ); cl_pitchup = CVAR_REGISTER ( "cl_pitchup", "89", 0 ); cl_pitchdown = CVAR_REGISTER ( "cl_pitchdown", "89", 0 ); m_pitch = CVAR_REGISTER ( "m_pitch","0.022", FCVAR_ARCHIVE ); m_yaw = CVAR_REGISTER ( "m_yaw","0.022", FCVAR_ARCHIVE ); m_forward = CVAR_REGISTER ( "m_forward","1", FCVAR_ARCHIVE ); m_side = CVAR_REGISTER ( "m_side","0.8", FCVAR_ARCHIVE ); // initialize inputs IN_Init(); // initialize keyboard KB_Init(); // initialize view system V_Init(); }
LPVOID CHandleException::m_Eip = 0; //调试程序的EIP值 BOOL CHandleException::m_isStepRecordMode = FALSE; //是否单步记录模式 int CHandleException::m_nCount = 0; //指令执行时的下标值计数器 BOOL CHandleException::m_IsSystemInt3 = TRUE; LPVOID CHandleException::m_lpDisAsmAddr = NULL; //反汇编的起始地址 BOOL CHandleException::m_isUserInputStep = FALSE; CCCommand CHandleException::m_UserCmd = {0}; BOOL CHandleException::m_isNeedResetPoint = FALSE; int CHandleException::m_nHardPtNum = 0; //已经设置硬件断点数量 BOOL CHandleException::m_isNeedResetHardPoint = FALSE; int CHandleException::m_nNeedResetHardPoint = 0; //在单步中需要重设的硬件断点寄存器 //全局命令-函数对照表 CCCmdNode g_aryCmd[] = { ADD_COMMAND("T", CHandleException::StepInto) ADD_COMMAND("P", CHandleException::StepOver) ADD_COMMAND("G", CHandleException::Run) ADD_COMMAND("U", CHandleException::ShowMulAsmCode) //ADD_COMMAND("D", CHandleException::ShowData) ADD_COMMAND("R", CHandleException::ShowRegValue) ADD_COMMAND("BP", CHandleException::SetOrdPoint) ADD_COMMAND("BPL", CHandleException::ListOrdPoint) ADD_COMMAND("BPC", CHandleException::ClearOrdPoint) ADD_COMMAND("BH", CHandleException::SetHardPoint) ADD_COMMAND("BHL", CHandleException::ListHardPoint) ADD_COMMAND("BHC", CHandleException::ClearHardPoint) ADD_COMMAND("BM", CHandleException::SetMemPoint) ADD_COMMAND("BML", CHandleException::ListMemPoint) ADD_COMMAND("BMC", CHandleException::ClearMemPoint) // ADD_COMMAND("LS", CDoException::LoadScript)