diff -r 673f74c89687 -r 9a0f5377c529 hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Sun Jan 16 13:53:32 2011 -0500 +++ b/hedgewars/uCommandHandlers.pas Mon Jan 17 23:22:52 2011 +0100 @@ -23,27 +23,41 @@ procedure chQuit(var s: shortstring); const prevGState: TGameState = gsConfirm; begin -s:= s; // avoid compiler hint -if GameState <> gsConfirm then - begin + s:= s; // avoid compiler hint + if GameState <> gsConfirm then + begin prevGState:= GameState; GameState:= gsConfirm - end else - GameState:= prevGState + end else + GameState:= prevGState +end; + +procedure chForceQuit(var s: shortstring); +begin + s:= s; // avoid compiler hint + GameState:= gsConfirm; + ParseCommand('confirm', true); end; procedure chConfirm(var s: shortstring); begin -s:= s; // avoid compiler hint -if GameState = gsConfirm then + s:= s; // avoid compiler hint + if GameState = gsConfirm then begin - SendIPC('Q'); - GameState:= gsExit + SendIPC('Q'); + GameState:= gsExit end else ParseCommand('chat team', true); end; +procedure chHalt (var s: shortstring); +begin + s:= s; // avoid compiler hint + SendIPC('H'); + GameState:= gsExit +end; + procedure chCheckProto(var s: shortstring); var i, c: LongInt; begin @@ -581,7 +595,9 @@ RegisterVariable('grave' , vtCommand, @chGrave , false); RegisterVariable('hat' , vtCommand, @chSetHat , false); RegisterVariable('quit' , vtCommand, @chQuit , true ); + RegisterVariable('forcequit', vtCommand, @chForceQuit , true ); RegisterVariable('confirm' , vtCommand, @chConfirm , true ); + RegisterVariable('halt', vtCommand, @chHalt , true ); RegisterVariable('+speedup', vtCommand, @chSpeedup_p , true ); RegisterVariable('-speedup', vtCommand, @chSpeedup_m , true ); RegisterVariable('zoomin' , vtCommand, @chZoomIn , true );