Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- long double __fastcall sub_710082D6F0(__int64 *a1, char a2)
- {
- long double v2; // q8
- __int64 pkm; // x19
- unsigned __int64 v4; // x8
- unsigned int v5; // w9
- unsigned __int64 v6; // x22
- __int64 v7; // x21
- __int64 v8; // x20
- signed int species; // w0
- __int64 v10; // x20
- int v11; // w0
- unsigned __int64 combo; // x0
- signed __int64 v13; // x8
- unsigned int heightRating; // w0
- double v15; // d1
- pkm = *a1;
- if ( *(a1 + 8) ) // synchronized
- {
- LODWORD(v4) = 0x2000;
- }
- else if ( *(a1 + 16) ) // technique
- {
- LODWORD(v4) = 0x119A;
- }
- else
- {
- LODWORD(v4) = 0x1000;
- }
- v5 = *(a1 + 3) - 1;
- if ( v5 <= 2 )
- v4 = (qword_7100F86670[v5] * v4 + 2048LL) >> 12;// throw type bonus (0x1400, 0x1800, 0x2000, 0)
- if ( *(a1 + 9) )
- LODWORD(v6) = (0x1800LL * v4 + 2048) >> 12; // first throw
- else
- LODWORD(v6) = v4;
- if ( !(a2 & 1) )
- {
- v7 = *(qword_710160D310 + 152);
- if ( v7 )
- (*(*(v7 + 72) + 16LL))(v7 + 72);
- v8 = *(*(v7 + 88) + 136LL);
- if ( v8 )
- (*(*(v8 + 72) + 16LL))(v8 + 72);
- (*(*(v7 + 72) + 24LL))(v7 + 72);
- species = getSpecies(pkm);
- if ( !GetDexSpeciesFlagSet(v8, species) )
- v6 = (0x119ALL * v6 + 0x800) >> 12; // new species
- if ( v8 )
- (*(*(v8 + 72) + 24LL))(v8 + 72);
- }
- v10 = *(qword_710160D310 + 152);
- if ( v10 )
- (*(*(v10 + 72) + 16LL))(v10 + 72);
- v11 = sub_7100134AE0(v10);
- combo = sub_71001349C0(v10, v11); // combo check
- if ( combo > 40 )
- {
- v13 = 0x3000LL; // 3
- LABEL_32:
- v6 = (v13 * v6 + 0x800) >> 12;
- goto LABEL_33;
- }
- if ( combo > 30 )
- {
- v13 = 0x2800LL; // 2.5
- goto LABEL_32;
- }
- if ( combo > 20 )
- {
- v13 = 0x2000LL; // 2
- goto LABEL_32;
- }
- if ( combo > 10 )
- {
- v13 = 0x1800LL; // 1.5
- goto LABEL_32;
- }
- if ( combo >= 2 )
- {
- v13 = 0x119ALL; // 1.1
- goto LABEL_32;
- }
- LABEL_33:
- heightRating = getHeightClass(pkm);// height class (0x4000, 0x1800, 0x4000, 0x1800, 0x4000, middle unused)
- if ( heightRating <= 4 && (27u >> heightRating) & 1 )
- v6 = (qword_7100F86690[heightRating] * v6 + 0x800LL) >> 12;
- v15 = (v6 & 0xFFF) * 0.000244140625;
- if ( !(v6 & 0xFFF) )
- v15 = 0.0;
- *&v2 = ((v15 + (v6 >> 12)) * 10.0) / 10.0;
- if ( v10 )
- (*(*(v10 + 72) + 24LL))(v10 + 72);
- return v2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement