plugins/chatsounds: make it more readable for 80 columns
This commit is contained in:
parent
1f0ed248a5
commit
a8d2a64ef9
2 changed files with 77 additions and 62 deletions
|
@ -15,34 +15,99 @@ PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
var int autocvar_chatplug_suppresschat = 0;
|
var int autocvar_chatplug_suppresschat = 0;
|
||||||
|
|
||||||
entity csndemitter;
|
/* our sound boogeyman */
|
||||||
|
static entity emitter;
|
||||||
|
static int g_sounds;
|
||||||
|
|
||||||
|
/* where we save our lists */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
string sentence;
|
string sentence;
|
||||||
string sample;
|
string sample;
|
||||||
} chatsentence_t;
|
} chatsentence_t;
|
||||||
chatsentence_t *g_chatsounds;
|
static chatsentence_t *g_table;
|
||||||
var int g_chatsounds_count;
|
|
||||||
|
|
||||||
int ChatLookUp(string cmd)
|
void
|
||||||
|
ChatPlay(int id)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < g_chatsounds_count; i++) {
|
int r, count, flags;
|
||||||
int sc = tokenizebyseparator(g_chatsounds[i].sentence, ";");
|
count = tokenizebyseparator(g_table[id].sample, ";");
|
||||||
|
r = random(0, count);
|
||||||
|
flags = SOUNDFLAG_NOREVERB; /* this should be enough for now */
|
||||||
|
sound(emitter, CHAN_BODY, argv(r), 1.0f, ATTN_NONE, 100, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
ChatLookUp(string cmd)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < g_sounds; i++) {
|
||||||
|
int sc = tokenizebyseparator(g_table[i].sentence, ";");
|
||||||
for (int c = 0; c < sc; c++) {
|
for (int c = 0; c < sc; c++) {
|
||||||
if (cmd == argv(c)) {
|
if (cmd == argv(c)) {
|
||||||
int count = tokenizebyseparator(g_chatsounds[i].sample, ";");
|
ChatPlay(i);
|
||||||
int r = random(0, count);
|
|
||||||
sound(csndemitter, CHAN_BODY, argv(r), 1.0f, ATTN_NONE, 100, SOUNDFLAG_NOREVERB);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Some jokester might set it to non 0/1 */
|
/* some joker might set it to non 0/1 */
|
||||||
return autocvar_chatplug_suppresschat == 1 ? TRUE : FALSE;
|
return autocvar_chatplug_suppresschat == 1 ? TRUE : FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int FMX_ParseClientCommand(string cmd)
|
void
|
||||||
|
initents(void)
|
||||||
|
{
|
||||||
|
/* why waste entity slots? */
|
||||||
|
if (g_sounds > 0) {
|
||||||
|
emitter = spawn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
init(float prevprogs)
|
||||||
|
{
|
||||||
|
string temp;
|
||||||
|
int i = 0;
|
||||||
|
int c = 0;
|
||||||
|
filestream chatfile;
|
||||||
|
chatfile = fopen("chatsounds.txt", FILE_READ);
|
||||||
|
|
||||||
|
if (chatfile < 0) {
|
||||||
|
print("Chat Sound Plugin: chatsounds.txt not found.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* count lines */
|
||||||
|
while ((temp = fgets(chatfile))) {
|
||||||
|
c = tokenize_console(temp);
|
||||||
|
if (c != 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
g_sounds++;
|
||||||
|
}
|
||||||
|
fseek(chatfile, 0);
|
||||||
|
|
||||||
|
g_table = memalloc(sizeof(chatsentence_t) * g_sounds);
|
||||||
|
while ((temp = fgets(chatfile))) {
|
||||||
|
c = tokenize_console(temp);
|
||||||
|
if (c != 2 ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
g_table[i].sentence = strtolower(argv(0));
|
||||||
|
g_table[i].sample = strtolower(argv(1));
|
||||||
|
c = tokenizebyseparator(g_table[i].sample, ";");
|
||||||
|
for (int x = 0; x < c; x++) {
|
||||||
|
precache_sound(argv(x));
|
||||||
|
print(sprintf("Caching: %s\n", argv(x)));
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
fclose(chatfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* plugin hook */
|
||||||
|
int
|
||||||
|
FMX_ParseClientCommand(string cmd)
|
||||||
{
|
{
|
||||||
tokenize(cmd);
|
tokenize(cmd);
|
||||||
switch (argv(0)) {
|
switch (argv(0)) {
|
||||||
|
@ -54,53 +119,3 @@ int FMX_ParseClientCommand(string cmd)
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void initents(void)
|
|
||||||
{
|
|
||||||
/* Why waste entity slots? */
|
|
||||||
if (g_chatsounds_count > 0) {
|
|
||||||
csndemitter = spawn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void init(float prevprogs)
|
|
||||||
{
|
|
||||||
filestream chatfile;
|
|
||||||
chatfile = fopen("chatsounds.txt", FILE_READ);
|
|
||||||
|
|
||||||
if (chatfile >= 0) {
|
|
||||||
string temp;
|
|
||||||
int i = 0;
|
|
||||||
int c = 0;
|
|
||||||
|
|
||||||
/* count lines */
|
|
||||||
while ((temp = fgets(chatfile))) {
|
|
||||||
c = tokenize_console(temp);
|
|
||||||
if (c != 2) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
g_chatsounds_count++;
|
|
||||||
}
|
|
||||||
fseek(chatfile, 0);
|
|
||||||
print(sprintf("Chat Sound Plugin: %i record(s) initialized\n", g_chatsounds_count));
|
|
||||||
|
|
||||||
g_chatsounds = memalloc(sizeof(chatsentence_t) * g_chatsounds_count);
|
|
||||||
while ((temp = fgets(chatfile))) {
|
|
||||||
c = tokenize_console(temp);
|
|
||||||
if (c != 2 ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
g_chatsounds[i].sentence = strtolower(argv(0));
|
|
||||||
g_chatsounds[i].sample = strtolower(argv(1));
|
|
||||||
c = tokenizebyseparator(g_chatsounds[i].sample, ";");
|
|
||||||
for (int x = 0; x < c; x++) {
|
|
||||||
precache_sound(argv(x));
|
|
||||||
print(sprintf("Caching: %s\n", argv(x)));
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
fclose(chatfile);
|
|
||||||
} else {
|
|
||||||
print("Chat Sound Plugin: chatsounds.txt not found.\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
#define QWSSQC
|
#define QWSSQC
|
||||||
|
|
||||||
#includelist
|
#includelist
|
||||||
../builtins.h
|
../shared/fteextensions.qc
|
||||||
chatsounds.c
|
chatsounds.c
|
||||||
#endlist
|
#endlist
|
||||||
|
|
Loading…
Reference in a new issue