| 907 | } |
| 908 | |
| 909 | static boolean plselRandomize(plsel_data_t * data) |
| 910 | { |
| 911 | int role, race, gender, alignment; |
| 912 | boolean fully_specified = TRUE; |
| 913 | |
| 914 | // restore back to configuration settings |
| 915 | flags.initrole = data->config_role; |
| 916 | flags.initrace = data->config_race; |
| 917 | flags.initgend = data->config_gender; |
| 918 | flags.initalign = data->config_alignment; |
| 919 | |
| 920 | if (!flags.randomall) { |
| 921 | if(flags.initrole == ROLE_NONE || flags.initrace == ROLE_NONE |
| 922 | || flags.initgend == ROLE_NONE || flags.initalign == ROLE_NONE) |
| 923 | fully_specified = FALSE; |
| 924 | } |
| 925 | |
| 926 | if (flags.initrole == ROLE_NONE) |
| 927 | flags.initrole = ROLE_RANDOM; |
| 928 | if (flags.initrace == ROLE_NONE) |
| 929 | flags.initrace = ROLE_RANDOM; |
| 930 | if (flags.initgend == ROLE_NONE) |
| 931 | flags.initgend = ROLE_RANDOM; |
| 932 | if (flags.initalign == ROLE_NONE) |
| 933 | flags.initalign = ROLE_RANDOM; |
| 934 | |
| 935 | rigid_role_checks(); |
| 936 | |
| 937 | role = flags.initrole; |
| 938 | race = flags.initrace; |
| 939 | gender = flags.initgend; |
| 940 | alignment = flags.initalign; |
| 941 | |
| 942 | assert(role != ROLE_RANDOM && role != ROLE_NONE); |
| 943 | assert(race != ROLE_RANDOM && race != ROLE_NONE); |
| 944 | assert(gender != ROLE_RANDOM && gender != ROLE_NONE); |
| 945 | assert(alignment != ROLE_RANDOM && alignment != ROLE_NONE); |
| 946 | |
| 947 | if (!ok_role(role, race, gender, alignment)) { |
| 948 | fully_specified = FALSE; |
| 949 | flags.initrole = ROLE_RANDOM; |
| 950 | } |
| 951 | |
| 952 | if (!ok_race(role, race, gender, alignment)) { |
| 953 | fully_specified = FALSE; |
| 954 | flags.initrace = ROLE_RANDOM; |
| 955 | } |
| 956 | |
| 957 | if (!ok_gend(role, race, gender, alignment)) { |
| 958 | fully_specified = FALSE; |
| 959 | flags.initgend = ROLE_RANDOM; |
| 960 | } |
| 961 | |
| 962 | if(!ok_align(role, race, gender, alignment)) |
| 963 | { |
| 964 | fully_specified = FALSE; |
| 965 | flags.initalign = ROLE_RANDOM; |
| 966 | } |
no test coverage detected