Changeset - r19537:6e0664ef363a
[Not reviewed]
master
0 3 0
yexo - 12 years ago 2012-08-13 18:49:38
yexo@openttd.org
(svn r24466) -Codechange [FS#5236]: add general function for ContentType -> Subdirectory conversion (LordAro)
3 files changed with 32 insertions and 49 deletions:
0 comments (0 inline, 0 general)
src/network/core/tcp_content.cpp
Show inline comments
 
@@ -163,4 +163,30 @@ bool NetworkContentSocketHandler::Receiv
 
bool NetworkContentSocketHandler::Receive_CLIENT_CONTENT(Packet *p) { return this->ReceiveInvalidPacket(PACKET_CONTENT_CLIENT_CONTENT); }
 
bool NetworkContentSocketHandler::Receive_SERVER_CONTENT(Packet *p) { return this->ReceiveInvalidPacket(PACKET_CONTENT_SERVER_CONTENT); }
 

	
 
/**
 
 * Helper to get the subdirectory a #ContentInfo is located in.
 
 * @param type The type of content.
 
 * @return The subdirectory the content is located in.
 
 */
 
Subdirectory GetContentInfoSubDir(ContentType type)
 
{
 
	switch (type) {
 
		default: return NO_DIRECTORY;
 
		case CONTENT_TYPE_AI:           return AI_DIR;
 
		case CONTENT_TYPE_AI_LIBRARY:   return AI_LIBRARY_DIR;
 
		case CONTENT_TYPE_GAME:         return GAME_DIR;
 
		case CONTENT_TYPE_GAME_LIBRARY: return GAME_LIBRARY_DIR;
 
		case CONTENT_TYPE_NEWGRF:       return NEWGRF_DIR;
 

	
 
		case CONTENT_TYPE_BASE_GRAPHICS:
 
		case CONTENT_TYPE_BASE_SOUNDS:
 
		case CONTENT_TYPE_BASE_MUSIC:
 
			return BASESET_DIR;
 

	
 
		case CONTENT_TYPE_SCENARIO:
 
		case CONTENT_TYPE_HEIGHTMAP:
 
			return SCENARIO_DIR;
 
	}
 
}
 

	
 
#endif /* ENABLE_NETWORK */
src/network/core/tcp_content.h
Show inline comments
 
@@ -206,6 +206,8 @@ public:
 
	void ReceivePackets();
 
};
 

	
 
Subdirectory GetContentInfoSubDir(ContentType type);
 

	
 
#endif /* ENABLE_NETWORK */
 

	
 
#endif /* NETWORK_CORE_TCP_CONTENT_H */
src/network/network_content.cpp
Show inline comments
 
@@ -384,20 +384,8 @@ void ClientNetworkContentSocketHandler::
 
 */
 
static char *GetFullFilename(const ContentInfo *ci, bool compressed)
 
{
 
	Subdirectory dir;
 
	switch (ci->type) {
 
		default: return NULL;
 
		case CONTENT_TYPE_BASE_GRAPHICS: dir = BASESET_DIR;    break;
 
		case CONTENT_TYPE_BASE_MUSIC:    dir = BASESET_DIR;    break;
 
		case CONTENT_TYPE_BASE_SOUNDS:   dir = BASESET_DIR;    break;
 
		case CONTENT_TYPE_NEWGRF:        dir = NEWGRF_DIR;     break;
 
		case CONTENT_TYPE_AI:            dir = AI_DIR;         break;
 
		case CONTENT_TYPE_AI_LIBRARY:    dir = AI_LIBRARY_DIR; break;
 
		case CONTENT_TYPE_SCENARIO:      dir = SCENARIO_DIR;   break;
 
		case CONTENT_TYPE_HEIGHTMAP:     dir = HEIGHTMAP_DIR;  break;
 
		case CONTENT_TYPE_GAME:          dir = GAME_DIR;       break;
 
		case CONTENT_TYPE_GAME_LIBRARY:  dir = GAME_LIBRARY_DIR; break;
 
	}
 
	Subdirectory dir = GetContentInfoSubDir(ci->type);
 
	if (dir == NO_DIRECTORY) return NULL;
 

	
 
	static char buf[MAX_PATH];
 
	FioGetFullPath(buf, lengthof(buf), SP_AUTODOWNLOAD_DIR, dir, ci->filename);
 
@@ -544,41 +532,8 @@ void ClientNetworkContentSocketHandler::
 
	if (GunzipFile(this->curInfo)) {
 
		unlink(GetFullFilename(this->curInfo, true));
 

	
 
		Subdirectory sd = NO_DIRECTORY;
 
		switch (this->curInfo->type) {
 
			case CONTENT_TYPE_AI:
 
				sd = AI_DIR;
 
				break;
 

	
 
			case CONTENT_TYPE_AI_LIBRARY:
 
				sd = AI_LIBRARY_DIR;
 
				break;
 

	
 
			case CONTENT_TYPE_GAME:
 
				sd = GAME_DIR;
 
				break;
 

	
 
			case CONTENT_TYPE_GAME_LIBRARY:
 
				sd = GAME_LIBRARY_DIR;
 
				break;
 

	
 
			case CONTENT_TYPE_BASE_GRAPHICS:
 
			case CONTENT_TYPE_BASE_SOUNDS:
 
			case CONTENT_TYPE_BASE_MUSIC:
 
				sd = BASESET_DIR;
 
				break;
 

	
 
			case CONTENT_TYPE_NEWGRF:
 
				sd = NEWGRF_DIR;
 
				break;
 

	
 
			case CONTENT_TYPE_SCENARIO:
 
			case CONTENT_TYPE_HEIGHTMAP:
 
				sd = SCENARIO_DIR;
 
				break;
 

	
 
			default: NOT_REACHED();
 
		}
 
		Subdirectory sd = GetContentInfoSubDir(this->curInfo->type);
 
		if (sd == NO_DIRECTORY) NOT_REACHED();
 

	
 
		TarScanner ts;
 
		ts.AddFile(sd, GetFullFilename(this->curInfo, false));
0 comments (0 inline, 0 general)