From 07e66279be64cc932b028cc227872320a39fa601 Mon Sep 17 00:00:00 2001 From: Maikel de Vries Date: Sat, 31 Mar 2018 11:33:08 +0200 Subject: [PATCH] cable cars: scenario saving for cable car --- .../Libraries.ocd/CableCar.ocd/Script.c | 16 +++- .../Vehicles.ocd/Hoist.ocd/Script.c | 12 +++ .../CableLorrys.ocs/MapBg.bmp | Bin 9078 -> 9078 bytes .../CableLorrys.ocs/MapFg.bmp | Bin 9078 -> 9078 bytes .../CableLorrys.ocs/Objects.c | 76 ++++++++++++------ .../CableLorrys.ocs/Scenario.txt | 2 +- 6 files changed, 78 insertions(+), 28 deletions(-) diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Script.c b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Script.c index 5e24de993..33d627c71 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Script.c +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Script.c @@ -161,7 +161,6 @@ public func GetCableCarMenuEntries(object clonk) var menu_entries = []; // Clickable buttons - if (!GetRailTarget()) { // Engaging onto a rail @@ -434,3 +433,18 @@ public func FinishedRequest(object station) station->RequestArrived(this, lib_ccar_delivery[2], lib_ccar_delivery[3]); lib_ccar_delivery = nil; } + + +/*-- Saving --*/ + +public func SaveScenarioObject(proplist props) +{ + if (!inherited(props, ...)) + return false; + if (lib_ccar_speed != nil) + props->AddCall("Speed", this, "SetCableSpeed", lib_ccar_speed); + if (lib_ccar_rail) + props->AddCall("Rail", this, "EngageRail", lib_ccar_rail, true); + return true; +} + diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Hoist.ocd/Script.c b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Hoist.ocd/Script.c index 517f29b28..58b495423 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Hoist.ocd/Script.c +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Hoist.ocd/Script.c @@ -248,6 +248,18 @@ public func OverridePriority(proplist requested, int amount, proplist requesting } +/*-- Saving --*/ + +public func SaveScenarioObject(proplist props) +{ + if (!inherited(props, ...)) + return false; + if (pickup) + props->AddCall("Pickup", this, "PickupVehicle", pickup); + return true; +} + + /*-- Definition --*/ public func Definition(def) diff --git a/planet/Experimental.ocf/CableLorrys.ocs/MapBg.bmp b/planet/Experimental.ocf/CableLorrys.ocs/MapBg.bmp index 240dc15f1772a21309146059adcd74f426944288..f0d4bc3bb9f9a6fe2ff15ca77338b320fdc03566 100644 GIT binary patch literal 9078 zcmeH~ziSjh6vw}DWa8-J!W9-85fa4sBN_yQ5ELU82BT=DqzD9TQVA&p8&T7V)?z6L zihqTLC@3}-b~b`yb+E9ousZ7JZOmQN6q=kMI(ymM**EWf-}imynjAlUc}UGQwq6=$ zb&>llcb_&i@nbuh$KqFCv!PE<9_yOEXu+*(;x0zH=oB4KZq-sGwq^SsmbJDGjp*FW zC3%ZiPBjZp+1j<( zP2t&T>+pgG1_pHR*#|v%`PNF1!adJj*)2VsUZCC)EEPl4i#r#Zlvj^#C+= z!WvtaU-3?V_Aq7Ylc1?>yn1}9S z0e^Hrs+=?Mc8&!#^tE8g$Dt7mn8Gbdu7W)I{P=;oY@D+<(M4)4HksKP&^sAWGEb{L_#Hl`~P zNCXmrL?97J1QLNnAQ4Ce5`jb@5l967QUZ(ryW6)J{Qm9tEqCizvHHb!t5EKi{3AVn z8lyX5&sIP7=$UX=sN13&>+R|fbuif_qumyr(9+i0p38(g%e5)4P~B1PELKQbbEqT! oZLwy-6$O@eSuvp(!ETdYs3na=AQ4Ce5`jb@5l93Qf&Z4kSDAG3%K!iX literal 9078 zcmeI0ziSpr7{|Y1WOZb4FolIi1VxRCryMAPDCV#*7(qc$A_N2*E5YL6nnN$$an@of z2#SA&g;*#y7T4JbS_T#d2G)%Fc~nFDLpO3%B`UNdMexw_Eulcgr*PU~GoBpR1C+CXPNt?FrRnv6ZvSYu_ z&0UkHUhFOQwH|51zwdN;>Nmx;YjyO_Wo^9mmL6&D_&$RGr_t|Ib2@PBf)1a$szWC) z=?L@dfBg+#r+ZId>-6+h=sQgx+)ky@{yjTQjt=gcWZucaH+Ay~SRewP(O6v8?Ch*& zW@cD-+B`Y0iHQl_fBs5$d1*Il_7?39|LMW(yt4Ch-T~9-+3kz?@p|#_AL`V=ee?2v zm0Z}9b^g+IaJ`BzN}#!t<-uy`MJgG9l|AYLb8~9S8H1B}OV4F{iadB8j!bqAye8m@ zb&m(p<2^V)Wab5)M3qhSl5vm{oC$n&h94BzTnv--k|S7|?P&B7jbJqiy^&se0zF^^ z`ZH@vK^YCjv}45EdFKo?nBa9_XV;n&1$-EDMxTpz?h&uXFEn#UY>k>jLuc9$4i$Y; z#Bb>FGx}PSj$Y#oYE4Hs&OEBMT*#<1)4WYWN5mWF6oM7U745v4HxOjBwq)0_FOW+n zuLxelz5-7smyi&Eh=`xi^U+^gax@Os7`TY;=)o#rnw|tN9`Tyco$1YRM!OGfK?`}9 z2RITgJ@xGHP2HPbdJ{hpyp-&;xHaf^xm7c6w_}0+4y{Fzy%F7JuQeR{8+0W*SNuhI zdkeiLk24;;d)5+u8t^^bC2~K;(ZU&I{6+48Z@IHA7#oV3|#;E)Bpx p4OR`fEWqb1%WfD&aY!->w2Dy^s0q{rY63NZnm|pUCh*H9@BtSM=KKHv diff --git a/planet/Experimental.ocf/CableLorrys.ocs/MapFg.bmp b/planet/Experimental.ocf/CableLorrys.ocs/MapFg.bmp index b6bf2110ff72827268fe63a91b1b7ebbd0e281bd..ae85f9f2145fc61e5196a6069514b4a763710116 100644 GIT binary patch delta 1035 zcmW-fJBt)S6on6#)KXYjFoA)N3M=AsbrF2PqRW6RE-r$RGQq%v8ws14*yv`WU?zrw zpqTm}6ciH!GZR5E8YpPCprpj_cF#1`eIMtZb8hc#>}|YQ@7zAwt}*n@=U=+LxjhisTwUg@S~+tP@T%4G%W?%mfJ`2LgkT{H z;Sy9JI-O3nwY3Flr^BarH6D-k`qLl1{rb~dfPy~fsrXFqrn~ezg1uU3`ttIAH`IK4 z|3o1;6%_ye@tu5SK+&D~4j=~LaifrTax^MJ03wF$i2J@bF93D&u_~C0Eg*mxII0mm z+$H8*fRk5XR;``otf3Hq0LchjXJi-@crVrzX!1S8NCN6%5O5_zq$OKfCIwD1oI=)q z)C1=2^wfhBAi*1CBltMk)t;eAF4=Gx4ptjD#efE4g(gwQUlC`Ji;V#wG!HWv!b32U zL<@=={T1u2JVGoR4#b30e!!~KHFX8$9#tNTDlA)WG-sL?K$%XvxscjpTQk}P9u8wfR_SPHKk%?qTrgni_3yti(;U=}2-o);s7P!)(7Iul<_b6(^ zDzd<1KNf>+Nf63>Jeh&Su-fJnhbDaH7;l1u^r0;-%&vTS~Ri`h71~p M>)3~@``3^E2i8kUxBvhE delta 1035 zcmW-fziSmi5XZl;vSDFy@f8*t6%;ip(IEH(M8g9K2Ga58AZJNDk&*_rQ;+1X#&UwOIQwZHNwgupkBZ)<^llLqPV zvGa;?(9u(iy0`I2iFotX{MT!wgS-EVq~H+AU6A8MqHTNfMxoT$sw4PCnV zKv(Z<>B{YOU1z`j_=&nm%G=Msba!HKfbG3Bgu4seH-AUmYOPXp_vk3kz%yc1;8vJFSB>AE}j42R8||wJf|svm*6nE z7r=`dQ=v-)jlxU~bt#kEQNq*;MU;_%^0Jw$Ty(r_vsSSal_}v%Wx&R@XIq@@M0TF|X zLpfa3Nd?Dw#5V-?t{uV7nbjkt(=Z`W)O%}a)8MvQu_C14j=Rd)gA*0MbM_GiLu^lb z2l6tVF*;TNjN~KDf3U?5npIPnSDqkceaQz;!El)J&+fdGgo ztA4jQED(<-Mo|fGJh)GsRUAbK66CEgBNN1M4Ti(QETo>n?ZNON^qkbI2XAkL7?E`R KSetCategory(C4D_StaticBack|C4D_Structure); var CableCrossing002 = CreateObjectAbove(CableCrossing, 554, 391); + CableCrossing002->SetCategory(C4D_StaticBack|C4D_Structure); CableCrossing002->SetMeshMaterial("CableCarStation_SignStation", 1); CableCrossing002->ToggleStation(true); @@ -14,6 +16,7 @@ func InitializeObjects() CableLine001->SetConnectedObjects(CableCrossing001, CableCrossing002); var CableCrossing003 = CreateObjectAbove(CableCrossing, 209, 390); + CableCrossing003->SetCategory(C4D_StaticBack|C4D_Structure); var CableLine002 = CreateObject(CableLine, 206, 747); CableLine002.LineColors = [-15461326,-15461326]; @@ -22,34 +25,39 @@ func InitializeObjects() CableLine002->SetConnectedObjects(CableCrossing001, CableCrossing003); var CableCrossing004 = CreateObjectAbove(CableCrossing, 652, 491); + CableCrossing004->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine003 = CreateObjectAbove(CableLine, 551, 1319); + var CableLine003 = CreateObjectAbove(CableLine, 551, 1789); CableLine003.LineColors = [-15461326,-15461326]; CableLine003->SetAction("Connect", CableCrossing004, CableCrossing002); CableLine003->SetConnectedObjects(CableCrossing004, CableCrossing002); var CableCrossing005 = CreateObjectAbove(CableCrossing, 694, 419); + CableCrossing005->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine004 = CreateObjectAbove(CableLine, 651, 1419); + var CableLine004 = CreateObjectAbove(CableLine, 651, 1889); CableLine004.LineColors = [-15461326,-15461326]; CableLine004->SetAction("Connect", CableCrossing005, CableCrossing004); CableLine004->SetConnectedObjects(CableCrossing005, CableCrossing004); var CableCrossing006 = CreateObjectAbove(CableCrossing, 770, 360); + CableCrossing006->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine005 = CreateObjectAbove(CableLine, 693, 1204); + var CableLine005 = CreateObjectAbove(CableLine, 693, 1602); CableLine005.LineColors = [-15461326,-15461326]; CableLine005->SetAction("Connect", CableCrossing006, CableCrossing005); CableLine005->SetConnectedObjects(CableCrossing006, CableCrossing005); var CableCrossing007 = CreateObjectAbove(CableCrossing, 810, 351); + CableCrossing007->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine006 = CreateObjectAbove(CableLine, 771, 1026); + var CableLine006 = CreateObjectAbove(CableLine, 771, 1365); CableLine006.LineColors = [-15461326,-15461326]; CableLine006->SetAction("Connect", CableCrossing007, CableCrossing006); CableLine006->SetConnectedObjects(CableCrossing007, CableCrossing006); var CableCrossing008 = CreateObjectAbove(CableCrossing, 939, 360); + CableCrossing008->SetCategory(C4D_StaticBack|C4D_Structure); CableCrossing008->SetMeshMaterial("CableCarStation_SignStation", 1); var CableLine007 = CreateObject(CableLine, 815, 679); @@ -59,6 +67,7 @@ func InitializeObjects() CableLine007->SetConnectedObjects(CableCrossing008, CableCrossing007); var CableCrossing009 = CreateObjectAbove(CableCrossing, 599, 257); + CableCrossing009->SetCategory(C4D_StaticBack|C4D_Structure); var CableLine008 = CreateObject(CableLine, 808, 669); CableLine008.LineColors = [-15461326,-15461326]; @@ -67,13 +76,16 @@ func InitializeObjects() CableLine008->SetConnectedObjects(CableCrossing009, CableCrossing007); var CableCrossing010 = CreateObjectAbove(CableCrossing, 519, 259); + CableCrossing010->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine009 = CreateObjectAbove(CableLine, 599, 722); + var CableLine009 = CreateObject(CableLine, 599, 722); CableLine009.LineColors = [-15461326,-15461326]; + CableLine009->SetPosition(599, 722); CableLine009->SetAction("Connect", CableCrossing010, CableCrossing009); CableLine009->SetConnectedObjects(CableCrossing010, CableCrossing009); var CableCrossing011 = CreateObjectAbove(CableCrossing, 465, 289); + CableCrossing011->SetCategory(C4D_StaticBack|C4D_Structure); var CableLine010 = CreateObject(CableLine, 517, 516); CableLine010.LineColors = [-15461326,-15461326]; @@ -87,80 +99,92 @@ func InitializeObjects() CableLine011->SetConnectedObjects(CableCrossing003, CableCrossing011); var CableCrossing012 = CreateObjectAbove(CableCrossing, 744, 589); + CableCrossing012->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine012 = CreateObjectAbove(CableLine, 652, 1623); + var CableLine012 = CreateObjectAbove(CableLine, 652, 2191); CableLine012.LineColors = [-15461326,-15461326]; CableLine012->SetAction("Connect", CableCrossing012, CableCrossing004); CableLine012->SetConnectedObjects(CableCrossing012, CableCrossing004); var CableCrossing013 = CreateObjectAbove(CableCrossing, 680, 619); + CableCrossing013->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine013 = CreateObjectAbove(CableLine, 743, 1772); + var CableLine013 = CreateObjectAbove(CableLine, 743, 2370); CableLine013.LineColors = [-15461326,-15461326]; CableLine013->SetAction("Connect", CableCrossing013, CableCrossing012); CableLine013->SetConnectedObjects(CableCrossing013, CableCrossing012); var CableCrossing014 = CreateObjectAbove(CableCrossing, 568, 690); + CableCrossing014->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine014 = CreateObjectAbove(CableLine, 678, 1947); + var CableLine014 = CreateObjectAbove(CableLine, 678, 2616); CableLine014.LineColors = [-15461326,-15461326]; CableLine014->SetAction("Connect", CableCrossing014, CableCrossing013); CableLine014->SetConnectedObjects(CableCrossing014, CableCrossing013); var CableCrossing015 = CreateObjectAbove(CableCrossing, 456, 711); + CableCrossing015->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine015 = CreateObjectAbove(CableLine, 570, 2059); + var CableLine015 = CreateObjectAbove(CableLine, 570, 2749); CableLine015.LineColors = [-15461326,-15461326]; CableLine015->SetAction("Connect", CableCrossing015, CableCrossing014); CableLine015->SetConnectedObjects(CableCrossing015, CableCrossing014); var CableCrossing016 = CreateObjectAbove(CableCrossing, 372, 650); + CableCrossing016->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine016 = CreateObjectAbove(CableLine, 454, 2080); + var CableLine016 = CreateObjectAbove(CableLine, 454, 2770); CableLine016.LineColors = [-15461326,-15461326]; CableLine016->SetAction("Connect", CableCrossing016, CableCrossing015); CableLine016->SetConnectedObjects(CableCrossing016, CableCrossing015); var CableCrossing017 = CreateObjectAbove(CableCrossing, 231, 590); + CableCrossing017->SetCategory(C4D_StaticBack|C4D_Structure); - var CableLine017 = CreateObjectAbove(CableLine, 374, 1895); + var CableLine017 = CreateObjectAbove(CableLine, 374, 2524); CableLine017.LineColors = [-15461326,-15461326]; CableLine017->SetAction("Connect", CableCrossing017, CableCrossing016); CableLine017->SetConnectedObjects(CableCrossing017, CableCrossing016); var CableCrossing018 = CreateObjectAbove(CableCrossing, 131, 528); + CableCrossing018->SetCategory(C4D_StaticBack|C4D_Structure); CableCrossing018->SetMeshMaterial("CableCarStation_SignStation", 1); - var CableLine018 = CreateObjectAbove(CableLine, 231, 1717); + var CableLine018 = CreateObjectAbove(CableLine, 231, 2286); CableLine018.LineColors = [-15461326,-15461326]; CableLine018->SetAction("Connect", CableCrossing018, CableCrossing017); CableLine018->SetConnectedObjects(CableCrossing018, CableCrossing017); - var CableCrossing019 = CreateObjectAbove(CableCrossing, 113, 387, 0); - CableCrossing019->SetMeshMaterial("CableCarStation_SignStation", 1); - - var CableLine019 = CreateObjectAbove(CableLine, 208, 747); - CableLine019.LineColors = [-15461326,-15461326]; - CableLine019->SetAction("Connect", CableCrossing019, CableCrossing003); - CableLine019->SetConnectedObjects(CableCrossing019, CableCrossing003); var ToolsWorkshop001 = CreateObjectAbove(ToolsWorkshop, 76, 388); + + var CableCrossing019 = CreateObjectAbove(CableCrossing, 113, 387); + CableCrossing019->SetCategory(C4D_StaticBack|C4D_Structure); + CableCrossing019->SetMeshMaterial("CableCarStation_SignStation", 1); CableCrossing019->CombineWith(ToolsWorkshop001); - var CableHoist001 = CreateObjectAbove(CableHoist, 560, 384); - CableHoist001->SetComDir(COMD_None); + var CableLine019 = CreateObject(CableLine, 208, 747); + CableLine019.LineColors = [-15461326,-15461326]; + CableLine019->SetPosition(208, 747); + CableLine019->SetAction("Connect", CableCrossing019, CableCrossing003); + CableLine019->SetConnectedObjects(CableCrossing019, CableCrossing003); + var CableLorry001 = CreateObjectAbove(CableLorry, 560, 382); - var CableLorry001 = CreateObjectAbove(CableLorry, 560, 384); + var CableHoist001 = CreateObjectAbove(CableHoist, 560, 382); + CableHoist001->SetComDir(COMD_None); + CableHoist001->SetCableSpeed(1); + CableHoist001->EngageRail(CableCrossing002, true); + CableHoist001->PickupVehicle(CableLorry001); var Wood001 = CableLorry001->CreateContents(Wood); - Wood001->SetPosition(560, 377); + Wood001->SetPosition(560, 375); var Wood002 = CableLorry001->CreateContents(Wood); - Wood002->SetPosition(560, 377); + Wood002->SetPosition(560, 375); var Wood003 = CableLorry001->CreateContents(Wood); - Wood003->SetPosition(560, 377); + Wood003->SetPosition(560, 375); var Metal001 = ToolsWorkshop001->CreateContents(Metal); Metal001->SetPosition(76, 369); - var CableReel001 = CreateObjectAbove(CableReel, 163, 386); + var CableReel001 = CreateObjectAbove(CableReel, 159, 389); CableReel001->Unstick(7); return true; } diff --git a/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt b/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt index 8993bec93..702afb0a0 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Icon=26 -Version=8 +Version=9 Difficulty=10 MaxPlayer=8 NoInitialize=true