Ejemplo n.º 1
0
/* <2a916> ../engine/hashpak.c:243 */
void HPAK_AddToQueue(char *pakname, struct resource_s *pResource, void *pData, FileHandle_t fpSource)
{
	hash_pack_queue_t *n = (hash_pack_queue_t *)Mem_Malloc(sizeof(hash_pack_queue_t));
	if (!n)
		Sys_Error("Unable to allocate %i bytes for hpak queue!", sizeof(hash_pack_queue_t));

	Q_memset(n, 0, sizeof(hash_pack_queue_t));
	n->pakname = Mem_Strdup(pakname);
	Q_memcpy(&n->resource, pResource, sizeof(resource_t));
	n->datasize = pResource->nDownloadSize;
	n->data = Mem_Malloc(pResource->nDownloadSize);
	if (!n->data)
		Sys_Error("Unable to allocate %i bytes for hpak queue!", n->datasize);

	if (pData)
	{
		Q_memcpy(n->data, pData, n->datasize);
		n->next = gp_hpak_queue;
		gp_hpak_queue = n;
	}
	else
	{
		if (!fpSource)
			Sys_Error("Add to Queue called without data or file pointer!");
		FS_Read(n->data, n->datasize, 1, fpSource);
		n->next = gp_hpak_queue;
		gp_hpak_queue = n;
	}
}
Ejemplo n.º 2
0
void kexInputKey::BindCommand(char key, const char *string) {
    keycmd_t *keycmd;
    cmdlist_t *newcmd;

    keycmd = &keycmds[keycode[bShiftdown][key]];
    newcmd = (cmdlist_t*)Mem_Malloc(sizeof(cmdlist_t), hb_static);
    newcmd->command = Mem_Strdup(string, hb_static);
    newcmd->next = keycmd->cmds;
    keycmd->cmds = newcmd;
}