Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned int __fastcall Field::Encount::PokeSet::EncountProbCalc(int a1, unsigned int EncounterProbability, Field::EventPokemonRideTool *a3)
- {
- int v3; // r12@1
- int v4; // r12@5
- bool v5; // zf@5
- signed int v6; // r4@10
- unsigned int v7; // r5@12
- unsigned int result; // r0@18
- v3 = *(a1 + 528);
- if ( v3 & 1 ) // 100% increase (double down) from arena trap etc
- {
- EncounterProbability *= 2;
- }
- else if ( v3 & 2 ) // 50% decrease
- {
- EncounterProbability >>= 1;
- }
- else
- {
- v4 = *(a1 + 502);
- v5 = v4 == 224; // cleanse tag
- if ( v4 != 224 )
- v5 = v4 == 320; // pure incense
- if ( v5 )
- EncounterProbability = 2 * EncounterProbability / 3;
- }
- v6 = 100;
- if ( *(a1 + 524) & 0x20 ) // 1/4
- EncounterProbability >>= 2;
- v7 = EncounterProbability;
- switch ( Field::EventPokemonRideTool::GetPokemonRideOnID(a3, 0, a3) )
- {
- case 0:
- v6 = 50;
- break;
- case 1:
- v6 = 15;
- break;
- case 2:
- v6 = 55;
- break;
- case 3:
- v6 = 20;
- break;
- default:
- break;
- case 6:
- v6 = 65;
- break;
- }
- result = v7 * v6 / 100;
- if ( result > 100 )
- result = 100;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement