示例#1
0
void DreamWebEngine::initRain() {
	const RainLocation *r = rainLocationList;
	_rainList.clear();

	uint8 rainSpacing = 0;

	// look up location in rainLocationList to determine rainSpacing
	for (r = rainLocationList; r->location != 0xff; ++r) {
		if (r->location == _realLocation &&
		        r->x == _mapX && r->y == _mapY) {
			rainSpacing = r->rainSpacing;
			break;
		}
	}

	if (rainSpacing == 0) {
		// location not found in rainLocationList: no rain
		return;
	}

	// start lines of rain from top of screen
	uint8 x = 4;
	do {
		uint8 delta = _rnd.getRandomNumberRng(3, rainSpacing - 1);
		x += delta;
		if (x >= _mapXSize)
			break;

		splitIntoLines(x, 0);
	} while (true);

	// start lines of rain from side of screen
	uint8 y = 0;
	do {
		uint8 delta = _rnd.getRandomNumberRng(3, rainSpacing - 1);
		y += delta;
		if (y >= _mapYSize)
			break;

		splitIntoLines(_mapXSize - 1, y);
	} while (true);
}
static void setDisassemblyCode(DissassemblyData* data, PDReader* inEvents)
{
    const char* stringBuffer;

    PDRead_findString(inEvents, &stringBuffer, "string_buffer", 0);

    //printf("Got disassembly\n");
    //printf("disassembly %s\n", stringBuffer);

    free(data->code);

    if (!stringBuffer)
        return;

    data->code = strdup(stringBuffer);

    splitIntoLines(data, data->code, strlen(stringBuffer));
}