Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //----- (0000000000AE6F58) ----------------------------------------------------
- void __fastcall CParserForPCParam::yyaction(CParserForPCParam *this, int action)
- {
- int edx8; // edx
- int edx9; // edx
- int v5; // edx
- int v6; // edx
- int v7; // edx
- wchar_t *v8; // rdx
- int v9; // edx
- int v10; // edx
- int v11; // edx
- int v12; // edx
- int v13; // edx
- int v14; // edx
- std::vector<double,std::xallocator<double> > *p_DoubleVector; // rcx
- _QWORD *v16; // rax
- _QWORD *v17; // rcx
- __int64 v18; // rdx
- _QWORD *v19; // rax
- _QWORD *yyvalptr; // rcx
- int yytop; // edx
- _QWORD *yyattributestackptr; // r8
- __int64 v23; // r15
- long double *Myfirst; // rax
- long double *v25; // rax
- long double *v26; // rax
- wchar_t *v27; // rax
- int v28; // edx
- int v29; // edx
- int v30; // edx
- int v31; // edx
- int v32; // edx
- int v33; // edx
- int v34; // edx
- int v35; // edx
- int v36; // edx
- int v37; // edx
- int v38; // edx
- int v39; // edx
- int v40; // edx
- int v41; // edx
- int v42; // edx
- int v43; // edx
- int v44; // edx
- wchar_t *v45; // rdx
- int v46; // edx
- int v47; // edx
- int v48; // edx
- int v49; // edx
- int v50; // edx
- double v51; // xmm2_8
- MoveModeEnum v52; // edx
- PCParamFieldByLevel v53; // r8d
- __int64 v54; // rcx
- int v55; // eax
- PCParamFieldByLevel v56; // r8d
- PCParamFieldByLevel v57; // r9d
- int v58; // edx
- int v59; // edx
- int v60; // edx
- int v61; // edx
- int v62; // edx
- int v63; // edx
- int v64; // ecx
- double *v65; // rbx
- long double v66; // xmm0_8
- MoveModeEnum v67; // edx
- int v68; // ecx
- double *v69; // rbx
- long double v70; // xmm0_8
- MoveModeEnum v71; // edx
- int v72; // edx
- int v73; // edx
- int v74; // edx
- int v75; // edx
- int v76; // edx
- int v77; // ecx
- double *v78; // rbx
- long double v79; // xmm0_8
- MoveModeEnum v80; // edx
- __int64 field; // [rsp+20h] [rbp-88h]
- __int64 value_8; // [rsp+30h] [rbp-78h]
- __int64 v3; // [rsp+38h] [rbp-70h]
- __int64 v4; // [rsp+40h] [rbp-68h]
- __int64 v4_8; // [rsp+48h] [rbp-60h]
- SRCToSexRaceClass v86; // [rsp+78h] [rbp-30h]
- SRCToSexRaceClass v87; // [rsp+78h] [rbp-30h]
- if ( action <= 30 )
- {
- if ( action == 30 )
- {
- v8 = (wchar_t *)L"men_bonus";
- goto LABEL_21;
- }
- if ( action > 15 )
- {
- if ( action <= 23 )
- {
- if ( action == 23 )
- {
- v8 = (wchar_t *)L"pc_breath_bonus_table";
- goto LABEL_21;
- }
- v28 = action - 16;
- if ( !v28 )
- {
- v8 = (wchar_t *)L"base_attack_type";
- goto LABEL_21;
- }
- v29 = v28 - 1;
- if ( !v29 )
- {
- v8 = (wchar_t *)L"base_attack_speed";
- goto LABEL_21;
- }
- v30 = v29 - 1;
- if ( !v30 )
- {
- v8 = (wchar_t *)L"base_magic_attack";
- goto LABEL_21;
- }
- v31 = v30 - 1;
- if ( !v31 )
- {
- v8 = (wchar_t *)L"base_can_penetrate";
- goto LABEL_21;
- }
- v32 = v31 - 1;
- if ( !v32 )
- {
- v8 = (wchar_t *)L"base_attack_range";
- goto LABEL_21;
- }
- v33 = v32 - 1;
- if ( !v33 )
- {
- v8 = (wchar_t *)L"base_rand_dam";
- goto LABEL_21;
- }
- if ( v33 == 1 )
- {
- v8 = (wchar_t *)L"org_jump";
- goto LABEL_21;
- }
- return;
- }
- v34 = action - 24;
- if ( v34 )
- {
- v35 = v34 - 1;
- if ( v35 )
- {
- v36 = v35 - 1;
- if ( !v36 )
- {
- v8 = (wchar_t *)L"level_bonus";
- goto LABEL_21;
- }
- v37 = v36 - 1;
- if ( !v37 )
- {
- v8 = (wchar_t *)L"str_bonus";
- goto LABEL_21;
- }
- v38 = v37 - 1;
- if ( !v38 )
- {
- v8 = (wchar_t *)L"int_bonus";
- goto LABEL_21;
- }
- if ( v38 == 1 )
- {
- v8 = (wchar_t *)L"con_bonus";
- goto LABEL_21;
- }
- }
- else
- {
- v87 = _srcTable[*((_QWORD *)this->yyattributestackptr + this->yytop - 2)];
- if ( !wcscmp(this->parsing_context, L"base_physical_attack") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_PATTACK,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_critical") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_CRITICAL,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_attack_type") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_ATTACK_TYPE,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_attack_speed") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_ATTACK_SPEED,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_defend") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_PDEFEND,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_magic_attack") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_MATTACK,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_magic_defend") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_MDEFEND,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_can_penetrate") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_CAN_PENETRATE,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_attack_range") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_ATTACK_RANGE,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"base_rand_dam") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BASE_RAND_DAM,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"org_jump") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_ORG_JUMP,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"pc_breath_bonus_table") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_BREATH_BONUS,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else if ( !wcscmp(this->parsing_context, L"pc_safe_fall_height_table") )
- {
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v87.sex,
- v87.race,
- v87.cls,
- PC_SAFE_FALL_HEIGHT,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
- else
- {
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"[%s][%d] Invalide parsing_context[%s]",
- L"pc_param_yacc.y",
- 637,
- this->parsing_context);
- }
- }
- return;
- }
- v27 = (wchar_t *)L"pc_safe_fall_height_table";
- }
- else
- {
- if ( action == 15 )
- {
- v8 = (wchar_t *)L"base_critical";
- goto LABEL_21;
- }
- if ( action <= 7 )
- {
- if ( action == 7 )
- {
- v8 = (wchar_t *)L"base_defend";
- }
- else if ( action )
- {
- edx8 = action - 1;
- if ( edx8 )
- {
- edx9 = edx8 - 1;
- if ( edx9 )
- {
- v5 = edx9 - 1;
- if ( v5 )
- {
- v6 = v5 - 1;
- if ( v6 )
- {
- v7 = v6 - 1;
- if ( v7 )
- {
- if ( v7 != 1 )
- return;
- v8 = (wchar_t *)L"org_cp_regen";
- }
- else
- {
- v8 = (wchar_t *)L"org_mp_regen";
- }
- }
- else
- {
- v8 = (wchar_t *)L"org_hp_regen";
- }
- }
- else
- {
- v8 = (wchar_t *)L"base_damage_range";
- }
- }
- else
- {
- v8 = (wchar_t *)L"initial_highest_attribute";
- }
- }
- else
- {
- v8 = (wchar_t *)L"initial_lowest_attribute";
- }
- }
- else
- {
- v8 = (wchar_t *)L"initial_default_attribute";
- }
- goto LABEL_21;
- }
- v9 = action - 8;
- if ( !v9 )
- {
- v8 = (wchar_t *)L"base_magic_defend";
- goto LABEL_21;
- }
- v10 = v9 - 1;
- if ( v10 )
- {
- v11 = v10 - 1;
- if ( v11 )
- {
- v12 = v11 - 1;
- if ( !v12 )
- {
- yytop = this->yytop;
- yyattributestackptr = this->yyattributestackptr;
- v23 = yyattributestackptr[yytop - 1];
- v86 = _srcTable[yyattributestackptr[yytop - 4]];
- if ( !wcscmp(this->parsing_context, L"initial_default_attribute") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 6 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], initial_default_attribute int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_INT_DEFAULT,
- (int)*this->DoubleVector._Mypair._Myval2._Myfirst);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_STR_DEFAULT,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 1));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_CON_DEFAULT,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 2));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_MEN_DEFAULT,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 3));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_DEX_DEFAULT,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 4));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_WIT_DEFAULT,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 5));
- }
- else if ( !wcscmp(this->parsing_context, L"initial_lowest_attribute") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 6 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], initial_lowest_attribute int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_INT_MIN,
- (int)*this->DoubleVector._Mypair._Myval2._Myfirst);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_STR_MIN,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 1));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_CON_MIN,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 2));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_MEN_MIN,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 3));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_DEX_MIN,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 4));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_WIT_MIN,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 5));
- }
- else if ( !wcscmp(this->parsing_context, L"initial_highest_attribute") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 6 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], initial_highest_attribute int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_INT_MAX,
- (int)*this->DoubleVector._Mypair._Myval2._Myfirst);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_STR_MAX,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 1));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_CON_MAX,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 2));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_MEN_MAX,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 3));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_DEX_MAX,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 4));
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_WIT_MAX,
- (int)*((double *)this->DoubleVector._Mypair._Myval2._Myfirst + 5));
- }
- else if ( !wcscmp(this->parsing_context, L"base_damage_range") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 4 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], base_damage_range int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- Myfirst = this->DoubleVector._Mypair._Myval2._Myfirst;
- LODWORD(v4) = (int)Myfirst[3];
- LODWORD(v3) = (int)Myfirst[2];
- LODWORD(value_8) = (int)Myfirst[1];
- LODWORD(field) = 27;
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- field,
- (int)*Myfirst,
- value_8,
- v3,
- v4,
- v4_8);
- }
- else if ( !wcscmp(this->parsing_context, L"org_hp_regen") )
- {
- if ( (unsigned __int64)(this->DoubleVector._Mypair._Myval2._Mylast
- - this->DoubleVector._Mypair._Myval2._Myfirst) > 0x79 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], org_hp_regen int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- LODWORD(field) = 29;
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- field,
- *((std::vector<double,std::xallocator<double> > **)this->yyattributestackptr + this->yytop - 1));
- }
- else if ( !wcscmp(this->parsing_context, L"org_cp_regen") )
- {
- if ( (unsigned __int64)(this->DoubleVector._Mypair._Myval2._Mylast
- - this->DoubleVector._Mypair._Myval2._Myfirst) > 0x79 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], org_cp_regen int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- LODWORD(field) = 31;
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- field,
- *((std::vector<double,std::xallocator<double> > **)this->yyattributestackptr + this->yytop - 1));
- }
- else if ( !wcscmp(this->parsing_context, L"org_mp_regen") )
- {
- if ( (unsigned __int64)(this->DoubleVector._Mypair._Myval2._Mylast
- - this->DoubleVector._Mypair._Myval2._Myfirst) > 0x79 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], org_mp_regen int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- LODWORD(field) = 30;
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- field,
- *((std::vector<double,std::xallocator<double> > **)this->yyattributestackptr + this->yytop - 1));
- }
- else if ( !wcscmp(this->parsing_context, L"moving_speed") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 8 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], moving_speed int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- v25 = this->DoubleVector._Mypair._Myval2._Myfirst;
- LODWORD(v4_8) = (int)v25[4];
- LODWORD(v4) = (int)v25[3];
- LODWORD(v3) = (int)v25[2];
- LODWORD(value_8) = (int)v25[1];
- LODWORD(field) = 32;
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- field,
- (int)*v25,
- value_8,
- v3,
- v4,
- v4_8,
- (int)v25[5],
- (int)v25[6],
- (int)v25[7]);
- }
- else if ( !wcscmp(this->parsing_context, L"pc_collision_box_table") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 2 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], pc_collision_box_table int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_COLLISION_BOX,
- *this->DoubleVector._Mypair._Myval2._Myfirst,
- this->DoubleVector._Mypair._Myval2._Myfirst[1]);
- }
- else if ( !wcscmp(this->parsing_context, L"base_defend") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 7 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], org_hp_regen int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- v26 = this->DoubleVector._Mypair._Myval2._Myfirst;
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_BASE_PDEFEND,
- *v26,
- v26[1],
- v26[2],
- v26[3],
- v26[4],
- v26[5],
- v26[6]);
- }
- else if ( !wcscmp(this->parsing_context, L"base_magic_defend") )
- {
- if ( this->DoubleVector._Mypair._Myval2._Mylast - this->DoubleVector._Mypair._Myval2._Myfirst != 5 )
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"%s line[%d], org_hp_regen int counter is different",
- g_DataScriptFile_106[56],
- this->m_lexer.line);
- CPCParamDB::SetValueBySRC(
- &g_PCParamDB,
- v86.sex,
- v86.race,
- v86.cls,
- PC_BASE_MDEFEND,
- *this->DoubleVector._Mypair._Myval2._Myfirst,
- this->DoubleVector._Mypair._Myval2._Myfirst[1],
- this->DoubleVector._Mypair._Myval2._Myfirst[2],
- this->DoubleVector._Mypair._Myval2._Myfirst[3],
- this->DoubleVector._Mypair._Myval2._Myfirst[4],
- 0.0,
- 0.0);
- }
- else
- {
- CLog::Add(
- &Log,
- LOG_ERROR,
- (wchar_t *)L"[%s][%d] Invalide parsing_context[%s]",
- L"pc_param_yacc.y",
- 452,
- this->parsing_context);
- }
- if ( v23 )
- {
- if ( *(_QWORD *)v23 )
- {
- Memory::Free(&g_Memory, *(void **)v23, 1);
- *(_QWORD *)v23 = 0i64;
- *(_QWORD *)(v23 + 8) = 0i64;
- *(_QWORD *)(v23 + 16) = 0i64;
- }
- operator delete((void *)v23, 0x18ui64);
- }
- return;
- }
- v13 = v12 - 1;
- if ( v13 )
- {
- v14 = v13 - 1;
- if ( v14 )
- {
- if ( v14 == 1 )
- {
- v8 = (wchar_t *)L"base_physical_attack";
- LABEL_21:
- this->parsing_context = v8;
- return;
- }
- }
- else
- {
- p_DoubleVector = &this->DoubleVector;
- p_DoubleVector->_Mypair._Myval2._Mylast = p_DoubleVector->_Mypair._Myval2._Myfirst;
- std::vector<double,std::xallocator<double>>::push_back(
- p_DoubleVector,
- (long double *)this->yyattributestackptr + this->yytop);
- v16 = operator new(0x18ui64);
- v17 = v16;
- if ( v16 )
- {
- *v16 = 0i64;
- v16[1] = 0i64;
- v16[2] = 0i64;
- }
- else
- {
- v17 = 0i64;
- }
- *(_QWORD *)this->yyvalptr = v17;
- std::vector<double,std::xallocator<double>>::push_back(
- *(std::vector<double,std::xallocator<double> > **)this->yyvalptr,
- (long double *)this->yyattributestackptr + this->yytop);
- }
- return;
- }
- std::vector<double,std::xallocator<double>>::push_back(
- &this->DoubleVector,
- (long double *)this->yyattributestackptr + this->yytop);
- std::vector<double,std::xallocator<double>>::push_back(
- *((std::vector<double,std::xallocator<double> > **)this->yyattributestackptr + this->yytop - 2),
- (long double *)this->yyattributestackptr + this->yytop);
- v18 = this->yytop - 2;
- v19 = this->yyattributestackptr;
- yyvalptr = this->yyvalptr;
- LABEL_36:
- *yyvalptr = v19[v18];
- return;
- }
- v27 = (wchar_t *)L"pc_collision_box_table";
- }
- else
- {
- v27 = (wchar_t *)L"moving_speed";
- }
- }
- LABEL_91:
- this->parsing_context = v27;
- return;
- }
- if ( action > 45 )
- {
- if ( action > 53 )
- {
- v72 = action - 54;
- if ( v72 )
- {
- v73 = v72 - 1;
- if ( v73 )
- {
- v74 = v73 - 1;
- if ( v74 )
- {
- v75 = v74 - 1;
- if ( v75 )
- {
- v76 = v75 - 23;
- if ( !v76 )
- {
- *(double *)this->yyvalptr = (double)(int)*((_QWORD *)this->yyattributestackptr + this->yytop);
- return;
- }
- if ( v76 != 1 )
- return;
- v18 = this->yytop;
- v19 = this->yyattributestackptr;
- yyvalptr = this->yyvalptr;
- goto LABEL_36;
- }
- v77 = this->yytop;
- v78 = (double *)this->yyattributestackptr;
- v79 = v78[v77 - 1];
- v80 = MVMD_RUN;
- }
- else
- {
- v77 = this->yytop;
- v78 = (double *)this->yyattributestackptr;
- v79 = v78[v77 - 1];
- v80 = MVMD_WALK;
- }
- }
- else
- {
- v77 = this->yytop;
- v78 = (double *)this->yyattributestackptr;
- v79 = v78[v77 - 1];
- v80 = MVMD_STAND;
- }
- }
- else
- {
- v77 = this->yytop;
- v78 = (double *)this->yyattributestackptr;
- v79 = v78[v77 - 1];
- v80 = MVMD_SIT;
- }
- CPCParamDB::SetRegenMoveModeCPBonus(
- &g_PCParamDB,
- v80,
- v78[v77 - 11],
- v78[v77 - 9],
- v78[v77 - 7],
- v78[v77 - 5],
- v78[v77 - 3],
- v79);
- return;
- }
- if ( action != 53 )
- {
- v58 = action - 46;
- if ( v58 )
- {
- v59 = v58 - 1;
- if ( v59 )
- {
- v60 = v59 - 1;
- if ( v60 )
- {
- v61 = v60 - 1;
- if ( v61 )
- {
- v62 = v61 - 1;
- if ( v62 )
- {
- v63 = v62 - 1;
- if ( v63 )
- {
- if ( v63 != 1 )
- return;
- v64 = this->yytop;
- v65 = (double *)this->yyattributestackptr;
- v66 = v65[v64 - 1];
- v67 = MVMD_WALK;
- }
- else
- {
- v64 = this->yytop;
- v65 = (double *)this->yyattributestackptr;
- v66 = v65[v64 - 1];
- v67 = MVMD_STAND;
- }
- }
- else
- {
- v64 = this->yytop;
- v65 = (double *)this->yyattributestackptr;
- v66 = v65[v64 - 1];
- v67 = MVMD_SIT;
- }
- goto LABEL_227;
- }
- v68 = this->yytop;
- v69 = (double *)this->yyattributestackptr;
- v70 = v69[v68 - 1];
- v71 = MVMD_RUN;
- }
- else
- {
- v68 = this->yytop;
- v69 = (double *)this->yyattributestackptr;
- v70 = v69[v68 - 1];
- v71 = MVMD_WALK;
- }
- }
- else
- {
- v68 = this->yytop;
- v69 = (double *)this->yyattributestackptr;
- v70 = v69[v68 - 1];
- v71 = MVMD_STAND;
- }
- }
- else
- {
- v68 = this->yytop;
- v69 = (double *)this->yyattributestackptr;
- v70 = v69[v68 - 1];
- v71 = MVMD_SIT;
- }
- CPCParamDB::SetRegenMoveModeHPBonus(
- &g_PCParamDB,
- v71,
- v69[v68 - 11],
- v69[v68 - 9],
- v69[v68 - 7],
- v69[v68 - 5],
- v69[v68 - 3],
- v70);
- return;
- }
- v64 = this->yytop;
- v65 = (double *)this->yyattributestackptr;
- v66 = v65[v64 - 1];
- v67 = MVMD_RUN;
- LABEL_227:
- CPCParamDB::SetRegenMoveModeMPBonus(
- &g_PCParamDB,
- v67,
- v65[v64 - 11],
- v65[v64 - 9],
- v65[v64 - 7],
- v65[v64 - 5],
- v65[v64 - 3],
- v66);
- return;
- }
- if ( action == 45 )
- {
- v51 = (double)(int)(*((_QWORD *)this->yyattributestackptr + this->yytop) + 100);
- v52 = MVMD_RUN;
- LABEL_180:
- CPCParamDB::SetRegenMoveModeBonus(&g_PCParamDB, v52, v51 / 100.0);
- return;
- }
- if ( action <= 38 )
- {
- if ( action == 38 )
- {
- v8 = (wchar_t *)L"pc_karma_increase_table";
- goto LABEL_21;
- }
- v39 = action - 31;
- if ( !v39 )
- {
- v8 = (wchar_t *)L"dex_bonus";
- goto LABEL_21;
- }
- v40 = v39 - 1;
- if ( !v40 )
- {
- v8 = (wchar_t *)L"wit_bonus";
- goto LABEL_21;
- }
- v41 = v40 - 1;
- if ( !v41 )
- {
- v8 = (wchar_t *)L"luc_bonus";
- goto LABEL_21;
- }
- v42 = v41 - 1;
- if ( !v42 )
- {
- v8 = (wchar_t *)L"cha_bonus";
- goto LABEL_21;
- }
- v43 = v42 - 1;
- if ( v43 )
- {
- v44 = v43 - 1;
- if ( v44 )
- {
- if ( v44 != 1 )
- return;
- v45 = (wchar_t *)L"cp_table";
- }
- else
- {
- v45 = (wchar_t *)L"mp_table";
- }
- }
- else
- {
- v45 = (wchar_t *)L"hp_table";
- }
- this->parsing_class = *((_DWORD *)this->yyattributestackptr + 2 * this->yytop);
- this->parsing_context = v45;
- return;
- }
- v46 = action - 39;
- if ( !v46 )
- {
- v27 = (wchar_t *)L"pc_standard_exp_by_level_table";
- goto LABEL_91;
- }
- v47 = v46 - 1;
- if ( !v47 )
- {
- if ( !wcscmp(this->parsing_context, L"level_bonus") )
- {
- v54 = this->yytop;
- v55 = v54 - 2;
- v56 = PC_LEVEL_BONUS;
- goto LABEL_209;
- }
- if ( !wcscmp(this->parsing_context, L"hp_table") )
- {
- v57 = PC_ORG_HP;
- }
- else if ( !wcscmp(this->parsing_context, L"mp_table") )
- {
- v57 = PC_ORG_MP;
- }
- else
- {
- if ( wcscmp(this->parsing_context, L"cp_table") )
- {
- if ( wcscmp(this->parsing_context, L"pc_karma_increase_table") )
- {
- if ( !wcscmp(this->parsing_context, L"pc_standard_exp_by_level_table") )
- CPCParamDB::SetStandardExpByLevel(
- &g_PCParamDB,
- *((_DWORD *)this->yyattributestackptr + 2 * this->yytop - 4),
- PC_STANDARD_EXP_BY_LEV,
- (unsigned int)(int)*((double *)this->yyattributestackptr + this->yytop));
- else
- CLog::Add(&Log, LOG_ERROR, (wchar_t *)L"Invalide parsing_context[%s]", this->parsing_context);
- return;
- }
- v54 = this->yytop;
- v55 = v54 - 2;
- v56 = PC_KARMA_INCREASE;
- LABEL_209:
- CPCParamDB::SetValueByLevel(
- &g_PCParamDB,
- *((_DWORD *)this->yyattributestackptr + 2 * v55),
- v56,
- *((long double *)this->yyattributestackptr + v54));
- return;
- }
- v57 = PC_ORG_CP;
- }
- CPCParamDB::SetValueByLevelClass(
- &g_PCParamDB,
- *((_DWORD *)this->yyattributestackptr + 2 * this->yytop - 4),
- (ClassType)this->parsing_class,
- v57,
- *((long double *)this->yyattributestackptr + this->yytop));
- return;
- }
- v48 = v47 - 1;
- if ( v48 )
- {
- v49 = v48 - 1;
- if ( v49 )
- {
- v50 = v49 - 1;
- if ( v50 )
- {
- if ( v50 != 1 )
- return;
- v51 = (double)(int)(*((_QWORD *)this->yyattributestackptr + this->yytop) + 100);
- v52 = MVMD_WALK;
- }
- else
- {
- v51 = (double)(int)(*((_QWORD *)this->yyattributestackptr + this->yytop) + 100);
- v52 = MVMD_STAND;
- }
- }
- else
- {
- v51 = (double)(int)(*((_QWORD *)this->yyattributestackptr + this->yytop) + 100);
- v52 = MVMD_SIT;
- }
- goto LABEL_180;
- }
- if ( !wcscmp(this->parsing_context, L"str_bonus") )
- {
- v53 = PC_STR_BONUS;
- }
- else if ( !wcscmp(this->parsing_context, L"int_bonus") )
- {
- v53 = PC_INT_BONUS;
- }
- else if ( !wcscmp(this->parsing_context, L"con_bonus") )
- {
- v53 = PC_CON_BONUS;
- }
- else if ( !wcscmp(this->parsing_context, L"men_bonus") )
- {
- v53 = PC_MEN_BONUS;
- }
- else if ( !wcscmp(this->parsing_context, L"dex_bonus") )
- {
- v53 = PC_DEX_BONUS;
- }
- else if ( !wcscmp(this->parsing_context, L"wit_bonus") )
- {
- v53 = PC_WIT_BONUS;
- }
- else if ( !wcscmp(this->parsing_context, L"luc_bonus") )
- {
- v53 = PC_LUC_BONUS;
- }
- else
- {
- if ( wcscmp(this->parsing_context, L"cha_bonus") )
- return;
- v53 = PC_CHA_BONUS;
- }
- CPCParamDB::SetValueByLevel(
- &g_PCParamDB,
- *((_DWORD *)this->yyattributestackptr + 2 * this->yytop - 4),
- v53,
- (int)*((double *)this->yyattributestackptr + this->yytop));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement