The Witcher 3
0 of 0

File information

Last updated

Original upload

Created by

xxTheGoDxx

Uploaded by

xxTheGoDxx

Virus scan

Safe to use

Tags for this mod

About this mod

Disables the player position marker on the main area map.

Permissions and credits
GPS No More


Even though the quests in Witcher 3 are well designed and feature interesting storylines they still feel very unimmersive because more often than not you just blindly follow the quest marker on your mini-/map from location to location. Playing w/o quest markers is not viable either since most quests describtions aren't precise enough to find the designated area without external help.

So I thought the next best thing in terms of immersion would be to just get rid of the indicator of my current position of the map. This mod ecomplishes exactly this.

Disclaimer: This is not really my work! Steam user DNSMorgan1712 uploaded a mod this mod back in June at the request of user m3k, sadly
that version doesn't seem to be compatible with the current 1.11 patch. I managed to track what DNSMorgan1712 changed and implemented it into the 1.11 vanilla file, which is a fancy way to say I dumbly compared both files and copied over the differences that seemed to matter until I got it
working. So, all credit goes to DNSMorgan1712 for all I am concerned!

Also, sorry for my bad English and please
be aware that I don't have the knowledge to give in depth support or can guarantee that this is bug free.

Installation:

Download with NMN and activate. To not get your direction indirectly you should turn on the Roach filter to remove its position. Since the mod doesn't affect the minimap you should turn it off.

I also recommend
using a mod that allows you to change the default map zoom like for example the fantastic Friendly HUD. In the Friendly HUD configuration file (modFriendlyHUDConfig.ws) I reduced the default zoom by changing mapZoomMaxCoef to 0.25. I also turned on the 3D compass of Friendly HUD via compassMarkersEnabled = true as well as project3DMarkersOnCompass = false and added it to the Witcher senses.

What I did to make DNSMorgan1712's mod 1.11 compatible:

I replaced the following segment in vanilla mapMenu.ws
private function UpdatePlayerPin( out flashArray : CScriptedFlashArray ) : void {
var l_flashObject : CScriptedFlashObject;
var position: Vector;
var playerRotation: EulerAngles;
var playerAngle: float;
var cameraAngle: float;
var commonMapManager : CCommonMapManager = theGame.GetCommonMapManager();

position = thePlayer.GetWorldPosition();
cameraAngle = theCamera.GetCameraHeading();
playerRotation = thePlayer.GetWorldRotation();
playerAngle = -playerRotation.Yaw;

if ( playerAngle < 0 )
{
playerAngle += 360.0;
}

l_flashObject = GetMenuFlashValueStorage().CreateTempFlashObject("red.game.witcher3.data.StaticMapPinData");

l_flashObject.SetMemberFlashUInt("id", NameToFlashUInt( 'Player' ) );
l_flashObject.SetMemberFlashInt( "areaId",m_shownArea );
l_flashObject.SetMemberFlashInt( "journalAreaId", commonMapManager.GetJournalAreaByPosition( m_shownArea, position ) );
l_flashObject.SetMemberFlashNumber( "posX", position.X );
l_flashObject.SetMemberFlashNumber( "posY", position.Y );
l_flashObject.SetMemberFlashNumber( "posZ", position.Z );
l_flashObject.SetMemberFlashBool("enabled", false ); //#P cannot travel by world map pins
if ( (W3ReplacerCiri)thePlayer )
{
l_flashObject.SetMemberFlashString( "description", GetLocStringByKeyExt( "map_description_player_ciri"));
l_flashObject.SetMemberFlashString( "label", GetLocStringByKeyExt( "map_location_player_ciri"));
}
else
{
l_flashObject.SetMemberFlashString( "description", GetLocStringByKeyExt( "map_description_player"));
l_flashObject.SetMemberFlashString( "label", GetLocStringByKeyExt( "map_location_player"));
}
l_flashObject.SetMemberFlashString( "type", NameToString( 'Player' ) );
l_flashObject.SetMemberFlashNumber( "radius",0 );
l_flashObject.SetMemberFlashBool("isQuest", false );
l_flashObject.SetMemberFlashBool("isPlayer", true );
l_flashObject.SetMemberFlashNumber( "rotation", playerAngle );


flashArray.PushBackFlashObject(l_flashObject);
}

private function UpdateUserMapPin( out flashArray : CScriptedFlashArray ) : void
{
var manager : CCommonMapManager = theGame.GetCommonMapManager();
var l_flashObject : CScriptedFlashObject;
var area : int;
var position: Vector;

manager.GetUserMapPin( area, position.X, position.Y );
if ( area == AN_Prologue_Village_Winter )
{
area = AN_Prologue_Village;
}

l_flashObject = GetMenuFlashValueStorage().CreateTempFlashObject("red.game.witcher3.data.StaticMapPinData");

if ( area != (int)m_shownArea )
{
position.X = -10000;
position.Y = -10000;
l_flashObject.SetMemberFlashBool( "hidden", true );
}
position.Z = 0;

l_flashObject.SetMemberFlashUInt("id", NameToFlashUInt( 'User' ) );
l_flashObject.SetMemberFlashNumber( "posX", position.X );
l_flashObject.SetMemberFlashNumber( "posY", position.Y );
l_flashObject.SetMemberFlashNumber( "posZ", position.Z );
l_flashObject.SetMemberFlashBool("enabled", false );
l_flashObject.SetMemberFlashString( "description", GetLocStringByKeyExt( "map_description_user"));
l_flashObject.SetMemberFlashString( "label", GetLocStringByKeyExt( "map_location_user"));
l_flashObject.SetMemberFlashString( "type", NameToString( 'User' ) );
l_flashObject.SetMemberFlashNumber( "radius",0 );
l_flashObject.SetMemberFlashBool("isQuest", false );
l_flashObject.SetMemberFlashBool("isPlayer", false );
l_flashObject.SetMemberFlashNumber( "rotation", 0 );


flashArray.PushBackFlashObject(l_flashObject);
}

with this:
private function UpdatePlayerPin( out flashArray : CScriptedFlashArray ) : void {
var l_flashObject : CScriptedFlashObject;
var position: Vector;
var playerRotation: EulerAngles;
var playerAngle: float;
var cameraAngle: float;

position = thePlayer.GetWorldPosition();
cameraAngle = theCamera.GetCameraHeading();
playerRotation = thePlayer.GetWorldRotation();
playerAngle = -playerRotation.Yaw;

if ( playerAngle < 0 )
{
playerAngle += 360.0;
}

l_flashObject = GetMenuFlashValueStorage().CreateTempFlashObject("red.game.witcher3.data.StaticMapPinData");

l_flashObject.SetMemberFlashUInt("id", NameToFlashUInt( 'Player' ) );
l_flashObject.SetMemberFlashNumber( "posX", position.X );
l_flashObject.SetMemberFlashNumber( "posY", position.Y );
l_flashObject.SetMemberFlashNumber( "posZ", position.Z );
l_flashObject.SetMemberFlashBool("enabled", false );
if ( (W3ReplacerCiri)thePlayer )
{
l_flashObject.SetMemberFlashString( "description", GetLocStringByKeyExt( "map_description_player_ciri"));
l_flashObject.SetMemberFlashString( "label", GetLocStringByKeyExt( "map_location_player_ciri"));
}
else
{
l_flashObject.SetMemberFlashString( "description", GetLocStringByKeyExt( "map_description_player"));
l_flashObject.SetMemberFlashString( "label", GetLocStringByKeyExt( "map_location_player"));
}
l_flashObject.SetMemberFlashString( "type", NameToString( 'Player' ) );
l_flashObject.SetMemberFlashNumber( "radius",0 );
l_flashObject.SetMemberFlashBool("isQuest", false );
l_flashObject.SetMemberFlashBool("isPlayer", true );
l_flashObject.SetMemberFlashNumber( "rotation", playerAngle );


flashArray.PushBackFlashObject(l_flashObject);
}

private function UpdateUserMapPin( out flashArray : CScriptedFlashArray ) : void
{
var manager : CCommonMapManager = theGame.GetCommonMapManager();
var l_flashObject : CScriptedFlashObject;
var area : int;
var position: Vector;

manager.GetUserMapPin( area, position.X, position.Y );
if ( area == AN_Prologue_Village_Winter )
{
area = AN_Prologue_Village;
}

if ( area != (int)m_shownArea )
{
position.X = -10000;
position.Y = -10000;
}
position.Z = 0;

l_flashObject = GetMenuFlashValueStorage().CreateTempFlashObject("red.game.witcher3.data.StaticMapPinData");

l_flashObject.SetMemberFlashUInt("id", NameToFlashUInt( 'User' ) );
l_flashObject.SetMemberFlashNumber( "posX", position.X );
l_flashObject.SetMemberFlashNumber( "posY", position.Y );
l_flashObject.SetMemberFlashNumber( "posZ", position.Z );
l_flashObject.SetMemberFlashBool("enabled", false );
l_flashObject.SetMemberFlashString( "description", GetLocStringByKeyExt( "map_description_user"));
l_flashObject.SetMemberFlashString( "label", GetLocStringByKeyExt( "map_location_user"));
l_flashObject.SetMemberFlashString( "type", NameToString( 'User' ) );
l_flashObject.SetMemberFlashNumber( "radius",0 );
l_flashObject.SetMemberFlashBool("isQuest", false );
l_flashObject.SetMemberFlashBool("isPlayer", false );
l_flashObject.SetMemberFlashNumber( "rotation", 0 );

flashArray.PushBackFlashObject(l_flashObject);
}

And also commented out this segment:
if ( IsCurrentAreaShown() ) {
UpdatePlayerPin( l_flashArray );
}

to this:
/*if ( IsCurrentAreaShown() ) {
UpdatePlayerPin( l_flashArray );
}*/