Hello,
I wrote simple code with drawportal function, original idea by Luke Wenke.
But, the game is crashing when code calls DrawPortal.
Game is Postal 2
This code is working in UT2k3 and UT2k4
I wrote simple code with drawportal function, original idea by Luke Wenke.
Code:
class RevelationGameHUD extends MpHUD;
var Actor PortalActor;
simulated function PostRender(Canvas Canvas)
{
DrawPortals(Canvas);
Super.PostRender(Canvas);
}
simulated function DrawPortals(Canvas Canvas)
{
local Actor TestPortalActor;
if( PortalActor == None )
{
foreach AllActors(class'Actor', TestPortalActor)
{
if( TestPortalActor != None && TestPortalActor.IsA('Projectile') )
{
PortalActor = TestPortalActor;
break;
}
}
}
Canvas.Reset();
Canvas.Font = Canvas.MedFont;
Canvas.DrawColor.r = 255;
Canvas.DrawColor.g = 255;
Canvas.DrawColor.b = 255;
if( PortalActor != None )
{
Canvas.DrawBox(Canvas,Canvas.SizeX*0.3,Canvas.SizeY*0.3);
Canvas.DrawPortal(0,0,Canvas.SizeX*0.3,Canvas.SizeY*0.3,self,PortalActor.Location -40 * vector(PortalActor.Rotation),PortalActor.Rotation,90);
Canvas.SetPos(Canvas.SizeX*0.02, Canvas.SizeY*0.05);
Canvas.DrawText("Projectile portal cam");
Canvas.SetPos(Canvas.SizeX*0.02, Canvas.SizeY*0.25);
Canvas.DrawText("Proj_name: "$PortalActor.Name);
}
}
But, the game is crashing when code calls DrawPortal.
Code:
Assertion failed: SavedStateIndex+1 < MAX_STATESTACKDEPTH [File:C:\Projects\Postal2\prog\Warfare\D3DDrv\Src\D3DRenderInterface.cpp] [Line: 159]
History: F3DRenderInterface::PushState <- FBspDrawList::Render <-
RenderLevel <- FLevelSceneNode::Render <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1, Function
Postal2Game.P2HUD.PostRender) <- FCameraSceneNode::Render <-
UCanvas::execDrawPortal <- (RevelationGameHUD mpRevelation-
ExperimentalTest.RevelationGameHUD1 @ Function
P2RevelationGame.RevelationGameHUD.DrawPortals : 017E) <-
UObject::ProcessEvent <- (RevelationGame
Game is Postal 2
This code is working in UT2k3 and UT2k4