# HG changeset patch # User Grumpy7 # Date 1379829436 -7200 # Node ID 95118ff8cc223c00711312204ff6d8bad4599644 # Parent 133a5f62bc8c010a9924354c36f1aaa6084fa3af Player::_48DCF6 label removal diff -r 133a5f62bc8c -r 95118ff8cc22 Player.cpp --- a/Player.cpp Sun Sep 22 07:34:02 2013 +0200 +++ b/Player.cpp Sun Sep 22 07:57:16 2013 +0200 @@ -2272,7 +2272,6 @@ { signed int v3; // edi@1 signed int v4; // ebx@1 - Player *v5; // esi@1 int v6; // eax@2 int v7; // eax@5 int v8; // eax@8 @@ -2318,14 +2317,15 @@ v3 = 0; v4 = 0; - v5 = this; v47 = 0; v48 = 0; switch ( a2 ) { case 1: v6 = GetActualWillpower(); - goto LABEL_46; + v7 = GetParameterBonus(v6); + v11 = v7; + break; case 2: case 3: case 4: @@ -2335,24 +2335,30 @@ case 13: case 21: v6 = GetActualEndurance(); - goto LABEL_46; + v7 = GetParameterBonus(v6); + v11 = v7; + break; case 5: case 12: case 23: v40 = (CHARACTER_ATTRIBUTE_TYPE)14; - goto LABEL_5; + v7 = GetActualResistance(v40); + v11 = v7; + break; case 15: v40 = (CHARACTER_ATTRIBUTE_TYPE)13; - goto LABEL_5; + v7 = GetActualResistance(v40); + v11 = v7; + break; case 6: case 7: case 8: case 14: case 16: v40 = (CHARACTER_ATTRIBUTE_TYPE)15; -LABEL_5: v7 = GetActualResistance(v40); - goto LABEL_47; + v11 = v7; + break; case 22: v8 = GetActualWillpower(); v9 = GetParameterBonus(v8); @@ -2370,7 +2376,11 @@ ++v13; } while ( v12 < 138 ); - goto LABEL_36; + if ( !v4 ) + return 0; + v48 = (int)&this->pInventoryItemList[(unsigned __int8)v46[rand() % v4]]; + v11 = 3 * (pItemsTable->pItems[*(int *)v48].uMaterial + pItemsTable->pItems[*(int *)v48].uDamageMod); + break; case 18: v14 = 0; do @@ -2378,14 +2388,18 @@ if ( HasItemEquipped((ITEM_EQUIP_TYPE)v14) ) { if ( v14 == EQUIP_ARMOUR ) - v46[v4++] = LOBYTE(v5->pEquipment.uArmor) - 1; + v46[v4++] = LOBYTE(this->pEquipment.uArmor) - 1; if ( (!v14 || v14 == 1) && GetEquippedItemEquipType((ITEM_EQUIP_TYPE)v14) == 4 ) - v46[v4++] = *((char *)&v5->pEquipment.uShield + 4 * v14) - 1; + v46[v4++] = *((char *)&this->pEquipment.uShield + 4 * v14) - 1; } v14++; } while ( v14 < 16 ); - goto LABEL_36; + if ( !v4 ) + return 0; + v48 = (int)&this->pInventoryItemList[(unsigned __int8)v46[rand() % v4]]; + v11 = 3 * (pItemsTable->pItems[*(int *)v48].uMaterial + pItemsTable->pItems[*(int *)v48].uDamageMod); + break; case 19: v16 = 0; do @@ -2393,18 +2407,17 @@ if ( HasItemEquipped((ITEM_EQUIP_TYPE)v16) ) { if ( v16 == 2 ) - v46[v4++] = LOBYTE(v5->pEquipment.uBow) - 1; + v46[v4++] = LOBYTE(this->pEquipment.uBow) - 1; if ( (!v16 || v16 == 1) && (!GetEquippedItemEquipType((ITEM_EQUIP_TYPE)v16) || GetEquippedItemEquipType((ITEM_EQUIP_TYPE)v16) == 1) ) - v46[v4++] = *((char *)&v5->pEquipment.uShield + 4 * v16) - 1; + v46[v4++] = *((char *)&this->pEquipment.uShield + 4 * v16) - 1; } v16++; } while ( v16 < 16 ); -LABEL_36: if ( !v4 ) - goto LABEL_87; - v48 = (int)&v5->pInventoryItemList[(unsigned __int8)v46[rand() % v4]]; + return 0; + v48 = (int)&this->pInventoryItemList[(unsigned __int8)v46[rand() % v4]]; v11 = 3 * (pItemsTable->pItems[*(int *)v48].uMaterial + pItemsTable->pItems[*(int *)v48].uDamageMod); break; case 20: @@ -2414,7 +2427,7 @@ { if ( *v20 > 0 ) { - v21 = *(int *)&v5->pInventoryItemList[*v20-1]; + v21 = *(int *)&this->pInventoryItemList[*v20-1]; if ( v21 > 0 ) { if ( v21 <= 134 ) @@ -2426,12 +2439,10 @@ } while ( v19 < 126 ); if ( !v4 ) - goto LABEL_87; + return 0; v47 = (unsigned __int8)v46[rand() % v4]; v6 = GetActualAccuracy(); -LABEL_46: v7 = GetParameterBonus(v6); -LABEL_47: v11 = v7; break; default: @@ -2442,8 +2453,7 @@ v23 = GetParameterBonus(v22) + v11 + 30; if ( rand() % v23 >= 30 ) { -LABEL_87: - result = 0; + return 0; } else { @@ -2452,23 +2462,75 @@ case 1: v41 = 1; v36 = 0; - goto LABEL_56; + SetCondition(v36, v41); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)221; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 2: v41 = 1; v36 = 1; - goto LABEL_56; + SetCondition(v36, v41); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)221; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 3: v41 = 1; v36 = 2; - goto LABEL_56; + SetCondition(v36, v41); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)221; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 23: v41 = 1; v36 = 3; - goto LABEL_56; - case 4: - v41 = 1; - v36 = 4; -LABEL_56: SetCondition(v36, v41); v42 = 0; v37 = 0; @@ -2478,32 +2540,122 @@ v32 = 0; v31 = 0; v30 = (SoundID)221; - goto LABEL_83; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 4: + v41 = 1; + v36 = 4; + SetCondition(v36, v41); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)221; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 5: v43 = 1; v38 = 5; - goto LABEL_70; + SetCondition(v38, v43); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)224; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 6: case 7: case 8: if ( a2 == 6 ) { v44 = 6; - goto LABEL_60; + v24 = v44; + SetCondition(v24, 1); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)222; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; } v25 = 2 * (a2 != 8) + 8; - goto LABEL_65; + v24 = v25; + SetCondition(v24, 1); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)222; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 9: if ( a2 == 6 ) { v44 = 7; -LABEL_60: v24 = v44; } else { v25 = 2 * (a2 != 8) + 9; -LABEL_65: v24 = v25; } SetCondition(v24, 1); @@ -2515,31 +2667,20 @@ v32 = 0; v31 = 0; v30 = (SoundID)222; -LABEL_83: pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); do { -LABEL_84: - if ( v5 == pPlayers[v3 + 1] ) + if ( this == pPlayers[v3 + 1] ) break; ++v3; } while ( v3 < 4 ); pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); - result = 1; + return 1; break; case 12: v43 = 1; v38 = 12; - goto LABEL_70; - case 15: - v45 = 1; - v39 = 15; - goto LABEL_73; - case 13: - v43 = 1; - v38 = 13; -LABEL_70: SetCondition(v38, v43); v42 = 0; v37 = 0; @@ -2549,15 +2690,89 @@ v32 = 0; v31 = 0; v30 = (SoundID)224; - goto LABEL_83; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 15: + v45 = 1; + v39 = 15; + SetCondition(v39, v45); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)225; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 13: + v43 = 1; + v38 = 13; + SetCondition(v38, v43); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)224; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 14: v45 = 1; v39 = 14; - goto LABEL_73; + SetCondition(v39, v45); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)225; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 16: v45 = 1; v39 = 16; -LABEL_73: SetCondition(v39, v45); v42 = 0; v37 = 0; @@ -2567,29 +2782,35 @@ v32 = 0; v31 = 0; v30 = (SoundID)225; - goto LABEL_83; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 17: case 18: case 19: v26 = v48; if ( *(char *)(v48 + 21) & 2 ) - goto LABEL_84; + { + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + } PlaySound(SPEECH_40, 0); *(int *)(v26 + 20) |= 2u; - goto LABEL_79; - case 20: - PlaySound(SPEECH_40, 0); - v27 = pActor->array_000234; - if ( pActor->array_000234[0].uItemID ) - { - v27 = &pActor->array_000234[1]; - if ( pActor->array_000234[1].uItemID ) - goto LABEL_84; - } - v28 = v47; - memcpy(v27, &v5->pInventoryItemList[v5->pInventoryMatrix[v47]-1], 0x24u); - RemoveItemAtInventoryIndex(v28); -LABEL_79: v42 = 0; v37 = 0; v35 = 0; @@ -2598,15 +2819,61 @@ v32 = 0; v31 = 0; v30 = (SoundID)47; - goto LABEL_83; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 20: + PlaySound(SPEECH_40, 0); + v27 = pActor->array_000234; + if ( pActor->array_000234[0].uItemID ) + { + v27 = &pActor->array_000234[1]; + if ( pActor->array_000234[1].uItemID ) + { + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + } + } + v28 = v47; + memcpy(v27, &this->pInventoryItemList[this->pInventoryMatrix[v47]-1], 0x24u); + RemoveItemAtInventoryIndex(v28); + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)47; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; case 21: PlaySound(SPEECH_42, 0); - ++v5->sAgeModifier; - goto LABEL_82; - case 22: - PlaySound(SPEECH_41, 0); - v5->sMana = 0; -LABEL_82: + ++this->sAgeModifier; v42 = 0; v37 = 0; v35 = 0; @@ -2615,9 +2882,41 @@ v32 = 0; v31 = 0; v30 = (SoundID)226; - goto LABEL_83; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 22: + PlaySound(SPEECH_41, 0); + this->sMana = 0; + v42 = 0; + v37 = 0; + v35 = 0; + v34 = 0; + v33 = -1; + v32 = 0; + v31 = 0; + v30 = (SoundID)226; + pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42); + do + { + if ( this == pPlayers[v3 + 1] ) + break; + ++v3; + } + while ( v3 < 4 ); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; default: - goto LABEL_87; + return 0; } } return result;