| 1917 | } |
| 1918 | |
| 1919 | void cFodder::Recruit_Position_Troops() { |
| 1920 | const int16* Recruit_Next_Shirt = mRecruit_Shirt_Colors; |
| 1921 | |
| 1922 | uint64 Data8 = mGame_Data.mHeroes.size(); |
| 1923 | int16 Recruits, Data4; |
| 1924 | |
| 1925 | // Calculate number of dead troops |
| 1926 | Data8 &= 0xF; |
| 1927 | |
| 1928 | if (mRecruit_Mission_Restarting) |
| 1929 | Recruits = mGame_Data.mRecruits_Available_Count; |
| 1930 | else { |
| 1931 | Recruits = mGame_Data.mMission_Recruits_AliveCount; |
| 1932 | if (!Recruits) |
| 1933 | goto loc_179B2; |
| 1934 | } |
| 1935 | |
| 1936 | // loc_1795E |
| 1937 | --Recruits; |
| 1938 | Data4 = 0x110; |
| 1939 | |
| 1940 | // Set the recruit position frames |
| 1941 | for (; Recruits >= 0; --Recruits) { |
| 1942 | |
| 1943 | if (Data4 >= 0) { |
| 1944 | if (mRecruit_Screen_Positions[Data4].mFrame) |
| 1945 | --Data4; |
| 1946 | |
| 1947 | mRecruit_Screen_Positions[Data4].mFrame = mRecruit_Shirt_Colors[Data8]; |
| 1948 | } |
| 1949 | |
| 1950 | Data8 += 1; |
| 1951 | Data8 &= 0xF; |
| 1952 | Data4 -= 4; |
| 1953 | } |
| 1954 | |
| 1955 | loc_179B2:; |
| 1956 | // If the mission is restarting, troops are already over the hill |
| 1957 | if (mRecruit_Mission_Restarting) |
| 1958 | return; |
| 1959 | |
| 1960 | mRecruit_Truck_Reached = 0; |
| 1961 | int16 Data0 = mRecruit_Hill_Positions_Use[0]; |
| 1962 | Data8 = 5; |
| 1963 | |
| 1964 | for (; ; Data0++) { |
| 1965 | |
| 1966 | Data4 = mRecruit_Screen_Positions[Data0].mFrame; |
| 1967 | if (Data4) { |
| 1968 | if (Data4 > 3) { |
| 1969 | mRecruit_Truck_Reached = -1; |
| 1970 | break; |
| 1971 | } |
| 1972 | else |
| 1973 | continue; |
| 1974 | |
| 1975 | } |
| 1976 | else { |