コード例 #1
0
ファイル: Cursor.cpp プロジェクト: NoSuchProcess/OrangeC
bool Cursor::ReadBin(ResourceData *rd)
{
    Point pt;
    pt.x = rd->GetByte();
    pt.y = rd->GetByte();
    SetColors(rd->GetByte());
    rd->GetByte();
    Point pt1;
    pt1.x = rd->GetWord();
    pt1.y = rd->GetWord();
    SetHotspot(pt1);
    int bytes = rd->GetDWord();
    int offset = rd->GetDWord();
    if (!pt.x)
        pt.x = 32;
    if (!pt.y)
        pt.y = (bytes - 0x30) / ((pt.x / 8) *2);
    SetSize(pt);
    
    data = new ResourceData(rd->GetData() + offset, bytes);
    
    if (rd->PastEnd() || offset + bytes > rd->GetLen())
        throw new std::runtime_error("Cursor file too short");
    return true;
}
コード例 #2
0
void    plRTSpotLight::IBuildMeshes( BOOL isnew ) 
{
    float val = fLightPB->GetFloat( kHotSpot, TimeValue(0) );       //Init val of HotSpot
    if( isnew ) 
    {
        val = fLightPB->GetFloat(kHotSpot, TimeValue(0));
        SetHotspot(  TimeValue(0), val);
        //val = 45.0;
        val = fLightPB->GetFloat(kFallOff, TimeValue(0));
        SetFallsize(  TimeValue(0), val);
        val = fLightPB->GetFloat(kAttenMaxFalloffEdit, TimeValue(0)); //fLightPB->GetFloat(kTargetDist, TimeValue(0));
        if(val < 1.0f)
            SetTDist(  TimeValue(0), DEF_TDIST);
        else
            SetTDist(  TimeValue(0), val);

        val = fLightPB->GetFloat(kHotSpot, TimeValue(0));
    
    }

    BuildSpotMesh( val );

    fMesh = spotMesh;
}