(lcs) reversed CScrollBar
			#1297
			
				
			
		
		
	 Open
		
	
	
		
		
			
		
		
		
		
			
		
		
			
				asm95 wants to merge 2 commits from asm95/lcs-scrollbar  into lcs
			
			
				@ -377,10 +377,16 @@ uint8 ScrollCharSet[59][5] = {
 | 
			
		||||
// ---------- CMovingThings ----------
 | 
			
		||||
enum eScrollBarTypes
 | 
			
		||||
{
 | 
			
		||||
	SCROLL_ARENA_STRING
 | 
			
		||||
	SCROLL_BUSINESS,
 | 
			
		||||
	SCROLL_TRAFFIC,
 | 
			
		||||
	SCROLL_ENTERTAINMENT,
 | 
			
		||||
	SCROLL_AIRPORT_DOORS,
 | 
			
		||||
	SCROLL_AIRPORT_FRONT,
 | 
			
		||||
	SCROLL_STORE,
 | 
			
		||||
	SCROLL_USED_CARS
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CScrollBar    aScrollBars[1];
 | 
			
		||||
CScrollBar    aScrollBars[12];
 | 
			
		||||
 | 
			
		||||
CMovingThing CMovingThings::StartCloseList;
 | 
			
		||||
CMovingThing CMovingThings::EndCloseList;
 | 
			
		||||
@ -424,15 +430,29 @@ void CMovingThings::Init()
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// only type SCROLL_TRAFFIC is in unused
 | 
			
		||||
	 aScrollBars[0].Init(CVector(    228.8f,     -669.0f,      39.5f), CVector(     228.8f,     -649.0f,      42.0f),      SCROLL_BUSINESS, 255, 128,   0, 0.30f);
 | 
			
		||||
	 aScrollBars[1].Init(CVector( -1090.11f,   -584.224f,    13.246f), CVector(  -1090.11f, -591.04797f,    13.781f), SCROLL_AIRPORT_DOORS, 255,   0,   0, 0.11f);
 | 
			
		||||
	 aScrollBars[2].Init(CVector( -1090.11f, -602.04602f,    13.246f), CVector(  -1090.11f,    -608.87f,    13.781f), SCROLL_AIRPORT_DOORS,   0, 255,   0, 0.11f);
 | 
			
		||||
	 aScrollBars[3].Init(CVector( -1090.11f, -619.81702f,    13.246f), CVector(  -1090.11f, -626.64099f,    13.781f), SCROLL_AIRPORT_DOORS, 255, 128,   0, 0.11f);
 | 
			
		||||
	 aScrollBars[4].Init(CVector( -754.078f, -633.50897f, 18.910999f), CVector(  -754.078f, -609.86902f,    21.511f), SCROLL_AIRPORT_FRONT, 100, 100, 255, 0.30f);
 | 
			
		||||
	 aScrollBars[5].Init(CVector( -754.078f,   -586.672f, 18.910999f), CVector(  -754.078f, -563.03198f,    21.511f), SCROLL_AIRPORT_FRONT, 100, 100, 255, 0.30f);
 | 
			
		||||
	 aScrollBars[6].Init(CVector(   85.473f,  -1070.012f,      31.0f), CVector( 129.47301f,  -1081.012f,    34.348f),         SCROLL_STORE, 100, 100, 255, 0.30f);
 | 
			
		||||
	 aScrollBars[7].Init(CVector(74.822998f,  -1086.379f, 30.250999f), CVector(      60.0f,  -1082.412f,    32.909f), SCROLL_ENTERTAINMENT, 255, 255, 128, 0.30f);
 | 
			
		||||
	 aScrollBars[8].Init(CVector(  -29.465f,  -1034.743f,    32.534f), CVector(   -38.334f,  -1032.459f, 33.679001f), SCROLL_ENTERTAINMENT, 150, 255,  50, 0.11f);
 | 
			
		||||
	 aScrollBars[9].Init(CVector(  -36.959f,  -1030.7371f,   32.534f), CVector(-45.727001f,  -1028.053f, 33.679001f), SCROLL_ENTERTAINMENT, 150, 255,  50, 0.11f);
 | 
			
		||||
	aScrollBars[10].Init(CVector(  -45.375f,  -1027.2371f,   32.534f), CVector(-53.144001f,  -1024.754f, 33.679001f), SCROLL_ENTERTAINMENT, 150, 255,  50, 0.11f);
 | 
			
		||||
	aScrollBars[11].Init(CVector(   1207.5f,  -63.320999f,     19.6f), CVector(  1212.722f, -70.217003f, 21.056999f),     SCROLL_USED_CARS, 255, 128,   0, 0.30f);
 | 
			
		||||
 | 
			
		||||
// LCS: removed
 | 
			
		||||
//	CEscalators::Init();
 | 
			
		||||
//	aScrollBars[0].Init(CVector(-1069.209f, 1320.126f, 18.848f), CVector(-1069.209f, 1342.299f, 22.612f), SCROLL_ARENA_STRING, 128, 255, 0, 0.3f);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CMovingThings::Shutdown()
 | 
			
		||||
{
 | 
			
		||||
	for (int16 i = 0; i < ARRAY_SIZE(aScrollBars); i++)
 | 
			
		||||
		aScrollBars[i].SetVisibility(false);
 | 
			
		||||
| 
					
 | 
			||||
	
 | 
			
		||||
	aScrollBars[0].SetVisibility(false);
 | 
			
		||||
	CEscalators::Shutdown();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -645,7 +665,23 @@ void CScrollBar::Init(CVector pos1, CVector pos2, uint8 type, uint8 red, uint8 g
 | 
			
		||||
	m_uRed     = red;
 | 
			
		||||
	m_uGreen   = green;
 | 
			
		||||
	m_uBlue    = blue;
 | 
			
		||||
	m_fScale   = scale;
 | 
			
		||||
	m_fScale   = scale * 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char* FindTunnelMessage() {
 | 
			
		||||
	if (CStats::CommercialPassed)
 | 
			
		||||
		return "LIBERTY TUNNEL HAS BEEN OPENED TO ALL TRAFFIC . . .   ";
 | 
			
		||||
	if (CStats::IndustrialPassed)
 | 
			
		||||
		return "FIRST PHASE LIBERTY TUNNEL HAS BEEN COMPLETED . . .   ";
 | 
			
		||||
	return "FIRST PHASE LIBERTY TUNNEL ABOUT TO BE COMPLETED . . .   ";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char* FindBridgeMessage() {
 | 
			
		||||
	if (CStats::CommercialPassed)
 | 
			
		||||
		return "WORK SHY STRIKERS RETURN TO THEIR JOBS . . . STAUNTON LIFT BRIDGE IS OPERATIONAL AGAIN ";
 | 
			
		||||
	if (CStats::IndustrialPassed)
 | 
			
		||||
		return "LONG DELAYS BEHIND US AS CALLAHAN BRIDGE IS NEARLY COMPLETED . . . ";
 | 
			
		||||
	return "THE GRAND OPENING OF CALLAHAN BRIDGE IS ONLY DAYS AWAY. . . ";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CScrollBar::Update()
 | 
			
		||||
@ -670,46 +706,215 @@ void CScrollBar::Update()
 | 
			
		||||
	if (m_Counter == 0 && ++m_MessageCurrentChar >= m_MessageLength)
 | 
			
		||||
	{
 | 
			
		||||
		const char* previousMessage = m_pMessage;
 | 
			
		||||
		if (m_Type == SCROLL_ARENA_STRING) {
 | 
			
		||||
			while (previousMessage == m_pMessage)
 | 
			
		||||
			{
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 4)
 | 
			
		||||
		while (previousMessage == m_pMessage)
 | 
			
		||||
		{
 | 
			
		||||
			if (m_Type == SCROLL_BUSINESS) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 7)
 | 
			
		||||
				{
 | 
			
		||||
				case 0:
 | 
			
		||||
					switch (TonightsEvent) {
 | 
			
		||||
					case 0:
 | 
			
		||||
						m_pMessage = "MAIN EVENT TONIGHT: CAR RACING . . .   ";
 | 
			
		||||
						break;
 | 
			
		||||
					case 1:
 | 
			
		||||
						m_pMessage = "MAIN EVENT TONIGHT: DESTRUCTION DERBY . . .   ";
 | 
			
		||||
						break;
 | 
			
		||||
					case 2:
 | 
			
		||||
						m_pMessage = "MAIN EVENT TONIGHT: BIKE RACING . . .   ";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					break;
 | 
			
		||||
					m_pMessage = "SHARES DAV<15% JLI>18% MAM>32% STH<80%. . . "; break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					switch (TonightsEvent) {
 | 
			
		||||
					case 0:
 | 
			
		||||
						m_pMessage = "FOR TICKETS TO THE HOT RING EVENT CALL 555-3764 . . .   ";
 | 
			
		||||
						break;
 | 
			
		||||
					case 1:
 | 
			
		||||
						m_pMessage = "FOR TICKETS TO THE BLOOD RING EVENT CALL 555-3765 . . .   ";
 | 
			
		||||
						break;
 | 
			
		||||
					case 2:
 | 
			
		||||
						m_pMessage = "FOR TICKETS TO THE DIRT RING EVENT CALL 555-3766 . . .   ";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					break;
 | 
			
		||||
					m_pMessage = "GANG WAR RAGES IN LIBERTY CITY . . . "; break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = "HYMAN MEMORIAL STADIUM. HOME TO SOME OF THE BIGGEST EVENTS OF"
 | 
			
		||||
						" THE WESTERN HEMISPHERE. ALSO AVAILABLE FOR CHILDREN PARTIES. . . ";
 | 
			
		||||
					m_pMessage = "SHARES MJD>23% CJW<5% RAMMAN<7% HNTR>43% NJM>12% AAG>110%. . . "; break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = FindTunnelMessage(); break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					m_pMessage = FindBridgeMessage(); break;
 | 
			
		||||
				case 5:
 | 
			
		||||
					m_pMessage = FindTimeMessage(); break;
 | 
			
		||||
				case 6:
 | 
			
		||||
					if (
 | 
			
		||||
						FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_FRENCH ||
 | 
			
		||||
						FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_GERMAN
 | 
			
		||||
						)
 | 
			
		||||
						m_pMessage = FindTimeMessage();
 | 
			
		||||
					else
 | 
			
		||||
						m_pMessage = "WWW.GRANDTHEFTAUTO3.COM    ";
 | 
			
		||||
					break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (m_Type == SCROLL_TRAFFIC) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 8) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					m_pMessage = "DRIVE SAFE . . . "; break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					m_pMessage = "ROAD DEATHS UP ! GOOD DRIVERS DRIVE NICE . . . "; break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = "SPEEDING KILLS . . . SLOW DOWN . . . DELAYS EXPECTED. . . "; break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = FindTimeMessage();
 | 
			
		||||
					m_pMessage = "CONGESTION EASING . . . "; break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					if (CWeather::Foggyness > 0.5f)
 | 
			
		||||
						m_pMessage = "VISIBILITY LOW ! ";
 | 
			
		||||
					else if (CWeather::WetRoads > 0.5f)
 | 
			
		||||
						m_pMessage = "SNOW EXPECTED ! ";
 | 
			
		||||
					else
 | 
			
		||||
						m_pMessage = "CAUTION: CARJACKING CRIME WAVE HITS CITY . . . HAVE A NICE DAY . . . ";
 | 
			
		||||
					break;
 | 
			
		||||
				default:
 | 
			
		||||
				case 5:
 | 
			
		||||
					m_pMessage = FindTunnelMessage();  break;
 | 
			
		||||
				case 6:
 | 
			
		||||
					m_pMessage = FindBridgeMessage();  break;
 | 
			
		||||
				case 7:
 | 
			
		||||
					m_pMessage = FindTimeMessage();  break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (m_Type == SCROLL_ENTERTAINMENT) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 12) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					m_pMessage = " THE TECHNICOLOR SPECTACULAR )JESUS, MARY AND JOSEPH!) IS A GODSEND! BEING SUNG"
 | 
			
		||||
						" ENTIRELY IN ARAMAIC, THE MUSICAL MAY BE DIFFICULT TO FOLLOW, BUT BOY THERE SURE ARE"
 | 
			
		||||
						" SOME SANDAL-TAPPING TUNES IN THERE ! ";  break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					m_pMessage = " THE MUSICAL )WINGDING, SONS OF A BITCH TAKE FLIGHT) IS SLAYING THEM IN THEATERS"
 | 
			
		||||
						" ACROSS TOWN. CRITICS HAVE DESCRIBED IT AS )BLOWING THE COBWEBS OFF THE MUSICAL GENRE"
 | 
			
		||||
						" LIKE A DIVINE WIND) . . . IT)S AN EVENING OF MUSIC, DANCE, DEATH AND DESTRUCTION!"
 | 
			
		||||
						" INCLUDES THE HIT SONG )ALL YOUR BASE ARE BELONG TO USA). YOU ARE SURE TO LEAVE WITH A"
 | 
			
		||||
						" SMILE ON YOUR FAT FACE . . . ";  break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = " THE UNMISSABLE )GTA3, THE MUSICAL) IS STILL RUNNING IN LIBERTY CITY THEATERS"
 | 
			
		||||
						" AFTER 250 WEEKS . . . CONTROVERSY HAS PLAGUED THE PRODUCTION AFTER PRESSURE GROUPS"
 | 
			
		||||
						" URGED CONCERN OVER A POSSIBLE CAUSAL LINK BETWEEN THE PLAY AND THE END OF THE"
 | 
			
		||||
						" WORLD . . . ";  break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = " THE OPERA IS MAKING A COMEBACK IN LIBERTY CITY AS PLANS ARE UNDERWAY"
 | 
			
		||||
						" TO STAGE MALBOLOKOV";  break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					m_pMessage = " NOW PLAYING )HEAVY WEAPONS) BUFF T AND SUCK WILD REUNITE IN THE SEQUEL"
 | 
			
		||||
						" TO )WEAPONS OF ASS DISTRACTION). THE CHIPS ARE DOWN AND SO ARE THE IQ)S IN THIS"
 | 
			
		||||
						" SUMMER)S MONSTER BLOCKBUSTER. . . THE PRESIDENT)S ASS IS ON THE LINE. HE NEEDS"
 | 
			
		||||
						" A PLAN TO STOP FREEDOM BEING STOLEN BY THE BAD GUYS. STEP UP BUFF AND SUCK!"
 | 
			
		||||
						" IT)S TIME TO UNLEASH THE HEAVY WEAPONS AND )SUCK IT TO )EM!)";  break;
 | 
			
		||||
				case 5:
 | 
			
		||||
| 
					
 
						Review
						 
					
				
				
				
			This was a switch. If it was taken from re3, then it needs to be fixed as well :P This was a switch. If it was taken from re3, then it needs to be fixed as well :P 
			
		
						Review
						 
					
				
				
				
			Oh, damn that's right... Will change that to a  Oh, damn that's right... Will change that to a `switch(m_Type){...}` statement. Yeah, I followed [miami](https://github.com/GTAmodding/re3/blob/miami/src/renderer/Fluff.cpp#L672)'s branch but forgot that was a `switch` in IDA and also in [master](https://github.com/GTAmodding/re3/blob/master/src/renderer/Fluff.cpp#L361) branch. 
			
		 | 
			||||
					m_pMessage = " COMING SOON . . . A SPECIAL PREVIEW NIGHT OF )FUBAR). AN EPIC URBAN"
 | 
			
		||||
						" BIOPIC ABOUT LIFE IN THE GHETTO WHEN YOU)RE A MILLIONAIRE GANGSTA RAPPER"
 | 
			
		||||
						" JUST TRYING TO GET BY AND KEEP IT REAL . . . STARS DB-P, FAITH W, AND BLACK"
 | 
			
		||||
						" LIGHTMAN . . . SEATS STILL AVAILABLE . . . ";  break;
 | 
			
		||||
				case 6:
 | 
			
		||||
					m_pMessage = " STILL SHOWING: )BAD MAN RETURNS - THIS TIME IT)S POOR) . . ."
 | 
			
		||||
						" THE CHILDHOOD PSYCHOLOGICAL SCARS OF POTTY TRAINING TURNED MILLIONAIRE"
 | 
			
		||||
						" PLAYBOY BRUTE LAME INTO )BAD MAN), THE CRAP CRUSADER. CLOAKED IN DARKNESS,"
 | 
			
		||||
						" HE TRACKS DOWN ALL GRIME IN THE CITY! . . . IF YOU DON)T FLUSH, HE)LL"
 | 
			
		||||
						" FLUSH YOU! ";  break;
 | 
			
		||||
				case 7:
 | 
			
		||||
					m_pMessage = " THIS WEEKEND)S MUST SEE MOVIE IS )LET)S MAKE FORMULA). THE"
 | 
			
		||||
						" HUGELY SUCCESSFUL COMEDY, ROMANCE, BUDDY-BUDDY, ACTION MOVIE SERIES"
 | 
			
		||||
						" CONTINUES WITH THE LATEST INSTALLMENT - )HONEY, I SHRUNK MY SKIDS). . ."
 | 
			
		||||
						" AND CATCH THIS ONE IF YOU CAN, )THE COMMON COLD). . . ";  break;
 | 
			
		||||
				case 8:
 | 
			
		||||
					m_pMessage = FindTunnelMessage();  break;
 | 
			
		||||
				case 9:
 | 
			
		||||
					m_pMessage = FindBridgeMessage();  break;
 | 
			
		||||
				case 10:
 | 
			
		||||
					m_pMessage = FindTimeMessage();  break;
 | 
			
		||||
				case 11:
 | 
			
		||||
					m_pMessage = "WWW.ROCKSTARGAMES.COM    ";  break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (m_Type == SCROLL_AIRPORT_DOORS) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 5) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					m_pMessage = "WELCOME TO LIBERTY CITY . . . FREEDOM";  break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					m_pMessage = "PLEASE HAVE YOUR PASSPORT READY . . . ";  break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = "PLACE BRASS-KNUCKLES, FIREARMS, CHANGE AND OTHER METAL OBJECTS"
 | 
			
		||||
						" ON THE TRAY PLEASE . . . ";  break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = FindTimeMessage();  break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					m_pMessage = "WWW.ROCKSTARLEEDS.COM    ";  break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (m_Type == SCROLL_AIRPORT_FRONT) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 3) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					m_pMessage = "WELCOME TO FRANCIS INTERNATIONAL AIRPORT . . . ";  break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					m_pMessage = "PLEASE DO NOT LEAVE LUGGAGE UNATTENDED . . . ";  break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = "FOLLOW 1 FOR LONG AND SHORT TERM PARKING ";  break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = FindTimeMessage();  break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (m_Type == SCROLL_STORE) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 11) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					m_pMessage = "WWW.ROCKSTARGAMES.COM    ";  break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					m_pMessage = ")GRAND THEFT PORTO) OUT NOW . . . ";  break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = "OUR STUFF IS CHEAPER THAN CHEAP . . . ";  break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = "BUY 12 DVDS GET 1 VIDEO CASSETTE FREE . . . ";  break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					m_pMessage = "WE)RE CLOSING DOWN AGAIN! . . . YES! WE DID SO MUCH TRADE AT OUR"
 | 
			
		||||
						" LAST CLOSING DOWN SALE THAT WE)VE MANAGED TO STAY IN BUSINESS LONG ENOUGH"
 | 
			
		||||
						" TO HAVE ANOTHER ONE . . . ";  break;
 | 
			
		||||
				case 5:
 | 
			
		||||
					m_pMessage = "SPECIAL OFFERS . . . SPECIAL OFFERS . . . SPECIAL OFFERS . . . ";  break;
 | 
			
		||||
				case 6:
 | 
			
		||||
					m_pMessage = "APPLY FOR A STORE CARD AND GET 0% OFF YOUR FIRST PURCHASE . . . ";  break;
 | 
			
		||||
				case 7:
 | 
			
		||||
					m_pMessage = "RELEASED THIS WEEK: )NEW SKIDS ON THE POT) GREATEST HITS CD,)NUKED IDS):"
 | 
			
		||||
						" INCLUDES THEIR BIG CHART HITS )PUPPY PHAT LUVA) AND )BANGING STUFF) . . . ";  break;
 | 
			
		||||
				case 8:
 | 
			
		||||
					m_pMessage = "CHECK IN-STORE FOR THE PRODUCERS CUT DVD RELEASE OF THE CLASSIC SCIFI"
 | 
			
		||||
						" MOVIE )TOTAL REHAB) STARRING ARNOLD STEELONE. IT)S NOT VERY GOOD BUT IT CAME"
 | 
			
		||||
						" OUT ON TIME . . . ";  break;
 | 
			
		||||
				case 9:
 | 
			
		||||
					m_pMessage = FindTimeMessage();  break;
 | 
			
		||||
				case 10:
 | 
			
		||||
					m_pMessage = "WWW.ROCKSTARLEEDS.COM    ";  break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (m_Type == SCROLL_USED_CARS) {
 | 
			
		||||
				switch (CGeneral::GetRandomNumber() % 12) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					m_pMessage = "COME AND TAKE ONE OF OUR CARS FOR A SPIN TODAY. . .   ";  break;
 | 
			
		||||
				case 1:
 | 
			
		||||
					m_pMessage = "CAPITAL AUTO SALES: STEERING WHEEL-Y GOOD DEALS YOUR WAY     ";  break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					m_pMessage = "FINANCE ARRANGED AT 2000% APR. . . THAT)S A GREAT DEAL. . .  ";  break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					m_pMessage = "WANT A TEST DRIVE? OUR SALESMEN ARE SURE TO TAKE YOU FOR"
 | 
			
		||||
						" A RIDE. . .  ";  break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					m_pMessage = "OUR DEALS ARE SUCH A STEAL WE CAN)T KEEP PEOPLE OUT OF THE"
 | 
			
		||||
						" SHOWROOM. . . GRAB OUR CARS WHILE YOU CAN. . .   ";  break;
 | 
			
		||||
				case 5:
 | 
			
		||||
					m_pMessage = "CAPITAL AUTO SALES: THE ONLY DEALER WITH THE INSIDE DOPE ON"
 | 
			
		||||
						" POTTY PRICES. . .   ";  break;
 | 
			
		||||
				case 6:
 | 
			
		||||
					m_pMessage = "PORTLAND)S NUMBER ONE DEALERSHIP. . .   ";  break;
 | 
			
		||||
				case 7:
 | 
			
		||||
					m_pMessage = "CAPITAL AUTO SALES FOR SHATTERING BREAKTHROUGH DEALS AND"
 | 
			
		||||
						" EASY AVAILABILITY. . .   ";  break;
 | 
			
		||||
				case 8:
 | 
			
		||||
					m_pMessage = "SALES PERSON REQUIRED. . . MUST HAVE GREAT TEETH. . ."
 | 
			
		||||
						" APPLY WITHIN. . .  ";  break;
 | 
			
		||||
				case 9:
 | 
			
		||||
					if (
 | 
			
		||||
						FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_FRENCH ||
 | 
			
		||||
						FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_GERMAN
 | 
			
		||||
						)
 | 
			
		||||
						m_pMessage = "COME AND TAKE ONE OF OUR CARS FOR A SPIN TODAY. . .   ";
 | 
			
		||||
					else
 | 
			
		||||
						m_pMessage = "DON)T BE DRIVEN TO RUIN BY OTHER DEALERS. . .  BUY FROM US AND DRIVE YOURSELF. . .  ";
 | 
			
		||||
					break;
 | 
			
		||||
				case 10:
 | 
			
		||||
					m_pMessage = FindTimeMessage();  break;
 | 
			
		||||
				case 11:
 | 
			
		||||
					m_pMessage = "WWW.ROCKSTARLEEDS.COM    ";  break;
 | 
			
		||||
				default: break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@ -759,9 +964,9 @@ void CScrollBar::Render()
 | 
			
		||||
	{
 | 
			
		||||
		for (int j = 0; j < 5; ++j)
 | 
			
		||||
		{
 | 
			
		||||
			coronaCoord.x = m_Position.x + m_Size.x * i;
 | 
			
		||||
			coronaCoord.x = m_Position.x + (m_Size.x * i) * 0.5;
 | 
			
		||||
			coronaCoord.y = m_Position.y + m_Size.y * i;
 | 
			
		||||
			coronaCoord.z = m_Position.z + m_Size.z * j;
 | 
			
		||||
			coronaCoord.z = m_Position.z + (m_Size.z * j) * 0.5;
 | 
			
		||||
 | 
			
		||||
			// Render main coronas
 | 
			
		||||
			if (m_MessageBar[i] & (1 << j))
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	
Looks like all digits originally were at most 3 digits after decimal point, e.g. -591.048f. Same applies to all initialization here.
Those extra digits were usually appearing in IDA. Anyway, I'll remove those cases with more than 3 decimal digits.