1 #insert scripts\shared\shared.gsh;
7 assert( !isdefined( level.names ) );
11 level.namesIndex = [];
13 if( !isdefined( level.script ) )
15 level.script = toLower( GetDvarString(
"mapname" ) );
25 if( !isdefined(level.names[str_nationality] ) )
27 level.names[str_nationality] = [];
29 if( str_nationality !=
"civilian" )
35 level.nameIndex[str_nationality] = 0;
41 switch( str_nationality )
79 case "singapore_police":
84 AssertMsg(
"Name list does not exist for " + str_nationality);
296 add_name(
"singapore_police",
"Chong" );
306 add_name(
"singapore_police",
"Liang" );
329 add_name(
"singapore_police",
"Zhang" );
510 level.names[nationality][level.names[nationality].size] = thename;
515 size = level.names[nationality].size;
516 for( i = 0; i < size; i++ )
518 switchwith = RandomInt( size );
519 temp = level.names[nationality][i];
520 level.names[nationality][i] = level.names[nationality][switchwith];
521 level.names[nationality][switchwith] = temp;
527 if( !isdefined(
override ) && level.script ==
"credits" )
529 self.airank =
"private";
530 self notify(
"set name and rank" );
534 if( isdefined(
self.script_friendname ) )
536 if(
self.script_friendname ==
"none" )
538 self.properName =
"";
542 self.properName =
self.script_friendname;
545 self notify(
"set name and rank" );
549 assert( isdefined( level.names ) );
552 str_nationality =
"american";
554 if( IsSubStr( str_classname,
"_civilian_" ) )
556 self.airank =
"none";
557 str_nationality =
"civilian";
561 str_nationality =
"agent";
563 else if( IsSubStr( str_classname,
"_sco_" ) )
565 self.airank =
"none";
566 str_nationality =
"chinese";
568 else if( IsSubStr( str_classname,
"_egypt_" ) )
570 str_nationality =
"egyptian";
574 str_nationality =
"police";
578 str_nationality =
"seal";
582 str_nationality =
"navy";
586 str_nationality =
"security";
588 else if( IsSubStr( str_classname,
"_soviet_" ))
590 self.airank =
"none";
591 str_nationality =
"russian";
593 else if( IsSubStr( str_classname,
"_ally_sing_" ))
595 str_nationality =
"singapore_police";
601 self notify(
"set name and rank" );
606 if( isdefined(
self.dr_ai_classname ) )
608 str_classname = tolower(
self.dr_ai_classname );
612 str_classname = tolower(
self.classname );
615 return str_classname;
620 if( !isdefined(level._override_name_funcs) )
622 level._override_name_funcs = [];
625 assert( !isdefined(level._override_name_funcs[nationality]),
"Setting a name override function twice.");
627 level._override_name_funcs[nationality] = func;
632 assert( isdefined( level.nameIndex[nationality] ), nationality );
635 if( isdefined( level._override_name_funcs) && isdefined( level._override_name_funcs[nationality] ) )
637 self.properName = [[ level._override_name_funcs[nationality] ]]();
645 if( nationality ==
"civilian" )
647 self.properName =
"";
651 level.nameIndex[nationality] = ( level.nameIndex[nationality] + 1 ) % level.names[nationality].size;
652 lastname = level.names[nationality][level.nameIndex[nationality]];
654 if(!isdefined(lastname))
659 if (isdefined(level._override_rank_func))
661 self [[level._override_rank_func]](lastname);
663 else if( isdefined(
self.airank) &&
self.airank ==
"none")
665 self.properName = lastname;
670 rank = RandomInt( 100 );
672 if ( nationality ==
"seal" )
676 fullname =
"PO " + lastname;
677 self.airank =
"petty officer";
681 fullname =
"CPO " + lastname;
682 self.airank =
"chief petty officer";
686 fullname =
"Lt. " + lastname;
687 self.airank =
"lieutenant";
690 else if ( nationality ==
"navy" )
694 fullname =
"SN " + lastname;
695 self.airank =
"seaman";
699 fullname =
"PO " + lastname;
700 self.airank =
"petty officer";
704 fullname =
"CPO " + lastname;
705 self.airank =
"chief petty officer";
708 else if ( nationality ==
"police" )
710 fullname =
"Officer " + lastname;
711 self.airank =
"police officer";
713 else if ( nationality ==
"agent" )
715 fullname =
"Agent " + lastname;
716 self.airank =
"special agent";
718 else if ( nationality ==
"security" )
720 fullname =
"Officer " + lastname;
722 else if ( nationality ==
"singapore_police" )
724 fullname =
"Officer " + lastname;
725 self.airank =
"police officer";
731 fullname =
"Pvt. " + lastname;
732 self.airank =
"private";
736 fullname =
"Cpl. " + lastname;
737 self.airank =
"corporal";
741 fullname =
"Sgt. " + lastname;
742 self.airank =
"sergeant";
746 self.properName = fullname;
752 if( IsSubStr( str_classname,
"_seal_" ) )
764 if( IsSubStr( str_classname,
"_navy_" ) )
776 if( IsSubStr( str_classname,
"_lapd_" ) || IsSubStr( str_classname,
"_swat_" ) )
788 if( IsSubStr( str_classname,
"_security_" ) )
798 if( IsSubStr( str_classname,
"_sstactical_" ) )
810 if( !isdefined(
name ) )
812 self.airank = (
"private" );
815 tokens = Strtok(
name,
" " );
816 assert( tokens.size );
817 shortRank = tokens[0];
822 self.airank =
"private";
825 self.airank =
"private";
828 self.airank =
"corporal";
831 self.airank =
"sergeant";
834 self.airank =
"lieutenant";
837 self.airank =
"captain";
840 /#println(
"sentient has invalid rank " + shortRank +
"!" ); #/
841 self.airank =
"private";
848 assert( str_search_array.size,
"String array is empty" );
850 foreach( str_search
in str_search_array )
852 if( IsSubStr( str_match, str_search ) )