diff --git a/src/game/g_holmes.pas b/src/game/g_holmes.pas
index 47d34812cea47f6dd0f13797b9f144292a95f1c7..b6724a994d7c2fca015d85a67fbf8bbdb73584e1 100644 (file)
--- a/src/game/g_holmes.pas
+++ b/src/game/g_holmes.pas
function g_Holmes_KeyEvent (var ev: THKeyEvent): Boolean; // returns `true` if event was eaten
// hooks for player
-procedure g_Holmes_plrView (viewPortX, viewPortY, viewPortW, viewPortH: Integer);
+procedure g_Holmes_plrViewPos (viewPortX, viewPortY: Integer);
+procedure g_Holmes_plrViewSize (viewPortW, viewPortH: Integer);
procedure g_Holmes_plrLaser (ax0, ay0, ax1, ay1: Integer);
platMarkedGUID: Integer = -1;
-procedure g_Holmes_plrView (viewPortX, viewPortY, viewPortW, viewPortH: Integer);
+procedure g_Holmes_plrViewPos (viewPortX, viewPortY: Integer);
begin
vpSet := true;
vpx := viewPortX;
vpy := viewPortY;
+end;
+
+procedure g_Holmes_plrViewSize (viewPortW, viewPortH: Integer);
+begin
+ vpSet := true;
vpw := viewPortW;
vph := viewPortH;
end;
procedure hilightCell1 (cx, cy: Integer);
begin
//e_WriteLog(Format('h1: (%d,%d)', [cx, cy]), MSG_NOTIFY);
+ cx := cx and (not (monsGrid.tileSize-1));
+ cy := cy and (not (monsGrid.tileSize-1));
fillRect(cx, cy, monsGrid.tileSize, monsGrid.tileSize, 255, 255, 0, 92);
end;
mon.getMapBox(mx, my, mw, mh);
drawLine(mx+mw div 2, my+mh div 2, emx+emw div 2, emy+emh div 2, 255, 0, 0, 255);
{$IF DEFINED(D2F_DEBUG)}
- //mapGrid.dbgRayTraceTileHitCB := hilightCell1;
+ mapGrid.dbgRayTraceTileHitCB := hilightCell1;
{$ENDIF}
if (g_Map_traceToNearestWall(mx+mw div 2, my+mh div 2, emx+emw div 2, emy+emh div 2, @ex, @ey) <> nil) then
//if (mapGrid.traceRay(ex, ey, mx+mw div 2, my+mh div 2, emx+emw div 2, emy+emh div 2, hilightWallTrc, (GridTagWall or GridTagDoor)) <> nil) then
drawLine(mx+mw div 2, my+mh div 2, ex, ey, 0, 255, 0, 255);
end;
{$IF DEFINED(D2F_DEBUG)}
- //mapGrid.dbgRayTraceTileHitCB := nil;
+ mapGrid.dbgRayTraceTileHitCB := nil;
{$ENDIF}
end;
TRIGGER_TEXTURE: begin end;
TRIGGER_ON, TRIGGER_OFF, TRIGGER_ONOFF, TRIGGER_PRESS:
begin
- if (trig.trigData.trigTWidth > 0) and (trig.trigData.trigTHeight > 0) then
+ if (trig.trigDataRec.trigTWidth > 0) and (trig.trigDataRec.trigTHeight > 0) then
begin
fillRect(
- trig.trigData.trigTX, trig.trigData.trigTY,
- trig.trigData.trigTWidth, trig.trigData.trigTHeight,
+ trig.trigDataRec.trigTX, trig.trigDataRec.trigTY,
+ trig.trigDataRec.trigTWidth, trig.trigDataRec.trigTHeight,
0, 255, 255, 42);
drawLine(
trig.trigCenter.x, trig.trigCenter.y,
- trig.trigData.trigTX+trig.trigData.trigTWidth div 2,
- trig.trigData.trigTY+trig.trigData.trigTHeight div 2,
+ trig.trigDataRec.trigTX+trig.trigDataRec.trigTWidth div 2,
+ trig.trigDataRec.trigTY+trig.trigDataRec.trigTHeight div 2,
255, 0, 255, 220);
end;
end;
var
mon: TMonster;
mx, my, mw, mh: Integer;
+ //pan: TPanel;
+ //ex, ey: Integer;
begin
if (gPlayer1 = nil) then exit;
//drawGibsBoxes();
+
+ //pan := g_Map_traceToNearest(16, 608, 16, 8, (GridTagObstacle or GridTagLiquid), @ex, @ey);
+ (*
+ {$IF DEFINED(D2F_DEBUG)}
+ mapGrid.dbgRayTraceTileHitCB := hilightCell1;
+ {$ENDIF}
+ pan := mapGrid.traceRay(ex, ey, 16, 608, 16, 8, nil, (GridTagObstacle or GridTagLiquid));
+ if (pan <> nil) then writeln('end=(', ex, ',', ey, ')');
+ {$IF DEFINED(D2F_DEBUG)}
+ mapGrid.dbgRayTraceTileHitCB := nil;
+ {$ENDIF}
+
+ pan := g_Map_PanelAtPoint(16, 608, (GridTagObstacle or GridTagLiquid));
+ if (pan <> nil) then writeln('hit!');
+ *)
+
glPopMatrix();
glDisable(GL_SCISSOR_TEST);
cmdAdd('atcur_dump_walls', cbAtcurDumpWalls, 'dump walls in cell', 'wall control');
cmdAdd('atcur_disable_walls', cbAtcurToggleWalls, 'disable walls', 'wall control');
- cmdAdd('dbg_tracebox', dbgToggleTraceBox, 'disable walls', 'wall control');
+ cmdAdd('dbg_tracebox', dbgToggleTraceBox, 'test traceBox()', 'player control');
end;