mirror of
https://github.com/thug1src/thug.git
synced 2024-12-02 12:56:45 +00:00
171 lines
3.3 KiB
C++
171 lines
3.3 KiB
C++
//#include "p_light.h"
|
|
//#include "p_assert.h"
|
|
//
|
|
//unsigned int NsLight::m_SlotArray = 0;
|
|
//bool NsLight::m_LightingHasChanged = true;
|
|
//GXLightObj NsLight::m_LightObj[NSLIGHT_MAX_LIGHTS];
|
|
//GXColor NsLight::m_AmbientColor = (GXColor){ 0, 0, 0, 0 };
|
|
//
|
|
//static GXColor ColorOff = { 0, 0, 0, 0 };
|
|
//
|
|
//void NsLight::loadup( void )
|
|
//{
|
|
// if( m_LightingHasChanged )
|
|
// {
|
|
// // Go through and load up all lights to the hardware.
|
|
// for( int l = 0; l < NSLIGHT_MAX_LIGHTS; ++l )
|
|
// {
|
|
// if( m_SlotArray & ( 1 << l ))
|
|
// {
|
|
// GXLoadLightObjImm( &m_LightObj[l], (enum _GXLightID)( 1 << l ));
|
|
// }
|
|
// }
|
|
// }
|
|
// m_LightingHasChanged = false;
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//void NsLight::loadupAmbient( void )
|
|
//{
|
|
// GX::SetChanAmbColor( GX_COLOR0A0, m_AmbientColor );
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//NsLight::NsLight( NsLightType type )
|
|
//{
|
|
// assertp(( type == NSLIGHT_AMBIENT ) || ( type == NSLIGHT_DIRECTIONAL ));
|
|
//
|
|
// m_Type = type;
|
|
// m_pFrame = NULL;
|
|
// m_Color.r = 0;
|
|
// m_Color.g = 0;
|
|
// m_Color.b = 0;
|
|
// m_Color.a = 0;
|
|
// m_On = false;
|
|
//
|
|
// activate( true );
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//NsLight::~NsLight()
|
|
//{
|
|
// activate( false );
|
|
//}
|
|
//
|
|
//
|
|
//void NsLight::setFrame( NsFrame* p_frame )
|
|
//{
|
|
// m_pFrame = p_frame;
|
|
// m_LightingHasChanged = true;
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//void NsLight::setColor( GXColor color )
|
|
//{
|
|
// m_Color.r = (int)( color.r * 255.0f );
|
|
// m_Color.g = (int)( color.g * 255.0f );
|
|
// m_Color.b = (int)( color.b * 255.0f );
|
|
// m_Color.a = 0xFF;
|
|
//
|
|
// updateColor();
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//void NsLight::updateColor( void )
|
|
//{
|
|
// if( m_On )
|
|
// {
|
|
// if( m_Type == NSLIGHT_AMBIENT )
|
|
// {
|
|
// GX::SetChanAmbColor( GX_COLOR0A0, m_Color );
|
|
// m_AmbientColor = m_Color;
|
|
// }
|
|
// else
|
|
// {
|
|
// m_LightingHasChanged = true;
|
|
// GXInitLightColor( &m_LightObj[m_Slot], m_Color );
|
|
// }
|
|
// }
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//void NsLight::updateOrientation( void )
|
|
//{
|
|
// // Prepares large number (2 pow 20) (taken from Nintendo demo code).
|
|
// #define LARGE_NUMBER 1048576
|
|
//
|
|
// if( m_pFrame && m_On && ( m_Type == NSLIGHT_DIRECTIONAL ))
|
|
// {
|
|
// m_LightingHasChanged = true;
|
|
// float x_pos = -m_pFrame->getModelMatrix()->getAtX() * LARGE_NUMBER;
|
|
// float y_pos = -m_pFrame->getModelMatrix()->getAtY() * LARGE_NUMBER;
|
|
// float z_pos = -m_pFrame->getModelMatrix()->getAtZ() * LARGE_NUMBER;
|
|
// GXInitLightPos( &m_LightObj[m_Slot], x_pos, y_pos, z_pos );
|
|
// }
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//void NsLight::activate( bool on )
|
|
//{
|
|
// if( on != m_On )
|
|
// {
|
|
// m_On = on;
|
|
//
|
|
// if( m_Type == NSLIGHT_AMBIENT )
|
|
// {
|
|
// if( m_On )
|
|
// {
|
|
// GX::SetChanAmbColor( GX_COLOR0A0, m_Color );
|
|
// m_AmbientColor = m_Color;
|
|
// }
|
|
// else
|
|
// {
|
|
// GX::SetChanAmbColor( GX_COLOR0A0, ColorOff );
|
|
// m_AmbientColor = ColorOff;
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// m_LightingHasChanged = true;
|
|
//
|
|
// if( m_On )
|
|
// {
|
|
// // Find a free slot.
|
|
// for( int s = 0; s < NSLIGHT_MAX_LIGHTS; ++s )
|
|
// {
|
|
// if(( m_SlotArray & ( 1 << s )) == 0 )
|
|
// {
|
|
// m_Slot = s;
|
|
// m_SlotArray |= ( 1 << s );
|
|
//
|
|
// // In case orientation was changed whilst the light was off.
|
|
// updateOrientation();
|
|
// updateColor();
|
|
// break;
|
|
// }
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// // Turn the light off.
|
|
// m_SlotArray &= ~( 1 << m_Slot );
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|