EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Junior Developers (https://www.eqemulator.org/forums/showthread.php?t=13930)

RangerDown 07-03-2005 03:12 AM

Please explain what the above does :)

There's a line enclosed in #ifdef PACKETCOLLECTOR... there's a whole block just commented out. Did you even make any changes or did you just copy and paste a block from the code verbatim?

ffchung 07-03-2005 03:31 AM

Code Explain
 
That is code in eqemu
commom\item.cpp

I have optimize the code. And I think there was a bug that BERSERKER always return false.

Function : ItemCommonInst::IsEquipable

Code:


bool ItemCommonInst::IsEquipable(int16 race, int16 class_) const
{
        if (!m_item)
                return false;
       
        bool israce = false;
        bool isclass = false;
       
        if (m_item->Slots == 0) {
                return false;
        }
       
        uint32 classes_ = m_item->Common.Classes;
        uint32 races_ = m_item->Common.Races;
        int32 race_ = 0;
        #ifndef PACKETCOLLECTOR
        race_ = GetArrayRace(race);
        #endif
       
        // Changed by ffchung
            // new code start
        if( ((1<<(class_-1)) & classes_) > 0 )
        {
                isclass = true;
        }
        if( ((1<<(race-1)) & races_) > 0 )
        {
                isclass = true;
        }
            // new code end

            // old code start
        /*
        // @merth: can this be optimized?  i.e., will (race & common->Races) suffice?
        for (int cur_class = 1; cur_class<=15; cur_class++) {
                if (classes_ % 2 == 1) {
                    if (cur_class == class_) {
                            isclass = true;
                        }
                }
                classes_ >>= 1;
        }
       
        for (unsigned int cur_race = 1; cur_race <= 15; cur_race++) {
               
                if (races_ % 2 == 1) {
                    if (cur_race == race_) {
                            israce = true;
                          }
                }
                races_ >>= 1;
        }
        */
            // old code end

        return (israce && isclass);
}


arigo 07-03-2005 03:12 PM

I don't understand why we have to prove anything about ourselves to gain acess to the board. It's not as if there are any rewards to being a dev to begin with. I want access to the board for information that it might have. Maybe I'll do something useful, and maybe I won't. What do you have to lose?

ffchung 07-03-2005 07:11 PM

Code Update
 
That is code in eqemu
commom\item.cpp

I have optimize the code. And I think there was a bug that BERSERKER always return false.

I am not sure what
Function : ItemCommonInst::IsEquipable


Code:
Code:

bool ItemCommonInst::IsEquipable(int16 race, int16 class_) const
{
        if (!m_item)
                return false;

        if (m_item->Slots == 0) {
                return false;
        }
       
        uint32 classes_ = m_item->Common.Classes;
        uint32 races_ = m_item->Common.Races;

        // ************************************
        // ffchung :
        // I dont know what it realy want to
        // As I see it want to convent the the race value
        // but why only use when PacketCollector
        // else race_ only will keep at zero .
        // then it will never return true
        // so I am not to use it at this time.
        // but keep the code here for later use.
        // ************************************

            int32 race_ = 0;
        #ifndef PACKETCOLLECTOR
        race_ = GetArrayRace(race);
        #endif
                 
        // ************************************

        retrun ( ((1<<(class_-1)) & classes_) && ((1<<(race-1)) & races_) )
}



All times are GMT -4. The time now is 08:13 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.