SRT_CBTSHOP and another SRT_SALVAGE have a too big define value...
lets analize the
Navigator.inc file (npc icons)....
BOOL CTexturePack::LoadScript( LPDIRECT3DDEVICE9 pd3dDevice, LPCTSTR pszFileName ) will process this file...
Hey There!
Please login and(or) register to see this awesome content today.
focus on all Serialize...starting from :
Hey There!
Please login and(or) register to see this awesome content today.
from left to right....
4 means 4 'ícons'
5 = icon width
5 = icon height
0 = icon StartPosition-X
0 = icon StartPosition-Y,
0 = icon center_x,
0 = icon center_y
so , LoadScript will create 4 'textures' for this row....
At next iteration, it will create more 2 'textures' (serialize
2 5 5 0 5 0 0) etc ....
At the end of this inc file we will have 4 + 2 + 6 + 7 + 4 + 3 + 3 + 3 'textures' on m_texNavObjs .
32 ...plus one from 'pos' = 33....
Thats why we have 'number' 33 field.
Hey There!
Please login and(or) register to see this awesome content today.
Based on this Navigator.inc file , your last subtexture 'nIndex' must be 32 or less (0 based index...)...
so...
your nIndex = 6 + lpCharacter->m_nStructure.
your m_nStructure must be less than 26 ....or you can do something like:
Hey There!
Please login and(or) register to see this awesome content today.
Or change your SRT_CBTSHOP and SRT_SALVAGE defines values in a way that the calculation m_nStructure +6 results in the desired icon, as long as, of course, this does not affect any code that needs to compare/read the value of m_nStructure for a specific task of those NPCs...
My Conclusion
:
I believe the issue does not stem from the L19.4 navigator itself, nor was it introduced by the original navigator. Instead, the problem lies in how the m_nStructure values were initially defined. While the original navigator may have already contained this issue, it wasn’t apparent because the graphical behavior didn’t expose it. The L19.4 navigator merely brought the issue to light.
The root cause is not the navigator code but the deliberate assignment of m_nStructure values without fully considering their broader implications. Specifically, for defines used in m_nStructure (e.g., SRT_PUBLICOFFICE, etc.), new defines do not always need to be the highest available number. In some cases, they may need to be smaller than existing defines, depending on the position of the subtexture used in the navigator or minimap. In other cases, their placement depends on the specific context in which they are applied. This oversight in value assignment likely led to the issue being misinterpreted as a bug in the navigators themselves.