Arx Libertatis Bug Tracker
star_faded.png
Please log in to bookmark issues
bug_report_small.png
CLOSED  Bug report #262  -  Stealth - Visibility is calculated incorrectly
Posted May 18, 2012 - updated Jul 05, 2013   Shortlink: http://arx.vg/262
action_vote_minus_faded.png
0
Votes
action_vote_plus_faded.png
icon_info.png This issue has been closed with status "Fixed" and resolution "RESOLVED".
Issue details
  • Type of issue
    Bug report
  • Status
     
    Fixed
  • Assigned to
    Not assigned to anyone
  • Progress
       
  • Type of bug
    Not triaged
  • Likelihood
    Not triaged
  • Effect
    Not triaged
  • Posted by
     Cipher
  • Owned by
    Not owned by anyone
  • Estimated time
    Not estimated
  • Category
    Not determined
  • Resolution
    RESOLVED
  • Priority
    Not determined
  • Reproducability
    Not determined
  • Severity
    Not determined
  • Targetted for
    icon_milestones.png Not determined
  • OS
    icon_customdatatype.png Not determined
  • Architecture
    icon_customdatatype.png Not determined
  • Fixed in
    icon_customdatatype.png Arx Libertatis 1.0.2
Issue description
I just compared the visibility (stealth icon) in Arx Liberatis (1.0.1) and the original Arx Fatalis (1.21) and it differs alot. In Arx Liberatis you are invisible in areas that are well lit, whereas in Arx Fatalis you are invisible in the darkest areas only. I attached two screenshots for comparison. I used the OpenGL renderer for Arx Liberatis and I run the game in Windows 7 64 bit. The stealth value of my character is 50, with a dexterity of 22.
Steps to reproduce this issue
Just start a new game and look at the stealth icon in the starting area. It should not be visible except for the small area with the unlit torch (before you knock out the goblin guard).

#1
icon_reply.pngReply
Comment posted by
 Cipher
May 18, 15:07
It seems that I cannot attach the screenshots I made. Do I need specific access rights to do this or did I miss the "Upload attachment" button completely?
#2
icon_reply.pngReply
Comment posted by
 Daniel Scharrer
May 18, 17:33
Hm, this seems to be bug in the bug tracker - i'll look into a possible workaround. For now you can upload the screenshots to an external image hosting service (e.g. imgur) and post the links here.
#3
icon_reply.pngReply
Comment posted by
 Cipher
May 18, 22:30
Just found the bug in the sources: Visiblity is calculated by using the GetColorz function in Mesh.cpp:1013 (the function is only used for calculating the current player color and only called from Player.cpp:3402). In a previous commit the type of the color variable from the various lights used to calculate player visibility has been changed from D3DCOLOR to Color3f (see https://github.com/arx/ArxLibertatis/commit/4725049c44b1a7c3b012c9f34bae3eccc6c25e38 ). The Color3f however seems to use color values ranging from 0.0f - 1.0f while GetColorz relies on colors in the range of 0-255. Replacing the currently used Color3f with Color seems to do the trick and visibility is calculated as intended (just tested it with a debug build on my system):

Replace in Mesh.cpp:1095

Color3f col = Color3f::fromBGR(ep->tvi.color);

with

Color col = Color::fromBGR(ep->tvi.color);
#5
icon_reply.pngReply
Comment posted by
 Daniel Scharrer
May 19, 00:07
Thanks for the bug report and fix.

I have pushed your fix to the git repository and it will be part of the next patch release (1.0.2)

The issue was updated with the following change(s):
  • This issue has been closed
  • The status has been updated, from New to Fixed.
  • This issue's progression has been updated to 100 percent completed.
  • The resolution has been updated, from Not determined to RESOLVED.