It currently returns a ship name rather than the class name which leads to some confusing dockscreens in Korolov / Battle Arena

You can get the old behavior by explicitly adding the generic name flag - e.g. (shpGetClassName &scCharonFrigateRaider; 0x4000)

Should the generic name flag be assumed inside fnShipClass e.g.: https://github.com/kronosaur/Mammoth/blob/master/TSE/CCExtensions.cpp#L8279 change to:

DWORD dwFlags = pCtx->AsNameFlags(pArgs->GetElement(1)) | nounGeneric;
george moromisato 28 May 2017:

Yeah, I think that's right.

I also need to look at a couple of other places where we probably need the nounGeneric flag:

  C:\Users\GPM\Documents\Elysium\Mammoth\TSE\CGameRecord.cpp(348):		m_sShipClass = pClass->GetNounPhrase();
  C:\Users\GPM\Documents\Elysium\Mammoth\TSE\CPlayerGameStats.cpp(382):		CString sName = pClass->GetNounPhrase(0);
  C:\Users\GPM\Documents\Elysium\Mammoth\TSUI\CListSaveFilesTask.cpp(113):	CString sShipClass = (pClass ? pClass->GetNounPhrase() : NULL_STR);
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\EncounterSim.cpp(81):		printf("\t%s", pAttackerClass->GetNounPhrase().GetASCIIZPointer());
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\ShipImageChart.cpp(209):						pClass->GetNounPhrase().GetASCIIZPointer(),
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\ShipImageChart.cpp(216):						pClass->GetNounPhrase().GetASCIIZPointer(),
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\ShipImageChart.cpp(221):				wsprintf(szBuffer, "%s%x", pClass->GetNounPhrase().GetASCIIZPointer(), pClass);
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\ShipImageChart.cpp(293):								pClass->GetNounPhrase(0));
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\ShipImageChart.cpp(543):			int cxName = Desc.pHeader->MeasureText(pClass->GetNounPhrase(0), &cyName);
  C:\Users\GPM\Documents\Elysium\Transcendence\TransData\ShipTable.cpp(106):				pClass->GetNounPhrase(0).GetASCIIZPointer(),

Thank you!

george moromisato 31 May 2017:

Fixed and merged into master. Thank you!