Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 14
- void __userpurge sub_43DA20(aiCaptain *a1@<eax>, CUNIT *a2@<ebx>, int a3)
- {
- aiCaptain *v3; // esi
- CAIController *v4; // eax
- CUNIT *v5; // edx
- CAIController *v6; // ecx
- bool v7; // zf
- town *v8; // ecx
- char v9; // al
- v3 = a1;
- if ( a1->captainType == 3 && !a3 )
- v3 = &AI_RegionCaptains[(unsigned __int8)a2->owner][SAI_GetRegionIdFromPxEx(
- a2->sprite->position.x,
- a2->sprite->position.y)];
- v5 = (CUNIT *)v3->field_2C;
- v4 = *(CAIController **)v5[59].loadedUnitIndex;
- if ( v4 )
- {
- v6 = v4->prev;
- v7 = v4->prev == 0;
- *(_DWORD *)v5[59].loadedUnitIndex = v4->prev;
- if ( !v7 )
- v6->next = 0;
- if ( v4 )
- {
- v4->next = 0;
- v4->prev = (CAIController *)v3->town;
- v8 = v3->town;
- if ( v8 )
- v8->next = (town *)v4;
- v3->town = (town *)v4;
- v4->controlType = 4;
- v4->unit = a2;
- v4->cptn = v3;
- if ( !(a2->statusFlags & 4) )
- ++*(_WORD *)&v3->field_A;
- a2->CAIControl = v4;
- AI_OrderToDestination(
- a2,
- a2->type != UNI_T_MEDIC ? 157 : 177,
- SAI_Paths->regions[(unsigned __int16)v3->region].rgnCenterX >> 8,
- SAI_Paths->regions[(unsigned __int16)v3->region].rgnCenterY >> 8);
- v9 = v3->captainType;
- if ( v9 == 8 || v9 == 9 || v9 == 1 || v9 == 2 )
- AssignCaptainToSlowestUnit(v3);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement