1 /*---------------------------------------------------------------------------*
2
3 Copyright (C) Nintendo. All rights reserved.
4
5 These coded instructions, statements, and computer programs contain
6 proprietary information of Nintendo of America Inc. and/or Nintendo
7 Company Ltd., and are protected by Federal copyright law. They may
8 not be disclosed to third parties or copied or duplicated in any form,
9 in whole or in part, without the prior written consent of Nintendo.
10
11 *---------------------------------------------------------------------------*/
12
13 ////////////////////////////////////////////////////
14 //
15 // Helper functions
16 //
17 ////////////////////////////////////////////////////
18
19 // Returns darker or lighter with a higher status (opposite brightness if status == -1)
WhiteDarker(int status)20 CVec4 WhiteDarker(int status) {if (status == -1) return CVec4(0, 0, 0, 1.0); /* else */ return CVec4(0.8 - 0.2 * status, 0.8 - 0.2 * status, 0.8 - 0.2 * status, 1.0);}
BlackLighter(int status)21 CVec4 BlackLighter(int status) {if (status == -1) return CVec4(0.6, 0.6, 0.6, 1.0); /* else */ return CVec4(0.05 + 0.1 * status, 0.05 + 0.1 * status, 0.05 + 0.1 * status, 1.0);}
22
23 // Literally does nothing
DoNothing()24 void DoNothing() {}
DoNothingVoidP(void *)25 void DoNothingVoidP(void*) {}
26
27 // Does nothing, returns true
BoolDoNothing()28 bool BoolDoNothing() {return true;}
BoolDoNothingVoidP(void *)29 bool BoolDoNothingVoidP(void*) {return true;}
30
31 // Returns if the values are close
CloseEnough(float a,float b)32 bool CloseEnough(float a, float b)
33 {
34 if (a - b > 0.1)
35 return false;
36
37 return (a - b >= -0.1);
38 }
39
40 // Takes the core as 0, 1, or 2 and turns it into the value the system wants (1, 2, 4)
GetCore(int core)41 int GetCore(int core)
42 {
43 switch (core)
44 {
45 case 0:
46 core = OS_THREAD_ATTR_AFFINITY_CORE0;
47 break;
48 case 1:
49 core = OS_THREAD_ATTR_AFFINITY_CORE1;
50 break;
51 case 2:
52 core = OS_THREAD_ATTR_AFFINITY_CORE2;
53 break;
54 default:
55 OSHalt("Invalid core chosen!");
56 }
57
58 return core;
59 }
60
61 // A "safe" version of strcat
strcat_s(char * dest,int len,const char * src)62 char* strcat_s(char* dest, int len, const char* src)
63 {
64 dest[len - 1] = 0;
65
66 strcat(dest, src);
67
68 ASSERT(dest[len - 1] == 0);
69
70 return dest;
71 }
72
73 // A "safe" version of strcpy
strcpy_s(char * dest,int len,const char * src)74 char* strcpy_s(char* dest, int len, const char* src)
75 {
76 dest[len - 1] = 0;
77
78 strcpy(dest, src);
79
80 ASSERT(dest[len - 1] == 0);
81
82 return dest;
83 }
84
85 // A "safe" version of sprintf
sprintf_s(char * dest,int len,const char * src,...)86 int sprintf_s(char* dest, int len, const char* src, ...)
87 {
88 dest[len - 1] = 0;
89
90 va_list args;
91 va_start (args, src);
92 int count = vsprintf(dest, src, args);
93 va_end (args);
94
95 ASSERT(dest[len - 1] == 0);
96
97 return count;
98 }
99
100 // A "safe" version of vsprintf
vsprintf_s(char * dest,int len,const char * src,va_list list)101 int vsprintf_s(char* dest, int len, const char* src, va_list list)
102 {
103 dest[len - 1] = 0;
104
105 int count = vsprintf(dest, src, list);
106
107 ASSERT(dest[len - 1] == 0);
108
109 return count;
110 }
111