changeset 12000 | ec3fe3068932 |
parent 11999 | 6fd96a5d4e6f |
child 12001 | 936ac92cb67a |
11999:6fd96a5d4e6f | 12000:ec3fe3068932 |
---|---|
526 {"war_desertofficer","war_desertgrenadier1","war_desertmedic","war_desertsapper1","war_desertgrenadier2","war_desertgrenadier4","war_desertsapper2","war_desertgrenadier5"}, |
526 {"war_desertofficer","war_desertgrenadier1","war_desertmedic","war_desertsapper1","war_desertgrenadier2","war_desertgrenadier4","war_desertsapper2","war_desertgrenadier5"}, |
527 {"Brigadier Briggs","Lt. Luke","Sgt. Smith","Corporal Calvin","Frank","Joe","Sam","Donald"}, |
527 {"Brigadier Briggs","Lt. Luke","Sgt. Smith","Corporal Calvin","Frank","Joe","Sam","Donald"}, |
528 "F","cm_birdy","Default","Grave","Castle" |
528 "F","cm_birdy","Default","Grave","Castle" |
529 }, |
529 }, |
530 |
530 |
531 --{ |
|
532 --"Sci-Fi", |
|
533 --{"scif_2001O","scif_2001Y","scif_BrainSlug","scif_BrainSlug2","scif_Geordi","scif_SparkssHelmet","scif_cosmonaut","scif_cyberpunk","scif_swDarthvader","scif_swStormtrooper"}, |
|
534 --{}, |
|
535 --"R","cm_birdy","Default","Grave","Castle" |
|
536 --}, |
|
537 |
|
538 |
|
539 |
|
540 |
|
541 -- |
|
542 |
|
543 --{ |
|
544 --, |
|
545 --{}, |
|
546 --{}, |
|
547 --"R","cm_birdy","Default","Grave","Castle" |
|
548 --}, |
|
549 |
|
550 -- don't forget new additions need to be added to: |
531 -- don't forget new additions need to be added to: |
551 --pMode = {"Clowns","Street Fighters","Cybernetic Empire","Color Squad","Fruit","The Police","The Ninja-Samurai Alliance","Pokemon","The Zoo","The Devs","The Hospital"} |
532 --pMode = {"Clowns","Street Fighters","Cybernetic Empire","Color Squad","Fruit","The Police","The Ninja-Samurai Alliance","Pokemon","The Zoo","The Devs","The Hospital"} |
552 -- but maybe we can just get the size of this array and automatically generate a list instead |
533 -- but maybe we can just get the size of this array and automatically generate a list instead |
553 |
534 |
554 |
535 |
559 "R","cm_birdy","Default","heart","Castle" |
540 "R","cm_birdy","Default","heart","Castle" |
560 } |
541 } |
561 |
542 |
562 } |
543 } |
563 |
544 |
564 |
|
565 --local menuArray = { |
|
566 -- "Initialisation Menu", "Team Menu" |
|
567 -- } |
|
568 |
|
569 --local hatArray = {hahahaha, you're joking, right?} |
|
570 --[[well, here are most of them as vaguely ordered by theme, there may be some duplicates |
|
571 NoHat, |
|
572 NinjaFull,NinjaStraight,NinjaTriangle,Samurai,StrawHat,StrawHatEyes,StrawHatFacial,naruto |
|
573 sm_daisy,sm_luigi,sm_mario,sm_peach,sm_toad,sm_wario, |
|
574 ShortHair_Black,ShortHair_Brown,ShortHair_Grey,ShortHair_Red,ShortHair_Yellow |
|
575 hair_blue,hair_green,hair_red,hair_yellow,hair_purple,hair_grey,hair_orange,hair_pink |
|
576 Skull,Jason,ShaggyYeti,Zombi,cyclops,Mummy,hogpharoah,vampirichog |
|
577 cap_blue,cap_red,cap_green,cap_junior,cap_yellow,cap_thinking |
|
578 WhySoSerious,clown-copper,clown-crossed,clown,Joker |
|
579 bobby,bobby2v,policecap,policegirl,royalguard, |
|
580 spcartman,spstan,spkenny,spkyle, |
|
581 sf_balrog,sf_blanka,sf_blankatoothless,sf_chunli,sf_guile,sf_honda,sf_ken,sf_ryu,sf_vega |
|
582 Glasses,lambda,SunGlasses,Terminator_Glasses,Moustache_glasses |
|
583 Laminaria,Dragon, |
|
584 cyborg1,cyborg2, |
|
585 dish_Ladle,dish_SauceBoatSilver,dish_Teacup,dish_Teapot |
|
586 laurel,flag_french,flag_germany,flag_italy,flag_usa |
|
587 fr_apple,fr_banana,fr_lemon,fr_orange,fr_pumpkin,fr_tomato |
|
588 doctor,nurse,war_britmedic,war_desertmedic,war_germanww2medic, |
|
589 poke_ash,poke_charmander,poke_chikorita,poke_jigglypuff, |
|
590 poke_lugia,poke_mudkip,poke_pikachu,poke_slowpoke,poke_squirtle,poke_voltorb |
|
591 zoo_Bat,zoo_Beaver,zoo_Bunny,zoo_Deer,zoo_Hedgehog,zoo_Moose,zoo_Pig,zoo_Porkey,zoo_Sheep |
|
592 zoo_chicken,zoo_elephant,zoo_fish,zoo_frog,zoo_snail,zoo_turtle |
|
593 bushhider,cratehider,Disguise, |
|
594 tf_demoman,tf_scout,Sniper, |
|
595 Bandit,thug,anzac,Cowboy |
|
596 pirate_jack,pirate_jack_bandana, |
|
597 tiara,crown,royalguard |
|
598 punkman,Einstein, |
|
599 sth_Amy,sth_AmyClassic,sth_Eggman,sth_Knux,sth_Metal,sth_Shadow,sth_Sonic,sth_SonicClassic,sth_Super,sth_Tails |
|
600 vc_gakupo,vc_gumi,vc_kaito,vc_len,vc_luka,vc_meiko,vc_miku,vc_rin |
|
601 touhou_chen,touhou_marisa,touhou_patchouli,touhou_remelia,touhou_suwako,touhou_yukari, |
|
602 TeamHeadband,TeamSoldier,TeamTopHat,TeamWheatley,cap_team,hair_team, |
|
603 bb_bob,bb_bub,bb_cororon,bb_kululun,bubble, |
|
604 Viking,spartan,swordsmensquire,knight,dwarf, |
|
605 WizardHat,tophats,pinksunhat,ushanka,mexicansunbrero,HogInTheHat, |
|
606 4gsuif, |
|
607 AkuAku, |
|
608 noface, |
|
609 Coonskin3, |
|
610 Dan, |
|
611 Dauber, |
|
612 Eva_00b,Eva_00y, |
|
613 Evil,InfernalHorns,angel, |
|
614 Gasmask, |
|
615 IndianChief,Cowboy, |
|
616 MegaHogX, |
|
617 Meteorhelmet, |
|
618 Moustache, |
|
619 OldMan, |
|
620 Pantsu, |
|
621 Plunger, |
|
622 RSR, |
|
623 Rain,stormcloud,DayAndNight, |
|
624 chuckl,Rambo,RobinHood, |
|
625 Santa,snowhog,ShaggyYeti,eastertop, |
|
626 Sleepwalker, |
|
627 SparkleSuperFun, |
|
628 SunWukong, |
|
629 android, |
|
630 beefeater, |
|
631 car, |
|
632 chef, |
|
633 constructor, |
|
634 footballhelmet, |
|
635 judo, |
|
636 lamp, |
|
637 mechanicaltoy, |
|
638 mickey_ears, |
|
639 snorkel, |
|
640 quotecap, |
|
641 rasta, |
|
642 |
|
643 metalband, |
|
644 kiss_criss,kiss_frehley,kiss_simmons,kiss_stanley,mp3,Elvis |
|
645 mv_Spidey,mv_Venom, |
|
646 ntd_Falcon,ntd_Kirby,ntd_Link,ntd_Samus, |
|
647 scif_2001O,scif_2001Y,scif_BrainSlug,scif_BrainSlug2,scif_Geordi,scif_SparkssHelmet, |
|
648 scif_cosmonaut,scif_cyberpunk,scif_swDarthvader,scif_swStormtrooper, |
|
649 war_UNPeacekeeper01,war_UNPeacekeeper02, |
|
650 war_airwarden02,war_airwarden03, |
|
651 war_americanww2helmet, |
|
652 war_britmedic,war_britpthhelmet,war_britsapper, |
|
653 war_desertgrenadier1,war_desertgrenadier2,war_desertgrenadier4,war_desertgrenadier5,war_desertmedic, |
|
654 war_desertofficer,war_desertsapper1,war_desertsapper2, |
|
655 war_frenchww1gasmask,war_frenchww1helmet, |
|
656 war_germanww1helmet2,war_germanww1tankhelm,war_germanww2medic,war_germanww2pith, |
|
657 war_grenadier1,war_trenchgrenadier1,war_trenchgrenadier2,war_trenchgrenadier3, |
|
658 war_plainpith, |
|
659 war_sovietcomrade1,war_sovietcomrade2, |
|
660 war_trenchfrench01,war_trenchfrench02,]] |
|
661 |
|
662 local colorArray = { |
545 local colorArray = { |
663 --{0xff0000ff, "0xff0000ff", "Red"}, -- look up hw red |
546 {0xff0204ff, "0xff0204ff", "Red"}, |
664 {0xff4980c1, "0xff4980c1", "Blue"}, |
547 {0xff4980c1, "0xff4980c1", "Blue"}, |
665 {0xff1de6ba, "0xff1de6ba", "Teal"}, |
548 {0xff1de6ba, "0xff1de6ba", "Teal"}, |
666 {0xffb541ef, "0xffb541ef", "Purple"}, |
549 {0xffb541ef, "0xffb541ef", "Purple"}, |
667 {0xffe55bb0, "0xffe55bb0", "Pink"}, |
550 {0xffe55bb0, "0xffe55bb0", "Pink"}, |
668 {0xff20bf00, "0xff20bf00", "Green"}, |
551 {0xff20bf00, "0xff20bf00", "Green"}, |
669 {0xfffe8b0e, "0xfffe8b0e", "Orange"}, |
552 {0xfffe8b0e, "0xfffe8b0e", "Orange"}, |
670 {0xff5f3605, "0xff5f3605", "Brown"}, |
553 {0xff5f3605, "0xff5f3605", "Brown"}, |
671 {0xffffff01, "0xffffff01", "Yellow"} |
554 {0xffffff01, "0xffffff01", "Yellow"} |
672 } |
555 } |
673 |
556 |
674 local graveArray = { |
|
675 "Badger", "Bone", "bp2", "bubble", "Cherry", |
|
676 "chest", "coffin", "deadhog", "dragonball", "Duck2", |
|
677 "Earth", "Egg", "eyecross", "Flower", "Ghost", |
|
678 "Grave", "heart", "money", "mouton1", "octopus", |
|
679 "plant2", "plant3", "Plinko", "pokeball", "pyramid", |
|
680 "ring", "Rip", "Rubberduck", "Simple", "skull", |
|
681 "star", "Status" |
|
682 } |
|
683 |
|
684 local voiceArray = { |
|
685 "British","Classic","Default","Default_es","Default_uk", |
|
686 "HillBilly","Mobster","Pirate","Robot","Russian","Singer", |
|
687 "Surfer" |
|
688 } |
|
689 |
|
690 local fortArray = { |
557 local fortArray = { |
691 "Cake", "Castle", "Earth", "EvilChicken", "Flowerhog", |
558 "Cake", "Castle", "Earth", "EvilChicken", "Flowerhog", |
692 "Hydrant", "Lego", "Plane", "Statue", "Tank", |
559 "Hydrant", "Lego", "Plane", "Statue", "SteelTower", "Tank", |
693 "UFO", "Wood" |
560 "UFO", "Wood" |
694 } |
|
695 |
|
696 -- non-exhaustive list of flags, feel free to choose others |
|
697 local flagArray = { |
|
698 "cm_binary", "cm_birdy", "cm_earth", "cm_pirate", "cm_star", |
|
699 "cm_hurrah", "cm_hax0r", "cm_balrog", "cm_spider", "cm_eyeofhorus" |
|
700 } |
561 } |
701 |
562 |
702 local gameFlagList = { |
563 local gameFlagList = { |
703 {"gfMultiWeapon", false, gfMultiWeapon}, |
564 {"gfMultiWeapon", false, gfMultiWeapon}, |
704 {"gfBorder", false, gfBorder}, |
565 {"gfBorder", false, gfBorder}, |
727 {"gfDisableWind", false, gfDisableWind}, |
588 {"gfDisableWind", false, gfDisableWind}, |
728 {"gfMoreWind", false, gfMoreWind}, |
589 {"gfMoreWind", false, gfMoreWind}, |
729 {"gfTagTeam", false, gfTagTeam} |
590 {"gfTagTeam", false, gfTagTeam} |
730 } |
591 } |
731 |
592 |
732 local themeList = {"Art", "Bamboo", "Bath", --[["Blox",]] "Brick", "Cake", "Castle", "Cave", "Cheese", |
|
733 "Christmas", "City", "Compost", --[["CrazyMission", "Deepspace",]] "Desert", "Earthrise", |
|
734 --[["Eyes",]] "Freeway", "Golf", "Halloween", "Hell", --[["HogggyWood",]] "Island", "Jungle", "Nature", |
|
735 "Olympics", "Planes", "Sheep", "Snow", "Stage", "Underwater" |
|
736 } |
|
737 |
|
738 local mapList = { |
|
739 "Bamboo", "BambooPlinko", "Basketball", "Bath", "Blizzard", "Blox", "Bubbleflow", |
|
740 "Battlefield", "Cake", "Castle", "Cave", "Cheese", "Cogs", "Control", "Earthrise", |
|
741 "Eyes", "Hammock", "Hedgelove", "Hedgewars", "Hogville", "Hydrant", "Islands", |
|
742 "Knockball", "Lonely_Island", "Mushrooms", "Octorama", "PirateFlag", |
|
743 "Plane", "Ropes", "Ruler", "Sheep", "ShoppaKing", "Sticks", "Trash", "Tree", |
|
744 "TrophyRace" |
|
745 } |
|
746 |
|
747 --local spriteArray = { |
|
748 -- {sprBigDigit, "sprBigDigit", 0} |
|
749 -- } |
|
750 |
|
751 local spriteIDArray = {sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame, |
|
752 sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee, |
|
753 sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff, |
|
754 sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower, |
|
755 sprClusterBomb, sprClusterParticle, sprFlame, |
|
756 sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR, |
|
757 sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners, |
|
758 sprFinger, sprAirBomb, sprAirplane, sprAmAirplane, sprAmGirder, |
|
759 sprHHTelepMask, sprSwitch, sprParachute, sprTarget, sprRopeNode, |
|
760 sprQuestion, sprPowerBar, sprWindBar, sprWindL, sprWindR, |
|
761 |
|
762 sprFireButton, sprArrowUp, sprArrowDown, sprArrowLeft, sprArrowRight, |
|
763 sprJumpWidget, sprAMWidget, sprPauseButton, sprTimerButton, sprTargetButton, |
|
764 |
|
765 sprFlake, sprHandRope, sprHandBazooka, sprHandShotgun, |
|
766 sprHandDEagle, sprHandAirAttack, sprHandBaseball, sprPHammer, |
|
767 sprHandBlowTorch, sprBlowTorch, sprTeleport, sprHHDeath, |
|
768 sprShotgun, sprDEagle, sprHHIdle, sprMortar, sprTurnsLeft, |
|
769 sprKamikaze, sprWhip, sprKowtow, sprSad, sprWave, |
|
770 sprHurrah, sprLemonade, sprShrug, sprJuggle, sprExplPart, sprExplPart2, |
|
771 sprCakeWalk, sprCakeDown, sprWatermelon, |
|
772 sprEvilTrace, sprHellishBomb, sprSeduction, sprDress, |
|
773 sprCensored, sprDrill, sprHandDrill, sprHandBallgun, sprBalls, |
|
774 sprPlane, sprHandPlane, sprUtility, sprInvulnerable, sprVampiric, sprGirder, |
|
775 sprSpeechCorner, sprSpeechEdge, sprSpeechTail, |
|
776 sprThoughtCorner, sprThoughtEdge, sprThoughtTail, |
|
777 sprShoutCorner, sprShoutEdge, sprShoutTail, |
|
778 sprSniperRifle, sprBubbles, sprJetpack, sprHealth, sprHandMolotov, sprMolotov, |
|
779 sprSmoke, sprSmokeWhite, sprShell, sprDust, sprSnowDust, sprExplosives, sprExplosivesRoll, |
|
780 sprAmTeleport, sprSplash, sprDroplet, sprBirdy, sprHandCake, sprHandConstruction, |
|
781 sprHandGrenade, sprHandMelon, sprHandMortar, sprHandSkip, sprHandCluster, |
|
782 sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp, |
|
783 sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee, |
|
784 sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal, |
|
785 sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote, |
|
786 sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, |
|
787 sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb, |
|
788 sprBulletHit, sprSnowball, sprHandSnowball, sprSnow, |
|
789 sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis, |
|
790 sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun, sprFrozenHog, sprAmRubber, sprBoing} |
|
791 |
|
792 |
|
793 local spriteTextArray = {"sprWater", "sprCloud", "sprBomb", "sprBigDigit", "sprFrame", |
|
794 "sprLag", "sprArrow", "sprBazookaShell", "sprTargetP", "sprBee", |
|
795 "sprSmokeTrace", "sprRopeHook", "sprExplosion50", "sprMineOff", |
|
796 "sprMineOn", "sprMineDead", "sprCase", "sprFAid", "sprDynamite", "sprPower", |
|
797 "sprClusterBomb", "sprClusterParticle", "sprFlame", "sprHorizont", |
|
798 "sprHorizontL", "sprHorizontR", "sprSky", "sprSkyL", "sprSkyR", "sprAMSlot", |
|
799 "sprAMAmmos", "sprAMAmmosBW", "sprAMSlotKeys", "sprAMCorners", "sprFinger", |
|
800 "sprAirBomb", "sprAirplane", "sprAmAirplane", "sprAmGirder", "sprHHTelepMask", |
|
801 "sprSwitch", "sprParachute", "sprTarget", "sprRopeNode", "sprQuestion", |
|
802 "sprPowerBar", "sprWindBar", "sprWindL", "sprWindR", "sprFireButton", |
|
803 "sprArrowUp", "sprArrowDown", "sprArrowLeft", "sprArrowRight", "sprJumpWidget", |
|
804 "sprAMWidget", "sprPauseButton", "sprTimerButton", "sprTargetButton", |
|
805 "sprFlake", "sprHandRope", "sprHandBazooka", "sprHandShotgun", |
|
806 "sprHandDEagle", "sprHandAirAttack", "sprHandBaseball", "sprPHammer", |
|
807 "sprHandBlowTorch", "sprBlowTorch", "sprTeleport", "sprHHDeath", "sprShotgun", |
|
808 "sprDEagle", "sprHHIdle", "sprMortar", "sprTurnsLeft", "sprKamikaze", "sprWhip", |
|
809 "sprKowtow", "sprSad", "sprWave", "sprHurrah", "sprLemonade", "sprShrug", |
|
810 "sprJuggle", "sprExplPart", "sprExplPart2", "sprCakeWalk", "sprCakeDown", |
|
811 "sprWatermelon", "sprEvilTrace", "sprHellishBomb", "sprSeduction", "sprDress", |
|
812 "sprCensored", "sprDrill", "sprHandDrill", "sprHandBallgun", "sprBalls", "sprPlane", |
|
813 "sprHandPlane", "sprUtility", "sprInvulnerable", "sprVampiric", "sprGirder", |
|
814 "sprSpeechCorner", "sprSpeechEdge", "sprSpeechTail", "sprThoughtCorner", |
|
815 "sprThoughtEdge", "sprThoughtTail", "sprShoutCorner", "sprShoutEdge", |
|
816 "sprShoutTail", "sprSniperRifle", "sprBubbles", "sprJetpack", "sprHealth", |
|
817 "sprHandMolotov", "sprMolotov", "sprSmoke", "sprSmokeWhite", "sprShell", "sprDust", |
|
818 "sprSnowDust", "sprExplosives", "sprExplosivesRoll", "sprAmTeleport", "sprSplash", |
|
819 "sprDroplet", "sprBirdy", "sprHandCake", "sprHandConstruction", "sprHandGrenade", |
|
820 "sprHandMelon", "sprHandMortar", "sprHandSkip", "sprHandCluster", "sprHandDynamite", |
|
821 "sprHandHellish", "sprHandMine", "sprHandSeduction", "sprHandVamp", "sprBigExplosion", |
|
822 "sprSmokeRing", "sprBeeTrace", "sprEgg", "sprTargetBee", "sprHandBee", "sprFeather", |
|
823 "sprPiano", "sprHandSineGun", "sprPortalGun", "sprPortal", "sprCheese", "sprHandCheese", |
|
824 "sprHandFlamethrower", "sprChunk", "sprNote", "sprSMineOff", "sprSMineOn", "sprHandSMine", |
|
825 "sprHammer", "sprHandResurrector", "sprCross", "sprAirDrill", "sprNapalmBomb", "sprBulletHit", |
|
826 "sprSnowball", "sprHandSnowball", "sprSnow", "sprSDFlake", "sprSDWater", "sprSDCloud", |
|
827 "sprSDSplash", "sprSDDroplet", "sprTardis", "sprSlider", "sprBotlevels", "sprHandKnife", |
|
828 "sprKnife", "sprStar", "sprIceTexture", "sprIceGun", "sprFrozenHog", "sprAmRubber", "sprBoing"} |
|
829 |
|
830 local reducedSpriteIDArray = { |
593 local reducedSpriteIDArray = { |
831 sprAmRubber, sprAmGirder, sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMCorners, sprHHTelepMask, sprTurnsLeft, |
594 sprAmRubber, sprAmGirder, sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMCorners, sprHHTelepMask, sprTurnsLeft, |
832 sprSpeechCorner, sprSpeechEdge, sprSpeechTail, sprThoughtCorner, sprThoughtEdge, sprThoughtTail, sprShoutCorner, |
595 sprSpeechCorner, sprSpeechEdge, sprSpeechTail, sprThoughtCorner, sprThoughtEdge, sprThoughtTail, sprShoutCorner, |
833 sprShoutEdge, sprShoutTail, sprBotlevels, sprIceTexture, sprCustom1, sprCustom2, } |
596 sprShoutEdge, sprShoutTail, sprBotlevels, sprIceTexture, sprCustom1, sprCustom2, } |
834 |
597 |
893 local CGR = 1 -- current girder rotation, we actually need this as HW remembers what rotation you last used |
656 local CGR = 1 -- current girder rotation, we actually need this as HW remembers what rotation you last used |
894 |
657 |
895 local placedX = {} -- x coord of placed object |
658 local placedX = {} -- x coord of placed object |
896 local placedY = {} -- y coord of placed object |
659 local placedY = {} -- y coord of placed object |
897 local placedSpec = {} -- this is different depending on what was placed, for mines it is their time, for crates it is their content, (for girders/rubbers it used to be their rotation, and for sprites, their name, but this has been moved to different variables to allow more complex / smooth editing) |
660 local placedSpec = {} -- this is different depending on what was placed, for mines it is their time, for crates it is their content, (for girders/rubbers it used to be their rotation, and for sprites, their name, but this has been moved to different variables to allow more complex / smooth editing) |
898 --local placedSuperSpec = {} -- used to be used by girders/rubbers/sprites for their landFlag |
|
899 local placedType = {} -- what kind of object was placed: mine, crate, girder, rubber, barrel, etc. |
661 local placedType = {} -- what kind of object was placed: mine, crate, girder, rubber, barrel, etc. |
900 |
662 |
901 local placedTint = {} -- only girders/rubbers/sprites use this, it is their tint / colouration |
663 local placedTint = {} -- only girders/rubbers/sprites use this, it is their tint / colouration |
902 local placedSprite = {} -- what sprite was placed |
664 local placedSprite = {} -- what sprite was placed |
903 local placedFrame = {} -- what frame of sprite was placed (rotation for girders / rubber) |
665 local placedFrame = {} -- what frame of sprite was placed (rotation for girders / rubber) |
911 local closestDist |
673 local closestDist |
912 local closestGear = nil |
674 local closestGear = nil |
913 local closestSpriteID = nil |
675 local closestSpriteID = nil |
914 |
676 |
915 ------------------------ |
677 ------------------------ |
916 -- menu shite (more or less unused currently) |
|
917 ------------------------ |
|
918 --local menuEnabled = false |
|
919 --local menuIndex = 1 |
|
920 --local menu = {} |
|
921 --local subMenu = {} |
|
922 --local sMI = 1 -- sub menu index |
|
923 --local preMenuCfg |
|
924 --local postMenuCfg |
|
925 --local initMenu = { |
|
926 -- {"Selected Menu", "Initialisation Menu"}, |
|
927 -- {"List of Gameflags", ""}, |
|
928 -- {"List of Gameflags", ""} |
|
929 -- } |
|
930 |
|
931 ------------------------ |
|
932 -- SOME GENERAL METHODS |
678 -- SOME GENERAL METHODS |
933 ------------------------ |
679 ------------------------ |
934 |
680 |
935 function BoolToString(boo) |
681 function BoolToString(boo) |
936 if boo == true then |
682 if boo == true then |
967 end |
713 end |
968 |
714 |
969 -- you know you could probably add multiple layers to this to get more points |
715 -- you know you could probably add multiple layers to this to get more points |
970 -- after the first set is expended have the last 1 be 127 |
716 -- after the first set is expended have the last 1 be 127 |
971 -- and then increment some other counter so like |
717 -- and then increment some other counter so like |
972 |
|
973 -- bobCounter = 1 |
|
974 -- specialPoint(5) |
|
975 -- specialPoint(127) |
|
976 -- specialPoint(5) |
|
977 |
|
978 -- if BobCounter = 1 then |
|
979 -- if specialPointsFlag == 5 then createMine |
|
980 -- if specialPointFlag == 127 then bobCounter = 2 |
|
981 -- elseif bobCounter == 2 then |
|
982 -- if specialPointsFlag == 5 then createExlosives |
|
983 -- end |
|
984 -- |
|
985 |
718 |
986 -- this function interprets special points that have been embedded into an HWPMAP |
719 -- this function interprets special points that have been embedded into an HWPMAP |
987 function InterpretPoints() |
720 function InterpretPoints() |
988 |
721 |
989 -- flags run from 0 to 127 |
722 -- flags run from 0 to 127 |
1057 |
790 |
1058 --79-82 (reserved for future wep crates) |
791 --79-82 (reserved for future wep crates) |
1059 --89,88,87,86 and 85,84,83,82 (reserved for the 2 custom sprites and their landflags) |
792 --89,88,87,86 and 85,84,83,82 (reserved for the 2 custom sprites and their landflags) |
1060 |
793 |
1061 --90-99 reserved for scripted structures |
794 --90-99 reserved for scripted structures |
1062 --[[elseif specialPointsFlag[i] == 90 then |
|
1063 --PlaceStruc("generator") |
|
1064 elseif specialPointsFlag[i] == 91 then |
|
1065 --PlaceStruc("healingstation") |
|
1066 elseif specialPointsFlag[i] == 92 then |
|
1067 --PlaceStruc("respawner") |
|
1068 elseif specialPointsFlag[i] == 93 then |
|
1069 --PlaceStruc("teleportationnode") |
|
1070 elseif specialPointsFlag[i] == 94 then |
|
1071 --PlaceStruc("biofilter") |
|
1072 elseif specialPointsFlag[i] == 95 then |
|
1073 --PlaceStruc("supportstation") |
|
1074 elseif specialPointsFlag[i] == 96 then |
|
1075 --PlaceStruc("constructionstation") |
|
1076 elseif specialPointsFlag[i] == 97 then |
|
1077 --PlaceStruc("reflectorshield") |
|
1078 elseif specialPointsFlag[i] == 98 then |
|
1079 --PlaceStruc("weaponfilter")]] |
|
1080 |
795 |
1081 elseif specialPointsFlag[i] == 98 then |
796 elseif specialPointsFlag[i] == 98 then |
1082 portalDistance = div(specialPointsX[i],5) |
797 portalDistance = div(specialPointsX[i],5) |
1083 ufoFuel = specialPointsY[i] |
798 ufoFuel = specialPointsY[i] |
1084 |
799 |
1153 |
868 |
1154 end |
869 end |
1155 |
870 |
1156 end |
871 end |
1157 |
872 |
1158 ---------------------------- |
|
1159 -- just fucking around |
|
1160 ---------------------------- |
|
1161 -- ancient stuff that no longer has any relevance |
|
1162 --[[ |
|
1163 function BoostVeloctiy(gear) |
|
1164 |
|
1165 if (GetGearType(gear) == gtSMine) or |
|
1166 (GetGearType(gear) == gtMine) or |
|
1167 (GetGearType(gear) == gtHedgehog) then |
|
1168 |
|
1169 dx,dy = GetGearVelocity(gear) |
|
1170 SetGearVelocity(gear,dx*1.5,dy*1.5) |
|
1171 end |
|
1172 |
|
1173 end |
|
1174 |
|
1175 -- use this stuff when you want to get some idea of land and/or blow up /everything/ |
|
1176 function CheckGrenades(gear) |
|
1177 |
|
1178 if GetGearType(gear) == gtGrenade then |
|
1179 dx, dy = GetGearVelocity(gear) |
|
1180 if (dy == 0) then |
|
1181 |
|
1182 else |
|
1183 DeleteGear(gear) |
|
1184 end |
|
1185 end |
|
1186 |
|
1187 end |
|
1188 |
|
1189 function BlowShitUpPartTwo() |
|
1190 |
|
1191 destroyMap = false |
|
1192 runOnGears(CheckGrenades) |
|
1193 |
|
1194 end |
|
1195 |
|
1196 function BlowShitUp() |
|
1197 |
|
1198 destroyMap = true |
|
1199 |
|
1200 mapWidth = 4096 |
|
1201 mapHeight = 2048 |
|
1202 blockSize = 50 |
|
1203 |
|
1204 mY = 0 |
|
1205 |
|
1206 while (mY < WaterLine) do |
|
1207 |
|
1208 mX = 0 |
|
1209 mY = mY + 1*blockSize |
|
1210 while (mX < mapWidth) do |
|
1211 |
|
1212 mX = mX + (1*blockSize) |
|
1213 gear = AddGear(mX, mY, gtGrenade, 0, 0, 0, 5000) |
|
1214 SetState(gear, bor(GetState(gear),gstInvisible) ) |
|
1215 |
|
1216 end |
|
1217 |
|
1218 end |
|
1219 |
|
1220 end]] |
|
1221 |
|
1222 |
|
1223 -- you know, using this it might be possible to have a self destructing track, |
|
1224 -- or a moving one. |
|
1225 -- edit: this was from the gold old days before it was possible to erase sprites) |
|
1226 --[[function BoomGirder(x,y,rot) |
|
1227 girTime = 1 |
|
1228 if rot < 4 then |
|
1229 AddGear(x, y, gtGrenade, 0, 0, 0, girTime) |
|
1230 elseif rot == 4 then |
|
1231 g = AddGear(x-45, y, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1232 g = AddGear(x-30, y, gtGrenade, 0, 0, 0, girTime) |
|
1233 g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1234 g = AddGear(x+30, y, gtGrenade, 0, 0, 0, girTime) |
|
1235 g = AddGear(x+45, y, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1236 elseif rot == 5 then ------- diag |
|
1237 g = AddGear(x+45, y+45, gtGrenade, 0, 0, 0, girTime) --n |
|
1238 g = AddGear(x+30, y+30, gtGrenade, 0, 0, 0, girTime) |
|
1239 g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1240 g = AddGear(x-30, y-30, gtGrenade, 0, 0, 0, girTime) |
|
1241 g = AddGear(x-45, y-45, gtGrenade, 0, 0, 0, girTime) --n |
|
1242 elseif rot == 6 then |
|
1243 g = AddGear(x, y-45, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1244 g = AddGear(x, y+30, gtGrenade, 0, 0, 0, girTime) |
|
1245 g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1246 g = AddGear(x, y-30, gtGrenade, 0, 0, 0, girTime) |
|
1247 g = AddGear(x, y+45, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1248 elseif rot == 7 then ------- |
|
1249 g = AddGear(x+45, y-45, gtGrenade, 0, 0, 0, girTime) --n |
|
1250 g = AddGear(x+30, y-30, gtGrenade, 0, 0, 0, girTime) |
|
1251 g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? |
|
1252 g = AddGear(x-30, y+30, gtGrenade, 0, 0, 0, girTime) |
|
1253 g = AddGear(x-45, y+45, gtGrenade, 0, 0, 0, girTime) --n |
|
1254 end |
|
1255 end]] |
|
1256 |
|
1257 --[[function SpecialGirderPlacement(x,y,rot) |
|
1258 |
|
1259 PlaceGirder(x, y, rot) |
|
1260 girTime = 10000 |
|
1261 |
|
1262 if rot < 4 then |
|
1263 AddGear(x, y, gtGrenade, 0, 0, 0, girTime) |
|
1264 elseif rot == 4 then |
|
1265 g = AddGear(x-30, y, gtGrenade, 0, 0, 0, girTime) |
|
1266 g = AddGear(x+30, y, gtGrenade, 0, 0, 0, girTime) |
|
1267 elseif rot == 5 then ------- |
|
1268 g = AddGear(x+30, y+30, gtGrenade, 0, 0, 0, girTime) |
|
1269 g = AddGear(x-30, y-30, gtGrenade, 0, 0, 0, girTime) |
|
1270 elseif rot == 6 then |
|
1271 g = AddGear(x, y+30, gtGrenade, 0, 0, 0, girTime) |
|
1272 g = AddGear(x, y-30, gtGrenade, 0, 0, 0, girTime) |
|
1273 elseif rot == 7 then ------- |
|
1274 g = AddGear(x+30, y-30, gtGrenade, 0, 0, 0, girTime) |
|
1275 g = AddGear(x-30, y+30, gtGrenade, 0, 0, 0, girTime) |
|
1276 end |
|
1277 |
|
1278 end]] |
|
1279 |
|
1280 --shoppabalance crap |
873 --shoppabalance crap |
1281 function AddShoppaPoint(x,y,c) |
874 function AddShoppaPoint(x,y,c) |
1282 table.insert(shoppaPX, x) |
875 table.insert(shoppaPX, x) |
1283 table.insert(shoppaPY, y) |
876 table.insert(shoppaPY, y) |
1284 table.insert(shoppaPR, c) |
877 table.insert(shoppaPR, c) |
1303 ----------------------------------------- |
896 ----------------------------------------- |
1304 |
897 |
1305 function GetClosestGear() |
898 function GetClosestGear() |
1306 closestDist = 999999999 |
899 closestDist = 999999999 |
1307 closestGear = nil |
900 closestGear = nil |
1308 --sGear = nil |
|
1309 runOnGears(SelectGear) |
901 runOnGears(SelectGear) |
1310 return(closestGear) |
902 return(closestGear) |
1311 end |
903 end |
1312 |
904 |
1313 function SelectGear(gear) |
905 function SelectGear(gear) |
1369 |
961 |
1370 else |
962 else |
1371 placedType[placedCount] = loc("Sprite Placement Mode") |
963 placedType[placedCount] = loc("Sprite Placement Mode") |
1372 end |
964 end |
1373 |
965 |
1374 --placedLandFlags[placedCount] = pLandFlags |
|
1375 if pLandFlags == lfIce then |
966 if pLandFlags == lfIce then |
1376 placedLandFlags[placedCount] = "lfIce" |
967 placedLandFlags[placedCount] = "lfIce" |
1377 elseif pLandFlags == lfIndestructible then |
968 elseif pLandFlags == lfIndestructible then |
1378 placedLandFlags[placedCount] = "lfIndestructible" |
969 placedLandFlags[placedCount] = "lfIndestructible" |
1379 elseif pLandFlags == lfBouncy then |
970 elseif pLandFlags == lfBouncy then |
1380 placedLandFlags[placedCount] = "lfBouncy" |
971 placedLandFlags[placedCount] = "lfBouncy" |
1381 else |
972 else |
1382 placedLandFlags[placedCount] = "lfNormal" |
973 placedLandFlags[placedCount] = "lfNormal" |
1383 end |
974 end |
1384 |
|
1385 --placedSuperSpec[placedCount] = nil |
|
1386 |
975 |
1387 placedTint[placedCount] = pTint |
976 placedTint[placedCount] = pTint |
1388 placedFrame[placedCount] = pFrame |
977 placedFrame[placedCount] = pFrame |
1389 |
978 |
1390 placedSprite[placedCount] = pSprite |
979 placedSprite[placedCount] = pSprite |
1457 placedLandFlags[closestSpriteID]) |
1046 placedLandFlags[closestSpriteID]) |
1458 |
1047 |
1459 placedX[closestSpriteID] = nil |
1048 placedX[closestSpriteID] = nil |
1460 placedY[closestSpriteID] = nil |
1049 placedY[closestSpriteID] = nil |
1461 placedSpec[closestSpriteID] = nil |
1050 placedSpec[closestSpriteID] = nil |
1462 --placedSuperSpec[closestSpriteID] = nil |
|
1463 placedType[closestSpriteID] = nil |
1051 placedType[closestSpriteID] = nil |
1464 placedTint[closestSpriteID] = nil |
1052 placedTint[closestSpriteID] = nil |
1465 placedSprite[closestSpriteID] = nil |
1053 placedSprite[closestSpriteID] = nil |
1466 placedFrame[closestSpriteID] = nil |
1054 placedFrame[closestSpriteID] = nil |
1467 placedLandFlags[closestSpriteID] = nil |
1055 placedLandFlags[closestSpriteID] = nil |
1483 d = ( (q*q) + (w*w) ) |
1071 d = ( (q*q) + (w*w) ) |
1484 if d < closestDist then |
1072 if d < closestDist then |
1485 closestDist = d |
1073 closestDist = d |
1486 closestSpriteID = i |
1074 closestSpriteID = i |
1487 |
1075 |
1488 --newTint = placedTint[i] |
|
1489 |
|
1490 SetVisualGearValues(sSprite, placedX[i], placedY[i], 0, 0, nil, placedFrame[i], 10000, placedSprite[i], 10000, newTint ) |
1076 SetVisualGearValues(sSprite, placedX[i], placedY[i], 0, 0, nil, placedFrame[i], 10000, placedSprite[i], 10000, newTint ) |
1491 |
1077 |
1492 end |
1078 end |
1493 end |
1079 end |
1494 end |
1080 end |
1496 if closestSpriteID ~= nil then |
1082 if closestSpriteID ~= nil then |
1497 DeleteVisualGear(placedSpec[closestSpriteID]) |
1083 DeleteVisualGear(placedSpec[closestSpriteID]) |
1498 placedX[closestSpriteID] = nil |
1084 placedX[closestSpriteID] = nil |
1499 placedY[closestSpriteID] = nil |
1085 placedY[closestSpriteID] = nil |
1500 placedSpec[closestSpriteID] = nil |
1086 placedSpec[closestSpriteID] = nil |
1501 --placedSuperSpec[closestSpriteID] = nil |
|
1502 placedType[closestSpriteID] = nil |
1087 placedType[closestSpriteID] = nil |
1503 placedTint[closestSpriteID] = nil |
1088 placedTint[closestSpriteID] = nil |
1504 placedSprite[closestSpriteID] = nil |
1089 placedSprite[closestSpriteID] = nil |
1505 placedFrame[closestSpriteID] = nil |
1090 placedFrame[closestSpriteID] = nil |
1506 placedLandFlags[closestSpriteID] = nil |
1091 placedLandFlags[closestSpriteID] = nil |
1516 |
1101 |
1517 placedX[placedCount] = x |
1102 placedX[placedCount] = x |
1518 placedY[placedCount] = y |
1103 placedY[placedCount] = y |
1519 placedType[placedCount] = cat[cIndex] |
1104 placedType[placedCount] = cat[cIndex] |
1520 placedSpec[placedCount] = pMode[pIndex] |
1105 placedSpec[placedCount] = pMode[pIndex] |
1521 --placedSuperSpec[placedCount] = nil |
|
1522 placedTint[placedCount] = nil |
1106 placedTint[placedCount] = nil |
1523 placedFrame[placedCount] = nil |
1107 placedFrame[placedCount] = nil |
1524 placedLandFlags[placedCount] = nil |
1108 placedLandFlags[placedCount] = nil |
1525 placedSprite[placedCount] = nil |
1109 placedSprite[placedCount] = nil |
1526 placedHWMapFlag[placedCount] = nil |
1110 placedHWMapFlag[placedCount] = nil |
1548 |
1132 |
1549 if superDelete == false then |
1133 if superDelete == false then |
1550 placedFrame[placedCount] = CGR |
1134 placedFrame[placedCount] = CGR |
1551 placedSprite[placedCount] = sprAmRubber |
1135 placedSprite[placedCount] = sprAmRubber |
1552 |
1136 |
1553 --CallPlaceSprite(placedCount) |
|
1554 --new ermagerd |
1137 --new ermagerd |
1555 placedLandFlags[placedCount] = "lfBouncy" |
1138 placedLandFlags[placedCount] = "lfBouncy" |
1556 placedTint[placedCount] = 255 + (255*0x100) + (255*0x10000) + (255*0x1000000) -- A BGR |
1139 placedTint[placedCount] = 255 + (255*0x100) + (255*0x10000) + (255*0x1000000) -- A BGR |
1557 PlaceSprite(placedX[placedCount], placedY[placedCount], placedSprite[placedCount], placedFrame[placedCount], |
1140 PlaceSprite(placedX[placedCount], placedY[placedCount], placedSprite[placedCount], placedFrame[placedCount], |
1558 placedTint[placedCount], |
1141 placedTint[placedCount], |
1654 elseif cat[cIndex] == loc("Sprite Modification Mode") then |
1237 elseif cat[cIndex] == loc("Sprite Modification Mode") then |
1655 |
1238 |
1656 SelectClosestSprite() |
1239 SelectClosestSprite() |
1657 |
1240 |
1658 if closestSpriteID ~= nil then |
1241 if closestSpriteID ~= nil then |
1659 -- we have a sprite selected somewhere |
|
1660 --if pMode[pIndex] == "Sprite Selection Mode" then |
|
1661 -- sprite is now selected, good job |
|
1662 --elseif pMode[pIndex] == "LandFlag Modification Mode" then |
|
1663 if pMode[pIndex] == loc("LandFlag Modification Mode") then |
1242 if pMode[pIndex] == loc("LandFlag Modification Mode") then |
1664 EraseSprite(placedX[closestSpriteID], placedY[closestSpriteID], placedSprite[closestSpriteID], placedFrame[closestSpriteID], nil, nil, nil, nil, placedLandFlags[closestSpriteID]) |
1243 EraseSprite(placedX[closestSpriteID], placedY[closestSpriteID], placedSprite[closestSpriteID], placedFrame[closestSpriteID], nil, nil, nil, nil, placedLandFlags[closestSpriteID]) |
1665 CallPlaceSprite(closestSpriteID) |
1244 CallPlaceSprite(closestSpriteID) |
1666 closestSpriteID = nil |
1245 closestSpriteID = nil |
1667 SetVisualGearValues(sSprite, 0, 0, 0, 0, 0, 1, 10000, sprAmGirder, 10000, 0x00000000 ) |
1246 SetVisualGearValues(sSprite, 0, 0, 0, 0, 0, 1, 10000, sprAmGirder, 10000, 0x00000000 ) |
1745 pMode = {} |
1324 pMode = {} |
1746 |
1325 |
1747 if cat[cIndex] == loc("Girder Placement Mode") then |
1326 if cat[cIndex] == loc("Girder Placement Mode") then |
1748 pIndex = CGR |
1327 pIndex = CGR |
1749 pMode = {loc("Girder")} |
1328 pMode = {loc("Girder")} |
1750 -- pCount = 1 |
|
1751 elseif cat[cIndex] == loc("Rubber Placement Mode") then |
1329 elseif cat[cIndex] == loc("Rubber Placement Mode") then |
1752 pIndex = CGR |
1330 pIndex = CGR |
1753 pMode = {loc("Rubber")} |
1331 pMode = {loc("Rubber")} |
1754 landType = lfBouncy -- for now, let's not allow anything else (-- fairly new addition) |
1332 landType = lfBouncy -- for now, let's not allow anything else (-- fairly new addition) |
1755 -- pCount = 1??? |
|
1756 elseif cat[cIndex] == loc("Target Placement Mode") then |
1333 elseif cat[cIndex] == loc("Target Placement Mode") then |
1757 pMode = {loc("Standard Target")} |
1334 pMode = {loc("Standard Target")} |
1758 elseif cat[cIndex] == loc("Cleaver Placement Mode") then |
1335 elseif cat[cIndex] == loc("Cleaver Placement Mode") then |
1759 pMode = {loc("Standard Cleaver")} |
1336 pMode = {loc("Standard Cleaver")} |
1760 elseif cat[cIndex] == loc("Barrel Placement Mode") then |
1337 elseif cat[cIndex] == loc("Barrel Placement Mode") then |
1761 pMode = {60,80,100,120,160,200,240,1,10,20,30,40,50} |
1338 pMode = {60,80,100,120,160,200,240,1,10,20,30,40,50} |
1762 elseif cat[cIndex] == loc("Health Crate Placement Mode") then |
1339 elseif cat[cIndex] == loc("Health Crate Placement Mode") then |
1763 pMode = {25,30,40,50,75,100,150,200,5,10,15,20} |
1340 pMode = {25,30,40,50,75,100,150,200,5,10,15,20} |
1764 elseif cat[cIndex] == loc("Weapon Crate Placement Mode") then |
1341 elseif cat[cIndex] == loc("Weapon Crate Placement Mode") then |
1765 for i = 1, #atkArray do |
1342 for i = 1, #atkArray do |
1766 pMode[i] = atkArray[i][4] --pMode[i] = atkArray[i][2] |
1343 pMode[i] = atkArray[i][4] |
1767 end |
1344 end |
1768 elseif cat[cIndex] == loc("Utility Crate Placement Mode") then |
1345 elseif cat[cIndex] == loc("Utility Crate Placement Mode") then |
1769 for i = 1, #utilArray do |
1346 for i = 1, #utilArray do |
1770 pMode[i] = utilArray[i][4] --pMode[i] = utilArray[i][2] |
1347 pMode[i] = utilArray[i][4] |
1771 end |
1348 end |
1772 elseif cat[cIndex] == loc("Mine Placement Mode") then |
1349 elseif cat[cIndex] == loc("Mine Placement Mode") then |
1773 pMode = {3000,4000,5000,0,1000,2000} |
1350 pMode = {3000,4000,5000,0,1000,2000} |
1774 elseif cat[cIndex] == loc("Dud Mine Placement Mode") then |
1351 elseif cat[cIndex] == loc("Dud Mine Placement Mode") then |
1775 pMode = {36,48,60,72,96,1,6,12,18,24} |
1352 pMode = {36,48,60,72,96,1,6,12,18,24} |
1791 pMode = { {100, "set"}, {125, "set"}, {150, "set"}, {200, "set"}, {300, "set"}, {1000, "set"}, |
1368 pMode = { {100, "set"}, {125, "set"}, {150, "set"}, {200, "set"}, {300, "set"}, {1000, "set"}, |
1792 {"-100", "mod"}, {"-10", "mod"}, {"-1", "mod"}, {"+1", "mod"}, {"+10", "mod"}, {"+100", "mod"}, |
1369 {"-100", "mod"}, {"-10", "mod"}, {"-1", "mod"}, {"+1", "mod"}, {"+10", "mod"}, {"+100", "mod"}, |
1793 {1, "set"}, {10, "set"}, {15, "set"}, {20, "set"}, {25, "set"}, {30, "set"}, {40, "set"}, {50, "set"}, {75, "set"}, |
1370 {1, "set"}, {10, "set"}, {15, "set"}, {20, "set"}, {25, "set"}, {30, "set"}, {40, "set"}, {50, "set"}, {75, "set"}, |
1794 } |
1371 } |
1795 elseif cat[cIndex] == loc("Sprite Modification Mode") then |
1372 elseif cat[cIndex] == loc("Sprite Modification Mode") then |
1796 --pMode = {"Sprite Selection Mode","LandFlag Modification Mode","Sprite Erasure Mode"} |
|
1797 pMode = {loc("LandFlag Modification Mode"),loc("Sprite Erasure Mode")} |
1373 pMode = {loc("LandFlag Modification Mode"),loc("Sprite Erasure Mode")} |
1798 elseif cat[cIndex] == loc("Sprite Testing Mode") or cat[cIndex] == loc("Sprite Placement Mode") then |
1374 elseif cat[cIndex] == loc("Sprite Testing Mode") or cat[cIndex] == loc("Sprite Placement Mode") then |
1799 --for i = 1, #spriteTextArray do |
|
1800 -- pMode[i] = spriteTextArray[i] |
|
1801 --end |
|
1802 for i = 1, #reducedSpriteTextArray do |
1375 for i = 1, #reducedSpriteTextArray do |
1803 pMode[i] = reducedSpriteTextArray[i] |
1376 pMode[i] = reducedSpriteTextArray[i] |
1804 end |
1377 end |
1805 elseif cat[cIndex] == loc("Waypoint Placement Mode") then |
1378 elseif cat[cIndex] == loc("Waypoint Placement Mode") then |
1806 pMode = {loc("Standard Waypoint"), loc("Waypoint Deletion Mode")} |
1379 pMode = {loc("Standard Waypoint"), loc("Waypoint Deletion Mode")} |
1828 end |
1401 end |
1829 |
1402 |
1830 -- When you save your level, this function |
1403 -- When you save your level, this function |
1831 -- generates the AddTeam and AddHog function calls for onGameInit() |
1404 -- generates the AddTeam and AddHog function calls for onGameInit() |
1832 function GetDataForSavingHogs(gear) |
1405 function GetDataForSavingHogs(gear) |
1833 |
|
1834 --AddTeam(teamname, color, grave, fort, voicepack, flag) |
|
1835 --AddHog(hogname, botlevel, health, hat) |
|
1836 |
1406 |
1837 --this is a quick hack so that the human team(s) will always be |
1407 --this is a quick hack so that the human team(s) will always be |
1838 --given the first move ahead of the AI |
1408 --given the first move ahead of the AI |
1839 local tempDataList = {} |
1409 local tempDataList = {} |
1840 if GetHogLevel(gear) == 0 then |
1410 if GetHogLevel(gear) == 0 then |
1862 -- no match, just give him a default colour from the array, then |
1432 -- no match, just give him a default colour from the array, then |
1863 if tColor == 0x00000000 then |
1433 if tColor == 0x00000000 then |
1864 tColor = colorArray[teamCounter][2] |
1434 tColor = colorArray[teamCounter][2] |
1865 end |
1435 end |
1866 |
1436 |
1867 |
|
1868 -- there is used to be no way to read this data, so |
|
1869 -- I was assigning teams a random grave, fort, flag and voice |
|
1870 -- but now we should be able to get the real thing |
|
1871 -- so let's do it if they haven't used one of the preset teams |
|
1872 if getGearValue(gear,"grave") == nil then |
1437 if getGearValue(gear,"grave") == nil then |
1873 tFort = fortArray[1+GetRandom(#fortArray)] |
1438 tFort = fortArray[1+GetRandom(#fortArray)] |
1874 tGrave = GetHogGrave(gear) |
1439 tGrave = GetHogGrave(gear) |
1875 tFlag = GetHogFlag(gear) |
1440 tFlag = GetHogFlag(gear) |
1876 tVoice = GetHogVoicepack(gear) |
1441 tVoice = GetHogVoicepack(gear) |
1877 --tGrave = graveArray[1+GetRandom(#graveArray)] |
|
1878 --tFlag = flagArray[1+GetRandom(#flagArray)] |
|
1879 --tVoice = voiceArray[1+GetRandom(#voiceArray)] |
|
1880 else |
1442 else |
1881 tGrave = getGearValue(gear,"grave") |
1443 tGrave = getGearValue(gear,"grave") |
1882 tFort = getGearValue(gear,"fort") |
1444 tFort = getGearValue(gear,"fort") |
1883 tFlag = getGearValue(gear,"flag") |
1445 tFlag = getGearValue(gear,"flag") |
1884 tVoice = getGearValue(gear,"voice") |
1446 tVoice = getGearValue(gear,"voice") |
1889 table.insert(tempDataList, "") |
1451 table.insert(tempDataList, "") |
1890 table.insert (tempDataList, |
1452 table.insert (tempDataList, |
1891 " AddTeam(\"" .. |
1453 " AddTeam(\"" .. |
1892 GetHogTeamName(gear) .."\"" .. |
1454 GetHogTeamName(gear) .."\"" .. |
1893 ", " .. "\"" ..tColor .. "\"" .. |
1455 ", " .. "\"" ..tColor .. "\"" .. |
1894 -- --", " .. colorArray[teamCounter][2] .. |
|
1895 ", " .. "\"" .. tGrave .. "\"" .. |
1456 ", " .. "\"" .. tGrave .. "\"" .. |
1896 ", " .. "\"" .. tFort .. "\"" .. |
1457 ", " .. "\"" .. tFort .. "\"" .. |
1897 ", " .. "\"" .. tVoice .. "\"" .. |
1458 ", " .. "\"" .. tVoice .. "\"" .. |
1898 ", " .. "\"" .. tFlag .. "\"" .. |
1459 ", " .. "\"" .. tFlag .. "\"" .. |
1899 ")" |
1460 ")" |
2386 WriteLnToConsole("HedgewarsScriptLoad(\"/Scripts/Locale.lua\")") |
1947 WriteLnToConsole("HedgewarsScriptLoad(\"/Scripts/Locale.lua\")") |
2387 WriteLnToConsole("HedgewarsScriptLoad(\"/Scripts/Tracker.lua\")") |
1948 WriteLnToConsole("HedgewarsScriptLoad(\"/Scripts/Tracker.lua\")") |
2388 |
1949 |
2389 WriteLnToConsole("") |
1950 WriteLnToConsole("") |
2390 WriteLnToConsole("local hhs = {}") |
1951 WriteLnToConsole("local hhs = {}") |
2391 --WriteLnToConsole("local ufoGear = nil") |
|
2392 WriteLnToConsole("") |
1952 WriteLnToConsole("") |
2393 |
1953 |
2394 WriteLnToConsole("local wepArray = {") |
1954 WriteLnToConsole("local wepArray = {") |
2395 WriteLnToConsole(" amBazooka, amBee, amMortar, amDrill, amSnowball,") |
1955 WriteLnToConsole(" amBazooka, amBee, amMortar, amDrill, amSnowball,") |
2396 WriteLnToConsole(" amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb,") |
1956 WriteLnToConsole(" amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb,") |
2478 " LoadSprite(" .. |
2038 " LoadSprite(" .. |
2479 placedX[i] ..", " .. |
2039 placedX[i] ..", " .. |
2480 placedY[i] ..", sprAmGirder, " .. |
2040 placedY[i] ..", sprAmGirder, " .. |
2481 placedFrame[i] .. -- the rotation/frame |
2041 placedFrame[i] .. -- the rotation/frame |
2482 ", " .. |
2042 ", " .. |
2483 placedTint[i] ..", " .. -- "nil, " .. -- color |
2043 placedTint[i] ..", " .. -- color |
2484 "nil, nil, nil, " .. |
2044 "nil, nil, nil, " .. |
2485 placedLandFlags[i] .. ")" --the landType |
2045 placedLandFlags[i] .. ")" --the landType |
2486 ) |
2046 ) |
2487 table.insert(hFlagList, " " .. placedX[i] .. " " .. placedY[i] .. " " .. placedHWMapFlag[i]) |
2047 table.insert(hFlagList, " " .. placedX[i] .. " " .. placedY[i] .. " " .. placedHWMapFlag[i]) |
2488 table.insert(previewDataList, " PreviewGirder(" .. placedX[i] ..", " .. placedY[i] .. ", " .. placedFrame[i] .. ")") |
2048 table.insert(previewDataList, " PreviewGirder(" .. placedX[i] ..", " .. placedY[i] .. ", " .. placedFrame[i] .. ")") |
2495 " LoadSprite(" .. |
2055 " LoadSprite(" .. |
2496 placedX[i] ..", " .. |
2056 placedX[i] ..", " .. |
2497 placedY[i] ..", sprAmRubber, " .. |
2057 placedY[i] ..", sprAmRubber, " .. |
2498 placedFrame[i] .. |
2058 placedFrame[i] .. |
2499 ", " .. |
2059 ", " .. |
2500 placedTint[i] ..", " .. -- "nil, " .. -- color |
2060 placedTint[i] ..", " .. -- color |
2501 "nil, nil, nil, " .. |
2061 "nil, nil, nil, " .. |
2502 "lfBouncy)" --placedLandFlags[i] .. ")" --the landType |
2062 "lfBouncy)" --the landType |
2503 ) |
2063 ) |
2504 table.insert(hFlagList, " " .. placedX[i] .. " " .. placedY[i] .. " " .. placedHWMapFlag[i]) |
2064 table.insert(hFlagList, " " .. placedX[i] .. " " .. placedY[i] .. " " .. placedHWMapFlag[i]) |
2505 table.insert(previewDataList, " PreviewRubber(" .. placedX[i] ..", " .. placedY[i] .. ", " .. placedFrame[i] .. ")") |
2065 table.insert(previewDataList, " PreviewRubber(" .. placedX[i] ..", " .. placedY[i] .. ", " .. placedFrame[i] .. ")") |
2506 end |
2066 end |
2507 end |
2067 end |
2512 " LoadSprite(" .. |
2072 " LoadSprite(" .. |
2513 placedX[i] ..", " .. |
2073 placedX[i] ..", " .. |
2514 placedY[i] ..", " .. placedSprite[i] .. ", " .. |
2074 placedY[i] ..", " .. placedSprite[i] .. ", " .. |
2515 placedFrame[i] .. -- I think this is the frame, can't remember |
2075 placedFrame[i] .. -- I think this is the frame, can't remember |
2516 ", " .. |
2076 ", " .. |
2517 placedTint[i] ..", " .. -- "nil, " .. -- color |
2077 placedTint[i] ..", " .. -- color |
2518 "nil, nil, nil, " .. |
2078 "nil, nil, nil, " .. |
2519 placedLandFlags[i] .. ")" --the landType |
2079 placedLandFlags[i] .. ")" --the landType |
2520 ) |
2080 ) |
2521 end |
2081 end |
2522 end |
2082 end |
2647 WriteLnToConsole(" if victoryObj == 1 then ") |
2207 WriteLnToConsole(" if victoryObj == 1 then ") |
2648 WriteLnToConsole(" vComment = loc(\"Destroy the red target\")") |
2208 WriteLnToConsole(" vComment = loc(\"Destroy the red target\")") |
2649 WriteLnToConsole(" else ") |
2209 WriteLnToConsole(" else ") |
2650 WriteLnToConsole(" vComment = loc(\"Destroy the red targets\")") |
2210 WriteLnToConsole(" vComment = loc(\"Destroy the red targets\")") |
2651 WriteLnToConsole(" end") |
2211 WriteLnToConsole(" end") |
2652 -- WriteLnToConsole(" else") |
|
2653 -- WriteLnToConsole(" vComment = loc(\"Destroy the enemy.\")") |
|
2654 WriteLnToConsole(" end") |
2212 WriteLnToConsole(" end") |
2655 WriteLnToConsole("") |
2213 WriteLnToConsole("") |
2656 WriteLnToConsole(" if collectObj > 0 then ") |
2214 WriteLnToConsole(" if collectObj > 0 then ") |
2657 WriteLnToConsole(" if collectObj == 1 then ") |
2215 WriteLnToConsole(" if collectObj == 1 then ") |
2658 WriteLnToConsole(" collectComment = loc(\"Collect the blue target\")") |
2216 WriteLnToConsole(" collectComment = loc(\"Collect the blue target\")") |
2697 WriteLnToConsole("") |
2255 WriteLnToConsole("") |
2698 |
2256 |
2699 WriteLnToConsole("") |
2257 WriteLnToConsole("") |
2700 WriteLnToConsole("function onGearAdd(gear)") |
2258 WriteLnToConsole("function onGearAdd(gear)") |
2701 |
2259 |
2702 --WriteLnToConsole(" if GetGearType(gear) == gtJetpack then") |
|
2703 --WriteLnToConsole(" ufoGear = gear") |
|
2704 --WriteLnToConsole(" if (ufoFuel ~= 0) then") |
|
2705 --WriteLnToConsole(" SetHealth(ufoGear, ufoFuel)") |
|
2706 --WriteLnToConsole(" end") |
|
2707 --WriteLnToConsole(" end") |
|
2708 |
2260 |
2709 WriteLnToConsole(" if isATrackedGear(gear) then") |
2261 WriteLnToConsole(" if isATrackedGear(gear) then") |
2710 WriteLnToConsole(" trackGear(gear)") |
2262 WriteLnToConsole(" trackGear(gear)") |
2711 --WriteLnToConsole(" if GetGearType(gear) == gtPortal then") |
|
2712 --WriteLnToConsole(" setGearValue(gear,\"life\",portalDistance)") |
|
2713 --WriteLnToConsole(" end") |
|
2714 |
2263 |
2715 WriteLnToConsole(" end") |
2264 WriteLnToConsole(" end") |
2716 WriteLnToConsole("end") |
2265 WriteLnToConsole("end") |
2717 WriteLnToConsole("") |
2266 WriteLnToConsole("") |
2718 |
2267 |
2750 |
2299 |
2751 WriteLnToConsole("") |
2300 WriteLnToConsole("") |
2752 WriteLnToConsole("function onGearDelete(gear)") |
2301 WriteLnToConsole("function onGearDelete(gear)") |
2753 WriteLnToConsole("") |
2302 WriteLnToConsole("") |
2754 WriteLnToConsole(" --insert code according to taste") |
2303 WriteLnToConsole(" --insert code according to taste") |
2755 --WriteLnToConsole(" if GetGearType(gear) == gtJetpack then") |
|
2756 --WriteLnToConsole(" ufoGear = nil") |
|
2757 --WriteLnToConsole(" end") |
|
2758 WriteLnToConsole("") |
2304 WriteLnToConsole("") |
2759 WriteLnToConsole(" if isATrackedGear(gear) then") |
2305 WriteLnToConsole(" if isATrackedGear(gear) then") |
2760 WriteLnToConsole("") |
2306 WriteLnToConsole("") |
2761 WriteLnToConsole(" if getGearValue(gear,\"tag\") ~= nil then") |
2307 WriteLnToConsole(" if getGearValue(gear,\"tag\") ~= nil then") |
2762 WriteLnToConsole(" CheckForConclusion(gear)") |
2308 WriteLnToConsole(" CheckForConclusion(gear)") |
2763 WriteLnToConsole(" end") |
2309 WriteLnToConsole(" end") |
2764 |
2310 |
2765 --WriteLnToConsole(" if getGearValue(gear,\"tag\") == \"failure\" then") |
|
2766 --WriteLnToConsole(" EndGameIn(\"failure\")") |
|
2767 --WriteLnToConsole(" elseif getGearValue(gear,\"tag\") == \"victory\" then") |
|
2768 --WriteLnToConsole(" EndGameIn(\"victory\")") |
|
2769 --WriteLnToConsole(" end") |
|
2770 WriteLnToConsole("") |
2311 WriteLnToConsole("") |
2771 WriteLnToConsole(" if getGearValue(gear, \"tCirc\") ~= nil then") |
2312 WriteLnToConsole(" if getGearValue(gear, \"tCirc\") ~= nil then") |
2772 WriteLnToConsole(" DeleteVisualGear(getGearValue(gear, \"tCirc\"))") |
2313 WriteLnToConsole(" DeleteVisualGear(getGearValue(gear, \"tCirc\"))") |
2773 WriteLnToConsole(" end") |
2314 WriteLnToConsole(" end") |
2774 WriteLnToConsole("") |
2315 WriteLnToConsole("") |
2786 |
2327 |
2787 WriteLnToConsole(" for i = 1, #wepArray do") |
2328 WriteLnToConsole(" for i = 1, #wepArray do") |
2788 WriteLnToConsole(" SetAmmo(wepArray[i], 0, 0, 0, 1)") |
2329 WriteLnToConsole(" SetAmmo(wepArray[i], 0, 0, 0, 1)") |
2789 WriteLnToConsole(" end") |
2330 WriteLnToConsole(" end") |
2790 WriteLnToConsole("") |
2331 WriteLnToConsole("") |
2791 --WriteLnToConsole(" SetAmmo(amBazooka, 2, 0, 0, 0)") |
|
2792 --WriteLnToConsole(" SetAmmo(amGrenade, 1, 0, 0, 0)") |
|
2793 --WriteLnToConsole(" SetAmmo(amRope, 9, 0, 0, 0)") |
|
2794 WriteLnToConsole(" SetAmmo(amSkip, 9, 0, 0, 0)") |
2332 WriteLnToConsole(" SetAmmo(amSkip, 9, 0, 0, 0)") |
2795 WriteLnToConsole("") |
2333 WriteLnToConsole("") |
2796 WriteLnToConsole("end") |
2334 WriteLnToConsole("end") |
2797 WriteLnToConsole("") |
2335 WriteLnToConsole("") |
2798 |
2336 |
2931 " " .. "|" .. |
2469 " " .. "|" .. |
2932 loc("COMMANDS: (Use while no weapon is selected)") .. "|" .. |
2470 loc("COMMANDS: (Use while no weapon is selected)") .. "|" .. |
2933 loc("Save Level: Precise+4") .. "|" .. |
2471 loc("Save Level: Precise+4") .. "|" .. |
2934 loc("Toggle Editing Weapons and Tools: Precise+2") .. "|" .. |
2472 loc("Toggle Editing Weapons and Tools: Precise+2") .. "|" .. |
2935 " " .. "|" .. |
2473 " " .. "|" .. |
2936 --" " .. "|" .. |
|
2937 "", 4, 5000 |
2474 "", 4, 5000 |
2938 ) |
2475 ) |
2939 --4 |
2476 --4 |
2940 elseif cat[cIndex] == loc("Girder Placement Mode") then |
2477 elseif cat[cIndex] == loc("Girder Placement Mode") then |
2941 |
2478 |
2961 ShowMission ( |
2498 ShowMission ( |
2962 loc("RUBBER PLACEMENT MODE"), |
2499 loc("RUBBER PLACEMENT MODE"), |
2963 loc("Use this mode to place rubberbands"), |
2500 loc("Use this mode to place rubberbands"), |
2964 loc("Place Object: [Left Click]") .. "|" .. |
2501 loc("Place Object: [Left Click]") .. "|" .. |
2965 loc("Change Rotation: [Left], [Right]") .. "|" .. |
2502 loc("Change Rotation: [Left], [Right]") .. "|" .. |
2966 --"Change LandFlag: [1], [2], [3]" .. "|" .. |
|
2967 --" " .. "|" .. |
|
2968 loc("1 - Normal Rubber") .. "|" .. |
2503 loc("1 - Normal Rubber") .. "|" .. |
2969 --"2 - Indestructible Rubber" .. "|" .. |
|
2970 --"3 - Icy Rubber" .. "|" .. |
|
2971 " " .. "|" .. |
2504 " " .. "|" .. |
2972 loc("Deletion Mode: [5]") .. "|" .. |
2505 loc("Deletion Mode: [5]") .. "|" .. |
2973 loc("Toggle Help: Precise+1") .. "|" .. |
2506 loc("Toggle Help: Precise+1") .. "|" .. |
2974 "", -amRubber, 60000 |
2507 "", -amRubber, 60000 |
2975 ) |
2508 ) |
3131 loc("SPRITE MODIFICATION MODE"), |
2664 loc("SPRITE MODIFICATION MODE"), |
3132 "", |
2665 "", |
3133 "Use this mode to select, modify, or delete existing girders," .. "|" .. |
2666 "Use this mode to select, modify, or delete existing girders," .. "|" .. |
3134 "rubbers, or sprites." .. "|" .. |
2667 "rubbers, or sprites." .. "|" .. |
3135 "[Left], [Right]: Change between land-flag" .. "|" .. |
2668 "[Left], [Right]: Change between land-flag" .. "|" .. |
3136 --"[Left], [Right]: Change between selection, land-flag" .. "|" .. |
|
3137 "modification, and deletion modes." .. "|" .. |
2669 "modification, and deletion modes." .. "|" .. |
3138 "While in modification mode, you can " .. "|" .. |
2670 "While in modification mode, you can " .. "|" .. |
3139 "change land-flag by clicking on an object." .. "|" .. |
2671 "change land-flag by clicking on an object." .. "|" .. |
3140 loc("Set LandFlag: [1], [2], [3], [4]") .. "|" .. |
2672 loc("Set LandFlag: [1], [2], [3], [4]") .. "|" .. |
3141 " " .. "|" .. |
2673 " " .. "|" .. |
3164 " " .. "|" .. |
2696 " " .. "|" .. |
3165 loc("Change Placement Mode: [Up], [Down]") .. "|" .. |
2697 loc("Change Placement Mode: [Up], [Down]") .. "|" .. |
3166 loc("Toggle Help: Precise+1") .. "|" .. |
2698 loc("Toggle Help: Precise+1") .. "|" .. |
3167 "", 2, 60000 |
2699 "", 2, 60000 |
3168 ) |
2700 ) |
3169 |
|
3170 --elseif cat[cIndex] == loc("Sprite Testing Mode") then |
|
3171 |
|
3172 -- ShowMission ( |
|
3173 -- "SPRITE TESTING MODE", |
|
3174 -- "Use this mode to test sprites before you place them.", |
|
3175 -- "Place Temporary Visual Test: [Left Click]" .. "|" .. |
|
3176 -- "[Left], [Right]: Change between sprites." .. "|" .. |
|
3177 -- " " .. "|" .. |
|
3178 -- loc("Change Placement Mode: [Up], [Down]") .. "|" .. |
|
3179 -- loc("Toggle Help: Precise+1") .. "|" .. |
|
3180 -- "", 3, 60000 |
|
3181 -- ) |
|
3182 |
2701 |
3183 elseif cat[cIndex] == loc("Tagging Mode") then |
2702 elseif cat[cIndex] == loc("Tagging Mode") then |
3184 |
2703 |
3185 ShowMission ( |
2704 ShowMission ( |
3186 loc("TAGGING MODE"), |
2705 loc("TAGGING MODE"), |
3334 |
2853 |
3335 if genTimer >= 100 then |
2854 if genTimer >= 100 then |
3336 |
2855 |
3337 genTimer = 0 |
2856 genTimer = 0 |
3338 |
2857 |
3339 --if destroyMap == true then |
|
3340 -- BlowShitUpPartTwo() |
|
3341 --end |
|
3342 |
|
3343 curWep = GetCurAmmoType() |
2858 curWep = GetCurAmmoType() |
3344 |
2859 |
3345 HandleRankingEffects() |
2860 HandleRankingEffects() |
3346 runOnGears(PortalEffects) |
2861 runOnGears(PortalEffects) |
3347 |
2862 |
3356 updateHelp() |
2871 updateHelp() |
3357 -- change to generic mode if girder no longer selected |
2872 -- change to generic mode if girder no longer selected |
3358 elseif (cIndex == 1) and (curWep ~= amGirder) then |
2873 elseif (cIndex == 1) and (curWep ~= amGirder) then |
3359 cIndex = 3 -- was 2 |
2874 cIndex = 3 -- was 2 |
3360 RedefineSubset() |
2875 RedefineSubset() |
3361 --updateHelp() |
|
3362 elseif (cIndex == 2) and (curWep ~= amRubber) then |
2876 elseif (cIndex == 2) and (curWep ~= amRubber) then |
3363 cIndex = 3 --new |
2877 cIndex = 3 --new |
3364 RedefineSubset() |
2878 RedefineSubset() |
3365 --updateHelp() |
|
3366 |
|
3367 end |
2879 end |
3368 |
2880 |
3369 -- update display selection criteria |
2881 -- update display selection criteria |
3370 if (curWep == amGirder) or (curWep == amRubber) or (curWep == amAirAttack) then |
2882 if (curWep == amGirder) or (curWep == amRubber) or (curWep == amAirAttack) then |
3371 AddCaption(cat[cIndex],0xffba00ff,capgrpMessage) |
2883 AddCaption(cat[cIndex],0xffba00ff,capgrpMessage) |
3404 SetVisualGearValues(sCirc, GetX(sGear), GetY(sGear), 100, 255, 1, 10, 0, 300, 3, 0xff00ffff) |
2916 SetVisualGearValues(sCirc, GetX(sGear), GetY(sGear), 100, 255, 1, 10, 0, 300, 3, 0xff00ffff) |
3405 elseif (cat[cIndex] == loc("Sprite Modification Mode")) and (sSprite ~= nil) then |
2917 elseif (cat[cIndex] == loc("Sprite Modification Mode")) and (sSprite ~= nil) then |
3406 SetVisualGearValues(sSprite, nil, nil, 0, 0, nil, nil, 10000, nil, 10000) |
2918 SetVisualGearValues(sSprite, nil, nil, 0, 0, nil, nil, 10000, nil, 10000) |
3407 elseif (cat[cIndex] == loc("Tagging Mode")) then |
2919 elseif (cat[cIndex] == loc("Tagging Mode")) then |
3408 if (sGear ~= nil) or (closestGear ~= nil) then |
2920 if (sGear ~= nil) or (closestGear ~= nil) then |
3409 --recently disabled |
|
3410 --SetVisualGearValues(sCirc, GetX(sGear), GetY(sGear), 0, 1, 1, 10, 0, 1, 1, 0x00000000) |
|
3411 closestGear = nil |
2921 closestGear = nil |
3412 sGear = nil |
2922 sGear = nil |
3413 end |
2923 end |
3414 end |
2924 end |
3415 |
2925 |
3428 elseif GetGearType(cGear) == gtGirder then |
2938 elseif GetGearType(cGear) == gtGirder then |
3429 |
2939 |
3430 CGR = GetState(cGear) |
2940 CGR = GetState(cGear) |
3431 |
2941 |
3432 -- improve rectangle test based on CGR when you can be bothered |
2942 -- improve rectangle test based on CGR when you can be bothered |
3433 --if TestRectForObstacle(x-20, y-20, x+20, y+20, true) then |
2943 PlaceObject(x, y) |
3434 -- AddCaption(loc("Invalid Girder Placement"),0xffba00ff,capgrpVolume) |
|
3435 --else |
|
3436 PlaceObject(x, y) |
|
3437 --end |
|
3438 |
|
3439 -- this allows the girder tool to be used like a mining laser |
|
3440 |
|
3441 --[[ |
|
3442 |
|
3443 if CGR < 4 then |
|
3444 AddGear(x, y, gtGrenade, 0, 0, 0, 1) |
|
3445 elseif CGR == 4 then |
|
3446 g = AddGear(x-30, y, gtGrenade, 0, 0, 0, 1) |
|
3447 g = AddGear(x+30, y, gtGrenade, 0, 0, 0, 1) |
|
3448 elseif CGR == 5 then ------- |
|
3449 g = AddGear(x+30, y+30, gtGrenade, 0, 0, 0, 1) |
|
3450 g = AddGear(x-30, y-30, gtGrenade, 0, 0, 0, 1) |
|
3451 elseif CGR == 6 then |
|
3452 g = AddGear(x, y+30, gtGrenade, 0, 0, 0, 1) |
|
3453 g = AddGear(x, y-30, gtGrenade, 0, 0, 0, 1) |
|
3454 elseif CGR == 7 then ------- |
|
3455 g = AddGear(x+30, y-30, gtGrenade, 0, 0, 0, 1) |
|
3456 g = AddGear(x-30, y+30, gtGrenade, 0, 0, 0, 1) |
|
3457 end |
|
3458 ]] |
|
3459 end |
2944 end |
3460 |
2945 |
3461 end |
2946 end |
3462 |
2947 |
3463 end |
2948 end |
3505 landType = lfIndestructible |
2990 landType = lfIndestructible |
3506 AddCaption(loc("Indestructible Land"),0xffba00ff,capgrpAmmoinfo) |
2991 AddCaption(loc("Indestructible Land"),0xffba00ff,capgrpAmmoinfo) |
3507 elseif s == 3 then |
2992 elseif s == 3 then |
3508 landType = lfIce |
2993 landType = lfIce |
3509 AddCaption(loc("Icy Land"),0xffba00ff,capgrpAmmoinfo) |
2994 AddCaption(loc("Icy Land"),0xffba00ff,capgrpAmmoinfo) |
3510 elseif (s == 4) then --and (cat[cIndex] == "Sprite Placement Mode") then |
2995 elseif (s == 4) then |
3511 landType = lfBouncy |
2996 landType = lfBouncy |
3512 AddCaption(loc("Bouncy Land"),0xffba00ff,capgrpAmmoinfo) |
2997 AddCaption(loc("Bouncy Land"),0xffba00ff,capgrpAmmoinfo) |
3513 elseif (s == 5) and (cat[cIndex] ~= loc("Sprite Modification Mode")) then |
2998 elseif (s == 5) and (cat[cIndex] ~= loc("Sprite Modification Mode")) then |
3514 superDelete = true |
2999 superDelete = true |
3515 -- this and the above should probably be shown in another place where the other |
|
3516 -- two add captions are displayed for this kinda thing |
|
3517 --AddCaption(loc("Warning: Deletition Mode Active"),0xffba00ff,capgrpAmmoinfo) |
|
3518 end |
3000 end |
3519 elseif pMode[pIndex] == loc("Selection Mode") then |
3001 elseif pMode[pIndex] == loc("Selection Mode") then |
3520 setGearValue(sGear, "ranking", s) |
3002 setGearValue(sGear, "ranking", s) |
3521 end |
3003 end |
3522 |
3004 |
3524 |
3006 |
3525 function onPrecise() |
3007 function onPrecise() |
3526 |
3008 |
3527 preciseOn = true |
3009 preciseOn = true |
3528 |
3010 |
3529 --ParseCommand("voicepack " .. "Surfer") |
|
3530 --AddCaption(GetHogGrave(CurrentHedgehog)) |
|
3531 |
|
3532 --if (pMode[pIndex] == "Selection Mode") and (closestGear ~= nil) then |
|
3533 -- menuEnabled = not(menuEnabled) |
|
3534 --showmenu |
|
3535 --end |
|
3536 |
|
3537 --BlowShitUp() |
|
3538 |
|
3539 --[[ |
|
3540 frameID = 1 |
|
3541 visualSprite = sprAmGirder--reducedSpriteIDArray[pIndex] |
|
3542 --visualSprite = spriteIDArray[pIndex] |
|
3543 tempE = AddVisualGear(1, 1, vgtStraightShot, 0, true,1) |
|
3544 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
|
3545 SetVisualGearValues(tempE, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
|
3546 |
|
3547 ]] |
|
3548 |
|
3549 end |
3011 end |
3550 |
3012 |
3551 function onPreciseUp() |
3013 function onPreciseUp() |
3552 preciseOn = false |
3014 preciseOn = false |
3553 end |
3015 end |
3554 |
|
3555 --[[function onLJump() |
|
3556 end |
|
3557 |
|
3558 function onHJump() |
|
3559 end]] |
|
3560 |
|
3561 --[[function UpdateMenu() |
|
3562 |
|
3563 preMenuCfg = loc("Use the arrow keys to navigate this menu") .. "|" |
|
3564 postMenuCfg = loc("Press [Fire] to accept this configuration.") |
|
3565 |
|
3566 menu = { |
|
3567 loc("Walls Required") .. ": " .. #wTouched .. "|", |
|
3568 loc("Surf Before Crate") .. ": " .. BoolToCfgTxt(requireSurfer) .. "|", |
|
3569 loc("Attack From Rope") .. ": " .. BoolToCfgTxt(AFR) .. "|", |
|
3570 loc("Super Weapons") .. ": " .. BoolToCfgTxt(allowCrazyWeps) .. "|" |
|
3571 } |
|
3572 end |
|
3573 |
|
3574 function HandleStartingStage() |
|
3575 |
|
3576 temp = menu[menuIndex] |
|
3577 menu[menuIndex] = "--> " .. menu[menuIndex] |
|
3578 |
|
3579 missionComment = "" |
|
3580 for i = 1, #menu do |
|
3581 missionComment = missionComment .. menu[i] |
|
3582 end |
|
3583 |
|
3584 ShowMission ( |
|
3585 loc("HEDGE EDITOR") .. " 0.4", |
|
3586 loc("Edit gear properties"), |
|
3587 preMenuCfg.. |
|
3588 missionComment .. |
|
3589 postMenuCfg .. |
|
3590 --" " .. "|" .. |
|
3591 "", 4, 300000 |
|
3592 ) |
|
3593 |
|
3594 menu[menuIndex] = temp |
|
3595 |
|
3596 end |
|
3597 |
|
3598 function UpdateMenuCategoryOrSomething() |
|
3599 temp = menu[1] |
|
3600 menu = {} |
|
3601 if temp == "Initialisation Menu" then |
|
3602 for i = 1, #initMenuArray do |
|
3603 menu[i] = initMenuArray[i] .. ": " .. initMenuArray[2] |
|
3604 end |
|
3605 elseif temp == "GameFlag Menu" then |
|
3606 for i = 1, #gameFlagList do |
|
3607 menu[i] = gameFlagList[1] .. ": " .. BoolToStr(gameFlagList[2]) |
|
3608 end |
|
3609 elseif temp == "Ammo Menu" then |
|
3610 for i = 1, #atkArray do --except, this should be per hog, not overall :( |
|
3611 --menu[i] = atkArray[i][2] .. ": " .. atkArray[i][3] |
|
3612 menu[i] = atkArray[i][2] .. ": " .. getGearValue(sGear,atkArray[i][1]) |
|
3613 end |
|
3614 -- you should run through all the hogs and assign them ammo values based on the |
|
3615 -- ammo set, yea, let's write that function in 5th |
|
3616 for i = #menu, #utilArray do |
|
3617 end |
|
3618 end |
|
3619 end |
|
3620 |
|
3621 function doMenuShit(d) |
|
3622 |
|
3623 if d == "up" then |
|
3624 menuIndex = menuIndex -1 |
|
3625 if menuIndex == 0 then |
|
3626 menuIndex = #menu |
|
3627 end |
|
3628 elseif d == "down" then |
|
3629 menuIndex = menuIndex +1 |
|
3630 if menuIndex > #menu then |
|
3631 menuIndex = 1 |
|
3632 end |
|
3633 elseif d == "left" then |
|
3634 |
|
3635 elseif d == "right" then |
|
3636 |
|
3637 end |
|
3638 |
|
3639 end]] |
|
3640 |
3016 |
3641 --------------------------------------------------------------- |
3017 --------------------------------------------------------------- |
3642 -- Cycle through selection subsets (by changing pIndex, pMode) |
3018 -- Cycle through selection subsets (by changing pIndex, pMode) |
3643 -- i.e health of barrels, medikits, |
3019 -- i.e health of barrels, medikits, |
3644 -- timer of mines |
3020 -- timer of mines |
3647 function onLeft() |
3023 function onLeft() |
3648 |
3024 |
3649 leftHeld = true |
3025 leftHeld = true |
3650 rightHeld = false |
3026 rightHeld = false |
3651 |
3027 |
3652 --if menuEnabled == true then |
3028 pIndex = pIndex - 1 |
3653 --doMenuShit("left") |
3029 if pIndex == 0 then |
3654 |
3030 pIndex = #pMode |
3655 --else -- normal case |
3031 end |
3656 |
3032 |
3657 pIndex = pIndex - 1 |
3033 if (curWep == amGirder) or (curWep == amRubber) or (curWep == amAirAttack) then |
3658 if pIndex == 0 then |
3034 AddCaption(pMode[pIndex],0xffba00ff,capgrpMessage2) |
3659 pIndex = #pMode |
3035 end |
3660 end |
|
3661 |
|
3662 if (curWep == amGirder) or (curWep == amRubber) or (curWep == amAirAttack) then |
|
3663 AddCaption(pMode[pIndex],0xffba00ff,capgrpMessage2) |
|
3664 end |
|
3665 |
|
3666 --end |
|
3667 |
3036 |
3668 end |
3037 end |
3669 |
3038 |
3670 function onRight() |
3039 function onRight() |
3671 |
3040 |
3672 leftHeld = false |
3041 leftHeld = false |
3673 rightHeld = true |
3042 rightHeld = true |
3674 |
3043 |
3675 --if menuEnabled == true then |
3044 pIndex = pIndex + 1 |
3676 --doMenuShit("right") |
3045 if pIndex > #pMode then |
3677 |
3046 pIndex = 1 |
3678 --else -- normal case |
3047 end |
3679 |
3048 |
3680 pIndex = pIndex + 1 |
3049 if (curWep == amGirder) or (curWep == amRubber) or (curWep == amAirAttack) then |
3681 if pIndex > #pMode then |
3050 AddCaption(pMode[pIndex],0xffba00ff,capgrpMessage2) |
3682 pIndex = 1 |
3051 end |
3683 end |
|
3684 |
|
3685 if (curWep == amGirder) or (curWep == amRubber) or (curWep == amAirAttack) then |
|
3686 AddCaption(pMode[pIndex],0xffba00ff,capgrpMessage2) |
|
3687 end |
|
3688 |
|
3689 --end |
|
3690 |
3052 |
3691 end |
3053 end |
3692 |
3054 |
3693 --------------------------------------------------------- |
3055 --------------------------------------------------------- |
3694 -- Cycle through primary categories (by changing cIndex) |
3056 -- Cycle through primary categories (by changing cIndex) |
3695 -- i.e mine, sticky mine, barrels |
3057 -- i.e mine, sticky mine, barrels |
3696 -- health/weapon/utility crate, placement of gears |
3058 -- health/weapon/utility crate, placement of gears |
3697 --------------------------------------------------------- |
3059 --------------------------------------------------------- |
3698 function onUp() |
3060 function onUp() |
3699 |
3061 |
3700 --if menuEnabled == true then |
|
3701 --doMenuShit("up") |
|
3702 |
|
3703 --elseif (curWep ~= amGirder) then |
|
3704 if (curWep ~= amGirder) then |
3062 if (curWep ~= amGirder) then |
3705 --AddCaption(cIndex) |
|
3706 cIndex = cIndex - 1 |
3063 cIndex = cIndex - 1 |
3707 if (cIndex == 1) or (cIndex == 2) then --1 --we no longer hit girder by normal means |
3064 if (cIndex == 1) or (cIndex == 2) then --1 --we no longer hit girder by normal means |
3708 cIndex = #cat |
3065 cIndex = #cat |
3709 end |
3066 end |
3710 |
3067 |
3715 |
3072 |
3716 end |
3073 end |
3717 |
3074 |
3718 function onDown() |
3075 function onDown() |
3719 |
3076 |
3720 --if menuEnabled == true then |
|
3721 --doMenuShit("down") |
|
3722 |
|
3723 --elseif (curWep ~= amGirder) then |
|
3724 if (curWep ~= amGirder) then |
3077 if (curWep ~= amGirder) then |
3725 cIndex = cIndex + 1 |
3078 cIndex = cIndex + 1 |
3726 if cIndex > #cat then |
3079 if cIndex > #cat then |
3727 cIndex = 3 -- 2 ----we no longer hit girder by normal means |
3080 cIndex = 3 -- 2 ----we no longer hit girder by normal means |
3728 end |
3081 end |
3787 end |
3140 end |
3788 |
3141 |
3789 Explosives = 0 |
3142 Explosives = 0 |
3790 MinesNum = 0 |
3143 MinesNum = 0 |
3791 |
3144 |
3792 --GameFlags = GameFlags + gfInfAttack |
|
3793 EnableGameFlags(gfInfAttack, gfDisableWind) |
3145 EnableGameFlags(gfInfAttack, gfDisableWind) |
3794 |
3146 |
3795 RedefineSubset() |
3147 RedefineSubset() |
3796 |
3148 |
3797 end |
3149 end |
3815 " " .. "|" .. |
3167 " " .. "|" .. |
3816 loc("COMMANDS: (Use while no weapon is selected)") .. "|" .. |
3168 loc("COMMANDS: (Use while no weapon is selected)") .. "|" .. |
3817 loc("Save Level: Precise+4") .. "|" .. |
3169 loc("Save Level: Precise+4") .. "|" .. |
3818 loc("Toggle Editing Weapons and Tools: Precise+2") .. "|" .. |
3170 loc("Toggle Editing Weapons and Tools: Precise+2") .. "|" .. |
3819 " " .. "|" .. |
3171 " " .. "|" .. |
3820 --" " .. "|" .. |
|
3821 "", 4, 5000 |
3172 "", 4, 5000 |
3822 ) |
3173 ) |
3823 |
3174 |
3824 |
3175 |
3825 sCirc = AddVisualGear(0,0,vgtCircle,0,true) |
3176 sCirc = AddVisualGear(0,0,vgtCircle,0,true) |
3832 SetVisualGearValues(sSprite, 1, 1, 0, 0, nil, frameID, 20000, visualSprite, 20000, 0 ) |
3183 SetVisualGearValues(sSprite, 1, 1, 0, 0, nil, frameID, 20000, visualSprite, 20000, 0 ) |
3833 |
3184 |
3834 SetAmmoDelay(amAirAttack,0) |
3185 SetAmmoDelay(amAirAttack,0) |
3835 SetAmmoDelay(amGirder,0) |
3186 SetAmmoDelay(amGirder,0) |
3836 SetAmmoDelay(amRubber,0) |
3187 SetAmmoDelay(amRubber,0) |
3837 --SetAmmoDelay(amNapalm,0) |
|
3838 --SetAmmoDelay(amDrillStrike,0) |
|
3839 --SetAmmoDelay(amMineStrike,0) |
|
3840 |
3188 |
3841 end |
3189 end |
3842 |
3190 |
3843 function SetEditingWeps(ammoCount) |
3191 function SetEditingWeps(ammoCount) |
3844 |
3192 |
3845 AddAmmo(CurrentHedgehog, amAirAttack, ammoCount) |
3193 AddAmmo(CurrentHedgehog, amAirAttack, ammoCount) |
3846 AddAmmo(CurrentHedgehog, amGirder, ammoCount) |
3194 AddAmmo(CurrentHedgehog, amGirder, ammoCount) |
3847 AddAmmo(CurrentHedgehog, amRubber, ammoCount) |
3195 AddAmmo(CurrentHedgehog, amRubber, ammoCount) |
3848 --AddAmmo(CurrentHedgehog, amPortalGun, ammoCount) |
|
3849 AddAmmo(CurrentHedgehog, amTeleport, ammoCount) |
3196 AddAmmo(CurrentHedgehog, amTeleport, ammoCount) |
3850 AddAmmo(CurrentHedgehog, amRope, ammoCount) |
3197 AddAmmo(CurrentHedgehog, amRope, ammoCount) |
3851 --AddAmmo(CurrentHedgehog, amJetpack, ammoCount) |
3198 AddAmmo(CurrentHedgehog, amSwitch, 100) |
3852 --AddAmmo(CurrentHedgehog, amParachute, ammoCount) |
|
3853 AddAmmo(CurrentHedgehog, amSwitch, 100) --ammoCount |
|
3854 AddAmmo(CurrentHedgehog, amSkip, 100) |
3199 AddAmmo(CurrentHedgehog, amSkip, 100) |
3855 |
3200 |
3856 end |
3201 end |
3857 |
3202 |
3858 function clearAmmo(gear) |
3203 function clearAmmo(gear) |
3877 nArr = {} |
3222 nArr = {} |
3878 for i = 1,#preMadeTeam[pIndex][3] do |
3223 for i = 1,#preMadeTeam[pIndex][3] do |
3879 table.insert(nArr,preMadeTeam[pIndex][3][i]) |
3224 table.insert(nArr,preMadeTeam[pIndex][3][i]) |
3880 end |
3225 end |
3881 SetHogTeamName(gear, tName) |
3226 SetHogTeamName(gear, tName) |
3882 --runOnHogsInTeam(AssignTeam(gear),tName) |
|
3883 runOnHogs(AssignTeam) |
3227 runOnHogs(AssignTeam) |
3884 end |
3228 end |
3885 |
3229 |
3886 function AssignTeam(gear) |
3230 function AssignTeam(gear) |
3887 |
3231 |
3960 AddAmmo(gear, amNapalm, 1) |
3304 AddAmmo(gear, amNapalm, 1) |
3961 |
3305 |
3962 elseif pro == loc("Soldier") then |
3306 elseif pro == loc("Soldier") then |
3963 |
3307 |
3964 SetHogName(gear,loc("Soldier")) |
3308 SetHogName(gear,loc("Soldier")) |
3965 --SetHogHat(gear, "war_americanww2helmet") |
3309 SetHogHat(gear, "war_americanww2helmet") |
3966 SetHogHat(gear, "TeamSoldier") |
|
3967 SetHealth(gear, 100) |
3310 SetHealth(gear, 100) |
3968 AddAmmo(gear, amBazooka, 100) |
3311 AddAmmo(gear, amBazooka, 100) |
3969 AddAmmo(gear, amShotgun, 100) |
3312 AddAmmo(gear, amShotgun, 100) |
3970 AddAmmo(gear, amMortar, 100) |
3313 AddAmmo(gear, amMortar, 100) |
3971 |
3314 |
3984 SetHogHat(gear, "chef") |
3327 SetHogHat(gear, "chef") |
3985 SetHealth(gear, 65) |
3328 SetHealth(gear, 65) |
3986 AddAmmo(gear, amGasBomb, 100) |
3329 AddAmmo(gear, amGasBomb, 100) |
3987 AddAmmo(gear, amKnife, 100) |
3330 AddAmmo(gear, amKnife, 100) |
3988 AddAmmo(gear, amCake, 1) |
3331 AddAmmo(gear, amCake, 1) |
3989 --AddAmmo(gear, amWatermelon, 1) |
|
3990 |
3332 |
3991 elseif pro == loc("Ninja") then |
3333 elseif pro == loc("Ninja") then |
3992 |
3334 |
3993 SetHogName(gear,loc("Ninja")) |
3335 SetHogName(gear,loc("Ninja")) |
3994 SetHogHat(gear, "NinjaFull") |
3336 SetHogHat(gear, "NinjaFull") |
4057 SetHealth(gear, 70) |
3399 SetHealth(gear, 70) |
4058 AddAmmo(gear, amBaseballBat, 100) |
3400 AddAmmo(gear, amBaseballBat, 100) |
4059 AddAmmo(gear, amGasBomb, 100) |
3401 AddAmmo(gear, amGasBomb, 100) |
4060 AddAmmo(gear, amBallgun, 1) |
3402 AddAmmo(gear, amBallgun, 1) |
4061 AddAmmo(gear, amKamikaze, 1) |
3403 AddAmmo(gear, amKamikaze, 1) |
4062 --AddAmmo(gear, amPiano, 1) |
|
4063 |
3404 |
4064 -- some other ideas/roles |
3405 -- some other ideas/roles |
4065 -- relocator: portal, teleport, tardis, extra time, lasersite |
3406 -- relocator: portal, teleport, tardis, extra time, lasersite |
4066 -- vampire: vampire, whip, birdy, extra damage, seduction |
3407 -- vampire: vampire, whip, birdy, extra damage, seduction |
4067 -- flyboy: rc plane, deagle, whip, parachute, kamikaze |
3408 -- flyboy: rc plane, deagle, whip, parachute, kamikaze |
4119 if (ufoFuel ~= 0) then |
3460 if (ufoFuel ~= 0) then |
4120 SetHealth(ufoGear, ufoFuel) |
3461 SetHealth(ufoGear, ufoFuel) |
4121 end |
3462 end |
4122 end |
3463 end |
4123 |
3464 |
4124 if GetGearType(gear) == gtHedgehog then |
3465 if (GetGearType(gear) == gtAirAttack) or (GetGearType(gear) == gtGirder) then |
4125 --table.insert(hhs, gear) |
|
4126 elseif (GetGearType(gear) == gtAirAttack) or (GetGearType(gear) == gtGirder) then |
|
4127 cGear = gear |
3466 cGear = gear |
4128 end |
3467 end |
4129 |
3468 |
4130 if isATrackedGear(gear) then |
3469 if isATrackedGear(gear) then |
4131 trackGear(gear) |
3470 trackGear(gear) |