nel-all
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nel] problems compiling.


From: HERNANDEZ CORDOBA RODRIGO JOSE
Subject: [Nel] problems compiling.
Date: Fri, 22 Oct 2004 13:53:51 -0600

Hello all,
I am having some troubles compiling, some I am not sure if its due to my
changes or due to the latest changes on CVS, hope you can help me:

On VC++7.1 I get tons of already defined symbol errors, here is a sample:

nlmisc_d.lib(debug.obj) : error LNK2005: _RtlSecureZeroMemory already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedAnd64 already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedOr64 already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedXor64 already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedIncrement64 already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedDecrement64 already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedExchange64 already
defined in nlmisc_d.lib(log.obj)
nlmisc_d.lib(debug.obj) : error LNK2005: _InterlockedExchangeAdd64
already defined in nlmisc_d.lib(log.obj)

Those seem to be all windows functions so I have no clue about what is
wrong.

Then on device_manager.cpp there is the line 

#include "nel/misc/device_manager.h"

However the file device_manager.h is no where to be found, the file only
has an empty constructor so I asume everything is inlined in the header
or the class is empty, I created an empty class inside the cpp file and
removed the include line, but I dont know if this is ok or not.

I am making changes so it is possible to compile NEL on MSYS with MinGW.

I also found a bug on the fastClamp8(sint &v) function in algo.h, the
asm reads:
// clamp v in 0..255 (no cond jmp)
__asm
{
        mov             esi, v
        mov             eax, [esi]
        mov             ebx, eax
        // clamp to 0.
        add             eax, 0x80000000
        sbb             ecx, ecx
        not             ecx
        and             ebx, ecx
        // clamp to 255.
        add             eax, 0x7FFFFF00
        sbb             ecx, ecx
        or              ebx, ecx
        and             ebx, 255
        // store
        mov             [esi], ebx
}

but it should be:

__asm
{
    mov         eax, v
    mov         ebx, v
    // clamp to 0.
    add         eax, 0x80000000
    sbb         ecx, ecx
    not         ecx
    and         ebx, ecx
    // clamp to 255.
    add         eax, 0x7FFFFF00
    sbb         ecx, ecx
    or          ebx, ecx
    and         ebx, 255
    // store
    mov         v, ebx
}

Anyway, I have a public CVS where I keep my imported copy of Nel, if
someone wants to take a look the CVSROOT is 

:pserver:address@hidden:/cvsrepo

the module is 'nevrax' just hit enter for the password, and be warned, I
added the game data to it, so its not quite dial up friendly, you should
be able to run a diff against the official CVS, though I dont really
know how yet :)

Thanks for any help.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]