• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Confirmed Bug Spyglass Data for Iron Man Game Mode

Skyworm

Privateer
Storm Modder
Cheers,

has anything been changes with the spyglasses? As far I remember, in iron man mode spyglasses did not give any additional information like distance, tier etc, but just show the ship visually. This seems to have been changed, they now show tier and distance in iron man mode. Any way to get rid of it, I don't want it. :keith
 
@Pieter Boelen It hasn't been changed recently, as the last modification of the relevant file is January 22nd 2016

The define ONSEA_DATA_DISABLED from internal settings links to ispyglass.c.

@Skyworm Here is what it does, and it does seem it is set up to give some extra information.

Code:
if(iRealismMode>1 || ONSEA_DATA_DISABLED) {  //Screwface : No infos in realistic mod // KK ship type and nation become quite obvious from some distances
        if (Ship_GetGroupID(chref) != PLAYER_GROUP) shipName = chref.Ship.Name;
        distance = Ship_GetDistance2D(mchref, chref);
        if (distance < GetCharVisibilityRange(mchref, 3)) // Ship type, nation AND name shown inside CLOSE range
        {
            SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, shipName, shipType, -1, -1, -1, -1.0, -1, -1, shipNation);
            SendMessage(&objISpyGlass,"ll",MSG_ISG_VISIBLE, true);
        }
        else
        {
            if (distance < GetCharVisibilityRange(mchref, 2)) // Ship type and nation shown inside MEDIUM range
            {
                SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, "", shipType, -1, -1, -1, -1.0, -1, -1, shipNation);
                SendMessage(&objISpyGlass,"ll",MSG_ISG_VISIBLE, true);
            }
            else
            {
                if (distance < GetCharVisibilityRange(mchref, 1)) // Ship type is visible inside LONG range
                {
                    SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, "", shipType, -1, -1, -1, -1.0, -1, -1, -1);
                    SendMessage(&objISpyGlass,"ll",MSG_ISG_VISIBLE, true);
                }
            }
        }
    } else {
        SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, shipName, shipType, shipHull, shipSail, shipCrew, shipSpeed, shipCannons, shipCharge, shipNation);
        SendMessage(&objISpyGlass,"ll",MSG_ISG_VISIBLE,true);
    }
 
@Skyworm

You can try the attached file out if you like. Backup your own file first, I haven't tested it. It might disable all additional spyglass information.

(or I might be completely misunderstanding something. :) but worth trying)

EDIT: in PROGRAM/BATTLE_INTERFACE

EDIT2: just a note, this isn't a proposed change, just a 30 second modification to meet Skyworm's immediate needs. All I did was comment out all spyglass info on both ironman and realistic mode, which should work for him short-term but obviously is not what we would want to do.
 

Attachments

  • ispyglass.c
    33.2 KB · Views: 171
Last edited:
I think we did change that code a bit, but not recently.
Maybe we messed up the if statements.
I'd have to look up the old version and see how that worked.
It does look like it does a bit too much now. :facepalm
 
This was the code before the rewrite:
Code:
  if(iRealismMode>1 || ONSEA_DATA_DISABLED) {  //Screwface : No infos in realistic mod // KK ship type and nation become quite obvious from some distances
     if (Ship_GetGroupID(chref) != PLAYER_GROUP) shipName = chref.Ship.Name;
     distance = Ship_GetDistance2D(mchref, chref);
     if (distance < GetVisibilityRange(3)) {
       if (distance >= GetVisibilityRange(2)) {
         SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, "", shipType, -1, -1, -1, -1.0, -1, -1, -1);
       } else {
         if (distance >= GetVisibilityRange(1)) {
           SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, "", shipType, -1, -1, -1, -1.0, -1, -1, shipNation);
         } else {
           SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, shipName, shipType, -1, -1, -1, -1.0, -1, -1, shipNation);
         }
       }
       SendMessage(&objISpyGlass,"ll",MSG_ISG_VISIBLE, true);
     }
   } else {
     SendMessage(&objISpyGlass,"lsslllflll",MSG_ISG_UPDATE, shipName, shipType, shipHull, shipSail, shipCrew, shipSpeed, shipCannons, shipCharge, shipNation);
     SendMessage(&objISpyGlass,"ll",MSG_ISG_VISIBLE,true);
   }
Looks functionally equivalent, really; except that the order is now actually corrected. :facepalm
 
Back
Top