summaryrefslogtreecommitdiff
path: root/app/bin/ctrain.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/bin/ctrain.c')
-rw-r--r--app/bin/ctrain.c71
1 files changed, 44 insertions, 27 deletions
diff --git a/app/bin/ctrain.c b/app/bin/ctrain.c
index 015f9e8..acbaef7 100644
--- a/app/bin/ctrain.c
+++ b/app/bin/ctrain.c
@@ -31,6 +31,8 @@
#include "track.h"
#include "common-ui.h"
+#include "include/toolbar.h"
+
long programMode;
long maxCouplingSpeed = 100;
long hideTrainsInTunnels;
@@ -47,7 +49,9 @@ typedef struct extraDataCar_t {
long state;
carItem_p item;
double speed;
+#ifdef CAR_CLEARANCE
BOOL_T pencils;
+#endif
BOOL_T direction;
BOOL_T autoReverse;
trainStatus_e status;
@@ -92,7 +96,7 @@ static void ControllerDialogSyncAll(void);
static STATUS_T CmdTrain(wAction_t, coOrd);
static wMenu_p trainPopupM;
static wMenuPush_p trainPopupMI[11];
-static track_p followTrain;
+static track_p followTrain = NULL;
static coOrd followCenter;
static BOOL_T trainsTimeoutPending;
static enum { TRAINS_STOP, TRAINS_RUN, TRAINS_IDLE, TRAINS_PAUSE } trainsState;
@@ -382,7 +386,10 @@ static void DrawCar(
CarItemDraw(d, xx->item, color, xx->direction, IsLocoMaster(xx), coupler,
- xx->pencils, xx->trvTrk.trk);
+#ifdef CAR_CLEARANCE
+ xx->pencils,
+#endif
+ xx->trvTrk.trk);
}
@@ -1376,7 +1383,7 @@ static trainControlDlg_p CreateTrainControlDlg(void)
sprintf(title, _("Train Control %d"), ++numTrainDlg);
dlg->trainPGp = &trainPG;
dlg->win = ParamCreateDialog(dlg->trainPGp, _("Train Control"), NULL, NULL,
- NULL, FALSE, NULL, 0, ControllerDialogUpdate);
+ ParamCancel_Null, FALSE, NULL, 0, ControllerDialogUpdate);
speedD.size.x = SLIDER_WIDTH/speedD.dpi;
speedD.size.y = SLIDER_HEIGHT/speedD.dpi;
return dlg;
@@ -1395,7 +1402,6 @@ static struct {
long trainPause = 200;
-static track_p followTrain = NULL;
static void DrawAllCars(track_p trk)
{
track_p car;
@@ -2573,8 +2579,10 @@ static BOOL_T TrainOnMovableTrack(
#define DO_MUMASTER (5)
#define DO_CHANGEDIR (6)
#define DO_STOP (7)
+#ifdef CAR_CLEARANCE
#define DO_PENCILS_ON (8)
#define DO_PENCILS_OFF (9)
+#endif
#define DO_DESCRIBE (10)
static track_p trainFuncCar;
static coOrd trainFuncPos;
@@ -2632,7 +2640,7 @@ static STATUS_T CmdTrain(wAction_t action, coOrd pos)
LocoListInit();
ControllerDialogSync(curTrainDlg);
wShow(curTrainDlg->win);
- wControlShow((wControl_p)newcarB, (toolbarSet&(1<<BG_TRAIN)));
+ wControlShow((wControl_p)newcarB, ToolbarIsGroupVisible(BG_TRAIN));
currCarItemPtr = NULL;
TempRedraw(); // CmdTrain C_START
return C_CONTINUE;
@@ -2668,7 +2676,9 @@ static STATUS_T CmdTrain(wAction_t action, coOrd pos)
CHECK(currCar != NULL);
xx = GET_EXTRA_DATA(currCar, T_CAR, extraDataCar_t);
+#ifdef CAR_CLEARANCE
xx->pencils = FALSE;
+#endif
dist = CarItemCoupledLength(xx->item)/2.0;
Translate(&pos, xx->trvTrk.pos, xx->trvTrk.angle, dist);
SetTrkEndPoint(currCar, 0, pos, xx->trvTrk.angle);
@@ -2857,13 +2867,15 @@ static STATUS_T CmdTrain(wAction_t action, coOrd pos)
}
xx = GET_EXTRA_DATA(trainFuncCar, T_CAR, extraDataCar_t);
+#ifdef CAR_CLEARANCE
if (xx->pencils) {
-// wMenuPushEnable(trainPopupMI[DO_PENCILS_OFF], TRUE);
-// wMenuPushEnable(trainPopupMI[DO_PENCILS_ON], FALSE);
+ wMenuPushEnable(trainPopupMI[DO_PENCILS_OFF], TRUE);
+ wMenuPushEnable(trainPopupMI[DO_PENCILS_ON], FALSE);
} else {
-// wMenuPushEnable(trainPopupMI[DO_PENCILS_OFF], FALSE);
-// wMenuPushEnable(trainPopupMI[DO_PENCILS_ON], TRUE);
+ wMenuPushEnable(trainPopupMI[DO_PENCILS_OFF], FALSE);
+ wMenuPushEnable(trainPopupMI[DO_PENCILS_ON], TRUE);
}
+#endif
trk0 = FindMasterLoco(trainFuncCar,NULL);
dir = IsAligned(xx->trvTrk.angle, FindAngle(xx->trvTrk.pos,
@@ -2956,6 +2968,7 @@ static STATUS_T CmdTrain(wAction_t action, coOrd pos)
}
+#ifdef LATER
/*
*
*/
@@ -2966,16 +2979,17 @@ static STATUS_T CmdCarDescAction(
{
return CmdTrain(action, pos);
}
+#endif
-#include "bitmaps/train.xpm3"
-#include "bitmaps/exit.xpm3"
-#include "bitmaps/new-car.xpm3"
-#include "bitmaps/go.xpm3"
-#include "bitmaps/stop.xpm3"
+#include "bitmaps/train.image3"
+#include "bitmaps/exit.image3"
+#include "bitmaps/new-car.image3"
+#include "bitmaps/go.image3"
+#include "bitmaps/stop.image3"
-#include "bitmaps/zero.xpm"
-#include "bitmaps/greendot.xpm"
-#include "bitmaps/reddot.xpm"
+#include "bitmaps/zero.image1"
+#include "bitmaps/greendot.image1"
+#include "bitmaps/reddot.image1"
static void CmdTrainStopGo(void * unused)
@@ -3031,7 +3045,6 @@ static void TrainFunc(
coOrd pos0, pos1;
ANGLE_T angle0, angle1;
EPINX_T ep0, ep1;
- char describe_str[STR_SIZE];
if (trainFuncCar == NULL) {
fprintf(stderr, "trainFunc: trainFuncCar==NULL\n");
@@ -3048,6 +3061,7 @@ static void TrainFunc(
UncoupleCars( trainFuncCar, dir );
break;
+#ifdef CAR_CLEARANCE
case DO_PENCILS_ON:
xx->pencils = TRUE;
break;
@@ -3055,6 +3069,7 @@ static void TrainFunc(
case DO_PENCILS_OFF:
xx->pencils = FALSE;
break;
+#endif
case DO_FLIPCAR:
temp0 = GetTrkEndTrk(trainFuncCar,0);
@@ -3196,23 +3211,23 @@ void InitCmdTrain(wMenu_p menu)
{
log_trainMove = LogFindIndex("trainMove");
log_trainPlayback = LogFindIndex("trainPlayback");
- trainPLs[I_ZERO].winLabel = (char*)wIconCreatePixMap(zero_xpm);
+ trainPLs[I_ZERO].winLabel = (char*)wIconCreatePixMap(zero_image1);
ParamRegister(&trainPG);
trainCmdInx = AddMenuButton(menu, CmdTrain, "cmdTrain", _("Run Trains"),
- wIconCreatePixMap(train_xpm3[iconSize]), LEVEL0_50,
+ wIconCreatePixMap(train_image3[iconSize]), LEVEL0_50,
IC_POPUP3|IC_LCLICK|IC_RCLICK|IC_WANT_MOVE, 0,
NULL);
- stopI = wIconCreatePixMap(reddot);
- goI = wIconCreatePixMap(greendot);
- stopB = wIconCreatePixMap(stop_xpm3[iconSize]);
- goB = wIconCreatePixMap(go_xpm3[iconSize]);
+ stopI = wIconCreatePixMap(reddot_image1);
+ goI = wIconCreatePixMap(greendot_image1);
+ stopB = wIconCreatePixMap(stop_image3[iconSize]);
+ goB = wIconCreatePixMap(go_image3[iconSize]);
trainPauseB = AddToolbarButton("cmdTrainPause", stopB, IC_MODETRAIN_ONLY,
CmdTrainStopGo, NULL);
- AddToolbarButton("cmdTrainExit", wIconCreatePixMap(exit_xpm3[iconSize]),
+ AddToolbarButton("cmdTrainExit", wIconCreatePixMap(exit_image3[iconSize]),
IC_MODETRAIN_ONLY,
CmdTrainExit, NULL);
newcarB = AddToolbarButton("cmdTrainNewCar",
- wIconCreatePixMap(new_car_xpm3[iconSize]),
+ wIconCreatePixMap(new_car_image3[iconSize]),
IC_MODETRAIN_ONLY, CarItemLoadList, NULL);
T_CAR = InitObject(&carCmds);
@@ -3221,15 +3236,17 @@ void InitCmdTrain(wMenu_p menu)
TrainFunc, I2VP(DO_UNCOUPLE));
trainPopupMI[DO_FLIPCAR] = wMenuPushCreate(trainPopupM, "", _("Flip Car"), 0,
TrainFunc, I2VP(DO_FLIPCAR));
+#ifdef CAR_CLEARANCE
trainPopupMI[DO_PENCILS_ON] = wMenuPushCreate(trainPopupM, "",
_("Clearance Lines On"), 0,
TrainFunc, I2VP(DO_PENCILS_ON));
trainPopupMI[DO_PENCILS_OFF] = wMenuPushCreate(trainPopupM, "",
_("Clearance Lines Off"), 0,
TrainFunc, I2VP(DO_PENCILS_OFF));
+#endif
trainPopupMI[DO_FLIPTRAIN] = wMenuPushCreate(trainPopupM, "", _("Flip Train"),
0, TrainFunc, I2VP(DO_FLIPTRAIN));
- trainPopupMI[DO_DESCRIBE] = wMenuPushCreate(trainPopupM, "", _("Describe"),
+ trainPopupMI[DO_DESCRIBE] = wMenuPushCreate(trainPopupM, "", _("Properties"),
0, TrainFunc, I2VP(DO_DESCRIBE));
trainPopupMI[DO_MUMASTER] = wMenuPushCreate(trainPopupM, "", _("MU Master"),
0, TrainFunc, I2VP(DO_MUMASTER));