- Some code tidying
- Improved scaling of HUD for more visibility
- Better handling of controls when using GUIs
- First weapon pack test pk4 included (and copied)
This commit is contained in:
Simon 2020-09-16 22:41:35 +01:00
parent 9778a2c6cc
commit a8f3d92ee0
15 changed files with 298 additions and 133 deletions

View file

@ -141,16 +141,23 @@ double GetTimeInMilliSeconds()
//This is controlled by the engine
static bool useVirtualScreen = true;
bool forceVirtualScreen = false;
bool inMenu = false;
bool inGameGuiActive = false;
bool objectiveSystemActive = false;
bool inCinematic = false;
void Doom3Quest_setUseScreenLayer(bool use)
void Doom3Quest_setUseScreenLayer(int screen)
{
useVirtualScreen = use;
inMenu = screen & 0x1;
inGameGuiActive = !!(screen & 0x2);
objectiveSystemActive = !!(screen & 0x4);
inCinematic = !!(screen & 0x8);
}
bool Doom3Quest_useScreenLayer()
{
return useVirtualScreen;
return inMenu || objectiveSystemActive || inCinematic || forceVirtualScreen;
}
static void UnEscapeQuotes( char *arg )
@ -840,11 +847,6 @@ void updateHMDOrientation()
void setHMDPosition( float x, float y, float z, float yaw )
{
VectorSet(vr.hmdposition, x, y, z);
if (!Doom3Quest_useScreenLayer())
{
playerYaw = yaw;
}
}
@ -1258,6 +1260,7 @@ void VR_Init()
positional_movementSideways = 0.0f;
positional_movementForward = 0.0f;
snapTurn = 0.0f;
vr.visible_hud = true;
//init randomiser
srand(time(NULL));
@ -1428,6 +1431,8 @@ void * AppThreadFunction(void * parm ) {
exit(0);
}
VR_Init();
ovrApp_Clear(&gAppState);
gAppState.Java = java;

View file

@ -44,12 +44,6 @@ typedef struct {
bool pistol; // True if the weapon is a pistol
//Lots of scope weapon stuff
bool scopeengaged; // Scope has been engaged on a scoped weapon
bool scopedweapon; // Weapon scope is available
bool scopedetached; // Scope has been detached from weapon
bool detachablescope; // Scope can be detached from weapon
bool velocitytriggered; // Weapon attack triggered by velocity (knife)
vec3_t offhandangles;

View file

@ -67,8 +67,7 @@ void handleTrackedControllerButton_AsImpulse(ovrInputStateTrackedRemote * tracke
ovrInputStateTrackedRemote * prevTrackedRemoteState, uint32_t button, int key);
void interactWithTouchScreen(bool reset, ovrInputStateTrackedRemote *newState,
ovrInputStateTrackedRemote *oldState);
void controlMouse(ovrInputStateTrackedRemote *newState, ovrInputStateTrackedRemote *oldState);
//Called from engine code
@ -82,7 +81,7 @@ bool Doom3Quest_processMessageQueue();
void Doom3Quest_FrameSetup();
void Doom3Quest_setUseScreenLayer(bool use);
void Doom3Quest_setUseScreenLayer(int screen);
void Doom3Quest_processHaptics();

View file

@ -173,12 +173,12 @@ float clamp(float _min, float _val, float _max)
}
void interactWithTouchScreen(bool reset, ovrInputStateTrackedRemote *newState, ovrInputStateTrackedRemote *oldState) {
void controlMouse(ovrInputStateTrackedRemote *newState, ovrInputStateTrackedRemote *oldState) {
static int cursorX = 0;
static int cursorY = 0;
cursorX = (float)(pVRClientInfo->weaponangles_delta[YAW] * 15.0f);
cursorY = (float)(-pVRClientInfo->weaponangles_delta[PITCH] * 15.0f);
cursorX = (float)(pVRClientInfo->weaponangles_delta[YAW] * 20.0f);
cursorY = (float)(-pVRClientInfo->weaponangles_delta[PITCH] * 20.0f);
Sys_AddMouseMoveEvent(cursorX, cursorY);
}

View file

@ -33,6 +33,7 @@ float vr_switch_sticks = 0;
float vr_cinematic_stereo;
float vr_screen_dist;
extern bool forceVirtualScreen;
/*
================
@ -60,6 +61,11 @@ int Sys_Milliseconds( void ) {
void Android_SetImpuse(int impulse);
void Android_SetCommand(const char * cmd);
extern bool inMenu;
extern bool inGameGuiActive;
extern bool objectiveSystemActive;
extern bool inCinematic;
void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ovrInputStateTrackedRemote *pDominantTrackedRemoteOld, ovrTracking* pDominantTracking,
ovrInputStateTrackedRemote *pOffTrackedRemoteNew, ovrInputStateTrackedRemote *pOffTrackedRemoteOld, ovrTracking* pOffTracking,
int domButton1, int domButton2, int offButton1, int offButton2 )
@ -137,20 +143,27 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
VectorCopy(pVRClientInfo->weaponangles, pVRClientInfo->weaponangles_last);
}
//Menu button
//Menu button - can be used in all modes
handleTrackedControllerButton_AsKey(&leftTrackedRemoteState_new, &leftTrackedRemoteState_old, ovrButton_Enter, K_ESCAPE);
static bool resetCursor = true;
if ( Doom3Quest_useScreenLayer() )
if ( inMenu || inGameGuiActive || inCinematic ) // Specific cases where we need to interact using mouse etc
{
interactWithTouchScreen(resetCursor, pDominantTrackedRemoteNew, pDominantTrackedRemoteOld);
controlMouse(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld);
handleTrackedControllerButton_AsButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, true, ovrButton_Trigger, 1);
}
else
{
resetCursor = true;
if ( objectiveSystemActive )
{
controlMouse(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld);
handleTrackedControllerButton_AsButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, true, ovrButton_Trigger, 1);
if (((pOffTrackedRemoteNew->Buttons & offButton1) != (pOffTrackedRemoteOld->Buttons & offButton1)) && (pOffTrackedRemoteNew->Buttons & offButton1))
{
Android_SetImpuse(UB_IMPULSE19);
}
}
if ( !inCinematic && !inMenu )
{
static bool canUseQuickSave = false;
if (pOffTracking->Status & (VRAPI_TRACKING_STATUS_POSITION_TRACKED | VRAPI_TRACKING_STATUS_POSITION_VALID)) {
canUseQuickSave = false;
@ -202,30 +215,6 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
pVRClientInfo->weapon_stabilised = stabilised;
//Engage scope / virtual stock if conditions are right
bool scopeready = pVRClientInfo->weapon_stabilised && (distanceToHMD < SCOPE_ENGAGE_DISTANCE);
static bool lastScopeReady = false;
if (scopeready != lastScopeReady) {
if (pVRClientInfo->scopedweapon && !pVRClientInfo->scopedetached) {
if (!pVRClientInfo->scopeengaged && scopeready) {
ALOGV("**WEAPON EVENT** trigger scope mode");
sendButtonActionSimple("weapalt");
}
else if (pVRClientInfo->scopeengaged && !scopeready) {
ALOGV("**WEAPON EVENT** disable scope mode");
sendButtonActionSimple("weapalt");
}
lastScopeReady = scopeready;
}
}
//Engage scope / virtual stock (iron sight lock) if conditions are right
static bool scopeEngaged = false;
if (scopeEngaged != pVRClientInfo->scopeengaged)
{
scopeEngaged = pVRClientInfo->scopeengaged;
}
//dominant hand stuff first
{
//Record recent weapon position for trajectory based stuff
@ -273,22 +262,6 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
if (pVRClientInfo->weapon_stabilised)
{
if (pVRClientInfo->scopeengaged)
{
//offset to the appropriate eye a little bit
vec2_t xy;
rotateAboutOrigin(0.065f / 2.0f, 0.0f, -pVRClientInfo->hmdorientation[YAW], xy);
float x = pOff->HeadPose.Pose.Position.x - (pVRClientInfo->hmdposition[0] + xy[0]);
float y = pOff->HeadPose.Pose.Position.y - (pVRClientInfo->hmdposition[1] - 0.1f); // Use a point lower
float z = pOff->HeadPose.Pose.Position.z - (pVRClientInfo->hmdposition[2] + xy[1]);
float zxDist = length(x, z);
if (zxDist != 0.0f && z != 0.0f) {
VectorSet(pVRClientInfo->weaponangles, -degrees(atanf(y / zxDist)),
-degrees(atan2f(x, -z)), 0);
}
}
else
{
float x = pOff->HeadPose.Pose.Position.x - pWeapon->HeadPose.Pose.Position.x;
float y = pOff->HeadPose.Pose.Position.y - pWeapon->HeadPose.Pose.Position.y;
@ -481,11 +454,11 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
{
//"Use"
if ((pDominantTrackedRemoteNew->Buttons & ovrButton_Joystick) !=
(pDominantTrackedRemoteOld->Buttons & ovrButton_Joystick)) {
if (((pDominantTrackedRemoteNew->Buttons & ovrButton_Joystick) !=
(pDominantTrackedRemoteOld->Buttons & ovrButton_Joystick)) &&
(pDominantTrackedRemoteOld->Buttons & ovrButton_Joystick)){
//Use Vehicle
Android_SetImpuse(UB_IMPULSE40);
forceVirtualScreen = !forceVirtualScreen;
}
//Apply a filter and quadratic scaler so small movements are easier to make
@ -502,8 +475,8 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
//Move a lot slower if scope is engaged
vr_movement_multiplier = 127;
remote_movementSideways = v[0] * (pVRClientInfo->scopeengaged ? 0.3f : 1.0f) * vr_movement_multiplier;
remote_movementForward = v[1] * (pVRClientInfo->scopeengaged ? 0.3f : 1.0f) * vr_movement_multiplier;
remote_movementSideways = v[0] * vr_movement_multiplier;
remote_movementForward = v[1] * vr_movement_multiplier;
if (!canUseQuickSave) {
if (((secondaryButtonsNew & secondaryButton1) !=
@ -512,16 +485,15 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
if (dominantGripPushed) {
Android_SetCommand("give all");
} else {
pVRClientInfo->visible_hud = !pVRClientInfo->visible_hud;
}
}
}
if ((pOffTrackedRemoteNew->Buttons & ovrButton_Joystick) !=
(pOffTrackedRemoteOld->Buttons & ovrButton_Joystick)) {
if (((pOffTrackedRemoteNew->Buttons & ovrButton_Joystick) !=
(pOffTrackedRemoteOld->Buttons & ovrButton_Joystick)) &&
(pOffTrackedRemoteOld->Buttons & ovrButton_Joystick)) {
//UNUSED
pVRClientInfo->visible_hud = !pVRClientInfo->visible_hud;
}
@ -547,7 +519,7 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
//No snap turn when using mounted gun
static int increaseSnap = true;
if (!pVRClientInfo->scopeengaged) {
{
if (pPrimaryJoystick->x > 0.7f) {
if (increaseSnap) {
float turnAngle = vr_turn_mode ? (vr_turn_angle / 9.0f) : vr_turn_angle;
@ -586,18 +558,9 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
decreaseSnap = true;
}
}
else {
if (fabs(pPrimaryJoystick->x) > 0.5f) {
increaseSnap = false;
}
else
{
increaseSnap = true;
}
}
}
updateScopeAngles();
//updateScopeAngles();
}
//Save state

View file

@ -2380,7 +2380,8 @@ void idCommonLocal::InitSIMD( void ) {
}
extern "C" void Android_PumpEvents(int screen);
extern "C" void Doom3Quest_setUseScreenLayer(int use);
extern "C" void Doom3Quest_FrameSetup();
/*
=================
@ -2398,7 +2399,8 @@ void idCommonLocal::Frame( void ) {
int objectiveActive = ( game && game->ObjectiveSystemActive());
int cinematic = ( game && game->InCinematic());
Android_PumpEvents(inMenu?1:0 + inGameGui?2:0 + objectiveActive?4:0 + cinematic?8:0);
Doom3Quest_setUseScreenLayer(inMenu?1:0 + inGameGui?2:0 + objectiveActive?4:0 + cinematic?8:0);
Doom3Quest_FrameSetup();
if (game) {
game->SetVRClientInfo(pVRClientInfo);

View file

@ -7328,6 +7328,10 @@ void idPlayer::SetVRClientInfo(vrClientInfo *pVR)
pVRClientInfo = pVR;
}
vrClientInfo* idPlayer::GetVRClientInfo()
{
return pVRClientInfo;
}
/*
===============

View file

@ -364,7 +364,7 @@ public:
bool BalanceTDM( void );
void SetVRClientInfo(vrClientInfo *pVRClientInfo);
vrClientInfo* GetVRClientInfo();
void CacheWeapons( void );

View file

@ -479,11 +479,15 @@ void idPlayerView::SingleView( idUserInterface *hud, const renderView_t *view )
}
}
cvarSystem->SetCVarBool("vr_hud", true);
vrClientInfo *pVRClientInfo = player->GetVRClientInfo();
if (pVRClientInfo != nullptr &&
pVRClientInfo->visible_hud) {
cvarSystem->SetCVarBool("vr_hud", true);
player->DrawHUD( hud );
player->DrawHUD(hud);
cvarSystem->SetCVarBool("vr_hud", false);
cvarSystem->SetCVarBool("vr_hud", false);
}
// armor impulse feedback
float armorPulse = ( gameLocal.time - player->lastArmorPulse ) / 250.0f;

View file

@ -144,24 +144,4 @@ int Android_GetNextImpulse()
}
static bool inMenu = false;
static bool inGameGuiActive = false;
static bool objectiveSystemActive = false;
static bool inCinematic = false;
extern "C" void Doom3Quest_setUseScreenLayer(bool use);
extern "C" void Doom3Quest_FrameSetup();
void Android_PumpEvents(int screen)
{
inMenu = screen & 0x1;
inGameGuiActive = !!(screen & 0x2);
objectiveSystemActive = !!(screen & 0x4);
inCinematic = !!(screen & 0x8);
Doom3Quest_setUseScreenLayer(inMenu || objectiveSystemActive || inCinematic);
Doom3Quest_FrameSetup();
}
}

View file

@ -295,10 +295,11 @@ void idDeviceContext::SetMenuScaleFix(bool enable) {
void idDeviceContext::SetMenuScaleForVR( bool enable ) {
int eye = cvarSystem->GetCVarInteger("vr_eye");
if(enable) {
float scale = 0.45;
float offsetX = (1.0f - scale) * (VIRTUAL_WIDTH * 0.5f);
float offsetY = (1.0f - scale) * (VIRTUAL_HEIGHT * 0.5f);
fixScaleForMenu.Set(scale, scale);
float scaleX = 0.38;
float scaleY = 0.45;
float offsetX = (1.0f - scaleX) * (VIRTUAL_WIDTH * 0.5f);
float offsetY = (1.0f - scaleY) * (VIRTUAL_HEIGHT * 0.5f);
fixScaleForMenu.Set(scaleX, scaleY);
fixOffsetForMenu.Set(offsetX + (eye==0 ? 14 : -14), offsetY);
} else {
fixScaleForMenu.Set(1, 1);

View file

@ -1196,9 +1196,19 @@ void idWindow::CalcRects(float x, float y) {
idWindow::Redraw
================
*/
enum eScalingType {
NONE,
SCALETO43,
VRHUD
};
void idWindow::Redraw(float x, float y) {
idStr str;
static int recursiveCount = 0;
recursiveCount++;
if (r_skipGuiShaders.GetInteger() == 1 || dc == NULL ) {
return;
}
@ -1213,24 +1223,30 @@ void idWindow::Redraw(float x, float y) {
return;
}
eScalingType scalingType = NONE;
// DG: allow scaling menus to 4:3
bool fixupFor43 = false;
if ( flags & WIN_DESKTOP ) {
// only scale desktop windows (will automatically scale its sub-windows)
// that EITHER have the scaleto43 flag set OR are fullscreen menus and r_scaleMenusTo43 is 1
if( (flags & WIN_SCALETO43) ||
((flags & WIN_MENUGUI) && r_scaleMenusTo43.GetBool()) )
{
fixupFor43 = true;
//dc->SetMenuScaleFix(true);
scalingType = SCALETO43;
dc->SetMenuScaleFix(true);
}
}
bool scaledHUDForVR = cvarSystem->GetCVarBool("vr_hud");
if ( scaledHUDForVR ) {
dc->SetMenuScaleForVR(true);
} else {
dc->SetMenuScaleForVR(false);
if (scalingType == NONE) {
bool scaledHUDForVR = cvarSystem->GetCVarBool("vr_hud");
if (scaledHUDForVR) {
scalingType = VRHUD;
//Only set this on the first call
if (recursiveCount == 1) {
dc->SetMenuScaleForVR(true);
}
}
}
if ( flags & WIN_SHOWTIME ) {
@ -1245,10 +1261,17 @@ void idWindow::Redraw(float x, float y) {
}
if (!visible) {
if (fixupFor43) { // DG: gotta reset that before returning this function
if (scalingType == SCALETO43) { // DG: gotta reset that before returning this function
dc->SetMenuScaleFix(false);
}
return;
recursiveCount--;
if (scalingType == VRHUD &&
recursiveCount == 0)
{
dc->SetMenuScaleFix(false);
}
return;
}
CalcClientRect(0, 0);
@ -1316,8 +1339,15 @@ void idWindow::Redraw(float x, float y) {
dc->EnableClipping(true);
}
if (fixupFor43) { // DG: gotta reset that before returning this function
//dc->SetMenuScaleFix(false);
if (scalingType == SCALETO43) { // DG: gotta reset that before returning this function
dc->SetMenuScaleFix(false);
}
recursiveCount--;
if (scalingType == VRHUD &&
recursiveCount == 0)
{
dc->SetMenuScaleFix(false);
}
drawRect.Offset(-x, -y);

176
assets/default.cfg Normal file
View file

@ -0,0 +1,176 @@
unbindall
bind "TAB" "_impulse19"
bind "ENTER" "_button2"
bind "ESCAPE" "togglemenu"
bind "SPACE" "_moveup"
bind "/" "_impulse14"
bind "0" "_impulse10"
bind "1" "_impulse0"
bind "2" "_impulse1"
bind "3" "_impulse2"
bind "4" "_impulse3"
bind "5" "_impulse4"
bind "6" "_impulse5"
bind "7" "_impulse6"
bind "8" "_impulse7"
bind "9" "_impulse8"
bind "[" "_impulse15"
bind "\" "_mlook"
bind "]" "_impulse14"
bind "a" "_moveleft"
bind "c" "_movedown"
bind "d" "_moveright"
bind "f" "_impulse11"
bind "q" "_impulse9"
bind "r" "_impulse13"
bind "s" "_back"
bind "t" "clientMessageMode"
bind "w" "_forward"
bind "y" "clientMessageMode 1"
bind "z" "_zoom"
bind "BACKSPACE" "clientDropWeapon"
bind "PAUSE" "pause"
bind "UPARROW" "_forward"
bind "DOWNARROW" "_back"
bind "LEFTARROW" "_left"
bind "RIGHTARROW" "_right"
bind "ALT" "_strafe"
bind "CTRL" "_attack"
bind "SHIFT" "_speed"
bind "DEL" "_lookdown"
bind "PGDN" "_lookup"
bind "END" "_impulse18"
bind "F1" "_impulse28"
bind "F2" "_impulse29"
bind "F3" "_impulse17"
bind "F5" "savegame quick"
bind "F6" "_impulse20"
bind "F7" "_impulse22"
bind "F9" "loadgame quick"
bind "F12" "screenshot"
bind "MOUSE1" "_attack"
bind "MOUSE2" "_moveup"
bind "MOUSE3" "_zoom"
bind "MWHEELDOWN" "_impulse14"
bind "MWHEELUP" "_impulse15"
seta sys_lang "english"
seta in_kbd "english"
seta gui_mediumFontLimit "0.60"
seta gui_smallFontLimit "0.30"
seta s_decompressionLimit "6"
seta s_useEAXReverb "0"
seta s_numberOfSpeakers "2"
seta s_doorDistanceAdd "150"
seta s_globalFraction "0.8"
seta s_subFraction "0.75"
seta s_playDefaultSound "1"
seta s_volume_dB "0"
seta s_meterTopTime "2000"
seta s_reverse "0"
seta s_spatializationDecay "2"
seta s_maxSoundsPerShader "0"
seta s_device "default"
seta gui_filter_game "0"
seta gui_filter_idle "0"
seta gui_filter_gameType "0"
seta gui_filter_players "0"
seta gui_filter_password "0"
seta net_clientDownload "1"
seta net_master4 ""
seta net_master3 ""
seta net_master2 ""
seta net_master1 ""
seta net_clientMaxRate "16000"
seta net_serverMaxClientRate "16000"
seta com_guid "w+RVjtyrvI8"
seta com_fixedTic "0"
seta gui_configServerRate "0"
seta m_strafeSmooth "4"
seta m_smooth "1"
seta m_strafeScale "6.25"
seta m_yaw "0.022"
seta m_pitch "0.022"
seta sensitivity "5"
seta in_toggleZoom "0"
seta in_toggleCrouch "1"
seta in_toggleRun "0"
seta in_alwaysRun "0"
seta in_freeLook "1"
seta in_anglespeedkey "1.5"
seta in_pitchspeed "140"
seta in_yawspeed "140"
seta com_preloadDemos "0"
seta com_compressDemos "1"
seta com_product_lang_ext "1"
seta com_showFPS "0"
seta com_purgeAll "0"
seta com_machineSpec "1"
seta r_scaleMenusTo43 "1"
seta r_debugArrowStep "120"
seta r_debugLineWidth "1"
seta r_debugLineDepthTest "0"
seta r_forceLoadImages "0"
seta r_shadows "0"
seta r_skipBump "0"
seta r_skipSpecular "0"
seta r_skipNewAmbient "0"
seta r_brightness "1"
seta r_gamma "1"
seta r_swapInterval "0"
seta r_customHeight "486"
seta r_customWidth "720"
seta r_fullscreen "1"
seta r_mode "3"
seta r_multiSamples "0"
seta image_downSizeSpecular "0"
seta image_preload "1"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_LINEAR"
seta g_decals "1"
seta g_projectileLights "1"
seta g_doubleVision "1"
seta g_muzzleFlash "1"
seta net_serverDlTable ""
seta net_serverDlBaseURL ""
seta net_serverDownload "0"
seta mod_validSkins "skins/characters/player/marine_mp;skins/characters/player/marine_mp_green;skins/characters/player/marine_mp_blue;skins/characters/player/marine_mp_red;skins/characters/player/marine_mp_yellow"
seta g_mapCycle "mapcycle"
seta g_voteFlags "0"
seta g_gameReviewPause "10"
seta g_countDown "10"
seta g_password ""
seta g_showBrass "1"
seta g_showProjectilePct "0"
seta g_showHud "1"
seta g_showPlayerShadow "0"
seta g_showcamerainfo "0"
seta g_healthTakeLimit "25"
seta g_healthTakeAmt "5"
seta g_healthTakeTime "5"
seta g_useDynamicProtection "1"
seta g_armorProtectionMP "0.6"
seta g_armorProtection "0.3"
seta g_damageScale "1"
seta g_nightmare "0"
seta g_bloodEffects "1"
seta ui_showGun "1"
seta ui_autoReload "1"
seta ui_autoSwitch "1"
seta ui_team "Red"
seta ui_skin "skins/characters/player/marine_mp"
seta ui_name "Player"
seta si_serverURL ""
seta si_spectators "1"
seta si_usePass "0"
seta si_warmup "0"
seta si_teamDamage "0"
seta si_timeLimit "10"
seta si_fragLimit "10"
seta si_maxPlayers "4"
seta si_map "game/mp/d3dm1"
seta si_gameType "singleplayer"
seta si_name "DOOM Server"
seta g_spectatorChat "0"
seta net_clientLagOMeter "1"
seta g_hitEffect "1"
seta r_aspectRatio "-1"

BIN
assets/pak099.pk4 Normal file

Binary file not shown.

View file

@ -156,6 +156,13 @@ import static android.system.Os.setenv;
//Create all required folders
new File("/sdcard/Doom3Quest/base").mkdirs();
//Default config
copy_asset("/sdcard/Doom3Quest/base", "default.cfg", false);
//Weapons
copy_asset("/sdcard/Doom3Quest/base", "pak099.pk4", false);
//Read these from a file and pass through
commandLineParams = new String("doom3quest");