Do you mean the
Code:
void Client::SendBazaarResults(...)
..declaration?
The 'void' in that case just indicates the type of object that is expected to be returned once the function has reached a termination point.
For instance:
Code:
void Foo() {
return;
}
..returns absolutely nothing.
Code:
short Foo() {
short number = 12345;
return number;
}
..returns an explicitly declared 'short-'sized value
Code:
short Foo() {
return 12345;
}
..returns an implicitly converted (coerced) 'short-'sized value
Code:
const char* Foo() {
return "Hello World!";
}
..returns a const char pointer to the address where "Hello World!" is stored
(known as a c-string and is essentially just an array of chars with a null terminator character at the end.)
In the case of the bazaar function, no return is expected. Any action is predicated on the values passed into the function and by the Client object itself.
I'm really only seeing one fail point in the generation code that would cause an early return:
Code:
if (!results.Success()) {
return;
}
You've also got these two points:
Code:
if (results.RowCount() == static_cast<unsigned long>(RuleI(Bazaar, MaxSearchResults)))
Message(15, "Your search reached the limit of %i results. Please narrow your search down by selecting more options.", RuleI(Bazaar, MaxSearchResults));
if(results.RowCount() == 0) {
auto outapp2 = new EQApplicationPacket(OP_BazaarSearch, sizeof(BazaarReturnDone_Struct));
BazaarReturnDone_Struct *brds = (BazaarReturnDone_Struct *)outapp2->pBuffer;
...
Even if all of the functional server code if working properly, there could still be an issue with the client translator function - if it has one.
(assuming RoF2...)
We want to look for this opcode
Code:
auto outapp = new EQApplicationPacket(OP_BazaarSearch, Size);
..in the translator.
(
ENCODE tranlates server->client packets,
DECODE translates client->server packets)
https://github.com/EQEmu/Server/blob.../rof2.cpp#L396
If you have query logging turned on, I'm pretty sure that gms receive the queries (or use to) that are generated.
You should be able to run those directly from HeidiSQL and see the results as well.
None of this really says how to fix any issue..but, it does give you most all of the places to look