123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- #include "../idlib/precompiled.h"
- #pragma hdrstop
- #include "Game_local.h"
- CLASS_DECLARATION( idEntity, idTarget_EndLevel )
- EVENT( EV_Activate, idTarget_EndLevel::Event_Trigger )
- END_CLASS
- void idTarget_EndLevel::Spawn( void ) {
- idStr guiName;
- gui = NULL;
- noGui = spawnArgs.GetBool("noGui");
- if (!noGui) {
- spawnArgs.GetString( "guiName", "guis/EndLevel.gui", guiName );
- if (guiName.Length()) {
- gui = idUserInterface::FindGui( guiName, true, false, true );
- }
- }
- buttonsReleased = false;
- readyToExit = false;
- exitCommand = "";
- }
- idTarget_EndLevel::~idTarget_EndLevel() {
-
-
- }
- void idTarget_EndLevel::Event_Trigger( idEntity *activator ) {
- if ( gameLocal.endLevel ) {
- return;
- }
-
-
-
- gameLocal.endLevel = this;
-
- idPlayer *player = (idPlayer *)(activator);
- initialViewOrg = player->GetEyePosition();
- initialViewAngles = idVec3( player->viewAngles[0], player->viewAngles[1], player->viewAngles[2] );
-
- gameSoundWorld->StopAllSounds();
- if ( noGui ) {
- readyToExit = true;
- }
- }
- void idTarget_EndLevel::Draw() {
- if (noGui) {
- return;
- }
- renderView_t renderView;
- memset( &renderView, 0, sizeof( renderView ) );
- renderView.width = SCREEN_WIDTH;
- renderView.height = SCREEN_HEIGHT;
- renderView.x = 0;
- renderView.y = 0;
- renderView.fov_x = 90;
- renderView.fov_y = gameLocal.CalcFovY( renderView.fov_x );
- renderView.time = gameLocal.time;
- #if 0
- renderView.vieworg = initialViewOrg;
- renderView.viewaxis = idAngles(initialViewAngles).toMat3();
- #else
- renderView.vieworg = renderEntity.origin;
- renderView.viewaxis = renderEntity.axis;
- #endif
- gameRenderWorld->RenderScene( &renderView );
-
- gui->Redraw(gameLocal.time);
- }
- void idTarget_EndLevel::PlayerCommand( int buttons ) {
- if ( !( buttons & BUTTON_ATTACK ) ) {
- buttonsReleased = true;
- return;
- }
- if ( !buttonsReleased ) {
- return;
- }
-
- readyToExit = true;
- }
- const char *idTarget_EndLevel::ExitCommand() {
- if ( !readyToExit ) {
- return NULL;
- }
- idStr nextMap;
- if (spawnArgs.GetString( "nextMap", "", nextMap )) {
- sprintf( exitCommand, "map %s", nextMap.c_str() );
- } else {
- exitCommand = "";
- }
- return exitCommand;
- }
|