Another entry in the very sporadic series of “very strange code I’ve seen.” The code has been changed to protect the guilty, but the essence has been preserved.
class Store
{
public:
// Retrieve "count" colors from item "itemId" into "values"
bool GetItemColors(int itemId, int count, COLORREF *values);
// Set "count" colors from "values" into item "itemId"
bool SetItemColors(int itemId, int count, const COLORREF *values);
};
bool CopyUpToFourColors(Store *store1, Store *store2, int itemId, int count)
{
COLORREF size1[1];
COLORREF size2[2];
COLORREF size3[3];
COLORREF size4[4];
int *buffer = ((count == 1) ? size1 :
((count == 2) ? size2 :
((count == 3) ? size3 :
((count == 4) ? size4 :
nullptr))));
if (buffer == nullptr)
return false;
if (!store1->GetItemColors(itemId, count, buffer))
return false;
if (!store2->SetItemColors(itemId, count, buffer))
return false;
return true;
}
0 comments