Home World Forum
Stars! AutoHost web forums

Jump to Stars! AutoHost


 
 
Home » Stars! Clones, Extensions, Modding » FreeStars » some questions about coding
Re: some questions about coding Fri, 11 March 2005 05:18 Go to previous messageGo to previous message
ConstB is currently offline ConstB

 
Crewman 1st Class

Messages: 27
Registered: March 2005
Location: Tomsk, Russia
fixed

DWORD planetValueCalc(BYTE* planetHabData)
{
    DWORD planetValuePoints=0,redValue=0,ideality=10000;
    WORD i=0,
        planetHab,habCenter,habUpper,habLower,
        vE,habRadius,v12,v14,tmp;

    for (i=0; i<3; i++)
    {
        planetHab = planetHabData[i];
        habCenter = player.centerHab[i];
        habLower  = player.lowerHab[i];
        habUpper  = player.upperHab[i];

        if (IMMUNE(habUpper))
            planetValuePoints += 10000;
        else 
        {
            if (habLower <= planetHab && habUpper >= planetHab)
            {
                /* green planet */
                vE = abs(planetHab-habCenter)*100;
                if (habCenter > planetHab)
                {
                    habRadius = habCenter-habLower;
                    vE /= habRadius;
                    tmp = habCenter-planetHab;
                }
                else
                {
                    habRadius = habUpper-habCenter;
                    vE /= habRadius;
                    tmp = planetHab-habCenter;
                }
                v12 = ((tmp)*2)-habRadius;
                vE = 100 - vE;
                planetValuePoints += vE*vE;
                if (v12>0)
                {
                    ideality *= habRadius*2 - v12;
                    ideality /= habRadius*2;
                }
            }
            else
            {
                /* red planet */
                if (habLower <= planetHab) v14=planetHab-habUpper;
                else v14=habLower-planetHab;

                if (v14>15) v14=15;

                redValue+=v14;
            }
        }
    }
	
    if (redValue!=0) return -redValue;

    planetValuePoints = sqrt((double)planetValuePoints/3)+0.9;
    planetValuePoints = planetValuePoints * ideality/10000;

    return planetValuePoints;
}


this one works fine :-)

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Summary of Math?
Next Topic: Need web hosting for Race Wizard
Goto Forum:
  


Current Time: Mon May 20 07:58:54 EDT 2024