#if 1
static void DrawFrame(int Delta);
+static void ReStretch(float NewStretch);
+static void picPane_Paint();
+static void picViewPort_Resize();
+static void menBorder_Click();
#else
// --- Option Explicit
// --- Option Compare Text
+#if 0
+
long SetParent(long hWndChild, long hWndNewParent);
long SetWindowLong(long hWnd, long nIndex, long dwNewLong);
long GetWindowLong(long hWnd, long nIndex);
+#if 0
long GetTempPath(long nBufferLength, char *lpBuffer);
+#endif
long GetWindowText(long hWnd, char *lpString, long cch);
+#endif
+
+#if 0
+
#define GWL_STYLE ((-16))
#define WS_CHILD (0x40000000)
#define WS_POPUP (0x80000000)
+#endif
+
// [UNCOMMENTED] Dim StretchWidth2&
char *MpxBmp;
#endif
+void DrawFrameIfNeeded()
+{
+ DrawFrame(0);
+
+ /* !!! CHECK THIS !!! */
+#if 1
+ if (! menBorder.Checked)
+ DrawFrame(1);
+#endif
+}
+
void DisplayLevel()
{
int X, Y;
-#if 1
- printf("::: DisplayLevel (%d, %d, %d)\n", Loaded, LevelLoaded, bPlaying);
+#if 0
+ printf("::: MainForm.c: DisplayLevel(): %d, %d, %d\n",
+ Loaded, LevelLoaded, bPlaying);
#endif
if (! Loaded)
if (! LevelLoaded)
return;
+ ClearRectangle(backbuffer, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE);
+ ClearRectangle(screenBitmap, 0, 0,
+ MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY);
+
#if 1
SetDisplayRegion();
#endif
DrawFrame(0);
-#if 0
+ /* !!! CHECK THIS !!! */
+#if 1
if (! menBorder.Checked)
DrawFrame(1);
#endif
if (bPlaying)
{
-#if 1
- printf("::: DisplayLevel [%ld, %ld, %ld, %ld]...\n",
- DisplayMinY, DisplayMaxY, DisplayMinX, DisplayMaxX);
+#if 0
+ printf("::: MainForm.c: DisplayLevel(): [%ld, %ld, %ld, %ld] [%d, %d]...\n",
+ DisplayMinX, DisplayMinY, DisplayMaxX, DisplayMaxY,
+ FieldWidth, FieldHeight);
#endif
for (Y = DisplayMinY; Y <= DisplayMaxY; Y++)
{
for (X = DisplayMinX; X <= DisplayMaxX; X++)
{
-#if 0
- printf("::: DrawFieldNoAnimated(%d, %d)\n", X, Y);
-#endif
DrawFieldNoAnimated(X, Y);
}
}
{
for (X = DisplayMinX; X <= DisplayMaxX; X++)
{
-#if 0
- printf("::: DrawFieldAnimated(%d, %d)\n", X, Y);
-#endif
DrawFieldAnimated(X, Y);
}
}
{
for (X = DisplayMinX; X <= DisplayMaxX; X++)
{
-#if 0
- printf("::: DrawField(%d, %d)\n", X, Y);
-#endif
DrawField(X, Y);
}
}
EditFlag = False;
EditMode = edMove;
// FMark = New MarkerObject; // (handle this later, if needed)
+
InitGlobals();
#if 0
PauseMode = 0;
// BaseWidth = 16
-#if 0
- menBorder_Click();
+#if 1
+ if (0)
+ menBorder_Click();
#endif
Loaded = True;
+ ReStretch(Stretch);
+
#if 0
- ReStretch(Stretch);
LoadKeyIndicators();
Show();
// NW = ScaleWidth - 2 * Space: If NW < 0 Then NW = 0
// NH = ScaleHeight - 3 * Space - cmbLevel.Height: If NH < 0 Then NH = 0
// picViewPort.Move Space, Space, NW, NH
- Tmp = (ShowPanel != 0 ? ScaleHeight - Panel.Height : ScaleHeight - Panel.Height);
+ Tmp = (ShowPanel != 0 ? ScaleHeight - Panel.Height : ScaleHeight);
if (Tmp < 0)
Tmp = 0;
}
}
+#endif
+
static void menBorder_Click()
{
if (menBorder.Checked)
DisplayMinY = 1;
DisplayMaxY = FieldHeight - 2;
DisplayHeight = FieldHeight;
+
if (Loaded && LevelLoaded)
DrawFrame(1);
DisplayMinY = 0;
DisplayMaxY = FieldHeight - 1;
DisplayHeight = FieldHeight + 2;
+
if (Loaded && LevelLoaded)
RestoreFrame();
}
// DisplayLevel True
}
-#endif
-
void SetDisplayRegion()
{
-#if 1
- if (0)
-#else
if (! menBorder.Checked)
-#endif
{
DisplayMinX = 1;
DisplayMaxX = FieldWidth - 2;
if (! bPlaying)
return;
- DeltaT = (DemoFlag != 0 ? DeltaTDemo : DeltaTDemo);
+ DeltaT = (DemoFlag != 0 ? DeltaTDemo : DeltaTPlay);
if (DeltaT < 0)
{
Stage.Blt();
*/
LFilt = LastOpenFilter;
- cmDlg.FilterIndex = (0 < LFilt & LFilt < 5 ? LFilt : LFilt);
+ cmDlg.FilterIndex = (0 < LFilt & LFilt < 5 ? LFilt : 1);
if (FileExists(CurPath))
cmDlg.InitDir = WithSlash(StripDir(CurPath));
static StdPicture OldPic;
static char *OldText = 0;
- PauseMode = (PauseMode != 0 ? 0 : 0);
+ PauseMode = (PauseMode != 0 ? 0 : 1);
if (PauseMode != 0)
{
if (IS_NOTHING(&OldPic, sizeof(OldPic)))
{
{
menSoundFX.Checked = ! menSoundFX.Checked;
- FXOnFlag = (menSoundFX.Checked ? -1 : -1);
+ FXOnFlag = (menSoundFX.Checked ? -1 : 0);
}
}
#endif
LastFrame = 0;
+
#if 0
LastTick = T.TickNow();
#endif
#if 0
-
fpsTim.Enabled = True;
-
#endif
// DimPrimary 100
bPlaying = True;
#if 0
-
UpdateDeltaT();
+#endif
+
+#if 1
+#endif
+#if 0
+ printf("::: MainForm.c: menPlay_Click(): subFetchAndInitLevelB(): ...\n");
#endif
subFetchAndInitLevelB();
+#if 0
+ printf("::: MainForm.c: menPlay_Click(): subFetchAndInitLevelB(): done\n");
+#endif
+
+ ReStretch(Stretch);
+
// Trace "MainForm", "CountDown 1"
CountDown(2, (0 == DemoFlag));
// Trace "MainForm", "Call GoPlay"
// Trace "MainForm", "subFetchAndInitLevel returned"
+#if 0
Stage.Blt();
+#endif
#if 0
// Trace "MainForm", "<-- menPlay_Click()"
#endif
-
}
+#if 1
+
+// static void menPlayDemo_Click()
+void menPlayDemo_Click()
+{
+ DemoFlag = 1;
+ RecordDemoFlag = 0;
+
#if 0
+ lblStatus = "Demo Playback";
+#endif
+
+ menPlay_Click();
-static void menPlayDemo_Click()
+#if 1
+ return; /* return after initialization phase */
+#endif
+
+#if 0
+ if (LevelStatus != 1)
+ lblStatus = "Demo Failed";
+#endif
+
+ DemoFlag = 0;
+}
+
+#else
+
+// static void menPlayDemo_Click()
+void menPlayDemo_Click()
{
DemoFlag = 1;
RecordDemoFlag = 0;
+
+#if 0
lblStatus = "Demo Playback";
+#endif
+
menPlay_Click();
+
+#if 0
if (LevelStatus != 1)
lblStatus = "Demo Failed";
+#endif
DemoFlag = 0;
}
+#endif
+
+#if 0
+
static void menRec_Click()
{
Trace("MainForm", "--> menRec_Click()");
Tmp = Panel.Height;
if (PanelSeq < Panel.Height && -1 < PanelSeq)
{
- PanelSeq = (ShowPanel != 0 ? PanelSeq + 2 : PanelSeq + 2);
+ PanelSeq = (ShowPanel != 0 ? PanelSeq + 2 : PanelSeq - 2);
Tmp = ScaleHeight - Tmp + PanelSeq;
Panel.top = Tmp;
picViewPort.Height = Tmp;
else
{
PanelTim.Enabled = False;
- PanelSeq = (PanelSeq < 0 ? 0 : 0);
- ShowPanel = (ShowPanel == 0 ? 1 : 1);
+ PanelSeq = (PanelSeq < 0 ? 0 : PanelSeq - );
+ ShowPanel = (ShowPanel == 0 ? 1 : 0);
menPanel.Checked = (ShowPanel != 0);
}
}
}
}
+#endif
+
static void picPane_Paint()
{
boolean Oldflag;
Oldflag = NoDisplayFlag;
NoDisplayFlag = False;
+
+#if 0
Stage.Blt();
+#endif
+
NoDisplayFlag = Oldflag;
}
static void ReStretch(float NewStretch)
{
+#if 1
+ long BW2, LW, LH;
+#else
long BW2, LW, LH, i;
+#endif
+
+#if 0
+ printf("::: MainForm.c: ReStretch(): %d, %d\n", Loaded, LevelLoaded);
+#endif
if (! Loaded)
{
-#if 1
- printf("::: NewStretch == %d\n", NewStretch);
+#if 0
+ printf("::: NewStretch == %f\n", NewStretch);
#endif
Stretch = NewStretch;
return;
}
+#if 0
MousePointer = 11;
SET_TO_NOTHING(&Stage, sizeof(Stage));
SET_TO_NOTHING(&StretchedSprites, sizeof(StretchedSprites));
menStretch(Stretch / 0.25).Checked = False;
+#endif
+
Stretch = NewStretch;
+
+#if 0
menStretch(Stretch / 0.25).Checked = True;
// StretchWidth = BaseWidth ' * NewStretch
// StretchWidth2 = StretchWidth \ 2
// TwoPixels = 2 '* Stretch
// StretchLoad Sprites, imgMpx.Picture, 16, 16
+#endif
+
BW2 = StretchWidth / 2;
LW = (FieldWidth + 2) * BaseWidth; // StretchWidth
LH = (FieldHeight + 2) * BaseWidth; // StretchWidth
+
+#if 0
// i = bmpStage.CreateAtSize(LW, LH)
// Stage = New DDScrollBuffer; // (handle this later, if needed)
i = Stage.CreateAtSize(LW, LH, picPane.hWnd);
}
else
+#endif
{
StretchedSprites.DestXOff = 1 * BaseWidth; // StretchWidth
StretchedSprites.DestYOff = 1 * BaseWidth; // StretchWidth
Stage.DestXOff = 1 * StretchWidth;
Stage.DestYOff = 1 * StretchWidth;
StretchedSprites.DestinationSurface = Stage.Surface;
- Stage.Cls;
+
+#if 0
+ Stage.Cls();
+#endif
+
if (Loaded && LevelLoaded)
{
+#if 0
+ printf("::: MainForm.c: ReStretch(): ...\n");
+#endif
+
SetDisplayRegion();
picViewPort_Resize();
DisplayLevel();
}
subCalculateScreenScrollPos();
+
+#if 0
+ printf("::: MainForm.c: ReStretch(): %d, %d\n", ScreenScrollXPos, ScreenScrollYPos);
+#endif
+
ScrollTo(ScreenScrollXPos, ScreenScrollYPos);
+
+#if 0
Stage.Blt();
+#endif
+
picPane_Paint();
}
+#if 0
MousePointer = 0;
+#endif
}
+#if 0
static void SetScrollEdges()
+#else
+void SetScrollEdges()
+#endif
{
- ScrollMinX = (DisplayMinX - 0.5) * Stretch * BaseWidth;
- ScrollMinY = (DisplayMinY - 0.5) * Stretch * BaseWidth;
- ScrollMaxX = (DisplayMaxX + 1.5) * Stretch * BaseWidth - picPane.Width;
- ScrollMaxY = (DisplayMaxY + 1.5) * Stretch * BaseWidth - picPane.Height;
-}
+#if 0
+ printf("::: MainForm.c: SetScrollEdges() ... [%ld, %ld, %ld, %ld] [%f, %d] [%d, %d, %d, %d]\n",
+ DisplayMinX, DisplayMinY, DisplayMaxX, DisplayMaxY,
+ Stretch, BaseWidth,
+ ScrollMinX, ScrollMinY, ScrollMaxX, ScrollMaxY);
+#endif
+ ScrollMinX = (int)(DisplayMinX - 0.5) * Stretch * BaseWidth;
+ ScrollMinY = (int)(DisplayMinY - 0.5) * Stretch * BaseWidth;
+ ScrollMaxX = (int)(DisplayMaxX + 1.5) * Stretch * BaseWidth - picPane.Width;
+ ScrollMaxY = (int)(DisplayMaxY + 1.5) * Stretch * BaseWidth - picPane.Height;
+
+#if 0
+ printf("::: MainForm.c: SetScrollEdges() done [%d, %d, %d, %d]\n",
+ ScrollMinX, ScrollMinY, ScrollMaxX, ScrollMaxY);
#endif
+}
void DrawField(int X, int Y)
{
Tmp = DisPlayField[tsi];
}
+#if 0
+ if (TEST_flag)
+ printf("::: MainForm.c: DrawFieldNoAnimated(): %d, %d [%d]\n",
+ X, Y, Tmp);
+#endif
+
StretchedSprites.BltEx(StretchWidth * X, StretchWidth * Y, Tmp);
break;
}
// Debug.Print "picViewPort_Paint()"
}
+#endif
+
static void picViewPort_Resize()
{
+#if 0
long bdX, bdY, PanelVisibility;
long X, Y, dx, dY;
SettingsObject s;
Y = Max((picViewPort.ScaleHeight - dY) / 2, 0);
picPane.Move X, Y, dx, dY;
picFrame.Move X - bdX / 2, Y - bdY / 2, dx + bdX, dY + bdY;
+#endif
+
SetScrollEdges();
+
+#if 0
+ printf("::: MainForm.c: picViewPort_Resize(): %d, %d\n", ScrollX, ScrollY);
+#endif
+
ScrollTo(ScrollX, ScrollY);
+
// SizeTim.Interval = 1
}
+#if 0
+
//
// Private Sub SizeTim_Timer()
// Dim wdX&, wdY&
Tmp = State[i];
if (Tmp ^ LastState[i])
{
- Col = (i == 5 ? vbRed : vbRed);
- shpKey(i).FillColor = (Tmp ? Col : Col);
+ Col = (i == 5 ? vbRed : vbGreen);
+ shpKey(i).FillColor = (Tmp ? Col : vbButtonFace);
shpKey(i).Refresh;
LastState[i] = Tmp;
}
}
Flag = CBool(s.Read("SoundFX", True));
- FXOnFlag = (Flag ? -1 : -1);
+ FXOnFlag = (Flag ? -1 : 0);
menSoundFX.Checked = Flag;
SignatureDelay = CLng(s.Read("SignatureDelay", 3000));
AllowRedDiskCheat = CInt(s.Read("AllowRedDiskCheat", 1));
int i;
{
- s.Save "LastPath", (ModifiedFlag ? OrigPath : OrigPath);
+ s.Save "LastPath", (ModifiedFlag ? OrigPath : CurPath);
if (WindowState != vbMinimized)
{
s.Save "Width", Width;