Problem with BH1750 readings

I have and application with a BH1750 sensors i am seeing the output as positive until it reaches a certain value then the output goes negative. I am not sure what i am doing wrong. I believe the sensor should read up to 65535 as max output it goes to a negative number after around 30k. I am trying to figure out how to get the full output 0-65535 collected.

If i change this line LightRawValue = (int)valf,DEC; to remove the int command i don’t get an output from the sensor it goes to zero.

I am sure i am mixing up data types but i am not sure how to fix it.

Here are my variable definitions

//**Values the arduino sees
int pH1RawValue = 0;
int pH2RawValue = 0;
int TempRawValue = 0;
int RHRawValue = 0;
int TDS1RawValue = 0;
int TDS2RawValue = 0;
int CO2RawValue = 0;
int LightRawValue = 0;
int WaterRawValue = 0;

//**Values the humans see (after it has been calculated using raw values above ^^^ and their respected formulas)
float pH1Value = 0;
float pH2Value = 0;
float TempValue = 0;
float WaterValue = 0;
float RHValue = 0;
float TDS1Value = 0;
float TDS2Value = 0;
float CO2Value = 0;
float LightValue = 0;

here is the section of code that reads the light sensor

 //******************************* GY-30 DIGITAL LIGHT SENSOR ***************************

#if defined(light_on)
  Wire.begin();
  BH1750_Init(BH1750_address); 
  delay(200);
  float valf=0;   
  if(BH1750_Read(BH1750_address)==2){
    
    valf=((buff[0]<<8)|buff[1])/1.2;
    
  }

  LightRawValue = (int)valf,DEC;
  if (LightRawValue < 0){
    LightRawValue = -LightRawValue;
  }
  LightValue = LightRawValue;
#else
  LightRawValue = 0;
  LightValue = 0;
#endif  
  if (isnan(LightValue)) {
    LightValue = 0;
  } 
  PString my_Light_string(Light_char, sizeof(Light_char));
  my_Light_string.print(LightValue);
  if (LightValue < 10){
    my_Light_string.println("% "); 
  } 
  else {
    my_Light_string.println("%"); 
  }

The output of the sensor is later sent out via the Serial port so i need
the value to be in a format suitable for sending via serial

    //*****SENSOR VALUES
    Serial1.print("Sensors,");
    Serial1.print(pH1Value);
    Serial1.print(",");
    Serial1.print(pH2Value);
    Serial1.print(",");
    Serial1.print(TempValue);
    Serial1.print(",");
    Serial1.print(RHValue);
    Serial1.print(",");
    Serial1.print(TDS1Value);
    Serial1.print(",");
    Serial1.print(TDS2Value);
    Serial1.print(",");
    Serial1.print(CO2Value);
    Serial1.print(",");
    Serial1.print(LightValue); /// value from light sensor
    Serial1.print(",");
    Serial1.print(WaterValue);
    Serial1.print(",");    
    Serial1.print(MagXValue);
    Serial1.print(",");
    Serial1.print(MagYValue);
    Serial1.print(",");
    Serial1.print(MagZValue);
    Serial1.print(",");
    Serial1.print(TankTotalValue);            
    Serial1.print(",");    
    Serial1.print(Tank1Value);
    Serial1.print(",");
    Serial1.print(Tank2Value);
    Serial1.print(",");
    Serial1.print(Tank3Value);
    Serial1.print(",");
    Serial1.print(Tank4Value);
    Serial1.print(",");    
    Serial1.print(WaterTempP1Value);
    Serial1.print(",");
    Serial1.print(WaterTempP2Value);
    Serial1.print(",");
    Serial1.print(WaterTempP3Value);
    Serial1.print(",");
    Serial1.println(WaterTempP4Value);   
    sendRelayMessages(); //<<---- Relays and Relay_isAutoMessages

https://www.arduino.cc/en/Reference/UnsignedInt