#!/usr/bin/perl # License: GPLv2 # --MikeeUSA-- $reverse_fan_roll_speed_asthetics_obj_from_mc = 1; #Reverse roll speed for fans as exported models are inverse $CONVERT_SOME_NOISES_TO_SIMPLER_STRING = 1; $REVERSE_Z_ANGLE_ON_SOME_MODELS = 1; #added at time of g arena $REVERSE_X_ANGLE_ON_SOME_MODELS = 1; #added at time of avitar arena # $STEELBOXBARRELNOSUBSTITUTION = 1; #Don't substitute steel box with construct or the steel barrel with one $TARYDIUMBARRELNOSUBSTITUTION = 1; #unknown as of now $SEAWEEDNOSUBSTITUTION = 1; #use the regular model, not substitution # $SETSOLIDPHYSICSTRIMESHIFDSCALEONSOMEMODELS = 1; # $output = STDOUT; #Set to standard output, keep this as this, this is for when switching from standard output to internal file so some things can be printed at the end instead of as found # $mode = 0; #1= lights $DEBUGPRINTS = 0; $TESTLIGHTPRINTS = 0; $TESTUNKNOWNPRINTS = 1; $IGNOREPATHNODES = 1; $IGNORELEVELINFO = 1; $IGNOREZONEINFO = 1; #note: doesn't ignore hurt/heal zones if DOZONEINFOHURT is set $PRINTORIGINALSOUNDINFOASCOMMENTIFCONVERTED = 1; $PRINTORIGINALROTATIONINFOASCOMMENTIFCONVERTED = 1; $PRINTMINSMAXSASCOMMENTIFFOUND_FORMOVER = 1; $PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER = 1; $PRINTREVERSEZMODELINFOASCOMMENTIFREVERSED = 1; $COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS = 1; $NEWLINEBETWEENSECTIONS = 2; $comment_oldclassname_for_all = 1; $ENABLE_ADD_Z_TOPLAYERSTART = 1; # #Some ammos $PAMMOUSESREGULAR = 0; #1 means use cells instead of custom $SHOCKCOREUSESREGULAR = 0; #1 means use cells instead of custom $PICKUP_UT_SniperRifle_OPTIONS = 1; #0 use lrr, 1 use t17mm # $add_z_toplayerstart = 64; #helps keep out of solid $PRINTINFOREGARDINGADDINGZTOPLAYERSTART = 1; #print the info regarding adding Z to player start, ie print the original as a comment $PRINTORIGINALHUESATURATIONBRIGHTNESSINFOASCOMMENTIFCONVERTED = 1; $rtlight_radius_scale = 10; #for some 10 seems good, for other maps 5... $rtlight_allow_corona = 0; #allow coronas? $rtlight_independent_corona_scale = 0; #set to independent scale from lightscale? $SET_UNSET_CORONA_COLOR = 0; $SET_UNSET_CORONA_COLOR_R = 0; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 0; $SET_UNSET_CORONA_COLOR_BY_TEXTURE = 0; $SET_UNSET_LIGHT_COLOR = 1; $SET_UNSET_LIGHT_RADIUS = 1; $comment_mover_information = 1; $ALLOW_DESTRUCTABLES_MOVERS = 0; #evaluate destructable like glass, difficult as they are just movers that move in 0 seconds and point to a trigger event $OMIT_NEWER_MOVERS = 0; #omit the newer movers after the destructables? $OMIT_NEWER_MOVERS2 = 0; #omit the even newer movers after ElevatorE? $OMITNAMELINECONTAININGACTIVELINE_FIX = 1; #ignore lines like ' Name="AmbientSound2"' $DOWATERLAVASLIMEZONES = 1; $WATERLAVASLIMEZONESAREPRINTEDATEND = 1; #Also prints ZoneInfo Hurt at end if applicable $DOZONEINFOHURT = 1; $REQUIREHUGEMOVEMENT_FOR_DESTRUCTABLES_MOVERS = 1; # # $Set_Default_HSV_and_Radius_At_Begining_Instead = 1; # # $ignore_unset_lights = 0; # # $use_curve = 1; # $PRINTCOMMANDARGUMENTSFORRTLIGHTS = 1; #end of file $PRINTDEBUGINFOASCOMMENTFORRTLIGHTS = 0; #for each one #$originalerrorsethuetosaturation = 0; #original error was to set hue to saturation and was used for tundra rtlight originall # $ORIGINFORUNKNOWNSIFTESTUNKNOWNPRINTS = 1; #can be 1 or 2 # $STRICTFILECONTROL = 1; sub newlinebetweensections { if ($comment_oldclassname_for_all) { if ($originalclassname) { print $output ('//'); print $output ('#'); print $output ("$originalclassname"); print $output ("\n"); } } if ($NEWLINEBETWEENSECTIONS) { if ($NEWLINEBETWEENSECTIONS > 10) { print $output ("\n"); } else { print $output ("\n" x $NEWLINEBETWEENSECTIONS); } } } #It happens that when one exports an obj file as a static mesh #and decides to use it as an obj_from_mc with basescale1 (ie no scaling) #this all works out if you have made sure you centred your brush on 0,0,0 #wouldn't think it would because in darkplaces quake1 engine the obj seems to be flipped left to right or something #but I guess this just worked out it seemed #it did when I did it by hand # #so when you want to export a map to obj in unreal editor 2.1 for old unreal #what you do is you make a box brush, then center it on 0,0,0 as it's location #then make it bigger than your level #then press the intersect button #it's a box from the bottom going into another box, cyan on top but in bottom corner atop a dark blue one # //////////// # .. // #/////////// B // #// // L // #// // U // #// cyan // E // #// //...// #// // #/////////// #then you will have a red outline of the whole map #save your .unr map to intersectedbrushmap.unr or so #then open it up again #now "wrong click" (right click) on the red brush, like a line of it #then in unreal ed 2.1 you will have a menu pop up #it will have an option to convert the brush to static mesh #somewhere in there #do that, then export it to obj #then rename the obj somemap.basescale1.obj_from_mc #now, go back to your original .unr map #export that as a t3d from the file menu #that's what this reads # later alongside the somemap.basescale1.obj_from_mc # you can have a somemap.basescale1.ent # the engine will load that # $dostuff = 0; $endnow = 0; $classname = ""; $islocationline = 0; $isrotationline = 0; $isrotationrateline = 0; $isambientsoundline = 0; $islight_hueline = 0; $islight_saturationline = 0; $islight_brightnessline = 0; $islightradiusline = 0; $isbaseposline_formover = 0; #Seems to be same as location $iskeyrotline_formover = 0; #where to rotate $iskeyposline_formover = 0; $iskeypos2line_formover = 0; $issavedposline_formover = 0; #is by default: (X=-12345.000000,Y=-12345.000000,Z=-12345.000000) $isviewfogline = 0; $issavedrotline_formover = 0; #is by default: (Pitch=123,Yaw=456,Roll=789) $isencroachdamageline_formover = 0; $isdrawscaleline = 0; $isencroachtypeline_formover = 0; $istagline_formover = 0; $isbumpeventline_formover = 0; $isopeningsoundline_formover = 0; $isclosingsoundline_formover = 0; $isclosingingsoundline_formover = 0; $ismoveambientsoundline_formover = 0; $isbumptypeline_formover = 0; $ismovetimeline_formover = 0; $isvertexline_a_formover = 0; #one of many $isinitialstateline_formover = 0; $ismoverglidetypeline_formover = 0; $iseventline_formover = 0; $isbdamagetriggeredline_formover = 0; $isdamagethresholdline_formover = 0; $isstayopentimeline_formover = 0; $isbpainzoneline = 0; $isbwaterzoneline = 0; $isbslimezoneline = 0; $isblavazoneline = 0; $isbkillzoneline = 0; $isdamagetypeline = 0; $is_Skin_line = 0; #forcorona $isdamagepersecondline = 0; $isanimsequenceline = 0; $isurlline = 0; # $moverkey_rotation_pitch = 0; $moverkey_rotation_yaw = 0; $moverkey_rotation_roll = 0; #set on door trap rotating down (Roll=16384) $moverkey_pos_origin_x = 0; #dejavu (key_pos) $moverkey_pos_origin_y = 0; $moverkey_pos_origin_z = 0; $moverkey_pos2_origin_x = 0; $moverkey_pos2_origin_y = 0; $moverkey_pos2_origin_z = 0; $mover_basepos_origin_x = 0; #Seems to be same as location $mover_basepos_origin_y = 0; $mover_basepos_origin_z = 0; $saved_moverkey_rotation_pitch = 0; #is by default: (Pitch=123,Yaw=456,Roll=789) $saved_moverkey_rotation_yaw = 0; $saved_moverkey_rotation_roll = 0; $saved_mover_basepos_origin_x = 0; #is by default: (X=-12345.000000,Y=-12345.000000,Z=-12345.000000) $saved_mover_basepos_origin_y = 0; $saved_mover_basepos_origin_z = 0; $viewfogused = 0; $view_fog_rgbaspos_origin_x = 0; $view_fog_rgbaspos_origin_y = 0; $view_fog_rgbaspos_origin_z = 0; $mover_encroachdamage = 0; $drawscale = 0; $pre_drawscale = 0; #for models, set to something if the default scale isnt 1 $mover_encroachtype = 0; #1 crush $mover_tag = ''; $mover_bumpevent = ''; $mover_event = ''; $animsequence = ''; $url = ''; $force_angles_rather_than_angle = 0; #for mover $no_angle_conversion_allready_done = 0; #for mover $targetname = ''; $target = ''; $mover_bumptype = 0; #1 = Any $mover_movetime = 0; $mover_movetimewasset = 0; #used to denote the line was set to something in the file, even if 0 $mover_moverglidetype = 0; $mover_bdamagetriggered = 0; $mover_damagethreshold = 0; $mover_stayopentime = 0; $bpainzone_true_or_false = 0; $bwaterzone_true_or_false = 0; $bslimezone_true_or_false = 0; $blavazone_true_or_false = 0; $bkillzone_true_or_false = 0; $damagetype_lineinfo = 0; #for zoneinfo sometimes $bcorona_true_or_false = 0; $lineset_capital_Skin = ''; #for corona $damagepersecond = 0; $mover_stayopentimewasset = 0; #used to denote the line was set to something in the file, even if 0 #added because pattern $speed = 0; $formover_maximum_seen_vertex_x = 0; $formover_maximum_seen_vertex_y = 0; $formover_maximum_seen_vertex_z = 0; $formover_littlest_seen_vertex_x = 0; $formover_littlest_seen_vertex_y = 0; $formover_littlest_seen_vertex_z = 0; # $origin_x = 0; $origin_y = 0; $origin_z = 0; $rotation_pitch = 0; #X looking up down (.angles_x) (up-down) $rotation_yaw = 0; #Y yaw, what way looking side to side (.angles_y), also alone can be .angle (side-side, regular rotation, like a pole rotating) $rotation_roll = 0; #Z roll, like a barrel (.angles_z) (like a plane spinning while going forward via changing the flaps on it's wings) $rotationrate_pitch = 0; $rotationrate_yaw = 0; $rotationrate_roll = 0; $noise = ''; $originalnoisecomment = ''; $model = ''; $count = ''; $originalclassname = ''; $ignoreingalllinesinbrush = 0; $hue = 0; $saturation = 0; $brightness = 0; $light_radius = 0; $color_r = 0; $color_g = 0; $color_b = 0; $spawnflags = 0; $cubemap = ''; $corona = 0; $coronasize = 0; # 0.25; #default 0.25 but corona is off by default $ambient = 0; $diffuse = 1; #default 1 $specular= 1; #default 1 $specialextrastuffname = ''; $specialextrastuffamnt = ''; $specialextrastuffname0 = ''; $specialextrastuffamnt0 = ''; $specialextrastuffname1 = ''; $specialextrastuffamnt1 = ''; $specialextrastuffname2 = ''; $specialextrastuffamnt2 = ''; $specialextrastuffname3 = ''; $specialextrastuffamnt3 = ''; $specialextrastuffname4 = ''; $specialextrastuffamnt4 = ''; $specialextrastuffname5 = ''; $specialextrastuffamnt5 = ''; $specialextrasetscalefromdrawscaleamnt = 0; $checkforviewfog_extra = 0; $no_color_set_by_map = 1; #for SET_UNSET_LIGHT_COLOR = 1; and ignore $no_radius_set_by_map = 1; #for SET_UNSET_LIGHT_RADIUS = 1;; and ignore $is_light_entity = 0; #so we may ignore if need be $is_mover = 0; #so we may ignore if need be $is_allowed_even_if_not_mover = 0; #so we may allow if need be some tags $is_fan = 0; #so we may ignore if need be $is_rotating_mover = 0; $is_zoneinfo_maybehurt = 0; $is_model_maybereversez = 0; $setsolidkeepdefaultevenifdscale = 0; $moveambientnoise_formover = ''; $openingnoise_formover = ''; $closingnoise_formover = ''; $closingingnoise_formover = ''; $originalnoisecomment_m = ''; $originalnoisecomment_o = ''; $originalnoisecomment_c = ''; $originalnoisecomment_cc = ''; $infooriginal_mover_rotation_pitch = 0; #Just for info $infooriginal_mover_rotation_yaw = 0; #Just for info $infooriginal_mover_rotation_roll = 0; #Just for info $name = ''; $did_mover_name_allready = 0; $mover_initialstate = 0; $omitangles_allready_set_angle = 0; #for movers $recorded_actual_from_file__brightness = 0; #for corona $recorded_actual_from_file__hue = 0; #for corona $recorded_actual_from_file__saturation = 0; #for corona $recorded_actual_from_file__light_radius = 0; #for corona $default_mover_speed = 300; $fallbackdatafile = "data2.t3d"; $datafile = ''; $rtlights_add_an_exclaimation_point = 0; $hsvalgo = 0; $hsvalgousedstring = ''; $printmode_testhsv_sa_br_hue = 0; #Accept as input a value for what file to parse if (@ARGV[0]) { $datafile = @ARGV[0]; #normal if (@ARGV[0] eq '--testhsv' || @ARGV[0] eq '--test_hsv_to_rgb' || @ARGV[0] eq '--sa_br_hue' ) { if (@ARGV[1] eq '--algo' && @ARGV[2]) { $hsvalgo = @ARGV[2]; } elsif (@ARGV[0] eq '--sa_br_hue' && @ARGV[3]) { $saturation = @ARGV[1];; $brightness = @ARGV[2]; $hue = @ARGV[3]; $printmode_testhsv_sa_br_hue = 1; } test_hsv_to_rgb(); exit; # allready has an exit } elsif (@ARGV[0] eq '-l') { $mode = 1; #lights if (@ARGV[1]) { $datafile = @ARGV[1]; } else { $datafile = $fallbackdatafile; } } elsif ((@ARGV[0] eq '-rt') || (@ARGV[0] eq '-rt1') || (@ARGV[0] eq '-rt2') || (@ARGV[0] eq '-rt3') || (@ARGV[0] eq '-rt4') || (@ARGV[0] eq '-rt5') || (@ARGV[0] eq '-rt7') || (@ARGV[0] eq '-rt8') || (@ARGV[0] eq '-rt9') || (@ARGV[0] eq '-rt10') || (@ARGV[0] eq '-rt15') || (@ARGV[0] eq '-rt20') || (@ARGV[0] eq '-rt25') || (@ARGV[0] eq '-rt30') || (@ARGV[0] eq '-rt35') || (@ARGV[0] eq '-rt40') || (@ARGV[0] eq '-rt45') || (@ARGV[0] eq '-rt50') || (@ARGV[0] eq '-rt55') || (@ARGV[0] eq '-rt60') || (@ARGV[0] eq '-rt65') || (@ARGV[0] eq '-rt70') || (@ARGV[0] eq '-rt75') || (@ARGV[0] eq '-rt80') || (@ARGV[0] eq '-rt85') || (@ARGV[0] eq '-rt90') || (@ARGV[0] eq '-rt95') || (@ARGV[0] eq '-rt100') || (@ARGV[0] eq '-rt200') || (@ARGV[0] eq '-rt300')) { #Yes this could be done a cleverer way, 10 is good for most maps, #but some maps are too much for using realtime light #When using curves (default now) 30 is better $mode = 2; #rtlights if (@ARGV[0] eq '-rt') { #default scale is 10 } elsif (@ARGV[0] eq '-rt9') { $rtlight_radius_scale = 9; } elsif (@ARGV[0] eq '-rt8') { $rtlight_radius_scale = 8; } elsif (@ARGV[0] eq '-rt7') { $rtlight_radius_scale = 7; } elsif (@ARGV[0] eq '-rt5') { $rtlight_radius_scale = 5; } elsif (@ARGV[0] eq '-rt4') { $rtlight_radius_scale = 4; } elsif (@ARGV[0] eq '-rt3') { $rtlight_radius_scale = 3; } elsif (@ARGV[0] eq '-rt2') { $rtlight_radius_scale = 2; } elsif (@ARGV[0] eq '-rt1') { $rtlight_radius_scale = 1; } elsif (@ARGV[0] eq '-rt10') { $rtlight_radius_scale = 10; } elsif (@ARGV[0] eq '-rt15') { $rtlight_radius_scale = 15; } elsif (@ARGV[0] eq '-rt20') { $rtlight_radius_scale = 20; } elsif (@ARGV[0] eq '-rt25') { $rtlight_radius_scale = 25; } elsif (@ARGV[0] eq '-rt30') { $rtlight_radius_scale = 30; } elsif (@ARGV[0] eq '-rt35') { $rtlight_radius_scale = 35; } elsif (@ARGV[0] eq '-rt40') { $rtlight_radius_scale = 40; } elsif (@ARGV[0] eq '-rt45') { $rtlight_radius_scale = 45; } elsif (@ARGV[0] eq '-rt50') { $rtlight_radius_scale = 50; } elsif (@ARGV[0] eq '-rt55') { $rtlight_radius_scale = 55; } elsif (@ARGV[0] eq '-rt60') { $rtlight_radius_scale = 60; } elsif (@ARGV[0] eq '-rt65') { $rtlight_radius_scale = 65; } elsif (@ARGV[0] eq '-rt70') { $rtlight_radius_scale = 70; } elsif (@ARGV[0] eq '-rt75') { $rtlight_radius_scale = 75; } elsif (@ARGV[0] eq '-rt80') { $rtlight_radius_scale = 80; } elsif (@ARGV[0] eq '-rt85') { $rtlight_radius_scale = 85; } elsif (@ARGV[0] eq '-rt90') { $rtlight_radius_scale = 90; } elsif (@ARGV[0] eq '-rt95') { $rtlight_radius_scale = 95; } elsif (@ARGV[0] eq '-rt100') { $rtlight_radius_scale = 100; } elsif (@ARGV[0] eq '-rt200') { $rtlight_radius_scale = 200; } elsif (@ARGV[0] eq '-rt300') { $rtlight_radius_scale = 300; } if (@ARGV[1]) { $datafile = @ARGV[1]; } else { $datafile = $fallbackdatafile; } if (@ARGV[2] || @ARGV[3] || @ARGV[4]) { if (@ARGV[2] eq '--nc' || @ARGV[3] eq '--nc' || @ARGV[4] eq '--nc') { $use_curve = 0; #no curve } if (@ARGV[2] eq '--ex' || @ARGV[3] eq '--ex' || @ARGV[4] eq '--ex') { $rtlights_add_an_exclaimation_point = 1; } if (@ARGV[2] eq '--ac' || @ARGV[3] eq '--ac' || @ARGV[4] eq '--ac') { $rtlight_allow_corona = 1; #allow corona } elsif (@ARGV[2] eq '--ac_tex' || @ARGV[3] eq '--ac_tex' || @ARGV[4] eq '--ac_tex') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR_BY_TEXTURE = 1; } elsif (@ARGV[2] eq '--ac_r' || @ARGV[3] eq '--ac_r' || @ARGV[4] eq '--ac_r') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 1; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 0; } elsif (@ARGV[2] eq '--ac_g' || @ARGV[3] eq '--ac_g' || @ARGV[4] eq '--ac_g') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 0; $SET_UNSET_CORONA_COLOR_G = 1; $SET_UNSET_CORONA_COLOR_B = 0; } elsif (@ARGV[2] eq '--ac_b' || @ARGV[3] eq '--ac_b' || @ARGV[4] eq '--ac_b') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 0; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 1; } elsif (@ARGV[2] eq '--ac_c' || @ARGV[3] eq '--ac_c' || @ARGV[4] eq '--ac_c') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 0; $SET_UNSET_CORONA_COLOR_G = 1; $SET_UNSET_CORONA_COLOR_B = 1; } elsif (@ARGV[2] eq '--ac_m' || @ARGV[3] eq '--ac_m' || @ARGV[4] eq '--ac_m') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 1; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 1; #magenta } elsif (@ARGV[2] eq '--ac_p' || @ARGV[3] eq '--ac_p' || @ARGV[4] eq '--ac_p') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 0.5; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 1; #purple } elsif (@ARGV[2] eq '--ac_ros' || @ARGV[3] eq '--ac_ros' || @ARGV[4] eq '--ac_ros') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 1; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 0.5; #rose } elsif (@ARGV[2] eq '--ac_o' || @ARGV[3] eq '--ac_o' || @ARGV[4] eq '--ac_o') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 1; $SET_UNSET_CORONA_COLOR_G = 0.5; #orange $SET_UNSET_CORONA_COLOR_B = 0; } elsif (@ARGV[2] eq '--ac_y' || @ARGV[3] eq '--ac_y' || @ARGV[4] eq '--ac_y') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 1; $SET_UNSET_CORONA_COLOR_G = 1; $SET_UNSET_CORONA_COLOR_B = 0; #yellow } elsif (@ARGV[2] eq '--ac_w' || @ARGV[3] eq '--ac_w' || @ARGV[4] eq '--ac_w') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 1; $SET_UNSET_CORONA_COLOR_G = 1; $SET_UNSET_CORONA_COLOR_B = 1; #white } elsif (@ARGV[2] eq '--ac_blk' || @ARGV[3] eq '--ac_blk' || @ARGV[4] eq '--ac_blk') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; $SET_UNSET_CORONA_COLOR_R = 0; $SET_UNSET_CORONA_COLOR_G = 0; $SET_UNSET_CORONA_COLOR_B = 0; #does this do much, set a corona to black? } elsif (@ARGV[2] eq '--ac_custom' || @ARGV[3] eq '--ac_custom' || @ARGV[4] eq '--ac_custom') { $rtlight_allow_corona = 1; #allow corona $SET_UNSET_CORONA_COLOR = 1; #set at top } elsif (@ARGV[2] eq '--nac' || @ARGV[3] eq '--nac' || @ARGV[4] eq '--nac') { $rtlight_allow_corona = 0; #do not allow corona #default } if (@ARGV[2] eq '--ics' || @ARGV[3] eq '--ics' || @ARGV[4] eq '--ics') { $rtlight_independent_corona_scale = 5; # } elsif (@ARGV[2] eq '--ics1' || @ARGV[3] eq '--ics1' || @ARGV[4] eq '--ics1') { $rtlight_independent_corona_scale = 1; # } elsif (@ARGV[2] eq '--ics3' || @ARGV[3] eq '--ics3' || @ARGV[4] eq '--ics3') { $rtlight_independent_corona_scale =3; # } elsif (@ARGV[2] eq '--ics5' || @ARGV[3] eq '--ics5' || @ARGV[4] eq '--ics5') { $rtlight_independent_corona_scale = 5; # } elsif (@ARGV[2] eq '--ics10' || @ARGV[3] eq '--ics10' || @ARGV[4] eq '--ics10') { $rtlight_independent_corona_scale = 10; # } elsif (@ARGV[2] eq '--ics20' || @ARGV[3] eq '--ics20' || @ARGV[4] eq '--ics20') { $rtlight_independent_corona_scale = 20; # } elsif (@ARGV[2] eq '--ics30' || @ARGV[3] eq '--ics30' || @ARGV[4] eq '--ics30') { $rtlight_independent_corona_scale = 30; # } if (@ARGV[2] eq '--ig' || @ARGV[3] eq '--ig' || @ARGV[4] eq '--ig') { #ignore unset #can strip out lazy mapping lights and give darker better atmosphere to some maps $SET_UNSET_LIGHT_COLOR = 0; $SET_UNSET_LIGHT_RADIUS = 0; $Set_Default_HSV_and_Radius_At_Begining_Instead = 1; #new default added $ignore_unset_lights = 1; #added } elsif (@ARGV[2] eq '--dontsetunset' || @ARGV[3] eq '--dontsetunset' || @ARGV[4] eq '--dontsetunset') { #PREVIOUS, ONLY SET THE CAPITALS #Setting #ignore unset #can strip out lazy mapping lights and give darker better atmosphere to some maps $SET_UNSET_LIGHT_COLOR = 0; $SET_UNSET_LIGHT_RADIUS = 0; $ignore_unset_lights = 0; #added as that more strictcode wasn't in $Set_Default_HSV_and_Radius_At_Begining_Instead = 0; #this didn't used to exist #!!!!this used to be the ig setting before set default hsv #Alternative to above } elsif (@ARGV[2] eq '--setunset' || @ARGV[3] eq '--setunset' || @ARGV[4] eq '--setunset') { #mutually exclusive to above #this is the default, but if you change it above, you can reset it #Doesn't set defaults so has an effect $SET_UNSET_LIGHT_COLOR = 1; $SET_UNSET_LIGHT_RADIUS = 1; $ignore_unset_lights = 0; $Set_Default_HSV_and_Radius_At_Begining_Instead = 0; #Other versions of above } elsif (@ARGV[2] eq '--setunsetdefault' || @ARGV[3] eq '--setunsetdefault' || @ARGV[4] eq '--setunsetdefault') { #mutually exclusive to above #this is the default, but if you change it above, you can reset it $SET_UNSET_LIGHT_COLOR = 1; $SET_UNSET_LIGHT_RADIUS = 1; #!!!!this used to be the setunset setting $ignore_unset_lights = 0; $Set_Default_HSV_and_Radius_At_Begining_Instead = 1; } elsif (@ARGV[2] eq '--setunsetonly' || @ARGV[3] eq '--setunsetonly' || @ARGV[4] eq '--setunsetonly') { #mutually exclusive to above #this is the default, but if you change it above, you can reset it $SET_UNSET_LIGHT_COLOR = 1; $SET_UNSET_LIGHT_RADIUS = 1; #!!!!this used to be the setunset setting } } } elsif (@ARGV[0] eq '-m') { $mode = 4; #mover if (@ARGV[1]) { $datafile = @ARGV[1]; if (@ARGV[2] eq '--du' || @ARGV[3] eq '--du') { $ALLOW_DESTRUCTABLES_MOVERS = 1; } elsif (@ARGV[2] eq '--ndu' || @ARGV[3] eq '--ndu') { $ALLOW_DESTRUCTABLES_MOVERS = 0; } if (@ARGV[2] eq '--rhm' || @ARGV[3] eq '--rhm') { $REQUIREHUGEMOVEMENT_FOR_DESTRUCTABLES_MOVERS = 1; } elsif (@ARGV[2] eq '--nrhm' || @ARGV[3] eq '--nrhm') { $REQUIREHUGEMOVEMENT_FOR_DESTRUCTABLES_MOVERS = 0; } if (@ARGV[2] eq '--omn' || @ARGV[3] eq '--omn') { $OMIT_NEWER_MOVERS = 1; $OMIT_NEWER_MOVERS2 = 1; } elsif (@ARGV[2] eq '--nomn' || @ARGV[3] eq '--nomn') { $OMIT_NEWER_MOVERS = 0; $OMIT_NEWER_MOVERS2 = 0; } elsif (@ARGV[2] eq '--omn1' || @ARGV[3] eq '--omn1') { $OMIT_NEWER_MOVERS = 1; } elsif (@ARGV[2] eq '--nomn1' || @ARGV[3] eq '--nomn1') { $OMIT_NEWER_MOVERS = 0; } elsif (@ARGV[2] eq '--omn2' || @ARGV[3] eq '--omn2') { $OMIT_NEWER_MOVERS2 = 1; } elsif (@ARGV[2] eq '--nomn2' || @ARGV[3] eq '--nomn2') { $OMIT_NEWER_MOVERS2 = 0; } } else { $datafile = $fallbackdatafile; } #the below argv1 are for regular entities } elsif (@ARGV[1] eq '--owlsz') { #Omit Water Lava Slime ZoneInfoHurt #(Old default before these were implemented) $DOWATERLAVASLIMEZONES = 0; $WATERLAVASLIMEZONESAREPRINTEDATEND = 0; $DOZONEINFOHURT = 0; } elsif (@ARGV[1] eq '--nowlsz') { #Do Not Omit Water Lava Slime ZoneInfoHurt #(default after these were implemented) $DOWATERLAVASLIMEZONES = 1; $WATERLAVASLIMEZONESAREPRINTEDATEND = 1; $DOZONEINFOHURT = 1; } #normal if ($STRICTFILECONTROL) { if (index(lc($datafile), lc('.t3d')) != -1) { ##Happy } else { die "not .t3d file and strict file control is on"; } } } else { $datafile = $fallbackdatafile; } #sub rotation_for_obj_from_mc ($x) #{ # return (((65536 - $x) / 65536) * 360); #} sub unr_rotation_to_deg #($x) { my $x = $_[0]; #had to add return (($x) * (360 / 65535)); } sub rotation_convert #($unrnum) { my $unrnum = $_[0]; #had to add my $v; $v = &unr_rotation_to_deg ($unrnum); if ($v > 180) { $v -= 360; } if ($v < -180) { $v += 360; } return $v; } #test_hsv_to_rgb(); sub test_hsv_to_rgb { #$hue = 28; #$saturation = 32; #$brightness = 96; if (!$hue ) { $hue = 28; $saturation = 255; $brightness = 128; } print("H $hue S $saturation B $brightness\n"); print("Algo: $hsvalgo "); setstringhsvinfo(); print("$hsvalgousedstring\n"); hsv_to_rgb(); print("$color_r $color_g $color_b\n"); print($color_r*255,' ', $color_g*255,' ', $color_b*255,' ', "\n"); if ($printmode_testhsv_sa_br_hue) { print("\t",'"','color','"',' '); print('"',"$color_r $color_g $color_b",'"'); print("\n"); print("\t",'"','b_Rgb','"',' '); print('"',"$b_Red $b_Green $b_Blue",'"'); print("\n"); } print("saturation(0..255) brightness(0..255) hue(0..255)\n"); print("$saturation $brightness $hue\n"); exit; } sub hsv_to_rgb { if ($hsvalgo == 1 || !$hsvalgo) { myhsv_to_rgb(); } elsif ($hsvalgo == 2) { hsv_to_rgb___std_win(); #240 version } elsif ($hsvalgo == 3) { hsv_to_rgbprev(); #Used this for a time } elsif ($hsvalgo == 4) { hsv_to_rgbanothertry(); #Algo that combines } elsif ($hsvalgo == 5) { althsv_to_rgb(); } } #information to print regarding which algo was used #done here so as not to waste time sub setstringhsvinfo { if ($hsvalgo == 1 || !$hsvalgo) { $hsvalgousedstring = 'myhsv_to_rgb'; } elsif ($hsvalgo == 2) { $hsvalgousedstring = 'hsv_to_rgb___std_win'; } elsif ($hsvalgo == 3) { $hsvalgousedstring = 'hsv_to_rgbprev'; } elsif ($hsvalgo == 4) { $hsvalgousedstring = 'hsv_to_rgbanothertry'; } elsif ($hsvalgo == 5) { $hsvalgousedstring = 'althsv_to_rgb'; } } ########################################################################################## ########################################################################################## sub myhsv_to_rgb { hueapply(); betweenhues(); #deals with hues not in the 16 table saturationapply(); brightnessapply(); } #These are the subroutines that do the work #apply them in succession to get the rgb 0..1 color: #set: $hue $saturation $brightness # hueapply(); # saturationapply(); # brightnessapply(); #get: $color_r $color_b $color_g sub formatforrgb { $red = $b_Red/255; $green = $b_Green/255; $blue = $b_Blue/255; } sub betweenhues { $oldhue = $hue; #save betweenhues_interior(); formatforrgb(); $hue = $oldhue; #restore } sub setbColor0 { $b_Red0 = $b_Red; $b_Green0 = $b_Green; $b_Blue0 = $b_Blue; } sub setbColor1 { $b_Red1 = $b_Red; $b_Green1 = $b_Green; $b_Blue1 = $b_Blue; } #sub betweenhues_interior #{ # if ($oldhue > 240 && $oldhue < 255) { # print("hello!\n"); # $hue = 240; hueapply(); setbColor0(); # $hue = 255; hueapply(); setbColor1(); # $myrange = 255 - 240; #15 # $myfrombottom = $oldhue - 240; #ex: 241 - 240 = 1 # $myfromtop = 255 - $oldhue; #ex: 255 - 241 = 14 # # $bottomweight = $myfromtop/$myrange; # $topweight = $myfrombottom/$myrange; # # $b_Red = ($b_Red0 * $bottomweight) + ($b_Red1 * $topweight); # $b_Green = ($b_Green0 * $bottomweight) + ($b_Green1 * $topweight); # $b_Blue = ($b_Blue0 * $bottomweight) + ($b_Blue1 * $topweight); # } #} sub betweenhues_interior { $lownum = 0; $highnum = 0; #(0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 255); if ($oldhue > 240 && $oldhue < 255) { $lownum = 240; $highnum = 255; } elsif ($oldhue > 224 && $oldhue < 240) { $lownum = 224; $highnum = 240; } elsif ($oldhue > 208 && $oldhue < 224) { $lownum = 208; $highnum = 224; } elsif ($oldhue > 192 && $oldhue < 208) { $lownum = 192; $highnum = 208; } elsif ($oldhue > 176 && $oldhue < 192) { $lownum = 176; $highnum = 192; } elsif ($oldhue > 144 && $oldhue < 176) { $lownum = 144; $highnum = 176; } elsif ($oldhue > 128 && $oldhue < 144) { $lownum = 128; $highnum = 144; } elsif ($oldhue > 112 && $oldhue < 128) { $lownum = 112; $highnum = 128; } elsif ($oldhue > 96 && $oldhue < 112) { $lownum = 96; $highnum = 112; } elsif ($oldhue > 80 && $oldhue < 96) { $lownum = 80; $highnum = 96; } elsif ($oldhue > 64 && $oldhue < 80) { $lownum = 64; $highnum = 80; } elsif ($oldhue > 48 && $oldhue < 64) { $lownum = 48; $highnum = 64; } elsif ($oldhue > 32 && $oldhue < 48) { $lownum = 32; $highnum = 48; } elsif ($oldhue > 16 && $oldhue < 32) { $lownum = 16; $highnum = 32; } elsif ($oldhue > 0 && $oldhue < 16) { $lownum = 0; $highnum = 16; } if ($lownum || $highnum) { betweenhues_interior_interior(); } else { #Do nothing as we are spot on one of the table values } } sub betweenhues_interior_interior { if ($oldhue > $lownum && $oldhue < $highnum) { #print("hello!\n"); $hue = $lownum; hueapply(); setbColor0(); $hue = $highnum; hueapply(); setbColor1(); $myrange = $highnum - $lownum; #15 $myfrombottom = $oldhue - $lownum; #ex: 241 - $lownum = 1 $myfromtop = $highnum - $oldhue; #ex: $highnum - 241 = 14 $bottomweight = $myfromtop/$myrange; $topweight = $myfrombottom/$myrange; $b_Red = ($b_Red0 * $bottomweight) + ($b_Red1 * $topweight); $b_Green = ($b_Green0 * $bottomweight) + ($b_Green1 * $topweight); $b_Blue = ($b_Blue0 * $bottomweight) + ($b_Blue1 * $topweight); #format removing decimals $b_Red = int($b_Red); $b_Green = int($b_Green); $b_Blue = int($b_Blue); } } ##test #$hue = 241; $hue=$originalhuefromcommandline; hueapply(); #betweenhues(); #print("\t",'"','b_Rgb','"',' '); print('"',"$b_Red $b_Green $b_Blue",'"'); print("\n"); sub hueapply { $b_Red = 0; $b_Green = 0; $b_Blue = 0; if ($hue >= 255) { #FF0000 Below $b_Red = 255; $b_Green = 0; $b_Blue = 0; } elsif ($hue >= 240) {#E50030 Below $b_Red = 229; $b_Green = 0; $b_Blue = 48; } elsif ($hue >= 224) {#B20061 Below $b_Red = 178; $b_Green = 0; $b_Blue = 97; } elsif ($hue >= 208) {#8300A3 Below $b_Red = 131; $b_Green = 0; $b_Blue = 163; } elsif ($hue >= 192) {#4200D5 Below $b_Red = 66; $b_Green = 0; $b_Blue = 213; } elsif ($hue >= 176) {#1000FE Below $b_Red = 16; $b_Green = 0; $b_Blue = 254; } elsif ($hue >= 160) {#001EEA Below $b_Red = 0; $b_Green = 30; $b_Blue = 234; } elsif ($hue >= 144) {#0052BA Below $b_Red = 0; $b_Green = 82; $b_Blue = 186; } elsif ($hue >= 128) {#008388 Below $b_Red = 0; $b_Green = 131; $b_Blue = 136; } elsif ($hue >= 112) { #00B255 Below $b_Red = 0; $b_Green = 178; $b_Blue = 85; } elsif ($hue >= 96) { #00E820 Below $b_Red = 0; $b_Green = 232; $b_Blue = 32; } elsif ($hue >= 80) { #10F600 Below $b_Red = 16; $b_Green = 246; $b_Blue = 0; } elsif ($hue >= 64) { #42CA00 Below $b_Red = 66; $b_Green = 202; $b_Blue = 0; } elsif ($hue >= 48) { #84A500 Below $b_Red = 132; $b_Green = 165; $b_Blue = 0; } elsif ($hue >= 32) { #B16700 Below $b_Red = 177; $b_Green = 103; $b_Blue = 0; } elsif ($hue >= 16) {#CF2E00 Below $b_Red = 207; $b_Green = 46; $b_Blue = 0; } elsif ($hue >= 0) { #FF0000 Below $b_Red = 255; $b_Green = 0; $b_Blue = 0; } $red = $b_Red/255; $green = $b_Green/255; $blue = $b_Blue/255; } sub saturationapply { $whiteamnt = $saturation/255; $coloramnt = 1 - $whiteamnt; $pre_color_r = $red * $coloramnt; $pre_color_g = $green * $coloramnt; $pre_color_b = $blue * $coloramnt; $color_r = $pre_color_r + $whiteamnt; $color_g = $pre_color_g + $whiteamnt; $color_b = $pre_color_b + $whiteamnt; } sub brightnessapply { $color_r = $color_r * ($brightness/255); $color_g = $color_g * ($brightness/255); $color_b = $color_b * ($brightness/255); } #above are needed ############################################################ ########################################################################################## ########################################################################################## # Various other hsv algos #sub max ($$) { $_[$_[0] < $_[1]] } sub min ($$) { $_[$_[0] > $_[1]] } sub hsv_to_rgb___std_win #trying with 240 value #this was the standard for awhile { my $offset_saturation = 0; $color_r = 0; $color_g = 0; $color_b = 0; #$hue #H #$saturation #S #$brightness #L #added if ($hue < 0) { $hue = (240 - $hue) % 240; } else { $hue = $hue % 240; } #added #Different way if ($hue < 80) { $color_r = min(255, 255 * (80 - $hue) / 40); } elsif ($hue > 160) { $color_r = min(255, 255 * ($hue - 160) / 40); } if ($hue < 160) { $color_g = min(255, 255 * (80 - abs($hue - 80)) / 40); } if ($hue > 80) { $color_b = min(255, 255 * (80 - abs($hue - 160)) / 40); } #Different way if ($saturation < 240) { $color_r = $color_r * ($saturation / 240); $color_g = $color_g * ($saturation / 240); $color_b = $color_b * ($saturation / 240); $offset_saturation = 128 * (240 - $saturation) / 240; $color_r += $offset_saturation; $color_g += $offset_saturation; $color_b += $offset_saturation; } #Different way $brightness = min(255, $brightness); $color_r = $color_r * ((120 - abs($brightness - 120)) / 120); $color_g = $color_g * ((120 - abs($brightness - 120)) / 120); $color_b = $color_b * ((120 - abs($brightness - 120)) / 120); if ($brightness > 120) { $offset_brightness = 256 * ($brightness - 120) / 120; $color_r += $offset_brightness; $color_g += $offset_brightness; $color_b += $offset_brightness; } #Different way $color_r = $color_r / 256; $color_g = $color_g / 256; $color_b = $color_b / 256; #format $color_r = eval sprintf('%.6f', $color_r); $color_g = eval sprintf('%.6f', $color_g); $color_b = eval sprintf('%.6f', $color_b); } sub hsv_to_rgbanothertry #too green { my $offset_saturation = 0; $color_r = 0; $color_g = 0; $color_b = 0; #$hue #H #$saturation #S #$brightness #L #Different way if ($hue < 85) { $color_r = min(255, 255 * (85 - $hue) / 42.5); } elsif ($hue > 170) { $color_r = min(255, 255 * ($hue - 170) / 42.5); } if ($hue < 170) { $color_g = min(255, 255 * (85 - abs($hue - 85)) / 42.5); } if ($hue > 85) { $color_b = min(255, 255 * (85 - abs($hue - 170)) / 42.5); } #Different way if ($saturation < 255) { $color_r = $color_r * ($saturation / 255); $color_g = $color_g * ($saturation / 255); $color_b = $color_b * ($saturation / 255); $offset_saturation = 128 * (255 - $saturation) / 255; $color_r += $offset_saturation; $color_g += $offset_saturation; $color_b += $offset_saturation; } #Different way $brightness = min(255, $brightness); $color_r = $color_r * ((120 - abs($brightness - 120)) / 120); $color_g = $color_g * ((120 - abs($brightness - 120)) / 120); $color_b = $color_b * ((120 - abs($brightness - 120)) / 120); if ($brightness > 120) { $offset_brightness = 256 * ($brightness - 120) / 120; $color_r += $offset_brightness; $color_g += $offset_brightness; $color_b += $offset_brightness; } #Different way $color_r = $color_r / 256; $color_g = $color_g / 256; $color_b = $color_b / 256; #format $color_r = eval sprintf('%.6f', $color_r); $color_g = eval sprintf('%.6f', $color_g); $color_b = eval sprintf('%.6f', $color_b); } sub hsv_to_rgbprev #ok, not as blue as supposed to { my $offset_saturation = 0; $color_r = 0; $color_g = 0; $color_b = 0; #$hue #H #$saturation #S #$brightness #L #Different way if ($hue < 80) { $color_r = min(255, 255 * (80 - $hue) / 40); } elsif ($hue > 160) { $color_r = min(255, 255 * ($hue - 160) / 40); } if ($hue < 160) { $color_g = min(255, 255 * (80 - abs($hue - 80)) / 40); } if ($hue > 80) { $color_b = min(255, 255 * (80 - abs($hue - 160)) / 40); } #Different way if ($saturation < 255) { $color_r = $color_r * ($saturation / 255); $color_g = $color_g * ($saturation / 255); $color_b = $color_b * ($saturation / 255); $offset_saturation = 128 * (255 - $saturation) / 255; $color_r += $offset_saturation; $color_g += $offset_saturation; $color_b += $offset_saturation; } #Different way $brightness = min(255, $brightness); $color_r = $color_r * ((120 - abs($brightness - 120)) / 120); $color_g = $color_g * ((120 - abs($brightness - 120)) / 120); $color_b = $color_b * ((120 - abs($brightness - 120)) / 120); if ($brightness > 120) { $offset_brightness = 256 * ($brightness - 120) / 120; $color_r += $offset_brightness; $color_g += $offset_brightness; $color_b += $offset_brightness; } #Different way $color_r = $color_r / 256; $color_g = $color_g / 256; $color_b = $color_b / 256; #format $color_r = eval sprintf('%.6f', $color_r); $color_g = eval sprintf('%.6f', $color_g); $color_b = eval sprintf('%.6f', $color_b); } sub althsv_to_rgb { my $offset_saturation = 0; $color_r = 0; $color_g = 0; $color_b = 0; #$hue #H #$saturation #S #$brightness #L $saturation = 255 - $saturation; #Tried if ($hue < 85) { $color_r = min(1, (85 - $hue) / 42.5); } elsif ($hue > 170) { $color_r = min(1, ($hue - 170) / 42.5); } if ($hue < 170) { $color_g = min(1, (85 - abs($hue - 85)) / 42.5); } if ($hue > 85) { $color_b = min(1, (85 - abs($hue - 170)) / 42.5); } if ($saturation < 255) { $color_r = $color_r * ($saturation / 255); $color_g = $color_g * ($saturation / 255); $color_b = $color_b * ($saturation / 255); $offset_saturation = 128 * (255 - $saturation) / 255; $color_r += $offset_saturation; $color_g += $offset_saturation; $color_b += $offset_saturation; } #Tried $color_r = ((255 - abs($brightness - 255)) / 255); $color_g = ((255 - abs($brightness - 255)) / 255); $color_b = ((255 - abs($brightness - 255)) / 255); #format $color_r = eval sprintf('%.6f', $color_r); $color_g = eval sprintf('%.6f', $color_g); $color_b = eval sprintf('%.6f', $color_b); } setdefault_light_and_radius_maybe(); sub prc #printcommentifunknownmover { if ($dostuff == 2001 && $is_mover) { print $output ('//'); print $output ('#'); } } sub soundguessfornoiseofsecretdoormovers { if ($openingnoise_formover) { $specialextrastuffname = 'noise3'; $specialextrastuffamnt = "$openingnoise_formover".'.wav'; #note can also do it: #$specialextrastuffamnt = $openingnoise_formover; # #$specialextrastuffamnt .= '.wav'; } if ($moveambientnoise_formover) { $specialextrastuffname0 = 'noise2'; $specialextrastuffamnt0 = "$moveambientnoise_formover".'.wav'; } if ($closingingnoise_formover) { $specialextrastuffname1 = 'noise1'; $specialextrastuffamnt1 = "$closingingnoise_formover".'.wav'; } } sub soundguessfornoiseofliftmovers { if ($openingnoise_formover) { $specialextrastuffname = 'noise1'; $specialextrastuffamnt = "$openingnoise_formover".'.wav'; #note can also do it: #$specialextrastuffamnt = $openingnoise_formover; # #$specialextrastuffamnt .= '.wav'; } if ($moveambientnoise_formover) { $specialextrastuffname0 = 'noise2'; $specialextrastuffamnt0 = "$moveambientnoise_formover".'.wav'; } } sub soundguessfornoiseofrotatingdoortrapmovers { if ($openingnoise_formover) { $specialextrastuffname = 'noise1'; $specialextrastuffamnt = "$openingnoise_formover".'.wav'; } if ($closingnoise_formover) { $specialextrastuffname0 = 'noise2'; $specialextrastuffamnt0 = "$closingnoise_formover".'.wav'; } } sub othergeneralstuffformovers { if ($mover_encroachtype = 1) { #crush if ($mover_encroachdamage) { $specialextrastuffname1 = 'dmg'; $specialextrastuffamnt1 = $mover_encroachdamage; } } } sub setmovetimeifnotset { if ($mover_movetime) { #do nothing } else { $mover_movetime = 1; #one second } } sub speedguessformovers { if ($mover_movetime) { if ($mover_movetime != 0) { #had to add extra check for things like "00.000000" $speed = $default_mover_speed / $mover_movetime; } } } if ($WATERLAVASLIMEZONESAREPRINTEDATEND && $DOWATERLAVASLIMEZONES) { $var = ""; open $fh, '>', \$var; #print $fh "////asdf"; } open (FILE, "$datafile") || die "can't open file because $!"; while (my $line = ) { if ($DEBUGPRINTS > 1) {print ("!!!!! $line");} $thing = $line; # #The point of this is to iterate through a t3d file and look for things to print in the entity format # open (FILE, 'data.t3d'); #for data mode # #while () { #for data mode # while (<>) { #attempt for data mode # #while (1) { #for pasting mode $beforeequals = ""; $afterequals = ""; $islocationline = 0; $isrotationline = 0; $isrotationrateline = 0; $islight_hueline = 0; $islight_saturationline = 0; $islight_brightnessline = 0; $islightradiusline = 0; $isambientsoundline = 0; # $isbaseposline_formover = 0; #Seems to be same as location $iskeyrotline_formover = 0; #where to rotate $iskeyposline_formover = 0; $iskeypos2line_formover = 0; $issavedposline_formover = 0; #is by default: (X=-12345.000000,Y=-12345.000000,Z=-12345.000000) $isviewfogline = 0; $issavedrotline_formover = 0; #is by default: (Pitch=123,Yaw=456,Roll=789) $isencroachdamageline_formover = 0; $isdrawscaleline = 0; $isencroachtypeline_formover = 0; $istagline_formover = 0; $isbumpeventline_formover = 0; $isopeningsoundline_formover = 0; $isclosingsoundline_formover = 0; $isclosingingsoundline_formover = 0; $ismoveambientsoundline_formover = 0; $isbumptypeline_formover = 0; $ismovetimeline_formover = 0; $isvertexline_a_formover = 0; #one of many $isinitialstateline_formover = 0; $ismoverglidetypeline_formover = 0; $iseventline_formover = 0; $isbdamagetriggeredline_formover = 0; $isdamagethresholdline_formover = 0; $isstayopentimeline_formover = 0; $isbpainzoneline = 0; $isbwaterzoneline = 0; $isbslimezoneline = 0; $isblavazoneline = 0; $isbkillzoneline = 0; $isdamagetypeline = 0; $is_Skin_line = 0; #forcorona $isdamagepersecondline = 0; $isanimsequenceline = 0; $isurlline = 0; $iscoronaline = 0; # ##$thing = ; #for pasting mode # ##chomp($thing); #for pasting mode # #$thing = chomp($_); #for data mode # $thing = ; #attempt for data mode # chomp($thing); #attempt for data mode # #$thing = chomp; #attempt for data mode2 chomp($thing); if ($thing eq 'End Actor') { if ($DEBUGPRINTS) { print(" **** Says End Actor\n"); } $endnow = 1; $ignoreingalllinesinbrush = 0; } elsif (index(lc($thing), lc('End Actor')) != -1) { if ($DEBUGPRINTS) { print "contains end actor\n"; } $endnow = 1; $ignoreingalllinesinbrush = 0; } elsif ($ignoreingalllinesinbrush == 1) { if ($DEBUGPRINTS) { print(" _____I\n"); } } elsif (index(lc($thing), lc('Begin Actor Class=Brush')) != -1) { if ($DEBUGPRINTS) { print "actor class brush wait till past maybe\n"; } $ignoreingalllinesinbrush = 1; } elsif (index(lc($thing), lc('Begin Actor')) != -1) { if ($DEBUGPRINTS) { print "ignoring begin actor line so does not conflict with ambient sound\n"; } } elsif ((index(lc($thing), lc(' Name="')) != -1) && ($OMITNAMELINECONTAININGACTIVELINE_FIX)) { #//Ignore this line, has a name of something that breaks our script #//Saw in a map so adding this fix, #//We don't use the name line for anything right now #//Included the "tab" (really blank spaces) as that's how the files put this out and want to avoid others #//Added for (talltowa) #//That is: the name line, which is not yet used, has one of the following in it for some reason" } elsif (index(lc($thing), lc('Location')) != -1) { if ($DEBUGPRINTS) { print "$thing contains Location\n"; } $islocationline = 1; } elsif (index(lc($thing), lc('RotationRate')) != -1) { if ($DEBUGPRINTS) { print "$thing contains Rotation\n"; } $isrotationrateline = 1; #had to do before rotation so wont conflict } elsif (index(lc($thing), lc('Rotation')) != -1) { if ($DEBUGPRINTS) { print "$thing contains Rotation\n"; } $isrotationline = 1; } elsif (index(lc($thing), lc('LightHue')) != -1) { $islight_hueline = 1; } elsif (index(lc($thing), lc('LightSaturation')) != -1) { $islight_saturationline = 1; } elsif (index(lc($thing), lc('LightBrightness')) != -1) { $islight_brightnessline = 1; } elsif (index(lc($thing), lc('LightRadius')) != -1) { $islightradiusline = 1; } elsif (index(lc($thing), lc('MoveAmbientSound')) != -1) { $ismoveambientsoundline_formover = 1; } elsif (index(lc($thing), lc('OpenedSound')) != -1) { $isopeningsoundline_formover = 1; } elsif (index(lc($thing), lc('ClosedSound')) != -1) { $isclosingsoundline_formover = 1; } elsif (index(lc($thing), lc('ClosingSound')) != -1) { $isclosingingsoundline_formover = 1; } elsif (index(lc($thing), lc('AmbientSound')) != -1) { if ($DEBUGPRINTS) { print "$thing contains AmbientSound\n"; } $isambientsoundline = 1; #Mover stuff, omitted if not mover } elsif ( (index(lc($thing), lc('BasePos')) != -1) && ($is_mover) ) { $isbaseposline_formover = 1; #seems to be same as origin for the movers we're interested in so far } elsif ( (index(lc($thing), lc('KeyRot')) != -1) && ($is_mover) ) { #really KeyRot(1) $iskeyrotline_formover = 1; #when only the Y is set it is a rotating down floor trap } elsif ( (index(lc($thing), lc('SavedPos')) != -1) && ($is_mover) ) { $issavedposline_formover = 1; #set to (X=-12345.000000,Y=-12345.000000,Z=-12345.000000) #for the movers we are interested so far } elsif ( (index(lc($thing), lc('SavedRot')) != -1) && ($is_mover) ) { $issavedrotline_formover = 1; #Set to (Pitch=123,Yaw=456,Roll=789) for the movers we are interested in so far } elsif ( (index(lc($thing), lc('EncroachDamage')) != -1) && ($is_mover) ) { $isencroachdamageline_formover = 1; #Examples we've seen so far are EncroachDamage=1000000 for crusher and trap floors } elsif ( (index(lc($thing), lc('MoverEncroachType')) != -1) && ($is_mover) ) { $isencroachtypeline_formover = 1; #MoverEncroachType=ME_CrushWhenEncroach is what we've seen so far } elsif ( (index(lc($thing), lc('Tag')) != -1) && ($is_mover || $is_allowed_even_if_not_mover) ) { $istagline_formover = 1; #MoverEncroachType=ME_CrushWhenEncroach is what we've seen so far } elsif ( (index(lc($thing), lc('BumpEvent')) != -1) && ($is_mover) ) { $isbumpeventline_formover = 1; #MoverEncroachType=ME_CrushWhenEncroach is what we've seen so far } elsif ( (index(lc($thing), lc('BumpType')) != -1) && ($is_mover) ) { $isbumptypeline_formover = 1; #MoverEncroachType=ME_CrushWhenEncroach is what we've seen so far } elsif ( (index(lc($thing), lc('MoverGlideType')) != -1) && ($is_mover) ) { $ismoverglidetypeline_formover = 1; #MoverEncroachType=ME_CrushWhenEncroach is what we've seen so far } elsif ( (index(lc($thing), lc('MoveTime')) != -1) && ($is_mover) ) { $ismovetimeline_formover = 1; #MoverEncroachType=ME_CrushWhenEncroach is what we've seen so far } elsif ( (index(lc($thing), lc('KeyPos(2)')) != -1) && ($is_mover) ) { #really KeyPos(2) $iskeypos2line_formover = 1; #was an error had as 0 } elsif ( (index(lc($thing), lc('KeyPos')) != -1) && ($is_mover) ) { #really KeyPos(1) $iskeyposline_formover = 1; #was an error had as 0 } elsif ( (index(lc($thing), lc('Vertex')) != -1) && ($is_mover) ) { #Vertex -00008.000000,+00016.000000,-00016.000000 $isvertexline_a_formover = 1; #one of many } elsif ( (index(lc($thing), lc('Drawscale')) != -1)) { $isdrawscaleline = 1; #Examples we've seen so far are DrawScale=6.250000 for fan } elsif ( (index(lc($thing), lc('InitialState')) != -1) && ($is_mover) ) { $isinitialstateline_formover = 1; } elsif ( (index(lc($thing), lc('Event')) != -1) && ($is_mover || $is_allowed_even_if_not_mover) ) { $iseventline_formover = 1; } elsif ( (index(lc($thing), lc('bDamageTriggered')) != -1) && ($is_mover) ) { $isbdamagetriggeredline_formover = 1; } elsif ( (index(lc($thing), lc('DamageThreshold')) != -1) && ($is_mover) ) { $isdamagethresholdline_formover = 1; } elsif ( (index(lc($thing), lc('StayOpenTime')) != -1) && ($is_mover) ) { $isstayopentimeline_formover = 1; } elsif ( (index(lc($thing), lc('bPainZone')) != -1) ) { $isbpainzoneline = 1; } elsif ( (index(lc($thing), lc('DamagePerSec')) != -1) ) { $isdamagepersecondline = 1; } elsif ( (index(lc($thing), lc('AnimSequence')) != -1) ) { $isanimsequenceline = 1; } elsif ( (index($thing, 'URL') != -1) ) { $isurlline = 1; } elsif ( (index(lc($thing), lc('bCorona')) != -1) ) { $iscoronaline = 1; } elsif ( (index(lc($thing), lc('Skin')) != -1) ) { $is_Skin_line = 1; #forcorona } elsif ( (index(lc($thing), lc('bWaterZone')) != -1) ) { $isbwaterzoneline = 1; } elsif ( (index(lc($thing), lc('bLavaZone')) != -1) ) { $isbslimezoneline = 1; } elsif ( (index(lc($thing), lc('bSlimeZone')) != -1) ) { $isblavazoneline = 1; } elsif ( (index(lc($thing), lc('bKillZone')) != -1) ) { $isbkillzoneline = 1; } elsif ( (index(lc($thing), lc('DamageType')) != -1) ) { $isdamagetypeline = 1; } elsif ( (index(lc($thing), lc('ViewFog')) != -1) ) { $isviewfogline = 1; } else { if ($DEBUGPRINTS) { print(" _____Nothing\n"); } #$dostuff = 0; } if ($ignoreingalllinesinbrush == 1) { if ($DEBUGPRINTS) { print(" _____IgnoringBrush\n"); } ############### #Actual origin } elsif ($islocationline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSLOCATIONLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $origin_x = 0; $origin_y = 0; $origin_z = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'X') { $origin_x = $afterequals; } elsif ($beforeequals eq 'Y') { $origin_y = $afterequals; } elsif ($beforeequals eq 'Z') { $origin_z = $afterequals; } } #BELOW: FOR MOVER, but seems to be same as location } elsif ($isbaseposline_formover) { #origin type ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSBASEPOSLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_basepos_origin_x = 0; $mover_basepos_origin_y = 0; $mover_basepos_origin_z = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'X') { $mover_basepos_origin_x = $afterequals; } elsif ($beforeequals eq 'Y') { $mover_basepos_origin_y = $afterequals; } elsif ($beforeequals eq 'Z') { $mover_basepos_origin_z = $afterequals; } } #BELOW: FOR MOVER } elsif ($issavedposline_formover) { #origin type ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSBASEPOSLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $saved_mover_basepos_origin_x = 0; $saved_mover_basepos_origin_y = 0; $saved_mover_basepos_origin_z = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'X') { $saved_mover_basepos_origin_x = $afterequals; } elsif ($beforeequals eq 'Y') { $saved_mover_basepos_origin_y = $afterequals; } elsif ($beforeequals eq 'Z') { $saved_mover_basepos_origin_z = $afterequals; } } } elsif ($isviewfogline) { #origin type ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSBASEPOSLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $viewfogused = 1; $view_fog_rgbaspos_origin_x = 0; $view_fog_rgbaspos_origin_y = 0; $view_fog_rgbaspos_origin_z = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'X') { $view_fog_rgbaspos_origin_x = $afterequals; } elsif ($beforeequals eq 'Y') { $view_fog_rgbaspos_origin_y = $afterequals; } elsif ($beforeequals eq 'Z') { $view_fog_rgbaspos_origin_z = $afterequals; } } } elsif ($iskeyposline_formover) { #origin type ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSBASEPOSLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $moverkey_pos_origin_x = 0; $moverkey_pos_origin_y = 0; $moverkey_pos_origin_z = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'X') { $moverkey_pos_origin_x = $afterequals; } elsif ($beforeequals eq 'Y') { $moverkey_pos_origin_y = $afterequals; } elsif ($beforeequals eq 'Z') { $moverkey_pos_origin_z = $afterequals; } } } elsif ($iskeypos2line_formover) { #origin type ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSBASEPOSLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $moverkey_pos2_origin_x = 0; $moverkey_pos2_origin_y = 0; $moverkey_pos2_origin_z = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'X') { $moverkey_pos2_origin_x = $afterequals; } elsif ($beforeequals eq 'Y') { $moverkey_pos2_origin_y = $afterequals; } elsif ($beforeequals eq 'Z') { $moverkey_pos2_origin_z = $afterequals; } } } elsif ($isvertexline_a_formover) { #origin type my $temp_vertex_x; my $temp_vertex_y; my $temp_vertex_z; my $temp_num; #print("try1111\n"); ($beforeequals, $afterequals) = split("Vertex",$thing,2); # if (1 || $DEBUGPRINTS) { print("AFTEREQUALSVERTEXLINE ***$afterequals\n"); } #$afterequals =~ s/\(//; #$afterequals =~ s/\)//; # if (1 || $DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $temp_vertex_x = 0; $temp_vertex_y = 0; $temp_vertex_z = 0; $temp_num = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { $temp_num++; #Increase it first # if (1 || $DEBUGPRINTS) { print("$token\n"); } # #Getrid of whitespaces etc to get rid of carraigertrn ## $token =~ s/\A\s+//s; ## $token =~ s/\s+\Z//s; ## # #Getrid of whitespaces etc to get rid of carraigertrn ## if ($temp_num == 1) { $temp_vertex_x = 0 + $token; #Adding the 0 gets it into number format } elsif ($temp_num == 2) { $temp_vertex_y = 0 + $token; } elsif ($temp_num == 3) { $temp_vertex_z = 0 + $token; } } #if (1 || $DEBUGPRINTS) { print("$temp_vertex_x $temp_vertex_y $temp_vertex_z\n\n"); } if ($temp_vertex_z > $formover_maximum_seen_vertex_z) { $formover_maximum_seen_vertex_z = $temp_vertex_z; } if ($temp_vertex_x > $formover_maximum_seen_vertex_x) { $formover_maximum_seen_vertex_x = $temp_vertex_x; } if ($temp_vertex_y > $formover_maximum_seen_vertex_y) { $formover_maximum_seen_vertex_y = $temp_vertex_y; } if ($temp_vertex_z < $formover_littlest_seen_vertex_z) { $formover_littlest_seen_vertex_z = $temp_vertex_z; } if ($temp_vertex_x < $formover_littlest_seen_vertex_x) { $formover_littlest_seen_vertex_x = $temp_vertex_x; } if ($temp_vertex_y < $formover_littlest_seen_vertex_y) { $formover_littlest_seen_vertex_y = $temp_vertex_y; } ############### #Rotation lines } elsif ($isrotationline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSROTATIONLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $rotation_pitch = 0; $rotation_yaw = 0; $rotation_roll = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'Pitch') { $rotation_pitch = $afterequals; } elsif ($beforeequals eq 'Yaw') { $rotation_yaw = $afterequals; } elsif ($beforeequals eq 'Roll') { $rotation_roll = $afterequals; } } #speed of rotation for movers and fans } elsif ($isrotationrateline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSROTATIONRATELINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $rotationrate_pitch = 0; $rotationrate_yaw = 0; $rotationrate_roll = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'Pitch') { $rotationrate_pitch = $afterequals; } elsif ($beforeequals eq 'Yaw') { $rotationrate_yaw = $afterequals; } elsif ($beforeequals eq 'Roll') { $rotationrate_roll = $afterequals; } } #BELOW: FOR MOVER } elsif ($iskeyrotline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSKEYROTATIONLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $moverkey_rotation_pitch = 0; $moverkey_rotation_yaw = 0; $moverkey_rotation_roll = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'Pitch') { $moverkey_rotation_pitch = $afterequals; } elsif ($beforeequals eq 'Yaw') { $moverkey_rotation_yaw = $afterequals; } elsif ($beforeequals eq 'Roll') { $moverkey_rotation_roll = $afterequals; } } #BELOW: FOR MOVER } elsif ($issavedrotline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("AFTEREQUALSSAVEDKEYROTATIONLINE ***$afterequals\n"); } $afterequals =~ s/\(//; $afterequals =~ s/\)//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $saved_moverkey_rotation_pitch = 0; $saved_moverkey_rotation_yaw = 0; $saved_moverkey_rotation_roll = 0; @tokens = split(/,/, $afterequals); foreach my $token (@tokens) { if ($DEBUGPRINTS) { print("$token\n"); } ($beforeequals, $afterequals) = split("=",$token,2); if ($DEBUGPRINTS) { print(" $beforeequals\n"); } if ($DEBUGPRINTS) { print(" $afterequals\n"); } #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($beforeequals eq 'Pitch') { $saved_moverkey_rotation_pitch = $afterequals; } elsif ($beforeequals eq 'Yaw') { $saved_moverkey_rotation_yaw = $afterequals; } elsif ($beforeequals eq 'Roll') { $saved_moverkey_rotation_roll = $afterequals; } } ############### # } elsif ($isencroachdamageline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSENCROACHDMG ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_encroachdamage = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_encroachdamage = $afterequals; # } elsif ($isdrawscaleline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSDRAWSCALE ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $drawscale = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $drawscale = $afterequals; # } elsif ($isencroachtypeline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSENCROACHTYPE ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_encroachtype = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($afterequals eq 'ME_CrushWhenEncroach') { $mover_encroachtype = 1; } elsif ($afterequals eq 'ME_IgnoreWhenEncroach') { $mover_encroachtype = 2; } } elsif ($isbumptypeline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPTYPE ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_bumptype = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($afterequals eq 'BT_AnyBump') { $mover_bumptype = 1; } elsif ($afterequals eq 'BT_PawnBump') { $mover_bumptype = 2; } } elsif ($ismoverglidetypeline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPTYPE ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_bumptype = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($afterequals eq 'MV_MoveByTime') { $mover_moverglidetype = 1; } } elsif ($ismovetimeline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_movetime = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_movetime = $afterequals; $mover_movetimewasset = 1; #sometimes it's 0, so make sure we let know it was read for some movers who have intentionally set it to 0 } elsif ($isstayopentimeline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_stayopentime = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_stayopentime = $afterequals; $mover_stayopentimewasset = 1; #sometimes it's 0, so make sure we let know it was read for some movers who have intentionally set it to 0 } elsif ($isbpainzoneline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $bpainzone_true_or_false = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $bpainzone_true_or_false = $afterequals; } elsif ($isbwaterzoneline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $bwaterzone_true_or_false = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $bwaterzone_true_or_false = $afterequals; } elsif ($isbslimezoneline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $bslimezone_true_or_false = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $bslimezone_true_or_false = $afterequals; } elsif ($isblavazoneline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $blavazone_true_or_false = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $blavazone_true_or_false = $afterequals; } elsif ($isbkillzoneline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $bkillzone_true_or_false = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $bkillzone_true_or_false = $afterequals; } elsif ($isdamagetypeline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } $afterequals =~ s/\"//g; #get rid of " globally in string if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $damagetype_lineinfo = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $damagetype_lineinfo = $afterequals; } elsif ($iscoronaline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $bcorona_true_or_false = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $bcorona_true_or_false = $afterequals; } elsif ($is_Skin_line) { #for corona ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $lineset_capital_Skin = ''; #for corona #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $lineset_capital_Skin = $afterequals; #for corona } elsif ($isdamagepersecondline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $damagepersecond = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $damagepersecond = $afterequals; } elsif ($isanimsequenceline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPEVENT ***$afterequals\n"); } $afterequals =~ s/\"//g; #get rid of " globally in string if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $animsequence = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $animsequence = $afterequals; } elsif ($isurlline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPEVENT ***$afterequals\n"); } $afterequals =~ s/\"//g; #get rid of " globally in string if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $url = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $url = $afterequals; } elsif ($isbdamagetriggeredline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_bdamagetriggered = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_bdamagetriggered = $afterequals; } elsif ($isdamagethresholdline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSMOVETIME ***$afterequals\n"); } if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_damagethreshold = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_damagethreshold = $afterequals; } elsif ($istagline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSTAG ***$afterequals\n"); } $afterequals =~ s/\"//g;# used g for global #get rid of " #since set to s///g this gets rid of all "'s in string, not just first if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_tag = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## ######$afterequals =~ s/\"//; #Alternate if the above wasnt set to s///g (global) : have to do it again for the back one $mover_tag = $afterequals; } elsif ($isbumpeventline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPEVENT ***$afterequals\n"); } $afterequals =~ s/\"//g; #get rid of " globally in string if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_bumpevent = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_bumpevent = $afterequals; } elsif ($iseventline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPEVENT ***$afterequals\n"); } $afterequals =~ s/\"//g; #get rid of " globally in string if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_event = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $mover_event = $afterequals; } elsif ($isinitialstateline_formover) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBUMPEVENT ***$afterequals\n"); } $afterequals =~ s/\"//g; #get rid of " globally in string if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $mover_initialstate = 0; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($afterequals eq 'BumpButton') { $mover_initialstate = 1; } elsif ($afterequals eq 'TriggerControl') { $mover_initialstate = 2; } elsif ($afterequals eq 'StandOpenTimed') { $mover_initialstate = 3; } elsif ($afterequals eq 'TriggerOpenTimed') { $mover_initialstate = 4; } elsif ($afterequals eq 'DamageInstigator') { $mover_initialstate = 5; } elsif ($afterequals eq 'PlaySoundEffect') { $mover_initialstate = 6; } ############### #Mover sound } elsif ($isopeningsoundline_formover || $isclosingsoundline_formover || $ismoveambientsoundline_formover || $isclosingingsoundline_formover ) { local $myintermediaryinternoise; ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSAMBIENTSOUNDMOVER ***$afterequals\n"); } $afterequals =~ s/Sound\'//; $afterequals =~ s/\'//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $myintermediaryinternoise = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $myintermediarynoise = $afterequals; if ($CONVERT_SOME_NOISES_TO_SIMPLER_STRING) { if ($PRINTORIGINALSOUNDINFOASCOMMENTIFCONVERTED) { if ($isopeningsoundline_formover) { $originalnoisecomment_o = $afterequals; } elsif ($isclosingsoundline_formover) {$originalnoisecomment_c = $afterequals; } elsif ($ismoveambientsoundline_formover) {$originalnoisecomment_m = $afterequals; } elsif ($isclosingingsoundline_formover) {$originalnoisecomment_cc = $afterequals; } } $afterequals =~ s/Ambancient\.Looping\.//; $afterequals =~ s/Ambmodern\.Looping\.//; $afterequals =~ s/Amboutside\.Looping\.//; $afterequals =~ s/AmbModern\.Looping\.//; $afterequals =~ s/ambientmusic\.Package0\.//; $afterequals =~ s/urbansnds\.\(All\)\.//; $afterequals =~ s/AmbAncient\.Looping\.//; $afterequals =~ s/AmbOutside\.Looping\.//; $afterequals =~ s/DoorsAnc\.Other\.//; $afterequals =~ s/Doorsanc\.GenericThumps\.//; $afterequals =~ s/Doorsanc\.Stone\.//; $afterequals =~ s/DoorsAnc\.Wood\.//; $afterequals =~ s/Activates\.ClicksSmall\.//; $afterequals =~ s/Doorsmod\.General\.//; $afterequals =~ s/Activates\.ClicksBig\.//; $afterequals =~ s/DoorsAnc\.GenericThumps\.//; $afterequals =~ s/DoorsAnc\.Stone\.//; $myintermediarynoise = 'sound/UNR_'."$afterequals"; } if ($isopeningsoundline_formover) { $openingnoise_formover = $myintermediarynoise; } elsif ($isclosingsoundline_formover) { $closingnoise_formover = $myintermediarynoise; } elsif ($ismoveambientsoundline_formover) { $moveambientnoise_formover = $myintermediarynoise; } elsif ($isclosingingsoundline_formover) { $closingingnoise_formover = $myintermediarynoise; } $myintermediaryinternoise = ''; #reset the local ############### #Sound etc lines } elsif ($isambientsoundline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSAMBIENTSOUND ***$afterequals\n"); } $afterequals =~ s/Sound\'//; $afterequals =~ s/\'//; if ($DEBUGPRINTS) { print(" 2 ***$afterequals\n\n\n"); } $noise = ''; #$noise = chomp($afterequals); #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $noise = $afterequals; if ($CONVERT_SOME_NOISES_TO_SIMPLER_STRING) { if ($PRINTORIGINALSOUNDINFOASCOMMENTIFCONVERTED) { $originalnoisecomment = $afterequals; } $afterequals =~ s/Ambancient\.Looping\.//; $afterequals =~ s/Ambmodern\.Looping\.//; $afterequals =~ s/Amboutside\.Looping\.//; $afterequals =~ s/AmbModern\.Looping\.//; $afterequals =~ s/ambientmusic\.Package0\.//; $afterequals =~ s/urbansnds\.\(All\)\.//; $afterequals =~ s/AmbAncient\.Looping\.//; $afterequals =~ s/AmbOutside\.Looping\.//; $afterequals =~ s/AmbCity\.Looping\.//; $afterequals =~ s/AmbCity\.OneShot\.//; $noise = 'sound/UNR_'."$afterequals"; } if ($dostuff == 4) { $dostuff = 7; $classname = 'target_speaker'; } #Change to ambient sound part instead } elsif ($islight_hueline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSHUE ***$afterequals\n"); } $hue = 0; #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## if ($DEBUGPRINTS) { print("Afterwhitespaceremoval **: $afterequals\n"); } $hue = $afterequals; if ($DEBUGPRINTS) { print("huenowequals: $hue\n"); } $no_color_set_by_map = 0; #colorhasbeenset for light by the map, not defaults $recorded_actual_from_file__hue = $afterequals; #for corona } elsif ($islight_saturationline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSSATURATION ***$afterequals\n"); } $saturation = 0; #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $saturation = $afterequals; #hue was erronously set to afterequals here before # if ($originalerrorsethuetosaturation) { $hue = $afterequals; } # #which was used on the tundra rtlights, with the old pre algo $no_color_set_by_map = 0; #colorhasbeenset for light by the map, not defaults $recorded_actual_from_file__saturation = $afterequals; #for corona } elsif ($islight_brightnessline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSBRIGHTNESS ***$afterequals\n"); } $brightness = 0; #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $brightness = $afterequals; $no_color_set_by_map = 0; #colorhasbeenset for light by the map, not defaults $recorded_actual_from_file__brightness = $afterequals; #for corona } elsif ($islightradiusline) { ($beforeequals, $afterequals) = split("=",$thing,2); if ($DEBUGPRINTS) { print("ESASAFTEREQUALSLIGHTRADIUS ***$afterequals\n"); } $light_radius = 0; #Getrid of whitespaces etc to get rid of carraigertrn ## $afterequals =~ s/\A\s+//s; ## $afterequals =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $light_radius = $afterequals; $no_radius_set_by_map = 0; #radiushasbeenset for light by the map, not defaults $recorded_actual_from_file__light_radius = $afterequals; #for corona } else { #($beforeequals, $afterequals) = split("=",$thing,2); ($beforeequals, $afterequals) = split("=",$thing); #print(" ***$beforeequals\n\n\n"); if ($DEBUGPRINTS) { print(" ***$afterequals\n\n\n"); } if ($beforeequals eq 'Begin Actor Class') { $classname = ""; if ($DEBUGPRINTS) { print(" **** Eays Begin Actor Class\n"); } $TWObeforespace = ""; $TWOafterspace = ""; #($TWObeforespace, $TWOafterspace) = split("\s+",$afterequals,2); #($TWObeforespace, $TWOafterspace) = split("/x",$afterequals,2); ($TWObeforespace, $TWOafterspace) = split(" Name",$afterequals,2); #hack $classname = $TWObeforespace; $originalclassname = $classname; #record ############## if ($mode == 4) { #set name for movers my $temp_namebefore; my $temp_nameafter; $temp_nameafter = ''; ($temp_namebefore, $temp_nameafter) = split(" Name",$thing,2); #hack $name = $TWOafterspace; #record but not needed #print("$thing\n"); #Getrid of whitespaces etc to get rid of carraigertrn ## $temp_nameafter=~ s/\A\s+//s; ## $temp_nameafter =~ s/\s+\Z//s; ## #Getrid of whitespaces etc to get rid of carraigertrn ## $temp_nameafter =~ s/\=//s; #get rid of equals sign #print("$temp_nameafter\n"); if ($temp_nameafter eq '') { #do nothing } elsif ($temp_nameafter) { $name = $temp_nameafter } } ############## #Light mode if (($mode == 1 || $mode == 2) && $classname eq 'Light') { #$classname = 'fullydynamic'; $classname = 'item_cells';$spawnflags= 1; $classname = 'lightsabre_spawnlight'; #$classname = 'not_null'; #doesn't work with not null #$classname = 'info_notnull'; #doesn't work either #some tests #$cubemap = 'somecubemapsomewhere'; #$corona = 10; $dostuff = 1000; #special generic $is_light_entity = 1; } elsif ($mode == 1 || $mode == 2) { #ignore everything else } #mover mode elsif (($mode == 4) && $classname eq 'Mover') { #$classname = 'fullydynamic'; #$classname = 'item_cells';$spawnflags= 1; #$classname = 'lightsabre_spawnlight'; #$dostuff = 1004; #special generic $is_mover = 1; } elsif (($mode == 4) && $classname eq 'Fan2') { $is_fan = 1; } elsif (($mode == 4) && $classname eq 'RotatingMover') { $is_rotating_mover = 1; } elsif ($mode == 4) { #ignore everything else } #Normal mode elsif ($classname eq 'Light') { $dostuff = 4; $is_light_entity = 1; } elsif ($classname eq 'RocketCan') { $classname = 'item_rockets'; $dostuff = 5; } elsif ($classname eq 'Eightball') { $classname = 'weapon_ballrktlauncher'; $dostuff = 5; } elsif (($classname eq 'Sludge') || ($classname eq 'bioammo') #UT || ($classname eq 'BioAmmo')) #UT Actual { $classname = 'item_toxic'; $dostuff = 5; } elsif ($classname eq 'GESBioRifle') { $classname = 'weapon_gbserifle'; $dostuff = 5; } elsif ($classname eq 'Minigun') { $classname = 'weapon_cmbn9mgun'; $dostuff = 5; } elsif ($classname eq 'AutoMag') { $classname = 'weapon_pistol'; $dostuff = 5; } elsif ($classname eq 'Shellbox') { $classname = 'item_bullets'; $dostuff = 5; } elsif ($classname eq 'BulletBox') #UT { $classname = 'item_bullets'; #guess $dostuff = 5; } elsif ($classname eq 'Miniammo') #actual UT { $classname = 'item_bullets'; $dostuff = 5; } elsif ($classname eq 'Rifle') { $classname = 'weapon_t17mmrifle'; $dostuff = 5; } elsif ($classname eq 'RifleRound') { $classname = 'item_bullets'; $dostuff = 6; #special case, more information printed } elsif ($classname eq 'RifleShell') #UT { $classname = 'item_bullets'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'ammo_nails'; $specialextrastuffamnt = '3'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '1.46'; $model = 'models/items/casingriflebullet.iqm'; } elsif ($classname eq 'ChainSaw') #UT { $classname = 'weapon_chainsaw'; $dostuff = 1001; #special case, more information printed } #elsif ($classname eq 'Razorjack') #not tested elsif ($classname eq 'RazorJack') #It's uppercase { $classname = 'weapon_razorprjctr'; $dostuff = 5; } elsif ($classname eq 'DispersionPistol') #not tested { $classname = 'weapon_dsprsnpstl'; $dostuff = 5; } elsif ($classname eq 'ASMD') { $classname = 'weapon_asdwrifle'; $dostuff = 5; } elsif ($classname eq 'ASMDAmmo') { $classname = 'item_cells'; $dostuff = 5; } elsif ($classname eq 'PAmmo') #green #UT { if ($PAMMOUSESREGULAR) { $classname = 'item_cells'; $dostuff = 5; } else { $dostuff = 1001; #special case, more information printed $classname = 'item_cells'; $specialextrastuffname = 'colormap'; $specialextrastuffamnt = '1139'; #green $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '1.3'; $model = 'models/items/item_cells_electricrifle.iqm'; } } elsif ($classname eq 'ShockCore') #purple #UT { if ($SHOCKCOREUSESREGULAR) { $classname = 'item_cells'; $dostuff = 5; } else { $dostuff = 1001; #special case, more information printed $classname = 'item_cells'; $specialextrastuffname = 'colormap'; $specialextrastuffamnt = '1029'; #light blue for contrast with the rest which is purple $model = 'models/items/item_cells_xonlong.iqm'; } } elsif ($classname eq 'SuperShockCore') #purple #UT { if ($SHOCKCOREUSESREGULAR) { $classname = 'item_cells'; $dostuff = 5; } else { $dostuff = 1001; #special case, more information printed $classname = 'item_cells'; $specialextrastuffname = 'colormap'; $specialextrastuffamnt = '1029'; #light blue for contrast with the rest which is purple $model = 'models/items/item_cells_xonlong.iqm'; } } elsif ($classname eq 'Armor') { $classname = 'item_armor'; $dostuff = 5; } elsif ($classname eq 'ThighPads') { $classname = 'item_armor_small'; $dostuff = 5; } elsif ($classname eq 'NaliFruit') { $classname = 'item_health_small'; $dostuff = 5; } elsif ($classname eq 'SuperHealth') { $classname = 'item_health_mega'; $dostuff = 5; } elsif ($classname eq 'HealthPack') #UT { $classname = 'item_health_mega'; $dostuff = 5; } elsif ($classname eq 'HealthVial') #UT { $classname = 'item_health_small'; $dostuff = 5; } elsif (($classname eq 'Health') || ($classname eq 'MedBox')) #UT { $classname = 'item_health'; $dostuff = 5; } elsif (($classname eq 'ShieldBelt') || ($classname eq 'ut_shieldbelt') #UT || ($classname eq 'UT_ShieldBelt')) #UT { $classname = 'item_invincible'; $dostuff = 5; } elsif ($classname eq 'armor2') #UT { $classname = 'item_armor_large'; #guess $dostuff = 5; } elsif ($classname eq 'Armor2') #UT #seen in HolyCrypt { $classname = 'item_armor_big'; #guess #looks closer $dostuff = 5; } elsif (($classname eq 'Amplifier') || ($classname eq 'UDamage')) #UT { $classname = 'item_strength'; $dostuff = 5; } elsif ($classname eq 'FlakCannon') { $classname = 'weapon_fragmentationcannon'; $dostuff = 5; } elsif ($classname eq 'Stinger') { $classname = 'weapon_strkr'; $dostuff = 5; } elsif ($classname eq 'PlayerStart') { $classname = 'info_player_start'; $dostuff = 5; if ($ENABLE_ADD_Z_TOPLAYERSTART) { if ($add_z_toplayerstart) { $dostuff = 500; } } } elsif ($classname eq 'AmbientSound') { $classname = 'target_speaker'; $dostuff = 7; #needs more info pasted } elsif ($classname eq 'PulseGun') #not tested { $classname = 'weapon_electricrifle'; $dostuff = 5; } elsif ($classname eq 'UT_Eightball') #not tested { $classname = 'weapon_nineballlauncher'; $dostuff = 5; } elsif ($classname eq 'RocketPack') #UT { $classname = 'item_rockets'; $dostuff = 5; } #ammo substitutions elsif (($classname eq 'FlakBox') #ammo substitutions || ($classname eq 'flakammo') #UT || ($classname eq 'FlakAmmo')) #UT { $classname = 'item_rockets'; $dostuff = 5; } #Done below now #elsif ($classname eq 'StingerAmmo') #ammo substitutions # { # $classname = 'item_cells'; # $dostuff = 5; # } elsif ($classname eq 'RifleAmmo') #ammo substitutions { $classname = 'item_bullets'; $dostuff = 5; } #substitutions elsif ($classname eq 'UT_FlakCannon') #not tested #substitutions { $classname = 'weapon_fragmentationcannon'; $dostuff = 5; } elsif (($classname eq 'Ripper') #not tested #substitutions || ($classname eq 'ripper')) #actual UT { $classname = 'weapon_razorprjctr'; $dostuff = 5; } elsif ($classname eq 'ShockRifle') #not tested #substitutions { $classname = 'weapon_asdwrifle'; $dostuff = 5; } elsif ($classname eq 'SuperShockRifle') #not tested #substitutions { $classname = 'weapon_asdwrifle'; $dostuff = 5; } elsif ($classname eq 'Enforcer') #not tested #substitution... sort of { $classname = 'weapon_pistol'; $dostuff = 5; } elsif ($classname eq 'DoubleEnforcer') #not tested #substitution... sort of { $classname = 'weapon_pistol'; $dostuff = 5; } elsif (($classname eq 'UT_BioRifle') #not tested #substitutions || ($classname eq 'ut_biorifle')) #actual UT { $classname = 'weapon_gbserifle'; $dostuff = 5; } elsif ($classname eq 'SniperRifle') #not tested #substitutions { $classname = 'weapon_lrr'; $dostuff = 5; if ($PICKUP_UT_SniperRifle_OPTIONS == 1) { $classname = 'weapon_t17mmrifle'; $dostuff = 5; } } elsif (($classname eq 'Minigun2') #not tested || ($classname eq 'minigun2')) #actual UT { $classname = 'weapon_minigunii'; $dostuff = 5; } elsif ($classname eq 'WarheadLauncher') #not tested { $classname = 'weapon_rdmrrocket'; $dostuff = 5; } #Others elsif ($classname eq 'SU_1911') { $classname = 'weapon_bigpistol'; $dostuff = 5; } elsif ($classname eq 'SU_MP5') { $classname = 'weapon_pdw'; $dostuff = 5; } elsif ($classname eq 'SU_Aug') { $classname = 'weapon_styeraug'; $dostuff = 5; } elsif ($classname eq 'SU_Ithaca') { $classname = 'weapon_ithacastakeout'; $dostuff = 5; } elsif ($classname eq 'SU_Glock') { $classname = 'weapon_lightpistol'; $dostuff = 5; } elsif ($classname eq 'SU_RPG7') { $classname = 'weapon_rpg7launcher'; $dostuff = 5; } elsif ($classname eq 'SU_Rem308') #substitution { $classname = 'weapon_m1903'; $dostuff = 5; } elsif ($classname eq 'SU_Grenade') { $classname = 'item_fragnades'; $dostuff = 5; } elsif ($classname eq 'SU_Vest') #substitution { $classname = 'item_armor_large'; $dostuff = 5; } elsif ($classname eq 'SU_Jacket') #substitution { $classname = 'item_health_small'; $dostuff = 5; } elsif ($classname eq 'SU_Can') #substitution #guess { $classname = 'item_rockets'; $dostuff = 5; } elsif ($classname eq 'SU_AmmoCan9mm') #substitution { $classname = 'item_bullets'; $dostuff = 5; } elsif ($classname eq 'SU_AmmoSingle308') { $classname = 'item_bullets'; $dostuff = 7; #special case, more information printed } elsif ($classname eq 'SU_AmmoLooseShells') { $classname = 'item_shells'; $dostuff = 8; #special case, more information printed } elsif ($classname eq 'SU_AmmoClips223') { $classname = 'item_bullets'; $dostuff = 9; #special case, more information printed } elsif ($classname eq 'SU_AmmoBox9mm') { $classname = 'item_bullets'; $dostuff = 10; #special case, more information printed } elsif ($classname eq 'SU_AmmoClips45') #substitution { $classname = 'item_bullets'; $dostuff = 11; #special case, more information printed } elsif ($classname eq 'EClip') #substitution #enforcer clip { $classname = 'item_bullets'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'ammo_nails'; $specialextrastuffamnt = '12'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '2'; $model = 'models/misc/extendedmags/uzimag20.iqm'; } elsif ($classname eq 'SU_AmmoLoose308') #substitution { $classname = 'item_bullets'; $dostuff = 12; #special case, more information printed } elsif ($classname eq 'SU_AmmoBox45') { $classname = 'item_bullets'; $dostuff = 15; #special case, more information printed } elsif ($classname eq 'SU_AmmoBoxShells') #substitution { $classname = 'item_shells'; $dostuff = 5; } elsif ($classname eq 'INFIL_UTMP5') { $classname = 'weapon_submachinegun'; $dostuff = 5; } elsif ($classname eq 'INFIL_UTM16') { $classname = 'weapon_m16a2'; $dostuff = 5; } elsif ($classname eq 'INFIL_UTShotgun') { $classname = 'weapon_m3shotgun'; $dostuff = 5; } elsif ($classname eq 'INFIL_UTM16Clips') { $classname = 'item_bullets'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'ammo_nails'; $specialextrastuffamnt = '30'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '2'; $model = 'models/misc/extendedmags/m16mag30.iqm'; } elsif ($classname eq 'INFIL_UTMP5Clips') #substitution { $classname = 'item_bullets'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'ammo_nails'; $specialextrastuffamnt = '30'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '2'; $model = 'models/misc/extendedmags/pdwstdmag.iqm'; } elsif ($classname eq 'SmallSteelBox') #substitution { $classname = 'func_wall'; $model = 'models/fromunreal/SteelBoxM.basescale1.obj_from_mc'; $dostuff = 1001; #special generic $is_model_maybereversez = 1; $pre_drawscale = 0.5; } elsif ($classname eq 'SteelBox') #substitution { if ($STEELBOXBARRELNOSUBSTITUTION == 1) { $classname = 'func_wall'; $model = 'models/fromunreal/SteelBoxM.basescale1.obj_from_mc'; $dostuff = 1001; #special generic $is_model_maybereversez = 2; } else { $classname = 'building_buildable_by_count'; $dostuff = 200; $count = 1772; #MTB64U_METAL } } elsif ($classname eq 'SteelBarrel') #guess { if ($STEELBOXBARRELNOSUBSTITUTION == 1) { $classname = 'func_wall'; $model = 'models/fromunreal/steelbarrelM.basescale1.obj_from_mc'; $dostuff = 1001; #special generic $is_model_maybereversez = 2; } else { $classname = 'building_buildable_by_count'; $dostuff = 200; $count = 1819; #MTB64U_INACT_OIL } } elsif ($classname eq 'TarydiumBarrel') #substitution { if ($TARYDIUMBARRELNOSUBSTITUTION == 1) { $classname = 'func_wall'; ##$classname = 'misc_gamemodel'; ##$classname = 'func_model'; #what model is it? $model = 'models/fromunrealedits/steelbarrelM_trvrsn.basescale1.obj_from_mc'; #$specialextrastuffname0 = 'event_damage'; $specialextrastuffamnt0 = 'multitool_damage_hitboxft'; #$specialextrastuffname1 = 'health'; $specialextrastuffamnt1 = '30'; #$specialextrastuffname2 = 'objcthitmaterial'; $specialextrastuffamnt2 = '2'; #Metal #$specialextrastuffname3 = 'count'; $specialextrastuffamnt3 = '1820'; #$specialextrastuffname4 = 'hitpoints'; $specialextrastuffamnt4 = '30'; $dostuff = 1001; #special generic $is_model_maybereversez = 2; } else { $classname = 'building_buildable_by_count'; $dostuff = 200; $count = 1820; #MTB64U_ACT_OIL } } #Some accomadations elsif (($classname eq 'RazorAmmo') || ($classname eq 'BladeHopper')) #UT { $classname = 'item_bullets'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'ammo_nails'; $specialextrastuffamnt = '10'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '3'; $model = 'models/razor_projectile_side.iqm'; } elsif ($classname eq 'StingerAmmo') { $classname = 'item_cells'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'ammo_nails'; $specialextrastuffamnt = '10'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '0.75'; $model = 'models/bluespike.iqm'; } #elsif ($classname eq 'ImpactHammer') #not tested elsif ($classname eq 'NaliStatue') { $classname = 'func_wall'; $dostuff = 100; #special case for models, more information printed $model = 'models/fromunreal/NaliStatueM_fortundra.basescale1.obj_from_mc'; $dostuff = 1000; #special generic $is_model_maybereversez = 2; } elsif ($classname eq 'Tapestry1') { $classname = 'func_wall'; $dostuff = 100; #special case for models, more information printed $model = 'models/fromunreal/Tap_fortundra.basescale1.obj_from_mc'; $dostuff = 1000; #special generic $is_model_maybereversez = 2; } elsif ($classname eq 'Candle') { $classname = 'func_wall'; $dostuff = 100; #special case for models, more information printed $model = 'models/fromunreal/CandleM_fortundra.basescale1.obj_from_mc'; $dostuff = 1000; #special generic $is_model_maybereversez = 2; } #NEWER STUFF FROM UT ETC elsif ($classname eq 'Candle2') #guess { $classname = 'func_wall'; $model = 'models/fromunreal/Candl2.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'pipebend') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/pipebendM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.5; #Default of entity (UT) } elsif ($classname eq 'pipe') #UT #guess #maybe used in a arena { $classname = 'func_wall'; $model = 'models/fromunreal/pipeM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.5; #Default of entity (UT) #GUESS } elsif ($classname eq 'lightbox') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/lightboxM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on lightbox } elsif ($classname eq 'LightCone') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/lightcone1.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on lightcone } elsif (($classname eq 'barrel1') #UT || ($classname eq 'Barrel1')) #UT { $classname = 'func_wall'; #$model = 'models/fromunrealedits/barrel2M_biows.basescale1.obj_from_mc'; $model = 'models/fromunreal/barrel1M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.25; #Default of entity (UT) } elsif (($classname eq 'barrel2') #UT || ($classname eq 'Barrel2')) #UT #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/barrel2M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.25; #Default of entity (UT) } elsif (($classname eq 'barrel3') #UT || ($classname eq 'Barrel3')) #UT { $classname = 'func_wall'; $model = 'models/fromunreal/barrel3M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.25; #Default of entity (UT) } elsif ($classname eq 'SludgeBarrel') #Unreal, Used in UT too { $classname = 'func_wall'; $model = 'models/fromunreal/sbarrel.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'DevilFish') #Unreal, Used in UT too #substitution { $classname = 'monster_fish'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'BiterFishSchool') #Unreal, Used in UT too #substitution { $classname = 'monster_fish'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'Tentacle') #Unreal, #substitution { $classname = 'monster_vore'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'Krall') #Unreal, #substitution { $classname = 'monster_goblin_archer'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'KrallElite') #Unreal, #substitution { $classname = 'monster_goblin_archer'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'Mercenary') #Unreal, #substitution { #$classname = 'monster_fighter'; #substitution $classname = 'monster_solider'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'MercenaryElite') #Unreal, #substitution { #$classname = 'monster_fighter'; #substitution $classname = 'monster_solider'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'SkaarjGunner') #Unreal, #substitution { #$classname = 'monster_fighter'; #substitution $classname = 'monster_solider'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'SkaarjTrooper') #Unreal, #substitution { #$classname = 'monster_fighter'; #substitution $classname = 'monster_solider'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'SkaarjWarrior') #Unreal, #substitution { $classname = 'monster_shinrae'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'SkaarjBerserker') #Unreal, #substitution { $classname = 'monster_shinrae'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'SkaarjScout') #Unreal, #substitution { $classname = 'monster_shinrae'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'SkaarjOfficer') #Unreal, #substitution { $classname = 'monster_shinrae'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'WarLord') #Unreal, #substitution { $classname = 'monster_wyvern_fire'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'LesserBrute') #Unreal, #substitution { #$classname = 'monster_minotaur'; #substitution $classname = 'monster_enforcer'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'Brute') #Unreal, #substitution { #$classname = 'monster_minotaur'; #substitution $classname = 'monster_enforcer'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster #prob redundant as we aren't using dscale here $specialextrastuffname = 'scale'; $specialextrastuffamnt = '2'; } elsif ($classname eq 'Behemoth') #Unreal, #substitution { #$classname = 'monster_minotaur'; #substitution #$classname = 'monster_enforcer'; #substitution $classname = 'monster_biledemon'; #substitution $dostuff = 1001; #special case, more information printed #substitution #$specialextrastuffname = 'scale'; #$specialextrastuffamnt = '2'; $pre_drawscale = 1.3; #Default of entity (Unreal) $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'Gasbag') #Unreal, #substitution { #$classname = 'monster_minotaur'; #substitution #$classname = 'monster_enforcer'; #substitution $classname = 'monster_ogre'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'GiantGasbag') #Unreal, #substitution { #$classname = 'monster_minotaur'; #substitution #$classname = 'monster_enforcer'; #substitution $classname = 'monster_ogre'; #substitution $dostuff = 1001; #special case, more information printed #substitution $pre_drawscale = 3; #Default of entity (Unreal) $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'StoneTitan') #Unreal, #substitution { $classname = 'monster_golem'; #substitution $dostuff = 1001; #special case, more information printed #substitution $specialextrastuffname = 'stoned'; $specialextrastuffamnt = '1'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '2'; $specialextrastuffname1 = 'skin'; $specialextrastuffamnt1 = '3'; $specialextrastuffname2 = 'stoneskin'; $specialextrastuffamnt2 = '3'; $specialextrastuffname3 = 'strevive_speed'; $specialextrastuffamnt3 = '100'; #prob redundant as we aren't using dscale here $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif ($classname eq 'Titan') #Unreal, #substitution { $classname = 'monster_golem'; #substitution $dostuff = 1001; #special case, more information printed #substitution $setsolidkeepdefaultevenifdscale = 1; #Don't change solid type on monster } elsif (($classname eq 'brick') #UT || ($classname eq 'Brick')) #UT { $classname = 'func_wall'; $model = 'models/fromunreal/brickM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.15; #Default of entity (UT) } elsif ($classname eq 'toolbox') #UT #added for warehouse { $classname = 'func_wall'; $model = 'models/fromunreal/toolboxM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.25; #Default of entity (UT) } elsif ($classname eq 'bin2') #UT #added for warehouse { $classname = 'func_wall'; $model = 'models/fromunreal/bin2M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.25; #Default of entity (UT) } elsif ($classname eq 'pylon') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/PylonM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'U') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/U.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Challenge') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/challengeM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.2; #Default of entity (UT) } elsif ($classname eq 'deathmatchtrophy') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/deathmatchtrophyM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.2; #Default of entity (UT) } elsif ($classname eq 'car03') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/car03M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'CrucifiedNali') #Unreal { $classname = 'func_wall'; $model = 'models/fromunreal/CrossNali.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Book') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/BookM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'YellowBook') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunrealedits/BookM_Y.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'BlueBook') #Unreal #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunrealedits/BookM_B.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'GreenBook') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunrealedits/BookM_G.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'RedBook') #Unreal #Guess #Guess #Guess #does it exist, incase it does here { $classname = 'func_wall'; $model = 'models/fromunreal/BookM.basescale1.obj_from_mc'; #same as normal book $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'WoodenBox') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/WoodenBoxM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'MedWoodBox') #Unreal #Guess #GUESS #GUESS #GUESS { $classname = 'func_wall'; $model = 'models/fromunreal/WoodenBoxM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.7; #Default of entity (Unreal) } elsif ($classname eq 'SmallWoodBox') #Unreal #Guess #GUESS #GUESS #GUESS { $classname = 'func_wall'; $model = 'models/fromunreal/WoodenBoxM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.5; #Default of entity (Unreal) } elsif ($classname eq 'Chest') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/ChestM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Table') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Table1.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Chair') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Chair1.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Barrel') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/BarrelM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Sign1') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Sign1M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'redtapestry') #Unreal UT #Guess { $classname = 'func_wall'; $model = 'models/fromunrealedits/Tap_fortundra_R.basescale1.obj_from_mc'; #seems to be the same but different texture $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'shieldd') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/shieldM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Sconce') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/sconceM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Vase') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/vaseM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Pottery0') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Pottery0M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Pottery1') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Pottery1M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Pottery2') #Unreal #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Pottery2M.basescale1.obj_from_mc'; #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Urn') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/UrnM.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree1') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree1M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree2') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree2M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree3') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree3M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree4') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree4M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree5') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree5M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree6') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree6M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree7') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree7M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree8') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree8M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree9') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree9M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree10') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree10M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree11') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree11M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Tree12') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Tree12M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant1') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant1M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant2') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant2M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant3') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant3M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant4') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant4M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant5') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant5M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant6') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant6M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Plant7') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Plant7M.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'TFlameM') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/TFlameM.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'TorchFlame') #Unreal #Guess #Guess #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/TorchFlame.basescale1.obj_from_mc'; #Guess #Guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'brazier') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/brazierM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.5; } elsif ($classname eq 'Diamond') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Diamond.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Moon') #Unreal { $classname = 'func_wall'; $model = 'models/fromunreal/Moon1.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 2; } elsif ($classname eq 'Moon2') #UT #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunrealedits/Moon1_2.basescale1.obj_from_mc'; #usesskin moontwo $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Moon3') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/Moon3M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.15; } elsif ($classname eq 'tubelight') #UT { $classname = 'func_wall'; $model = 'models/fromunreal/tubelightM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.5; } elsif ($classname eq 'tubelight2') #UT #guess { $classname = 'func_wall'; $model = 'models/fromunreal/tubelight2M.basescale1.obj_from_mc'; #guess $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; $pre_drawscale = 0.5; } elsif ($classname eq 'OctGem') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/OctGem.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Crystal') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Crystal.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'CubeGem') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/CubeGem.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'DiscStud') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/DiscStud.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'OctStud') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/OctStud.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Arrow') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/ArrowM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Lamp1') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Lamp1M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Lamp4') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Lamp4M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Lantern2') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Lantern2M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Lantern') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Lantern2M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Dice') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/DiceM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Knife') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/KnifeM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'ICBM') #UT #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/icbmM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Flag1') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Flag1M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Flag2') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Flag2M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Flag3') #Unreal #Guess { $classname = 'func_wall'; $model = 'models/fromunreal/Flag3M.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } elsif ($classname eq 'Shell') #UT #Guess #Decorative big shell, not a pickup WWII { $classname = 'func_wall'; $model = 'models/fromunreal/shellM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 1; } #END NEWER STUFF FROM UT ETC elsif ($classname eq 'MinigunCannon') #substitution { $classname = 'turret_machinegun'; $dostuff = 1001; #special case, more information printed } elsif ($classname eq 'INFIL_UTM2_50') #substitution { $classname = 'mountedgun_browning50'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'spawnflags'; $specialextrastuffamnt = '32'; #pintel mount #$specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '2'; #$model = 'models/misc/extendedmags/pdwstdmag.iqm'; } elsif ($classname eq 'SeaWeed') { if ($SEAWEEDNOSUBSTITUTION) { $classname = 'func_clientillusionary'; #nonsolid $model = 'models/fromunreal/SeaWeedM.basescale1.obj_from_mc'; $dostuff = 1001; #special case, more information printed $is_model_maybereversez = 2; } else { $classname = 'foliage_dypbush'; #substitution $dostuff = 1001; #special generic $specialextrastuffname = 'scale'; $specialextrastuffamnt = '0.99'; $specialextrastuffname0 = 'scale'; $specialextrastuffamnt0 = '0.99'; } } elsif ($classname eq 'WaterZone' && $DOWATERLAVASLIMEZONES) #substitution { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'func_servercontents_water'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } $checkforviewfog_extra = 1; } elsif ($classname eq 'LavaZone' && $DOWATERLAVASLIMEZONES) #substitution { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'func_servercontents_lava'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } $checkforviewfog_extra = 1; } elsif ($classname eq 'SlimeZone' && $DOWATERLAVASLIMEZONES) #substitution { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'func_servercontents_slime'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } $checkforviewfog_extra = 1; } elsif ($classname eq 'VacuumZone' && $DOWATERLAVASLIMEZONES) #substitution { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'trigger_hurt'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } $is_zoneinfo_maybehurt = 1; #special case, more information printed } elsif ($classname eq 'ZoneInfo' && $DOZONEINFOHURT) #//&& ($bpainzone_true_or_false))# != 0 && $bpainzone_true_or_false eq 'True')) #substitution { $is_zoneinfo_maybehurt = 1; #special case, more information printed } else { if ($IGNOREPATHNODES && ($classname eq 'PathNode')) { #nothing } elsif ($IGNORELEVELINFO && ($classname eq 'LevelInfo')) { #nothing } elsif ($IGNOREZONEINFO && ($classname eq 'ZoneInfo')) { #nothing } else { $dostuff = 3; if ($classname eq 'Teleporter' || $classname eq 'VisualTeleporter' || $classname eq 'VisibleTeleporter') { $is_allowed_even_if_not_mover = 1; #So we may record event, tag, etc } } $originalclassname = ''; #reset it } } } if ($mode == 0 && $classname eq 'Light' && $endnow == 1) { #Do nothing } elsif (($mode == 4 && $endnow == 1 && ($is_mover || $is_fan || $is_rotating_mover)) || ($mode == 0 && $endnow == 1)) { #Strip out the default lightinfo etc $brightness = 0; #LightBrightness 64 $hue = 0; #LightHue 0 $saturation = 0; #LightSaturation 255 $light_radius = 0; #LightRadius 64 } if ($mode == 4 && $endnow == 1 && ($is_mover || $is_fan || $is_rotating_mover)) { my $temp_mover_prefix; $temp_mover_prefix = ''; $infooriginal_mover_rotation_pitch = $rotation_pitch ; $infooriginal_mover_rotation_yaw = $rotation_yaw; $infooriginal_mover_rotation_roll = $rotation_roll; #determine if we are a type of mover we know of #first a fan, the movers are below this block if ($is_fan) { #these are somewhat guesses my $tempprefixforfan = ''; print("//#isfan, NOTE: perhaps comment out angles line and scale line if you exported from map\n"); $classname = 'func_rotating'; soundguessfornoiseofrotatingdoortrapmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); #less normal if ($rotationrate_pitch && $rotationrate_yaw) { $speed = &unr_rotation_to_deg ($rotationrate_pitch); #guess2 $speed += &unr_rotation_to_deg ($rotationrate_yaw); #guess2 $speed += &unr_rotation_to_deg ($rotationrate_roll); #guess2 $spawnflags = 12; #x+y axis #guess2 $tempprefixforfan = 'pitchyawroll1'; } elsif ($rotationrate_pitch && $rotationrate_yaw) { $speed = &unr_rotation_to_deg ($rotationrate_pitch); #guess $speed += &unr_rotation_to_deg ($rotationrate_yaw); #guess $spawnflags = 12; #x+y axis #guess $tempprefixforfan = 'pitchyaw1'; #more normal } elsif ($rotationrate_pitch) { $speed = &unr_rotation_to_deg ($rotationrate_pitch); #guess $spawnflags = 4; #x axis? #guess $tempprefixforfan = 'pitch1'; #guess } elsif ($rotationrate_yaw) { $speed = &unr_rotation_to_deg ($rotationrate_yaw); #guess $spawnflags = 8; #y axis? #guess $tempprefixforfan = 'yaw1'; } elsif ($rotationrate_roll) { $speed = &unr_rotation_to_deg ($rotationrate_roll); $tempprefixforfan = 'roll1'; if ($reverse_fan_roll_speed_asthetics_obj_from_mc) { #Multip by -1 because models are reversed in obj_from_mc because quake vs regular is reversed? $speed *= -1; #note: asthetic choice } } $model = "$tempprefixforfan".'fanexport'."$name".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; if ($drawscale) { $specialextrastuffname2 = 'scale'; $specialextrastuffamnt2 = $drawscale; } #speedguessformovers(); } elsif ($is_rotating_mover) { #these are huge guesses and copied from the above #needs work for axis and everything my $tempprefixforfan = ''; print("//#ROTATING MOVER\n"); $classname = 'func_rotating'; soundguessfornoiseofrotatingdoortrapmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); #less normal if ($rotationrate_pitch && $rotationrate_yaw) { $speed = &unr_rotation_to_deg ($rotationrate_pitch); #guess2 $speed += &unr_rotation_to_deg ($rotationrate_yaw); #guess2 $speed += &unr_rotation_to_deg ($rotationrate_roll); #guess2 $spawnflags = 12; #x+y axis #guess2 $tempprefixforfan = 'pitchyawroll1'; } elsif ($rotationrate_pitch && $rotationrate_yaw) { $speed = &unr_rotation_to_deg ($rotationrate_pitch); #guess $speed += &unr_rotation_to_deg ($rotationrate_yaw); #guess $spawnflags = 12; #x+y axis #guess $tempprefixforfan = 'pitchyaw1'; #more normal } elsif ($rotationrate_pitch) { $speed = &unr_rotation_to_deg ($rotationrate_pitch); #guess $spawnflags = 4; #x axis? #guess $tempprefixforfan = 'pitch1'; #guess } elsif ($rotationrate_yaw) { $speed = &unr_rotation_to_deg ($rotationrate_yaw); #guess #$spawnflags = 8; #y axis? #setting spawnflags for this (yaw) was not correct for rotating_mover #spawnflags is 0 (zero) for this for rotating_mover it seems $tempprefixforfan = 'yaw1'; } elsif ($rotationrate_roll) { $speed = &unr_rotation_to_deg ($rotationrate_roll); $tempprefixforfan = 'roll1'; if ($reverse_fan_roll_speed_asthetics_obj_from_mc) { #Multip by -1 because models are reversed in obj_from_mc because quake vs regular is reversed? $speed *= -1; #note: asthetic choice } } #$model = "$tempprefixforfan".'rotatingmoverexport'."$name".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; #$model = 'RotatingMover'."$name".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; print("//#"."$tempprefixforfan".' name: '."$name\n"); $model = 'RotatingMover'.'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; if ($drawscale) { $specialextrastuffname2 = 'scale'; $specialextrastuffamnt2 = $drawscale; } #speedguessformovers(); #determine if we are a type of mover we know of } elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set $moverkey_rotation_roll) #set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (($moverkey_pos_origin_x == 0) && #notset sliding ($moverkey_pos_origin_y == 0) && #notset sliding ($moverkey_pos_origin_z == 0)) #notset sliding ) { #seems to be a trap floor rotating if ($comment_mover_information ) { print('//#'); print("XXXX $mover_tag"); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); } $did_mover_name_allready = 1; } print("\n"); } #sets the prefix of the model to mover_tag by default, or name if there is none if ($mover_tag eq '') { if ($name eq '') { } else { #second choice $temp_mover_prefix = $name; } } else { #first choice $temp_mover_prefix = $mover_tag; } $classname = 'func_door_rotating'; $rotation_yaw = &rotation_convert($moverkey_rotation_roll); #angles x y z $rotation_yaw *= -1; $spawnflags = 64; $force_angles_rather_than_angle = 1; $no_angle_conversion_allready_done = 1; $targetname = $mover_tag; $model = "$temp_mover_prefix".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofrotatingdoortrapmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); } elsif ( ( $moverkey_rotation_pitch && #set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (($moverkey_pos_origin_x == 0) && #notset sliding ($moverkey_pos_origin_y == 0) && #notset sliding ($moverkey_pos_origin_z == 0)) #notset sliding ) { #seems to be a trap floor rotating if ($comment_mover_information ) { print('//#'); print("YYYY $mover_tag"); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); } $did_mover_name_allready = 1; } print("\n"); } #sets the prefix of the model to mover_tag by default, or name if there is none if ($mover_tag eq '') { if ($name eq '') { } else { #second choice $temp_mover_prefix = $name; } } else { #first choice $temp_mover_prefix = $mover_tag; } $classname = 'func_door_rotating'; $rotation_yaw = &rotation_convert($moverkey_rotation_pitch); #angles x y z $rotation_yaw *= -1; $spawnflags = 128; $force_angles_rather_than_angle = 1; $no_angle_conversion_allready_done = 1; $targetname = $mover_tag; $model = "$temp_mover_prefix".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofrotatingdoortrapmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); } #button (twilight) elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 2) #ME_IgnoreWhenEncroach && ($mover_bumptype == 1) #BT_AnyBump && ($mover_initialstate == 1) #BumpButton && (($moverkey_pos_origin_x) || #one of these set sliding ($moverkey_pos_origin_y) || #one of these set sliding ($moverkey_pos_origin_z)) #one of these set sliding ) { $classname = 'func_button'; $target = $mover_bumpevent; #Some info if ($comment_mover_information ) { print('//#'); if ($mover_bumpevent eq '') { print("BBBB button"); } else { print("BBBB Button for $mover_bumpevent"); } if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); } $did_mover_name_allready = 1; } print("\n"); } #end info if ($mover_bumpevent eq '') { if ($name eq '') { $temp_mover_prefix = 'button'; } else { #second choice $temp_mover_prefix = $name; $temp_mover_prefix = ('Button'."$name"); } } else { #first choice $temp_mover_prefix = ('Button'.'_for'.'_'."$mover_bumpevent"); } $model = "$temp_mover_prefix".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; soundguessfornoiseofrotatingdoortrapmovers(); setmovetimeifnotset(); speedguessformovers(); $dostuff=1001; if (($moverkey_pos_origin_x) && #set !($moverkey_pos_origin_y) && #not set !($moverkey_pos_origin_z)) { #not set # X if ($moverkey_pos_origin_x < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 180; }elsif ($moverkey_pos_origin_x > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 0; } } elsif (!($moverkey_pos_origin_x) && #not set ($moverkey_pos_origin_y) && #set !($moverkey_pos_origin_z)) { #not set #Y if ($moverkey_pos_origin_y < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -90; }elsif ($moverkey_pos_origin_y > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 90; } #ADDED, not in the map, not tested } elsif (!($moverkey_pos_origin_x) && #not set !($moverkey_pos_origin_y) && #not set ($moverkey_pos_origin_z)) { #not set #Z if ($moverkey_pos_origin_z < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -2; #Down }elsif ($moverkey_pos_origin_z > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #up } } #} elsif (!($moverkey_pos_origin_x) && #not set #!($moverkey_pos_origin_y) && #not set #!($moverkey_pos_origin_z)) { #not set # #} elsif (!($moverkey_pos_origin_x) && #not set #!($moverkey_pos_origin_y) && #not set #!($moverkey_pos_origin_z)) { #not set # #} } #crusher (twilight) elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 1) && ($mover_initialstate == 4) #Trigger open timed && (!($mover_bumptype)) && ($mover_encroachdamage) && ($mover_tag) && ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && ($moverkey_pos_origin_z < 0) #is negative && ($formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) { #though this really goes down $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #-1 up, -2 down my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; #$specialextrastuffamnt3 = $moverkey_pos_origin_z + $tempamnt; $specialextrastuffamnt3 = ($moverkey_pos_origin_z + $tempamnt)*-1; $classname = 'func_door'; $targetname = $mover_tag; $model = "$mover_tag".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("CCCC Crusher "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } } #lift (twilight) elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (!($mover_encroachtype)) #none set && #(!($mover_bumptype)) #none set #added #edit commented out to be useable by more lifts #&& #edit commented out to be useable by more lifts (!($mover_encroachdamage)) #none set #//&& #//($mover_tag) && ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && ($moverkey_pos_origin_z > 0) #is positive && ($formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) { my $templiftaddedinfo = ''; $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #-1 up, -2 down $omitangles_allready_set_angle = 1; #for movers my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; $specialextrastuffamnt3 = ($moverkey_pos_origin_z*-1) - $tempamnt; #note: opposite to crusher $classname = 'func_door'; #$targetname = $mover_tag; if ( (!($mover_bumptype)) ) { $templiftaddedinfo = ''; } else { $templiftaddedinfo = $mover_bumptype.$model; } $model = "Lift"."$templiftaddedinfo".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("LLLL Lift$templiftaddedinfo "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } } #door (sliding, 90 degrees) (dmelsnore) elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) #&& #edit commented out to be useable by more doors #($mover_encroachtype == 2) #ME_IgnoreWhenEncroach #edit commented out to be useable by more doors && (!($mover_bumptype)) #none set #added && (!($mover_encroachdamage)) #none set && ( ( ($moverkey_pos_origin_x && (!($moverkey_pos_origin_y)) ) || #one of these set sliding ($moverkey_pos_origin_y && (!($moverkey_pos_origin_x)) ) ) && #one of these set sliding (!($moverkey_pos_origin_z) )) #notset && ($formover_maximum_seen_vertex_x || $formover_littlest_seen_vertex_x || $formover_maximum_seen_vertex_y || $formover_littlest_seen_vertex_y) #has a size #doesn't have other keys after && (!($moverkey_pos2_origin_x)) && (!($moverkey_pos2_origin_y)) && (!($moverkey_pos2_origin_z)) ) { if ($moverkey_pos_origin_y) { if ($moverkey_pos_origin_y < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -90; } elsif ($moverkey_pos_origin_y > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 90; } } elsif ($moverkey_pos_origin_x) { #guess if ($moverkey_pos_origin_x < 0) { #negative #guess $specialextrastuffname2 = 'angle'; #guess $specialextrastuffamnt2 = 180; #guess2 #guess2 #previously was 0 and was wrong } elsif ($moverkey_pos_origin_x > 0) { #positive #guess $specialextrastuffname2 = 'angle'; #guess $specialextrastuffamnt2 = 0; #guess2 #previously was 180 and was wrong } } $omitangles_allready_set_angle = 1; #for movers $classname = 'func_door'; $model = "Door".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("DDDD Door "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } } #secretdoor (sliding, 90 degrees) (dmelsnore) elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (!($mover_encroachtype)) #none set && ($mover_initialstate == 4) #Trigger open timed && (!($mover_bumptype)) #none set #added && (!($mover_encroachdamage)) #none set && #first part ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && ($moverkey_pos_origin_z < 0) #is negative && #second part ((!($moverkey_pos2_origin_x)) && #notset ($moverkey_pos2_origin_y) && #one of these set sliding ($moverkey_pos2_origin_z)) #one of these set sliding && ($moverkey_pos2_origin_z < 0) #is negative same as before really && ($moverkey_pos2_origin_y > 0) #is positive sliding && ($formover_maximum_seen_vertex_x || $formover_littlest_seen_vertex_x || $formover_maximum_seen_vertex_y || $formover_littlest_seen_vertex_y || $formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) { $spawnflags = 4; $classname = 'func_door_secret'; $model = "SecretDoor".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; soundguessfornoiseofsecretdoormovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("SSSS SecretDoor "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } } #secretdoor2 (sliding, should be back and up, but...) () elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (!($mover_encroachtype)) #none set && ($mover_initialstate == 4) #Trigger open timed && (!($mover_bumptype)) #none set #added && (!($mover_encroachdamage)) #none set && #first part ((($moverkey_pos_origin_x)) && #set (!($moverkey_pos_origin_y)) && #notset (!($moverkey_pos_origin_z))) #notset && ($moverkey_pos_origin_x > 0) #is positive && #second part ((($moverkey_pos2_origin_x)) && #set (!($moverkey_pos2_origin_y)) && #notset ($moverkey_pos2_origin_z)) #one of these set sliding && ($moverkey_pos2_origin_z > 0) #is positive && ($moverkey_pos2_origin_x> 0) #is positive sliding && ($formover_maximum_seen_vertex_x || $formover_littlest_seen_vertex_x || $formover_maximum_seen_vertex_y || $formover_littlest_seen_vertex_y || $formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) { $spawnflags = 0; $classname = 'func_door_secret'; $model = "SecretDoor2".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; soundguessfornoiseofsecretdoormovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); $omitangles_allready_set_angle = 1; #for movers #$force_angles_rather_than_angle = 1; #$no_angle_conversion_allready_done = 1; $specialextrastuffname2 = 'angles'; $specialextrastuffamnt2 = "-90 90 0"; if ($comment_mover_information ) { print('//#'); print("SSSS SecretDoor2 "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### #button (letting) } elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_moverglidetype == 1) #MV_MoveByTime && #($mover_encroachtype == 2) #ME_IgnoreWhenEncroach #omitted for letting #&& #omitted for letting ($mover_bumptype == 1 || #BT_AnyBump $mover_bumptype == 2) #BT_PawnBump && #($mover_initialstate == 1) #BumpButton #omitted for letting #&& #omitted for letting (($moverkey_pos_origin_x) || #one of these set sliding ($moverkey_pos_origin_y) || #one of these set sliding ($moverkey_pos_origin_z)) #one of these set sliding && ($mover_event) #for letting ) { $classname = 'func_button'; $target = $mover_event; #Some info if ($comment_mover_information ) { print('//#'); if ($mover_bumpevent eq '') { print("BBBB2 button"); } else { print("BBBB2 Button for $mover_bumpevent"); } if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); } $did_mover_name_allready = 1; } print("\n"); } #end info if ($mover_bumpevent eq '') { if ($name eq '') { $temp_mover_prefix = 'button'; } else { #second choice $temp_mover_prefix = $name; $temp_mover_prefix = ('Button'."$name"); } } else { #first choice $temp_mover_prefix = ('Button'.'_for'.'_'."$mover_bumpevent"); } $model = "$temp_mover_prefix".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; soundguessfornoiseofrotatingdoortrapmovers(); setmovetimeifnotset(); speedguessformovers(); $dostuff=1001; if (($moverkey_pos_origin_x) && #set !($moverkey_pos_origin_y) && #not set !($moverkey_pos_origin_z)) { #not set # X if ($moverkey_pos_origin_x < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 180; }elsif ($moverkey_pos_origin_x > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 0; } $omitangles_allready_set_angle = 1; #for movers #not tested here } elsif (!($moverkey_pos_origin_x) && #not set ($moverkey_pos_origin_y) && #set !($moverkey_pos_origin_z)) { #not set #Y if ($moverkey_pos_origin_y < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -90; }elsif ($moverkey_pos_origin_y > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 90; } $omitangles_allready_set_angle = 1; #for movers #not tested here } elsif (!($moverkey_pos_origin_x) && #not set !($moverkey_pos_origin_y) && #not set ($moverkey_pos_origin_z)) { #not set #Z if ($moverkey_pos_origin_z < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -2; #Down }elsif ($moverkey_pos_origin_z > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #up } $omitangles_allready_set_angle = 1; #for movers } #elsif (!($moverkey_pos_origin_x) && #not set #!($moverkey_pos_origin_y) && #not set #!($moverkey_pos_origin_z)) { #not set # #} #crusher (sliding, 90 degrees) (letting) } elsif ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 1) && ($mover_initialstate == 4) #Trigger open timed && ($mover_moverglidetype == 1) #MV_MoveByTime && ($mover_encroachdamage) && ($mover_encroachdamage) && ($mover_tag) && ( ( ($moverkey_pos_origin_x && (!($moverkey_pos_origin_y)) ) || #one of these set sliding ($moverkey_pos_origin_y && (!($moverkey_pos_origin_x)) ) ) && #one of these set sliding (!($moverkey_pos_origin_z) )) #notset && ($formover_maximum_seen_vertex_x || $formover_littlest_seen_vertex_x || $formover_maximum_seen_vertex_y || $formover_littlest_seen_vertex_y) #has a size #doesn't have other keys after && (!($moverkey_pos2_origin_x)) && (!($moverkey_pos2_origin_y)) && (!($moverkey_pos2_origin_z)) ) { if ($moverkey_pos_origin_y) { if ($moverkey_pos_origin_y < 0) { #negative $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -90; } elsif ($moverkey_pos_origin_y > 0) { #positive $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = 90; } #Nolip for some reason... #my $tempamnt; #$tempamnt = $formover_littlest_seen_vertex_y - $formover_maximum_seen_vertex_y; #$specialextrastuffname3 = 'lip'; #$specialextrastuffamnt3 = $moverkey_pos_origin_y + $tempamnt; ##$specialextrastuffamnt3 = ($moverkey_pos_origin_y + $tempamnt)*-1; } elsif ($moverkey_pos_origin_x) { #guess if ($moverkey_pos_origin_x < 0) { #negative #guess $specialextrastuffname2 = 'angle'; #guess $specialextrastuffamnt2 = 180; #guess2 #guess2 #previously was 0 and was wrong } elsif ($moverkey_pos_origin_x > 0) { #positive #guess $specialextrastuffname2 = 'angle'; #guess $specialextrastuffamnt2 = 0; #guess2 #previously was 180 and was wrong } #Nolip for some reason... #my $tempamnt; #$tempamnt = $formover_littlest_seen_vertex_x - $formover_maximum_seen_vertex_x; #$specialextrastuffname3 = 'lip'; #$specialextrastuffamnt3 = $moverkey_pos_origin_x + $tempamnt; ##$specialextrastuffamnt3 = ($moverkey_pos_origin_x + $tempamnt)*-1; } $omitangles_allready_set_angle = 1; #for movers $classname = 'func_door'; $targetname = $mover_tag; $model = "CrusherS".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("CCCC2 Crusher Sliding "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### ### (tall towa) } elsif (($ALLOW_DESTRUCTABLES_MOVERS == 1) && #we know there are destructables and have enabled searching for them ( (($mover_basepos_origin_x) || #these always seem to be set, adding just in case for this mover type ($mover_basepos_origin_y) || #these always seem to be set, adding just in case for this mover type ($mover_basepos_origin_z)) #these always seem to be set, adding just in case for this mover type && ($moveambientnoise_formover eq '') #not set && ($openingnoise_formover eq '') #not set && ($closingnoise_formover eq '') #not set && ($closingingnoise_formover eq '') #not set && (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 2) #ME_IgnoreWhenEncroach && ($mover_initialstate == 4) #Trigger open timed && #($mover_moverglidetype == 1) #MV_MoveByTime #set #commented out to allow ones that don't have this (a second error) #&& #set #commented out to allow ones that don't have this (a second error) (!($mover_encroachdamage)) #not set && #(!($mover_tag)) #not set #commented out after to allow tags (an error but...) #&& (((!($mover_movetime)) || ($mover_movetime == 0) || ($mover_movetime eq '0.000000')) #set to 0 && ($mover_movetimewasset == 1)) #but was read from file && ($mover_bdamagetriggered) #set && #($mover_damagethreshold) #set #commented out to allow ones that don't have this (a second error) #&& #set #commented out to allow ones that don't have this (a second error) ($mover_stayopentime #set to something && $mover_stayopentimewasset) #set (this is redundant tho as we are only looking for ones that are set && ($mover_event) #has an event set (for making the glass etc) && ( ( ($moverkey_pos_origin_x) || #one of these is set ($moverkey_pos_origin_y ) || #one of these is set ($moverkey_pos_origin_z) )) #one of these is set && #Either require huge movements for destructables, or not but atleast some movement ( ( $REQUIREHUGEMOVEMENT_FOR_DESTRUCTABLES_MOVERS && ( ( ($moverkey_pos_origin_x - $mover_basepos_origin_x > 1000 || $moverkey_pos_origin_x - $mover_basepos_origin_x < -1000) || #one of these is set to alot or a little ($moverkey_pos_origin_y - $mover_basepos_origin_y > 1000 || $moverkey_pos_origin_y - $mover_basepos_origin_y < -1000) || #one of these is set to alot or a little ($moverkey_pos_origin_z - $mover_basepos_origin_z > 1000|| $moverkey_pos_origin_y - $mover_basepos_origin_z < -1000) )) #one of these is set to alot or a little ) || ( !($REQUIREHUGEMOVEMENT_FOR_DESTRUCTABLES_MOVERS) && ( ( ($moverkey_pos_origin_x - $mover_basepos_origin_x > 1 || $moverkey_pos_origin_x - $mover_basepos_origin_x < -1) || #set to something atleast ($moverkey_pos_origin_y - $mover_basepos_origin_y > 1 || $moverkey_pos_origin_y - $mover_basepos_origin_y < -1) || #set to something atleast ($moverkey_pos_origin_z - $mover_basepos_origin_z > 1 || $moverkey_pos_origin_y - $mover_basepos_origin_z < -1) )) #set to something atleast ) ) && ($formover_maximum_seen_vertex_x || $formover_littlest_seen_vertex_x || $formover_maximum_seen_vertex_y || $formover_littlest_seen_vertex_y || $formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size #doesn't have other keys after && (!($moverkey_pos2_origin_x)) && (!($moverkey_pos2_origin_y)) && (!($moverkey_pos2_origin_z)) ) ){ ### $classname = 'func_breakable'; $targetname = $mover_tag; $model = "Mover".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; $dostuff=1001; #since using special $omitangles_allready_set_angle = 1; #no angles to be set $specialextrastuffname0 = 'debris'; $specialextrastuffamnt0 = 'models/glass/brokenglass1.md3 models/glass/brokenglass2.md3'; $specialextrastuffname1 = 'debrismovetype'; $specialextrastuffamnt1 = 'MOVETYPE_NONE'; $specialextrastuffname2 = 'respawntime'; $specialextrastuffamnt2 = "$mover_stayopentime"; $specialextrastuffname3 = 'health'; $specialextrastuffamnt3 = $mover_damagethreshold; if ($comment_mover_information ) { print('//#'); print("XXXX2 Breakable "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_event) { print(' event: '."$mover_event"); } #set to make the glass etc in the file if ($mover_tag) { print(' tag: '."$mover_tag"); } #shouldn't really be set but... print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### ### #lift crushing (tall towa) } elsif (($OMIT_NEWER_MOVERS == 0) && #allow newer movers after destructables ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 1) #crushing lift && #(!($mover_bumptype)) #none set #added #edit commented out to be useable by more lifts #&& #edit commented out to be useable by more lifts (!($mover_encroachdamage)) #none set #//&& #//($mover_tag) && ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && #this one was set only to positive in twilight, as those movers only went up from down #here these go down from up often, so it might be negative ($moverkey_pos_origin_z-$mover_basepos_origin_z > 0 || $moverkey_pos_origin_z-$mover_basepos_origin_z < 0 ) #is ... something && ($formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) ) { my $templiftaddedinfo = ''; $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #-1 up, -2 down $omitangles_allready_set_angle = 1; #for movers my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; $specialextrastuffamnt3 = ($moverkey_pos_origin_z*-1) - $tempamnt; #note: opposite to crusher $classname = 'func_door'; #$targetname = $mover_tag; if ( (!($mover_bumptype)) ) { $templiftaddedinfo = ''; } else { $templiftaddedinfo = $mover_bumptype.$model; } $model = "LiftCrushing"."$templiftaddedinfo".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("LCLC LiftCrushing$templiftaddedinfo "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### ### #lift (twilight (reverse) (speculative)) } elsif (($OMIT_NEWER_MOVERS == 0) && #allow newer movers after destructables ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (!($mover_encroachtype)) #none set && #(!($mover_bumptype)) #none set #added #edit commented out to be useable by more lifts #&& #edit commented out to be useable by more lifts (!($mover_encroachdamage)) #none set #//&& #//($mover_tag) && ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && ($moverkey_pos_origin_z < 0) #is negative, goes down (#not tested for lip note) && ($formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) ) { my $templiftaddedinfo = ''; $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #-1 up, -2 down $omitangles_allready_set_angle = 1; #for movers my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; $specialextrastuffamnt3 = ($moverkey_pos_origin_z*-1) - $tempamnt; #note: opposite to crusher #(not tested for lip note) $classname = 'func_door'; #$targetname = $mover_tag; if ( (!($mover_bumptype)) ) { $templiftaddedinfo = ''; } else { $templiftaddedinfo = $mover_bumptype.$model; } $model = "LiftReverse"."$templiftaddedinfo".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("LLLR LiftReverse$templiftaddedinfo "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### ### Door rotating (tall towa) (attempt) } elsif (($OMIT_NEWER_MOVERS == 0) && #allow newer movers after destructables ( ( !($moverkey_rotation_pitch) && #not set ($moverkey_rotation_yaw) && # set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && (($moverkey_pos_origin_x == 0) && #notset sliding ($moverkey_pos_origin_y == 0) && #notset sliding ($moverkey_pos_origin_z == 0)) #notset sliding ) ) { #rotating door it seems if ($comment_mover_information ) { print('//#'); print("RDRD RotatingDoor $mover_tag"); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); } $did_mover_name_allready = 1; } print("\n"); } #sets the prefix of the model to mover_tag by default, or name if there is none if ($mover_tag eq '') { if ($name eq '') { } else { #second choice $temp_mover_prefix = $name; } } else { #first choice $temp_mover_prefix = $mover_tag; } $classname = 'func_door_rotating'; #$rotation_yaw = &rotation_convert($moverkey_rotation_yaw); #angles x y z #this made the angles too small for this rotating door $rotation_yaw *= -1; #not sure #$spawnflags = 128; #$force_angles_rather_than_angle = 1; #for this type we want just angle $no_angle_conversion_allready_done = 1; #$targetname = $mover_tag; #$model = "RotatingDoor"."$temp_mover_prefix".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $model = "RotatingDoor".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofrotatingdoortrapmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); ### ### #button (heal pod) #this was made after newer models1 } elsif (($OMIT_NEWER_MOVERS == 0) && #allow newer movers after destructables ($OMIT_NEWER_MOVERS2 == 0) && #allow even newer models after Elevator E ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 2) #ignore when encroached && ($mover_initialstate == 3) #Stand Open Timed && ($mover_moverglidetype == 1) #MV_MoveByTime && (!($mover_bumptype)) #none set #added #edit commented out to be useable by more lifts && #edit commented out to be useable by more lifts (!($mover_encroachdamage)) #none set && (!($mover_tag)) #doesn't have this set && ($mover_event) #this used for trigger here && ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && #this one was set only to positive in twilight, as those movers only went up from down #here these go down from up often, so it might be negative ($moverkey_pos_origin_z-$mover_basepos_origin_z > 0 || $moverkey_pos_origin_z-$mover_basepos_origin_z < 0 ) #is ... something && ($formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) ) { my $templiftaddedinfo = ''; $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #-1 up, -2 down $omitangles_allready_set_angle = 1; #for movers my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; $specialextrastuffamnt3 = ($moverkey_pos_origin_z*-1) - $tempamnt; #note: opposite to crusher $classname = 'func_button'; $target = $mover_event; if ( (!($mover_bumptype)) ) { $templiftaddedinfo = ''; } else { $templiftaddedinfo = $mover_bumptype.$model; } $model = "ButtonE"."$templiftaddedinfo".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("ButtonE$templiftaddedinfo "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_event) { print(' event: '."$mover_event"); } #set to make the glass etc in the file if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### ### #lift elevator glass outside (tall towa) } elsif (($OMIT_NEWER_MOVERS == 0) && #allow newer movers after destructables ( (!($moverkey_rotation_pitch) && #not set !($moverkey_rotation_yaw) && #not set !($moverkey_rotation_roll)) #not set && (($saved_moverkey_rotation_pitch == 123) && ($saved_moverkey_rotation_yaw == 456) && ($saved_moverkey_rotation_roll == 789)) && (($saved_mover_basepos_origin_x == -12345.000000) && ($saved_mover_basepos_origin_y == -12345.000000) && ($saved_mover_basepos_origin_z == -12345.000000)) && ($mover_encroachtype == 2) #ignore when encroached && #(!($mover_bumptype)) #none set #added #edit commented out to be useable by more lifts #&& #edit commented out to be useable by more lifts (!($mover_encroachdamage)) #none set #//&& #//($mover_tag) && ((!($moverkey_pos_origin_x)) && #notset (!($moverkey_pos_origin_y)) && #notset ($moverkey_pos_origin_z)) #one of these set sliding && #this one was set only to positive in twilight, as those movers only went up from down #here these go down from up often, so it might be negative ($moverkey_pos_origin_z-$mover_basepos_origin_z > 0 || $moverkey_pos_origin_z-$mover_basepos_origin_z < 0 ) #is ... something && ($formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_z) #has a size ) ) { my $templiftaddedinfo = ''; $specialextrastuffname2 = 'angle'; $specialextrastuffamnt2 = -1; #-1 up, -2 down $omitangles_allready_set_angle = 1; #for movers my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; $specialextrastuffamnt3 = ($moverkey_pos_origin_z*-1) - $tempamnt; #note: opposite to crusher $classname = 'func_door'; #$targetname = $mover_tag; if ( (!($mover_bumptype)) ) { $templiftaddedinfo = ''; } else { $templiftaddedinfo = $mover_bumptype.$model; } $model = "LiftE"."$templiftaddedinfo".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=1000; #guess soundguessfornoiseofliftmovers();$dostuff=1001; #since using special othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); if ($comment_mover_information ) { print('//#'); print("LELE LiftE$templiftaddedinfo "); if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($name eq '') { # do nothing } else { print(' '); print('name: '."$name"); if ($mover_tag) { print(' tag: '."$mover_tag"); } print("\n//minz - maxz =\t$tempamnt"); print("\n//key_z =\t".(0 + $moverkey_pos_origin_z)." "); } $did_mover_name_allready = 1; } print("\n"); } ### ### } else { print("//#UNKNOWN MOVER\n"); if ($mover_tag) { print('//# tag: '."$mover_tag"); } my $tempamnt; $tempamnt = $formover_littlest_seen_vertex_z - $formover_maximum_seen_vertex_z; $specialextrastuffname3 = 'lip'; $specialextrastuffamnt3 = ($moverkey_pos_origin_z*-1) - $tempamnt; #note: opposite to crusher #$specialextrastuffname4 = 'altlip'; #$specialextrastuffamnt4 = ($moverkey_pos_origin_z + $tempamnt)*-1; soundguessfornoiseofliftmovers(); othergeneralstuffformovers(); setmovetimeifnotset(); speedguessformovers(); $classname = 'func_door'; $model = "Mover".'_'.int($origin_x).'_'.int($origin_y).'_'.int($origin_z).'_.basescale1.obj_from_mc'; $dostuff=2001; } #if ($mover_bumpevent eq '') { } else { #$target = $mover_bumpevent = ''; #} } if ($is_zoneinfo_maybehurt && $mode == 0) { if (($bpainzone_true_or_false) && ($bpainzone_true_or_false eq 'True')) #substitution { if ($damagepersecond) { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; if ($damagepersecond > 0) { $specialextrastuffamnt = 'trigger_hurt'; $specialextrastuffname0 = 'dmg'; $specialextrastuffamnt0 = $damagepersecond; } elsif ($damagepersecond < 0) { $specialextrastuffamnt = 'trigger_heal'; $specialextrastuffname0 = 'dmg'; $specialextrastuffamnt0 = ($damagepersecond * -1); } if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } } elsif ($damagetype_lineinfo) { if ($damagetype_lineinfo eq 'Burned') { $specialextrastuffamnt = 'trigger_hurt'; $specialextrastuffamnt = (($specialextrastuffamnt).('"').(' //').('#').("$damagetype_lineinfo")); } } } } #VacuumZone Stuff if ($is_zoneinfo_maybehurt && $mode == 0 && $endnow == 1) { if ($damagepersecond) { if ($originalclassname eq 'VacuumZone' && $DOWATERLAVASLIMEZONES) #substitution { $specialextrastuffname0 = 'dmg'; $specialextrastuffamnt0 = $damagepersecond; } } elsif ($bwaterzone_true_or_false || $bslimezone_true_or_false || $blavazone_true_or_false) { #deal with not really water zones. if ($bkillzone_true_or_false eq 'True') { # Do nothing, trigger hurt $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; if ($damagepersecond > 0) { $specialextrastuffamnt = 'trigger_hurt'; $specialextrastuffname0 = 'dmg'; $specialextrastuffamnt0 = $damagepersecond; } if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } #old zone infos that were what made water once upon a time } elsif ($bwaterzone_true_or_false && $bwaterzone_true_or_false eq 'True') { if ($bpainzone_true_or_false eq 'True') { #Do nothing } else { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'func_servercontents_water'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } } } elsif ($bslimezone_true_or_false && $bslimezone_true_or_false eq 'True') { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'func_servercontents_slime'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } } elsif ($blavazone_true_or_false && $blavazone_true_or_false eq 'True') { $classname = 'xyz_autofill'; $dostuff = 1001; #special case, more information printed $specialextrastuffname = 'xyz_autofill_spawn'; $specialextrastuffamnt = 'func_servercontents_lava'; if ($WATERLAVASLIMEZONESAREPRINTEDATEND) { $change_standard_output = 1; #so we will print to an in memory file handle } } } } #This deals with models that show different things based on animsequence perhaps if ($is_model_maybereversez && $endnow == 1 && $mode == 0) { if ($is_model_maybereversez) { if ($animsequence) { if ($animsequence ne '') { if ($originalclassname eq 'CrucifiedNali') { if ($animsequence eq 'HangFeet') { $model = 'models/fromunreal/CrossNali_HangFeet.basescale1.obj_from_mc'; } elsif ($animsequence eq 'Hang1') { $model = 'models/fromunreal/CrossNali_Hang1.basescale1.obj_from_mc'; } elsif ($animsequence eq 'Hang2') { $model = 'models/fromunreal/CrossNali_Hang2.basescale1.obj_from_mc'; } elsif ($animsequence eq 'Hang3') { $model = 'models/fromunreal/CrossNali_Hang3.basescale1.obj_from_mc'; } elsif ($animsequence eq 'Impaled') { $model = 'models/fromunreal/CrossNali_Impaled.basescale1.obj_from_mc'; } elsif ($animsequence eq 'Stocks') { $model = 'models/fromunreal/CrossNali_Stocks.basescale1.obj_from_mc'; } elsif ($animsequence eq 'Stretch') { $model = 'models/fromunreal/CrossNali_Stretch.basescale1.obj_from_mc'; } } } } } #maybe if ($drawscale) { #$specialextrasetscalefromdrawscale = 'scale'; #just using below, if it's set it prints the scale $specialextrasetscalefromdrawscaleamnt = $drawscale; } elsif ($pre_drawscale) { #$specialextrasetscalefromdrawscale = 'scale'; #just using below, if it's set it prints the scale $specialextrasetscalefromdrawscaleamnt = $pre_drawscale; } } if ($dostuff == 3 && $endnow == 1 && $mode == 0 && $is_allowed_even_if_not_mover == 1) { #is allowed... is for teleporters etc if ($url || $mover_tag || $mover_event) { #Written this way incase to add non printing functions if ($COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS) { print('//'); print('#'); print('ee'); } if ($url ne '') { if ($COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS) { print(' URL "'); print("$url"); } } if ($mover_tag ne '') { if ($COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS) { print(' Tag "'); print("$mover_tag"); } } if ($mover_event ne '') { if ($COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS) { print(' Event "'); print("$mover_event"); } } if ($COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS) { print("\n"); } } } #Resume regular below #Ignore if in brush if ($ignoreingalllinesinbrush == 1) { #First a test massage } elsif ($dostuff == 3 && $endnow == 1 && $TESTUNKNOWNPRINTS) { if ($COMMENTOUTUNKNOWNSIFTESTUNKNOWNPRINTS) { print('//'); print('#'); print('ee'); print('{'); print("\n"); print('//'); print('#'); print('ee'); print(' classname "'); print("$classname"); print('"');print(' xxxxxx'); if ($ORIGINFORUNKNOWNSIFTESTUNKNOWNPRINTS == 1) { print("\t\t"); print('//'); print('#'); print(int($origin_x), ' ', int($origin_y), ' ', int($origin_z)); }print("\n"); print('//'); print('#'); print('ee'); print('}'); print("\n"); if ($ORIGINFORUNKNOWNSIFTESTUNKNOWNPRINTS == 2) { print('//'); print('#'); print('Above Location:'); print(($origin_x), ' ', ($origin_y), ' ', ($origin_z)); print("\n"); } } else { my $message = <<"END_MESSAGE"; ee{ ee classname "$classname" xxxxxx ee} END_MESSAGE print $message; } newlinebetweensections(); $classname = ""; #then another test message } elsif ($dostuff == 4 && $endnow == 1 && $TESTLIGHTPRINTS) { my $message = <<"ENX_MESSAGE"; **{ ** "classname" "$classname" xxxxxx ** "origin" "$origin_x $origin_y $origin_z" ** "spawnflags" "1" wonder what that does to a light **} ENX_MESSAGE print $message; newlinebetweensections(); $classname = ""; #this is the real deal below } elsif ($dostuff == 5 && $endnow == 1) { my $message = <<"ENY_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" } ENY_MESSAGE print $message; newlinebetweensections(); $classname = ""; #this is for ambientsounds below } elsif ($dostuff == 7 && $endnow == 1) { my $message = <<"ENZ_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "noise" "$noise.wav" } ENZ_MESSAGE print $message; if ($CONVERT_SOME_NOISES_TO_SIMPLER_STRING) { if ($PRINTORIGINALSOUNDINFOASCOMMENTIFCONVERTED) { print('//'); print('#'); print(' Above:'); print("$originalnoisecomment"); print("\n"); } } newlinebetweensections(); $classname = ""; #this is the real deal below but a special case for playerstarts if you want to add more Z } elsif ($dostuff == 500 && $endnow == 1) { if ($PRINTINFOREGARDINGADDINGZTOPLAYERSTART) { print('//'); print('#'); print('NOTE Added to Z Below: Original X Y Z:'); print("$origin_x $origin_y $origin_z"); print("\n"); } $origin_z = $origin_z + $add_z_toplayerstart; my $message = <<"ENY_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" } ENY_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a rifle round for the t17mmrifle } elsif ($dostuff == 6 && $endnow == 1) { my $message = <<"ENX2_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "model" "models/items/casingriflebullet.iqm" "scale" "1.46" "ammo_nails" "3" } ENX2_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a rifle round for the rem308 } elsif ($dostuff == 7 && $endnow == 1) { my $message = <<"ENX3_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "model" "models/items/casingriflebullet.iqm" "scale" "0.66" "ammo_nails" "3" } ENX3_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for shells for ithaca, should be 12 ga, but scale set to 8ga for now since it's a bunch of them } elsif ($dostuff == 8 && $endnow == 1) { my $message = <<"ENX5_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "model" "models/casing_shell.mdl" "scale" "1.145" "ammo_shells" "3" } ENX5_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a clip of 223 //Scale big to distinguish from the pickup } elsif ($dostuff == 9 && $endnow == 1) { my $message = <<"ENX7_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "model" "models/misc/extendedmags/styeraugmag30.iqm" "scale" "2" "ammo_nails" "30" } ENX7_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a box of 9mm //Scale down ammo can? } elsif ($dostuff == 10 && $endnow == 1) { my $message = <<"ENX10_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "scale" "0.66" "ammo_nails" "60" } ENX10_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a clips of 45 //Scale up to distinguish from the pickup } elsif ($dostuff == 11 && $endnow == 1) { my $message = <<"ENX11_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "model" "models/misc/extendedmags/uzimag20.iqm" "scale" "2" "ammo_nails" "12" } ENX11_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for loose 203 //Scale up to distinguish from the pickup } elsif ($dostuff == 12 && $endnow == 1) { my $message = <<"ENX12_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "model" "models/casing_steel.mdl" "scale" "2" "ammo_nails" "3" } ENX12_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a box of 45 //Scale down ammo can? } elsif ($dostuff == 15 && $endnow == 1) { my $message = <<"ENX15_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "spawnflags" "1" "scale" "0.75" "ammo_nails" "70" } ENX15_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a buildablebuildingnumber by count } elsif ($dostuff == 200 && $endnow == 1) { my $message = <<"COUNT0_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "count" "$count" } COUNT0_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special case for a model } elsif ($dostuff == 100 && $endnow == 1) { my $message = <<"MODEL0_MESSAGE"; { "classname" "$classname" "origin" "$origin_x $origin_y $origin_z" "model" "$model" } MODEL0_MESSAGE print $message; newlinebetweensections(); $classname = ""; #This is a special generic case } elsif (($dostuff == 1000 || $dostuff == 1001 || $dostuff == 2001) && $endnow == 1) { if ($mode == 2) { #rtlight if ($ignore_unset_lights == 1 && ($is_light_entity && $no_color_set_by_map && $no_radius_set_by_map)) { #ignore this light completely } else { rtlightprint(); } #normal entity and or light mode below } elsif ($classname && ($ignore_unset_lights == 1 && ($is_light_entity && $no_color_set_by_map && $no_radius_set_by_map))) { #ignore this light completely } elsif ($classname) { if ($change_standard_output) { if ($WATERLAVASLIMEZONESAREPRINTEDATEND && $DOWATERLAVASLIMEZONES) { $output = $fh; } } $comment_out_noise = 0; if ($is_mover) { if ($PRINTMOVERNAMEASCOMMENTIFFOUND_FORMOVER) { if ($did_mover_name_allready) { # do nothing } elsif ($name eq '') { # do nothing } else { print $output ('//'); print $output ('#'); print $output ('name: '."$name"); print $output ("\n"); } } } if ($is_mover && ( $formover_maximum_seen_vertex_x || $formover_maximum_seen_vertex_y || $formover_maximum_seen_vertex_z || $formover_littlest_seen_vertex_x || $formover_littlest_seen_vertex_y || $formover_littlest_seen_vertex_z)) { if ($PRINTMINSMAXSASCOMMENTIFFOUND_FORMOVER) { print $output ('//'); print $output ('#'); print $output ('Maxs: '."$formover_maximum_seen_vertex_x $formover_maximum_seen_vertex_y $formover_maximum_seen_vertex_z"); print $output ("\n"); print $output ('//'); print $output ('#'); print $output ('mins: '."$formover_littlest_seen_vertex_x $formover_littlest_seen_vertex_y $formover_littlest_seen_vertex_z"); print $output ("\n"); } } if ($rotation_pitch || $rotation_yaw || $rotation_roll) { if ($PRINTORIGINALROTATIONINFOASCOMMENTIFCONVERTED) { if ($is_mover && $force_angles_rather_than_angle && $no_angle_conversion_allready_done) { #for mover print $output ('//'); print $output ('#'); print $output (' Below: Rotation PRE CONVERTED '); print $output ("Pitch $infooriginal_mover_rotation_pitch Yaw $infooriginal_mover_rotation_yaw Roll$infooriginal_mover_rotation_roll"); print $output ("\n"); } else { print $output ('//'); print $output ('#'); print $output (' Below: Rotation Pre Conversions '); print $output ("Pitch $rotation_pitch Yaw $rotation_yaw Roll$rotation_roll"); print $output ("\n"); } } if ($is_mover && $force_angles_rather_than_angle && $no_angle_conversion_allready_done) { #for mover #do nothing } else { if ($rotation_pitch) { $rotation_pitch = &rotation_convert($rotation_pitch); } if ($rotation_yaw) { $rotation_yaw = &rotation_convert($rotation_yaw); } if ($rotation_roll) { $rotation_roll = &rotation_convert($rotation_roll); } } if ($is_model_maybereversez && $mode == 0) { if ($REVERSE_Z_ANGLE_ON_SOME_MODELS) { if ($rotation_roll) { if ($rotation_roll > 0 || $rotation_roll < 0) { if ($PRINTREVERSEZMODELINFOASCOMMENTIFREVERSED) { print('//'); print('#'); print(" Z angle has been reversed for this model (was $rotation_roll"); } $rotation_roll = $rotation_roll * -1; if ($PRINTREVERSEZMODELINFOASCOMMENTIFREVERSED) { print(" is now: $rotation_roll)\n"); } } } } if ($REVERSE_X_ANGLE_ON_SOME_MODELS) { if ($rotation_pitch) { if ($rotation_pitch > 0 || $rotation_pitch < 0) { if ($PRINTREVERSEZMODELINFOASCOMMENTIFREVERSED) { print('//'); print('#'); print(" X angle has been reversed for this model (was $rotation_pitch"); } $rotation_pitch = $rotation_pitch * -1; if ($PRINTREVERSEZMODELINFOASCOMMENTIFREVERSED) { print(" is now: $rotation_pitch)\n"); } } } } } } if ($hue || $saturation || $brightness) { $comment_out_noise = 1; if ($PRINTORIGINALHUESATURATIONBRIGHTNESSINFOASCOMMENTIFCONVERTED) { print $output ('//'); print $output ('#'); print $output (' Below: HSV Pre Conversions '); print $output ("Hue $hue Saturation $saturation Brightness $brightness\n"); } } prc(); print $output ('{'); print $output ("\n"); #print our classname, which will be the subroutine that is called or so in game prc(); print $output ("\t",'"','classname','"',' '); print $output ('"',"$classname",'"'); print $output ("\n"); #origin if ($origin_x || $origin_y || $origin_z) { prc(); print $output ("\t",'"','origin','"',' '); print $output ('"',"$origin_x $origin_y $origin_z",'"'); print $output ("\n"); } if ($model) { prc(); print $output ("\t",'"','model','"',' '); print $output ('"',"$model",'"'); print $output ("\n"); } #rotation if only around then just angle, otherwise use vector angles if ($is_mover && $omitangles_allready_set_angle) { #for mover } elsif ($is_mover && $force_angles_rather_than_angle) { #for mover prc(); print $output ("\t",'"','angles','"',' '); print $output ('"',"$rotation_pitch $rotation_yaw $rotation_roll",'"'); print $output ("\n"); #for mover } elsif ($rotation_yaw && !($rotation_pitch) && !($rotation_roll)) { prc(); print $output ("\t",'"','angle','"',' '); print $output ('"',"$rotation_yaw",'"'); print $output ("\n"); } elsif ($rotation_pitch || $rotation_yaw || $rotation_roll) { prc(); print $output ("\t",'"','angles','"',' '); print $output ('"',"$rotation_pitch $rotation_yaw $rotation_roll",'"'); print $output ("\n"); } if ($speed) { prc(); print $output ("\t",'"','speed','"',' '); print $output ('"',"$speed",'"'); print $output ("\n"); } if ($noise) { prc(); if ($comment_out_noise) { print $output ("\t"); print $output ('//'); print $output ('#'); } print $output ("\t",'"','noise','"',' '); print $output ('"',"$noise.wav",'"'); print $output ("\n"); } if ($light_radius) { prc(); print $output ("\t",'"','light_lev','"',' '); print $output ('"',"$light_radius",'"'); print $output ("\n"); } if ($spawnflags) { prc(); print $output ("\t",'"','spawnflags','"',' '); print $output ('"',"$spawnflags",'"'); print $output ("\n"); } #target/targetname just for movers now if ($is_mover) { if ($targetname eq '') { } else { prc(); print $output ("\t",'"','targetname','"',' '); print $output ('"',"$targetname",'"'); print $output ("\n"); } if ($target eq '') { } else { prc(); print $output ("\t",'"','target','"',' '); print $output ('"',"$target",'"'); print $output ("\n"); } } #other added stuff if ($dostuff == 1001 || $dostuff == 2001) { if ($specialextrastuffname) { prc(); print $output ("\t",'"',"$specialextrastuffname",'"',' '); print $output ('"',"$specialextrastuffamnt",'"'); print $output ("\n"); } if ($specialextrastuffname0) { prc(); print $output ("\t",'"',"$specialextrastuffname0",'"',' '); print $output ('"',"$specialextrastuffamnt0",'"'); print $output ("\n"); } if ($specialextrastuffname1) { prc(); print $output ("\t",'"',"$specialextrastuffname1",'"',' '); print $output ('"',"$specialextrastuffamnt1",'"'); print $output ("\n"); } if ($specialextrastuffname2) { prc(); print $output ("\t",'"',"$specialextrastuffname2",'"',' '); print $output ('"',"$specialextrastuffamnt2",'"'); print $output ("\n"); } if ($specialextrastuffname3) { prc(); print $output ("\t",'"',"$specialextrastuffname3",'"',' '); print $output ('"',"$specialextrastuffamnt3",'"'); print $output ("\n"); } if ($specialextrastuffname4) { prc(); print $output ("\t",'"',"$specialextrastuffname4",'"',' '); print $output ('"',"$specialextrastuffamnt4",'"'); print $output ("\n"); } if ($specialextrastuffname5) { prc(); print $output ("\t",'"',"$specialextrastuffname5",'"',' '); print $output ('"',"$specialextrastuffamnt5",'"'); print $output ("\n"); } if ($specialextrasetscalefromdrawscaleamnt) { if ($specialextrasetscalefromdrawscaleamnt > 0) { prc(); print $output ("\t",'"','scale','"',' '); print $output ('"',"$specialextrasetscalefromdrawscaleamnt",'"'); print $output ("\n"); if ($SETSOLIDPHYSICSTRIMESHIFDSCALEONSOMEMODELS) { if ($setsolidkeepdefaultevenifdscale) { #do nothing } else { prc(); print $output ("\t",'"','solid','"',' '); print $output ('"','35','"'); print $output ("\n"); #set to solid physics trimesh (35) for these, as solid_bsp scaled doesn't work correctly when scaled } } } } if ($checkforviewfog_extra == 1) { if ($viewfogused) { prc(); print $output ("\t",'"','servercontents_customfog','"',' '); print $output ('"',"$view_fog_rgbaspos_origin_x $view_fog_rgbaspos_origin_y $view_fog_rgbaspos_origin_z",'"'); print $output ("\n"); } } } ###set defaults ##if ($mode == 1) { #lm mode ## if (!($hue)) { $hue = 64 } #set defaults if not set ## if (!($saturation)) { $saturation = 255}#set defaults if not set ##} #will be in time for next part if (($hue || $saturation || $brightness) || ($mode == 1)) { hsv_to_rgb(); if ((!($color_r)) && (!($color_b)) && (!($color_g))) { if ($Set_Default_HSV_and_Radius_At_Begining_Instead) { #do nothing } elsif ($SET_UNSET_LIGHT_COLOR) { $color_r = 1; $color_g = 1; $color_b = 1; } } prc(); print $output ("\t",'"','color','"',' '); print $output ('"',"$color_r $color_g $color_b",'"'); print $output ("\n"); prc(); print $output ("\t",'"','pflags','"',' '); print $output ('"','128','"'); print $output ("\n"); #PFLAGS_FULLDYNAMIC prc(); print $output ("\t",'"','style','"',' '); print $output ('"','0','"'); print $output ("\n"); #set default light radius if none as above in the rt code if (!($light_radius)) { if ($Set_Default_HSV_and_Radius_At_Begining_Instead) { #do nothing } elsif ($SET_UNSET_LIGHT_RADIUS) { $light_radius = 64; prc(); print $output ("\t",'"','light_lev','"',' '); print $output ('"',"$light_radius",'"'); print $output ("\n"); } } #default } prc(); print $output ('}'); print $output ("\n"); if ($PRINTORIGINALHUESATURATIONBRIGHTNESSINFOASCOMMENTIFCONVERTED) { if ($hue || $saturation || $brightness) { print $output ('//'); print $output ('#'); print $output (' Above: Color '); print $output (int($color_r*256),' ', int($color_g*256),' ', int($color_b*256),' '); print $output ("\n"); } } if ($CONVERT_SOME_NOISES_TO_SIMPLER_STRING) { if ($PRINTORIGINALSOUNDINFOASCOMMENTIFCONVERTED) { if ($noise) { print $output ('//'); print $output ('#'); print $output (' Above:'); print $output ("$originalnoisecomment"); print $output ("\n"); } if ($is_mover && $openingnoise_formover) { print $output ('//'); print $output ('#'); print $output (' Above Opening:'); print $output ("$originalnoisecomment_o"); print $output ("\n"); } if ($is_mover && $closingnoise_formover) { print $output ('//'); print $output ('#'); print $output (' Above Closing:'); print $output ("$originalnoisecomment_c"); print $output ("\n"); } if ($is_mover && $moveambientnoise_formover) { print $output ('//'); print $output ('#'); print $output (' Above MovingAmbient:'); print $output ("$originalnoisecomment_m"); print $output ("\n"); } if ($is_mover && $closingingnoise_formover) { print $output ('//'); print $output ('#'); print $output (' Above Closinging:'); print $output ("$originalnoisecomment_cc"); print $output ("\n"); } } } newlinebetweensections(); if ($change_standard_output) { $output = STDOUT; #Restore $change_standard_output = 0; } } $classname = ""; } #completed #reset variables for the next block if ($endnow == 1) { $classname = ""; $beforeequals = ""; $afterequals = ""; $endnow = 0; $dostuff = 0; $origin_x = 0; $origin_y = 0; $origin_z = 0; $rotation_pitch = 0; $rotation_yaw = 0; $rotation_roll = 0; $rotationrate_pitch = 0; $rotationrate_yaw = 0; $rotationrate_roll = 0; $noise = ''; $model = ''; $count = ''; $originalnoisecomment = ''; $originalclassname = ''; $hue = 0; $saturation = 0; $brightness = 0; $light_radius = 0; $color_r = 0; $color_g = 0; $color_b = 0; $spawnflags = 0; $cubemap = ''; $corona = 0; $coronasize = 0; #0.25; #default 0.25 but corona is off by default $ambient = 0; $diffuse = 1; #default 1 $specular= 1; #default 1 $specialextrastuffname = ''; $specialextrastuffamnt = ''; $specialextrastuffname0 = ''; $specialextrastuffamnt0 = ''; $specialextrastuffname1 = ''; $specialextrastuffamnt1 = ''; $specialextrastuffname2 = ''; $specialextrastuffamnt2 = ''; $specialextrastuffname3 = ''; $specialextrastuffamnt3 = ''; $specialextrastuffname4 = ''; $specialextrastuffamnt4 = ''; $specialextrastuffname5 = ''; $specialextrastuffamnt5 = ''; $specialextrasetscalefromdrawscaleamnt = 0; $checkforviewfog = 0; $no_color_set_by_map = 1; #for SET_UNSET_LIGHT_COLOR = 1; and ignore $no_radius_set_by_map = 1; #for SET_UNSET_LIGHT_RADIUS = 1;; and ignore $is_light_entity = 0; #so we may ignore if need be $is_mover = 0; $is_allowed_even_if_not_mover = 0; $is_fan = 0; $is_rotating_mover = 0; $is_zoneinfo_maybehurt = 0; $is_model_maybereversez = 0; $setsolidkeepdefaultevenifdscale = 0; # $moverkey_rotation_pitch = 0; $moverkey_rotation_yaw = 0; $moverkey_rotation_roll = 0; $moverkey_pos_origin_x = 0; #dejavu (key_pos) $moverkey_pos_origin_y = 0; $moverkey_pos_origin_z = 0; $moverkey_pos2_origin_x = 0; $moverkey_pos2_origin_y = 0; $moverkey_pos2_origin_z = 0; $mover_basepos_origin_x = 0; $mover_basepos_origin_y = 0; $mover_basepos_origin_z = 0; $saved_moverkey_rotation_pitch = 0; $saved_moverkey_rotation_yaw = 0; $saved_moverkey_rotation_roll = 0; $saved_mover_basepos_origin_x = 0; $saved_mover_basepos_origin_y = 0; $saved_mover_basepos_origin_z = 0; $viewfogused = 0; $view_fog_rgbaspos_origin_x = 0; $view_fog_rgbaspos_origin_y = 0; $view_fog_rgbaspos_origin_z = 0; $mover_encroachdamage = 0; $drawscale = 0; $pre_drawscale = 0; #for models, set to something if the default scale isnt 1 $mover_encroachtype = 0; #1 = crush $mover_tag = ''; $targetname = ''; $target = ''; $mover_bumpevent = ''; $mover_event = ''; $animsequence = ''; $url = ''; $force_angles_rather_than_angle = 0; #for movers $no_angle_conversion_allready_done = 0; #for movers $moveambientnoise_formover = ''; $openingnoise_formover = ''; $closingnoise_formover = ''; $closingingnoise_formover = ''; $originalnoisecomment_m = ''; $originalnoisecomment_o = ''; $originalnoisecomment_c = ''; $originalnoisecomment_cc = ''; $infooriginal_mover_rotation_pitch = 0; #Just for info $infooriginal_mover_rotation_yaw = 0; #Just for info $infooriginal_mover_rotation_roll = 0; #Just for info $mover_bumptype = 0; #1 = Any $mover_movetime = 0; $mover_movetimewasset = 0; #used to denote the line was set to something in the file, even if 0 $mover_moverglidetype = 0; $mover_bdamagetriggered = 0; $mover_damagethreshold = 0; $mover_stayopentime = 0; $bpainzone_true_or_false = 0; $bwaterzone_true_or_false = 0; $bslimezone_true_or_false = 0; $blavazone_true_or_false = 0; $bkillzone_true_or_false = 0; $damagetype_lineinfo = 0; #for zone info sometimes $bcorona_true_or_false = 0; $lineset_capital_Skin = ''; #for corona $damagepersecond = 0; $mover_stayopentimewasset = 0; #used to denote the line was set to something in the file, even if 0 #added for effect $speed = 0; $formover_maximum_seen_vertex_x = 0; $formover_maximum_seen_vertex_y = 0; $formover_maximum_seen_vertex_z = 0; $formover_littlest_seen_vertex_x = 0; $formover_littlest_seen_vertex_y = 0; $formover_littlest_seen_vertex_z = 0; $name = ''; $did_mover_name_allready = 0; $mover_initialstate = 0; $omitangles_allready_set_angle = 0; #for movers if ($change_standard_output) { if ($output != STDOUT) { $output = STDOUT; #Restore $change_standard_output = 0; } } $change_standard_output = 0; #just in case # setdefault_light_and_radius_maybe(); $recorded_actual_from_file__brightness = 0; #for corona $recorded_actual_from_file__hue = 0; #for corona $recorded_actual_from_file__saturation = 0; #for corona $recorded_actual_from_file__light_radius = 0; #for corona } } sub printcomment { print('//'); print('#'); } sub printrtdebug0_maybe { if ($PRINTDEBUGINFOASCOMMENTFORRTLIGHTS) { printcomment(); print(" origin: $origin_x $origin_y $origin_z \n"); printcomment(); print(" hue: $hue \n"); printcomment(); print(" saturation: $saturation \n"); printcomment(); print(" brightness: $brightness \n"); } } sub printrtdebug1_maybe { if ($PRINTDEBUGINFOASCOMMENTFORRTLIGHTS) { printcomment(); print("\t",'"','color','"',' '); print('"',"$color_r $color_g $color_b",'"'); print("\n"); printcomment(); print("\t",'"','b_Rgb','"',' '); print('"',"$b_Red $b_Green $b_Blue",'"'); print("\n"); } } sub printrtdebug2_maybe { if ($PRINTDEBUGINFOASCOMMENTFORRTLIGHTS) { printcomment(); print(" saturation(0..255) brightness(0..255) hue(0..255)\n"); printcomment(); print(" $saturation $brightness $hue\n"); } } sub printrtdebug3_maybe { if ($PRINTDEBUGINFOASCOMMENTFORRTLIGHTS) { print("\n"); } } #We have our color, now fit it to the map sub setdefault_light_and_radius_maybe() { if ($Set_Default_HSV_and_Radius_At_Begining_Instead) { $brightness = 64; #LightBrightness 64 $hue = 0; #LightHue 0 $saturation = 255; #LightSaturation 255 #radius $light_radius = 64; #LightRadius 64 } } #these are for fitting to a curve sub lightradius_affected_by_brightness() { $light_radius = $light_radius * ($brightness/255); } sub ambient_affected_by_saturation() { if ($saturation > 128) { #Do nothing, too low saturation (0 is "most saturation") } else { $ambient = 1 - ($saturation/128); #our space is 0 ... 128; 0 is the most intense light, and 128 is less so } } sub fittomycurve { if ($use_curve) { lightradius_affected_by_brightness(); ambient_affected_by_saturation(); } } sub rtlightprint { printrtdebug0_maybe(); #origin 20, -36, -240 .... radius 200 , red (1 0 0) #20.000000 -36.000000 -240.000000 200.000000 1.000000 0.000000 0.000000 0 #angles 10, 90, 20 #20.000000 -36.000000 -240.000000 200.000000 1.000000 1.000000 1.000000 0 "" 0.000000 10.000000 90.000000 20.000000 #style 3 #20.000000 -36.000000 -240.000000 200.000000 1.000000 1.000000 1.000000 3 ##if (!($hue)) { $hue = 64 } #set defaults if not set ##if (!($saturation)) { $saturation = 255}#set defaults if not set #0.000000 0.000000 ###-252.000000 200.000000 1.000000 1.000000 1.000000 0 "" 0.000000 270.000000 90.000000 180.000000 0.250000 0.500000 1.000000 1.000000 2 hsv_to_rgb(); fittomycurve(); printrtdebug1_maybe(); printrtdebug2_maybe(); if ($rtlight_allow_corona) { #Here we search for bCorona=True was set and if DrawScale= was set, and set corona if so if ($bcorona_true_or_false) { if ($bcorona_true_or_false eq 'True') { if ($drawscale) { $corona = 1; $coronasize = $drawscale; if ($rtlight_independent_corona_scale) { $coronasize = $coronasize * $rtlight_independent_corona_scale; } elsif ($rtlight_radius_scale) { $coronasize = $coronasize * $rtlight_radius_scale; } #$coronasize = 1; if ((!($color_r)) && (!($color_b)) && (!($color_g))) { #Force coronas to a certain color if ($SET_UNSET_CORONA_COLOR) { $color_r = $SET_UNSET_CORONA_COLOR_R; $color_g = $SET_UNSET_CORONA_COLOR_G; $color_b = $SET_UNSET_CORONA_COLOR_B; if (!($light_radius)) { $light_radius = 1; #$light_radius = $drawscale; } #Try to determine by texture name (ie: guess) } elsif ($SET_UNSET_CORONA_COLOR_BY_TEXTURE) { if ($lineset_capital_Skin eq '') { } elsif ($lineset_capital_Skin eq 'Texture\'GenFX.LensFlar.3\'') { $color_r = 1; $color_g = 0; $color_b = 0; } elsif ($lineset_capital_Skin eq 'Texture\'GenFX.LensFlar.1\'') { $color_r = 1; $color_g = 1; $color_b = 1; } if (!($light_radius)) { $light_radius = 1; #$light_radius = $drawscale; } #Try by color information } else { hsv_to_rgb(); #avoid curve I guess ##ALT that was tried from the myhue: (but above works fine too) ##hueapply(); ##betweenhues(); #deals with hues not in the 16 table ##ALT Above that was tried from the myhue: if ((!($red)) && (!($green)) && (!($blue))) { #unlikely } else { #set the colors $color_r = $red; $color_g = $green; $color_b = $blue; } #0 or 255 saturation hack eq white if ($recorded_actual_from_file__saturation == 255 || $recorded_actual_from_file__saturation == 0) { $color_r = 1; $color_g = 1; $color_b = 1; } if (!($light_radius)) { $light_radius = 1; #$light_radius = $drawscale; } } } } } } } if ((!($color_r)) && (!($color_b)) && (!($color_g))) { if ($Set_Default_HSV_and_Radius_At_Begining_Instead) { #do nothing } elsif ($SET_UNSET_LIGHT_COLOR) { $color_r = 1; $color_g = 1; $color_b = 1; } } if ($rtlights_add_an_exclaimation_point) {print '!';} print(sprintf('%.6f', $origin_x)); print ' '; print(sprintf('%.6f', $origin_y)); print ' '; print(sprintf('%.6f', $origin_z)); print ' '; if (!($light_radius)) { if ($Set_Default_HSV_and_Radius_At_Begining_Instead) { #do nothing } elsif ($SET_UNSET_LIGHT_RADIUS) { $light_radius = 64; } } #default if ($rtlight_radius_scale) { print(sprintf('%.6f', $light_radius*$rtlight_radius_scale)); } else { print(sprintf('%.6f', $light_radius)); } print ' '; print(sprintf('%.6f', $color_r)); print ' '; print(sprintf('%.6f', $color_g)); print ' '; print(sprintf('%.6f', $color_b)); print ' '; #$ambient = 1; #$ambient = 0.5555; #test print '0'; print ' '; #style if ($rotation_pitch || $rotation_yaw || $rotation_roll || $cubemap || $corona || $coronasize || $ambient) { print ('"'); print("$cubemap"); print('"'); print ' '; #cubemap if ($rotation_pitch || $rotation_yaw || $rotation_roll || $corona || $coronasize || $ambient) { print(sprintf('%.6f', $corona)); print ' '; #?corona if ($rotation_pitch || $rotation_yaw || $rotation_roll || $coronasize || $ambient) { if ($rotation_pitch) { $rotation_pitch = &rotation_convert($rotation_pitch); } if ($rotation_yaw) { $rotation_yaw = &rotation_convert($rotation_yaw); } if ($rotation_roll) { $rotation_roll = &rotation_convert($rotation_roll); } print(sprintf('%.6f', $rotation_pitch)); print ' '; print(sprintf('%.6f', $rotation_yaw)); print ' '; print(sprintf('%.6f', $rotation_roll)); print ' '; if ($coronasize || $ambient) { print(sprintf('%.6f', $coronasize)); print ' '; if ($ambient) { print(sprintf('%.6f', $ambient)); print ' '; #defualt 0 print(sprintf('%.6f', $diffuse)); print ' '; #default 1 #diffuse print(sprintf('%.6f', $specular)); print ' '; #default 1 #specular (can be 0...1...more, and -1) print '2'; print ' '; # } } } } } print "\n"; printrtdebug3_maybe(); } if ($mode == 2) { #leave blank if ($PRINTCOMMANDARGUMENTSFORRTLIGHTS) { print('//'); print('#'); print(' Command arguments used: '); print("@ARGV"); # print(" "); print("\n"); print('//'); print('#'); print(' HSV Algo used: '); print("$hsvalgo"); print(" "); setstringhsvinfo(); print("$hsvalgousedstring"); print("\n"); print('//'); print('#'); print(' Settings used: '); if (!($use_curve)) { print(' (did not)'); } print(' use_curve: '); print("$use_curve"); print(','); if (!($ignore_unset_lights)) { print(' (did not)'); } print(' ignore_unset_lights: '); print("$ignore_unset_lights"); print(','); if (!($rtlight_allow_corona)) { print(' (did not)'); } print(' rtlight_allow_corona: '); print("$rtlight_allow_corona"); print(','); if (!($Set_Default_HSV_and_Radius_At_Begining_Instead)) { print(' (did not)'); } print(' set default colors: '); print("$Set_Default_HSV_and_Radius_At_Begining_Instead"); print("\n"); } } else { print("//#FINISHED FILE\n"); if ($mode == 0) { if ($var eq '') { if ($DOWATERLAVASLIMEZONES && $WATERLAVASLIMEZONESAREPRINTEDATEND) { close $fh; } } else { if ($DOWATERLAVASLIMEZONES && $WATERLAVASLIMEZONESAREPRINTEDATEND) { print("\n"); print("//#WATER, SLIME, LAVA ZONES PRINTED AT END\n"); print("\n"); close $fh; print $var; # asdf print("//#WATER, SLIME, LAVA ZONES PRINTED AT END\n"); } } } if ($mode == 4) { if ($ALLOW_DESTRUCTABLES_MOVERS == 0 && $OMIT_NEWER_MOVERS == 0 && $OMIT_NEWER_MOVERS2 == 0) { #nothing, default } else { print('//'); print('#'); print(' Mover Command arguments used: '); print("@ARGV"); print("\n"); } } } close (FILE); #for data mode exit; #for data mode