]> cvs.zerfleddert.de Git - micropolis/blobdiff - src/sim/w_tk.c
Add legacy mode inspired by the work of virtuallyfun/tenox7
[micropolis] / src / sim / w_tk.c
index 3ae90378561d4998dd86af1a2f26a9f4d6c59f85..686c7e80d620f68e35bc2ba336330140acacbded 100644 (file)
@@ -114,8 +114,8 @@ int DoMapCmd(CLIENT_ARGS);
 int GraphViewCmd(CLIENT_ARGS);
 int DoGraphCmd(CLIENT_ARGS);
 int SpriteCmd(CLIENT_ARGS);
-extern int Tk_PieMenuCmd();
-extern int Tk_IntervalCmd();
+extern int Tk_PieMenuCmd(CLIENT_ARGS);
+extern int Tk_IntervalCmd(CLIENT_ARGS);
 
 
 int
@@ -163,7 +163,7 @@ TileViewCmd(CLIENT_ARGS)
                          PointerMotionMask,
                          TileViewEventProc, (ClientData) view);
     Tcl_CreateCommand(interp, Tk_PathName(view->tkwin),
-                     DoEditorCmd, (ClientData) view, (void (*)()) NULL);
+                     DoEditorCmd, (ClientData) view, (void (*)(int *)) NULL);
   } else {
     Tk_SetClass(view->tkwin, "MapView");
 
@@ -176,7 +176,7 @@ TileViewCmd(CLIENT_ARGS)
                          PointerMotionMask */ ,
                          TileViewEventProc, (ClientData) view);
     Tcl_CreateCommand(interp, Tk_PathName(view->tkwin),
-                     DoMapCmd, (ClientData) view, (void (*)()) NULL);
+                     DoMapCmd, (ClientData) view, (void (*)(int *)) NULL);
   }
 
   Tk_MakeWindowExist(view->tkwin);
@@ -703,7 +703,7 @@ DoEarthQuake(void)
   if (earthquake_timer_set) {
     Tk_DeleteTimerHandler(earthquake_timer_token);
   }
-  Tk_CreateTimerHandler(earthquake_delay, (void (*)())StopEarthquake, (ClientData) 0);
+  Tk_CreateTimerHandler(earthquake_delay, (void (*)(int *))StopEarthquake, (ClientData) 0);
   earthquake_timer_set = 1;
 }
 
@@ -787,13 +787,25 @@ void tk_main(void)
 #endif
 
   Tcl_CreateCommand(tk_mainInterp, "piemenu", Tk_PieMenuCmd,
-                   (ClientData)MainWindow, (void (*)()) NULL);
+                   (ClientData)MainWindow, (void (*)(int *)) NULL);
   Tcl_CreateCommand(tk_mainInterp, "interval", Tk_IntervalCmd,
-                   (ClientData)MainWindow, (void (*)()) NULL);
+                   (ClientData)MainWindow, (void (*)(int *)) NULL);
 
   sim = MakeNewSim();
 
-  sprintf(initCmd, "source %s/micropolis.tcl", ResourceDir);
+  sprintf(initCmd, "%s/simcity.tcl", ResourceDir);
+  if (access(initCmd, R_OK) == 0) {
+    printf("Found %s, entering legacy mode.\n", initCmd);
+    LegacyMode = 1;
+    SugarMode = 0;
+    Eval("winfo-setlegacy");
+  }
+
+  if (!LegacyMode) {
+    sprintf(initCmd, "source %s/micropolis.tcl", ResourceDir);
+  } else {
+    sprintf(initCmd, "source %s/simcity.tcl", ResourceDir);
+  }
   filename2UNIX(initCmd);
   if (Eval(initCmd)) {
     sim_exit(1); // Just sets tkMustExit and ExitReturn
@@ -810,8 +822,13 @@ void tk_main(void)
 
   { char buf[1024];
 
-    sprintf(buf, "UIStartMicropolis {%s} {%s} {%s}",
-           HomeDir, ResourceDir, HostName);
+    if (!LegacyMode) {
+      sprintf(buf, "UIStartMicropolis {%s} {%s} {%s}",
+             HomeDir, ResourceDir, HostName);
+    } else {
+      sprintf(buf, "UIStartSimCity {%s} {%s} {} {%s}",
+             HomeDir, ResourceDir, HostName);
+    }
     filename2UNIX(buf);
     if (Eval(buf) != TCL_OK) {
       sim_exit(1); // Just sets tkMustExit and ExitReturn
Impressum, Datenschutz